fix(crawler): prioritize usable source retrieval over equal byte splits

Fetch candidate pages sequentially with the full remaining download budget instead of dividing a quick run's 500 KB equally across every URL. This avoids aborting otherwise readable pages at roughly 33 KB before claim extraction can inspect them.

Account for bytes consumed by failed downloads, preserve fetch errors in source responses, and fail runs with no successfully extracted document using an actionable error. Keep attempted sources on failed runs for diagnostics and cover the allocation and no-usable-source paths with regression tests.
This commit is contained in:
faligam
2026-09-07 14:04:48 +02:00
parent 610c716a97
commit 56d6415e68
5 changed files with 109 additions and 20 deletions

View File

@@ -7,6 +7,32 @@
## Aktueller Stand — 2026-09-07
### Claim-Ausfall durch zu kleine Seitenlimits repariert — 2026-09-07
Der Browser-Run `ab7d8263-cb6a-4db0-97da-4bee88408711` zeigte Quellen, aber
keine Claims. Das API-Log bestätigte: `No successful sources ... for claim
extraction`. Die angezeigten Quellen waren Fehlerdokumente ohne extrahierten
Inhalt, nicht verwendbare Dokumente. Das war kein CAPTCHA- oder
Erreichbarkeitsproblem: Browser konnten die URLs laden.
Ursache: Ein Quick-Run teilt sein 500-KB-Downloadbudget durch bis zu 15 URLs
und setzte dadurch ein hartes Limit von nur ca. 33 KB pro Seite. Der Crawler
markiert größere, sonst lesbare HTML-Seiten als `SIZE_LIMIT_EXCEEDED`; die
frühere Quellen-API verbarg diesen Fehler zudem.
- Quellen werden nun nacheinander mit dem jeweils gesamten verbleibenden
Bytebudget abgerufen. Damit erhält die erste brauchbare Seite genügend
Platz für die Extraktion; tatsächlich abgerufene Bytes werden auch bei
Fehlern budgetiert.
- Wenn keine Quelle erfolgreich extrahiert wird, endet der Run eindeutig als
fehlgeschlagen und nennt die konkreten Abruffehler.
- Der Quellen-Endpunkt liefert das Fehlerfeld mit, damit die Oberfläche keine
Fehlerdokumente mehr als uneingeschränkt nutzbare Quellen ausgibt.
Validierung: 50 gezielte Crawler- und Pipeline-Tests, Syntaxprüfung und
Diff-Check erfolgreich. Nach Deployment eine neue Recherche starten; der
vorherige In-Memory-Run kann nicht nachträglich mit Inhalten ergänzt werden.
### Evidenzbewertung und sichtbarer Fallback-Bericht in die Pipeline integriert — 2026-09-07
Ein Browser-Run hatte bereits abgerufene Quellen, aber keine Evidenz, keinen