Deterministic per-page storage keys mean a re-crawl overwrites the image but the pages row survives the upsert, so analysis keyed to page_id (page_analysis/ search_doc, OCR, auto-tags, content-warnings) stayed stale forever and force=false re-enqueue never re-analyzed it — poisoning search + the derived manga_content_warnings (audit DB-1). persist_pages now detects conflict-updated pages via xmax and clears their four derived tables in the same tx (the content-warnings DELETE fires the mcw_* triggers), returning them to unanalyzed so they re-derive. Tested. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
864 B
864 B