From e46c5e06c00ab8e46c61a65ef4076e02e084598a Mon Sep 17 00:00:00 2001 From: neon <18559658+neonsolstice@users.noreply.github.com> Date: Mon, 26 Jan 2026 21:54:11 -0600 Subject: [PATCH] fix(scanner): wipe covers in scan-test to prevent stale cover data --- .../book/composables/useCoverVersions.ts | 26 +++++++++++++++++-- server/src/db/migrations/meta/_journal.json | 2 +- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/client/src/features/book/composables/useCoverVersions.ts b/client/src/features/book/composables/useCoverVersions.ts index 3c8298b00..40c68bf33 100644 --- a/client/src/features/book/composables/useCoverVersions.ts +++ b/client/src/features/book/composables/useCoverVersions.ts @@ -1,10 +1,32 @@ import { ref } from 'vue' -const versions = ref>(new Map()) +const STORAGE_KEY = 'cover-versions' + +function loadFromStorage(): Map { + try { + const raw = localStorage.getItem(STORAGE_KEY) + if (!raw) return new Map() + return new Map(JSON.parse(raw) as [number, number][]) + } catch { + return new Map() + } +} + +function saveToStorage(map: Map) { + try { + localStorage.setItem(STORAGE_KEY, JSON.stringify([...map])) + } catch { + // ignore quota errors + } +} + +const versions = ref>(loadFromStorage()) export function useCoverVersions() { function bumpVersion(bookId: number) { - versions.value = new Map(versions.value).set(bookId, Date.now()) + const next = new Map(versions.value).set(bookId, Date.now()) + versions.value = next + saveToStorage(next) } function getVersion(bookId: number): number | undefined { diff --git a/server/src/db/migrations/meta/_journal.json b/server/src/db/migrations/meta/_journal.json index 282381743..912dd2517 100644 --- a/server/src/db/migrations/meta/_journal.json +++ b/server/src/db/migrations/meta/_journal.json @@ -5,7 +5,7 @@ { "idx": 0, "version": "7", - "when": 1769530382856, + "when": 1769532539252, "tag": "0000_baseline", "breakpoints": true }