Neueste Entwicklungen: Kachel fuer adhoc-Lagen

- DB-Migration: Spalte latest_developments (TEXT) in incidents
- Analyzer: neuer Prompt LATEST_DEVELOPMENTS_PROMPT_TEMPLATE und
  Methode generate_latest_developments() liefert chronologische
  Bullet-Liste (max. 8, neueste oben, Zeitstempel DD.MM. HH:MM)
- Orchestrator: nach Analyse+Faktencheck ein Extra-Schritt nur fuer
  incident_type=adhoc, der die neue Kachel fortschreibt
- Analyzer-Prompts (Erst- und inkrementell): erzeugen KEINE
  Zusammenfassung-Sektion mehr im Lagebild (vermeidet Duplikat mit
  der neuen Kachel)
- models.IncidentResponse um latest_developments erweitert
- Frontend: Rendering der Kachel in app.js
Dieser Commit ist enthalten in:
claude-dev
2026-04-18 11:47:10 +00:00
Ursprung acfc74ffe7
Commit d6c541cb95
5 geänderte Dateien mit 161 neuen und 16 gelöschten Zeilen

Datei anzeigen

@@ -674,6 +674,7 @@ class AgentOrchestrator:
tenant_id = incident["tenant_id"] if "tenant_id" in incident.keys() else None
previous_summary = incident["summary"] or ""
previous_sources_json = incident["sources_json"] if "sources_json" in incident.keys() else None
previous_developments = incident["latest_developments"] if "latest_developments" in incident.keys() else None
# Bei Retry: vorherigen running-Eintrag als error markieren
if retry_count > 0:
@@ -1233,6 +1234,25 @@ class AgentOrchestrator:
# Cancel-Check nach paralleler Verarbeitung
self._check_cancelled(incident_id)
# --- Neueste Entwicklungen (nur Live-Monitoring / adhoc) ---
if incident_type == "adhoc" and new_articles_for_analysis:
try:
dev_analyzer = AnalyzerAgent()
dev_text, dev_usage = await dev_analyzer.generate_latest_developments(
title, description, new_articles_for_analysis, previous_developments,
)
if dev_usage:
usage_acc.add(dev_usage)
if dev_text is not None:
await db.execute(
"UPDATE incidents SET latest_developments = ? WHERE id = ?",
(dev_text, incident_id),
)
await db.commit()
previous_developments = dev_text
except Exception as e:
logger.warning(f"Latest-Developments-Generator fehlgeschlagen: {e}")
# Cancel-Check nach Analyse+Faktencheck
self._check_cancelled(incident_id)