feat: replace the completions store with per-event progress

Membership in a set can only say "done", so "started" was inexpressible.
Progress carries a status instead, plus an optional effort estimate and a
note.

The old completions key is read once to seed status: "done", and is never
written to or deleted. Someone who last opened the app six months ago still
has their marks under it, these live only in the browser, and nothing else
holds a copy to restore from.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
This commit is contained in:
Lucas Winther
2026-08-15 01:49:53 +02:00
co-authored by Claude Opus 5
parent ea719730a7
commit 2f7e5bdf79
2 changed files with 135 additions and 0 deletions
+6
View File
@@ -11,7 +11,13 @@
const NS = "gacha-tracker:v1";
export const KEYS = {
/**
* Superseded by `progress`, which carries a status rather than using
* membership to mean "done". Read once to migrate; never written, never
* deleted — see useProgress.
*/
completions: `${NS}:completions`,
progress: `${NS}:progress`,
ignored: `${NS}:ignored`,
prefs: `${NS}:prefs`,
} as const;