fix(library): first-pass enrich gate skips post-resolve skeletons

isActive() for book/game/comic only checked for a resolved id, so a
note that had run resolve() but never a real sync() (no read_status/
play_status/status field yet) was treated as static and never
enriched on subsequent runs. Now also requires the status-analog
field canonical render always writes; missing it means sync() hasn't
actually produced output yet.
This commit is contained in:
afiqzudinhadi 2026-08-03 22:08:09 +08:00
parent 6225231d67
commit 1d5537742f
6 changed files with 41 additions and 11 deletions

View file

@ -158,6 +158,9 @@ export const comicSpec: MediaTypeSpec = {
isActive(fm: Record<string, string>): boolean {
if (!stripQuotes(fm['comicvine_id'])) return true; // never enriched -> needs first pass
// post-resolve skeleton -- canonical render always writes status, so its absence
// means sync() hasn't produced canonical output yet
if (!stripQuotes(fm['status'])) return true;
if (stripQuotes(fm['status']) === 'Ongoing') return true;
if (stripQuotes(fm['read_status']) === 'Reading') return true;
return false;