fix: Quellen-Suffix-Refs ([22b]) auf Basisquelle auflösen statt Platzhalter
Claude vergibt manchmal Buchstaben-Suffixe an Quellennummern (z.B. [22b] statt [22]). Bisher wurden dafür leere Platzhalter-Quellen erstellt. Jetzt wird geprüft ob die Basisnummer existiert und die Referenz im Text korrigiert. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Dieser Commit ist enthalten in:
@@ -1152,14 +1152,27 @@ class AgentOrchestrator:
|
||||
defined_nrs.add(nr) # Keep alphanumeric like '389a'
|
||||
missing_nrs = sorted(referenced_nrs - defined_nrs)
|
||||
if missing_nrs:
|
||||
truly_missing = []
|
||||
for nr in missing_nrs:
|
||||
# Buchstaben-Suffix (z.B. "22b") -> Basisnummer (22) aufloesen
|
||||
if isinstance(nr, str) and _re.match(r"^\d+[a-z]$", nr):
|
||||
base_nr = int(nr[:-1])
|
||||
if base_nr in defined_nrs:
|
||||
new_summary = new_summary.replace(f"[{nr}]", f"[{base_nr}]")
|
||||
logger.info(
|
||||
"Incident %d: Suffix-Ref [%s] auf Basisquelle [%d] aufgeloest",
|
||||
incident_id, nr, base_nr
|
||||
)
|
||||
continue
|
||||
truly_missing.append(nr)
|
||||
if truly_missing:
|
||||
logger.warning(
|
||||
"Incident %d: %d Quellennummern im Summary ohne Eintrag in sources: %s",
|
||||
incident_id, len(missing_nrs), missing_nrs[:20]
|
||||
incident_id, len(truly_missing), truly_missing[:20]
|
||||
)
|
||||
# Platzhalter einfuegen damit die Nummern nicht unverlinkt bleiben
|
||||
for nr in missing_nrs:
|
||||
for nr in truly_missing:
|
||||
sources.append({"nr": nr, "name": "Quelle", "url": ""})
|
||||
logger.info("Platzhalter fuer fehlende Quelle [%d] eingefuegt", nr)
|
||||
logger.info("Platzhalter fuer fehlende Quelle [%s] 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)
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren