fix: Quellenlinks bei String-Nr repariert (574, 610, 611, 617 etc.)

Ursache: Claude liefert teilweise Quellennummern als String statt Integer.
Der Frontend-Vergleich (===) schlug dann fehl: "574" !== 574.

Fixes:
- 95 String-Nummern in Irankonflikt sources_json zu Integer konvertiert
- 5 Duplikate entfernt
- Frontend: Number() statt parseInt/=== fuer robusten Vergleich
- Orchestrator: Automatische Konvertierung von String-Nr zu Integer vor DB-Speicherung
- Cache-Buster aktualisiert

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Dieser Commit ist enthalten in:
Claude Dev
2026-03-16 11:00:00 +01:00
Ursprung 40011b515a
Commit b38ae9e1b1
3 geänderte Dateien mit 11 neuen und 2 gelöschten Zeilen

Datei anzeigen

@@ -999,6 +999,15 @@ class AgentOrchestrator:
logger.info("Platzhalter fuer fehlende Quelle [%d] eingefuegt", nr)
sources.sort(key=lambda s: int(s.get("nr", 0)) if isinstance(s.get("nr"), int) or (isinstance(s.get("nr"), str) and str(s.get("nr", "")).isdigit()) else 9999)
# Sicherstellen dass alle nr-Werte Integer sind (Claude liefert manchmal Strings)
if sources:
for s in sources:
nr = s.get("nr")
if isinstance(nr, str):
try:
s["nr"] = int(nr)
except ValueError:
pass
sources_json = json.dumps(sources, ensure_ascii=False) if sources else previous_sources_json
await db.execute(