feat: check-assets ↔ KI gekoppelt — byte-getauschte Bilder neu bewerten
Da bekannte Bilder aus Effizienzgründen nicht jeden Scan neu geladen werden (url_hashes), prüfte die KI einen späteren Byte-Tausch eines bekannten Bildes nicht von selbst erneut. Lücke geschlossen: Erkennt die Datei-Prüfung (check-assets) eine geänderte Bilddatei, wird deren URL über BaselineManager.invalidate_ai_url_hashes aus der Hash-Erinnerung entfernt → nächster Scan lädt das Bild neu, neue Bytes = neuer Hash = Cache-Miss = die KI bewertet den Inhalt neu. Einhängung in cmd_scan (vor run_ai_analysis → Neubewertung noch im selben Scan) und cmd_check_assets. Integritäts- und Inhaltsprüfung greifen so ineinander. Tests: 260 grün (+2: invalidate entfernt nur die genannten URLs; geändertes Bild wird nach Invalidierung neu geladen und beanstandet). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
4db5817013
commit
78dc79ceab
4 changed files with 80 additions and 2 deletions
|
|
@ -292,6 +292,22 @@ class BaselineManager:
|
|||
json.dumps(state, indent=2, ensure_ascii=False), encoding="utf-8"
|
||||
)
|
||||
|
||||
def invalidate_ai_url_hashes(self, urls: list[str]) -> int:
|
||||
"""Entfernt URLs aus der url_hashes-Erinnerung. Folge: Die KI lädt diese Bilder
|
||||
beim nächsten Lauf erneut und bewertet sie inhaltlich neu (geänderte Bytes →
|
||||
neuer Hash → Cache-Miss → Analyse). Wird von der Datei-Prüfung (check-assets)
|
||||
für geänderte Bild-Assets aufgerufen. Returns Anzahl entfernter Einträge."""
|
||||
if not urls:
|
||||
return 0
|
||||
ledger = self.load_ai_ledger()
|
||||
uh = ledger.get("url_hashes", {})
|
||||
removed = [u for u in urls if u in uh]
|
||||
for u in removed:
|
||||
del uh[u]
|
||||
if removed:
|
||||
self.save_ai_ledger(ledger)
|
||||
return len(removed)
|
||||
|
||||
def dismiss_ai_entries(self, fingerprints: list[str] | None = None) -> int:
|
||||
"""
|
||||
Mark ledger entries as dismissed (false-positive acknowledgement).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue