integrity_scanner_fuer_stat.../TASK.md

2.3 KiB

Aufgabe

„Funktioniert das Projekt?"

Status: PASS

Alle Beanstandungen aus 6 Senior-QA-Reviews sind repariert.


Ergebnis (Stand 2026-06-14)

Check Ergebnis
Tests 294/294 grün (2.90s)
Module-Import 11/11
CLI 14 Subcommands, --help funktioniert
Pipeline (bredelar.info) 🟢 Score 0, 46 Seiten
Report-Generierung JSON + Markdown
KI-Analyse OpenRouter primary + localhost Fallback, hash-gegated
Gesamt-Coverage 53% (von 50%) ⬆️

Reparierter Issues

Issue Priorität Fix Commit
M1: exclude_paths=["/"] blockt ALLE Pfade Major / aus jamulix.de/config.yaml entfernt 248788e
M2: Seed-URL umgeht should_crawl-Filter Major Seed-URLs durch should_crawl() gefiltert (crawler.py) 248788e
M3: Alarm-Mail Deduplizierung fehlt Major last_alert.json — Hash aus reasons+level+score 248788e
Mi1: __main__.py Coverage 10% Minor 18% (17 neue Tests in test_main.py) de5be23
Mi2: Keine Versions-Pins Minor Obergrenzen <3.0, <5.0 etc. in requirements.txt de5be23
Mi3: Kein File-Lock für parallele Scans Minor fcntl.flock in cmd_scan() (.scan.lock) de5be23
Mi4: refresh_catalog() ohne Lock Minor Cache-Check unter self._lock (thread-safe) de5be23

Bekannte Risiken (offen, dokumentiert)

Risiko Auswirkung Minderung
__main__.py Coverage nur 18% 756 von 920 Zeilen ungetestet Kritische Logik (_worst_level, _crawl_and_extract, _run_content_check) getestet; Rest ist Rendering/CLI
jamulix.de: Score 100 (Score-Alarm) bredelar.info und cdnjs.cloudflare.com nicht in Whitelist Operativ: Domains zu allowed_external.yaml hinzufügen
AI-Analyse: OPENROUTER_API_KEY fehlt Graceful degradation (default: enabled: false) Prod: Env-Var setzen
Audio/Video: ffmpeg fehlt Graceful degradation (default: enabled: false) Prod: ffmpeg installieren

Produktions-Checkliste

  • OPENROUTER_API_KEY im Environment setzen
  • jamulix.de Whitelist aktualisieren (bredelar.info, cdnjs.cloudflare.com)
  • Cron-Job konfigurieren (z.B. 0 3 * * * python -m scanner --config ... scan)
  • SMTP-Passwort via SCANNER_SMTP_PASSWORD setzen (falls E-Mail aktiv)