fix: Multi-Pass nur beim ersten Refresh einer Research-Lage

3 automatische Durchläufe laufen nur wenn noch kein Briefing existiert
(erster Refresh). Folge-Refreshes machen wie bisher einen einzelnen
Durchlauf, um unnötige Token-Kosten zu vermeiden.
Dieser Commit ist enthalten in:
Claude Dev
2026-03-27 18:48:43 +01:00
Ursprung 506965e3e2
Commit bd5952b9ae

Datei anzeigen

@@ -480,12 +480,13 @@ class AgentOrchestrator:
last_error = None last_error = None
try: try:
# Research-Lagen: Automatisch 3 Durchläufe # Research-Lagen: Automatisch 3 Durchläufe nur beim ersten Refresh
incident_type = await self._get_incident_type(incident_id) incident_type, has_summary = await self._get_incident_info(incident_id)
use_multi_pass = incident_type == "research" and not has_summary
for attempt in range(3): for attempt in range(3):
try: try:
if incident_type == "research": if use_multi_pass:
await self._run_research_multi_pass(incident_id, trigger_type=trigger_type, user_id=user_id) await self._run_research_multi_pass(incident_id, trigger_type=trigger_type, user_id=user_id)
else: else:
await self._run_refresh(incident_id, trigger_type=trigger_type, retry_count=attempt, user_id=user_id) await self._run_refresh(incident_id, trigger_type=trigger_type, retry_count=attempt, user_id=user_id)
@@ -1398,16 +1399,18 @@ class AgentOrchestrator:
await db.close() await db.close()
async def _get_incident_type(self, incident_id: int) -> str: async def _get_incident_info(self, incident_id: int) -> tuple[str, bool]:
"""Incident-Typ laden (adhoc/research).""" """Incident-Typ und Summary-Status laden."""
from database import get_db from database import get_db
db = await get_db() db = await get_db()
try: try:
cursor = await db.execute( cursor = await db.execute(
"SELECT type FROM incidents WHERE id = ?", (incident_id,) "SELECT type, summary FROM incidents WHERE id = ?", (incident_id,)
) )
row = await cursor.fetchone() row = await cursor.fetchone()
return row["type"] if row else "adhoc" if not row:
return "adhoc", False
return row["type"] or "adhoc", bool(row["summary"])
finally: finally:
await db.close() await db.close()