fix: Quellenlinks mit Buchstaben-Suffix ([389a] etc.) korrekt verlinken
Probleme: - Frontend-Regex matchte nur reine Zahlen, nicht [389a]-Style Refs - 17 alphanumerische Quellen im Irankonflikt blieben unverlinkt - Orchestrator-Validierung erkannte diese Refs nicht als fehlend Fixes: - Frontend: Regex erweitert auf [\d+a-z?], Vergleich mit String und Number - Orchestrator: Validierung erkennt jetzt auch alphanumerische Refs - Analyzer-Prompts: Explizite Anweisung, nur ganze Zahlen als Nr zu verwenden - 822a und 859a in Irankonflikt sources_json nachgetragen - Cache-Buster aktualisiert Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Dieser Commit ist enthalten in:
@@ -980,13 +980,24 @@ class AgentOrchestrator:
|
||||
# Validierung: Fehlende Quellennummern im Summary erkennen und reparieren
|
||||
if sources and new_summary:
|
||||
import re as _re
|
||||
referenced_nrs = set(int(m) for m in _re.findall(r'\[(\d+)\]', new_summary))
|
||||
# Auch alphanumerische Refs wie [389a] erkennen
|
||||
referenced_raw = set(_re.findall(r'\[(\d+[a-z]?)\]', new_summary))
|
||||
referenced_nrs = set()
|
||||
for r in referenced_raw:
|
||||
try:
|
||||
referenced_nrs.add(int(r))
|
||||
except ValueError:
|
||||
referenced_nrs.add(r) # Keep alphanumeric as string
|
||||
defined_nrs = set()
|
||||
for s in sources:
|
||||
try:
|
||||
defined_nrs.add(int(s.get("nr", 0)))
|
||||
except (ValueError, TypeError):
|
||||
pass
|
||||
nr = s.get("nr", 0)
|
||||
if isinstance(nr, int):
|
||||
defined_nrs.add(nr)
|
||||
elif isinstance(nr, str):
|
||||
try:
|
||||
defined_nrs.add(int(nr))
|
||||
except ValueError:
|
||||
defined_nrs.add(nr) # Keep alphanumeric like '389a'
|
||||
missing_nrs = sorted(referenced_nrs - defined_nrs)
|
||||
if missing_nrs:
|
||||
logger.warning(
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren