integrity_scanner_fuer_stat.../scanner
Dieter Schlüter 31730403b3 fix: KI-Robustheit — harter Wanduhr-Deadline + persistenter Ledger
Ein echter Durchlauf auf bredelar.info deckte zwei Bugs auf, die mit
gemockten Tests unsichtbar waren:

1. Hang: attempt_timeout wurde nur als requests-Inaktivitäts-Timeout
   übergeben. Ein Free-Modell, das die Verbindung offen hält oder Tokens
   langsam tröpfeln lässt, umging ihn → der ganze Scan hing unbegrenzt
   (real auf einem Bild >5 min). Fix: _post_with_deadline führt den Call
   in einem Worker-Thread mit future.result(timeout=...) aus — hartes
   Wanduhr-Limit, bei Überschreitung Eskalation statt Hang.

2. Verlust bei Abbruch: Das Ledger wurde nur ganz am Ende gespeichert,
   ein Hang/Crash verwarf alle berechneten Verdikte. Fix: Zwischensicherung
   nach der Textphase + im finally — Verdikte überleben einen Abbruch.

Zusätzlich attempt_timeout 30 → 20 s (flottere Eskalation).

Im erneuten Lauf griff der Deadline 4× sauber, der Scan lief vollständig
durch (Gelb: ein off_topic_commercial-Fund auf einer Gewerbe-Seite).

Tests: 239 grün (+2: Deadline kappt Hang <2s, Textverdikte überleben
Bildphasen-Crash).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13 02:11:14 +02:00
..
__init__.py feat: initial implementation of website integrity scanner 2026-06-12 00:51:41 +02:00
__main__.py feat: KI-Absicherung gegen Falsch-Negative bei Dienstausfall 2026-06-13 00:50:36 +02:00
ai_analyzer.py fix: KI-Robustheit — harter Wanduhr-Deadline + persistenter Ledger 2026-06-13 02:11:14 +02:00
alerter.py feat: KI-Absicherung gegen Falsch-Negative bei Dienstausfall 2026-06-13 00:50:36 +02:00
baseline.py feat: KI-gestützte Inhaltsanalyse via OpenRouter (hash-gegated) 2026-06-13 00:04:33 +02:00
checker.py feat: single-line progress indicator during crawl and ext-link check 2026-06-12 17:17:37 +02:00
config.py fix: KI-Robustheit — harter Wanduhr-Deadline + persistenter Ledger 2026-06-13 02:11:14 +02:00
crawler.py feat: sitemap seeding — discover orphan pages not reachable via links 2026-06-12 17:58:52 +02:00
differ.py feat: exclude_paths — skip dynamic areas (RSS feeds, news archives) from scan 2026-06-12 13:14:06 +02:00
extractor.py fix: Bugfixes, toten Code entfernt, Cache-Normalisierung & Session 2026-06-12 03:20:32 +02:00
plain.py feat: KI-Absicherung gegen Falsch-Negative bei Dienstausfall 2026-06-13 00:50:36 +02:00