-
Notifications
You must be signed in to change notification settings - Fork 0
[HT-64]: Game history storage foundation — file persistence channel #112
Copy link
Copy link
Open
Labels
✅ readyWell-scoped, unblocked, and ready for implementation or review work to begin.Well-scoped, unblocked, and ready for implementation or review work to begin.💾 persistenceLocal storage for settings, preferences, match state, resume, or history.Local storage for settings, preferences, match state, resume, or history.🔹 p2Normal-priority work that matters but does not block the immediate critical path.Normal-priority work that matters but does not block the immediate critical path.🚦 ciGitHub Actions, analysis/test automation, build checks, release checks, or toolchain health.GitHub Actions, analysis/test automation, build checks, release checks, or toolchain health.🧩 featureA vertical slice that delivers user-visible behavior or playable product capability.A vertical slice that delivers user-visible behavior or playable product capability.
Description
Metadata
Metadata
Assignees
Labels
✅ readyWell-scoped, unblocked, and ready for implementation or review work to begin.Well-scoped, unblocked, and ready for implementation or review work to begin.💾 persistenceLocal storage for settings, preferences, match state, resume, or history.Local storage for settings, preferences, match state, resume, or history.🔹 p2Normal-priority work that matters but does not block the immediate critical path.Normal-priority work that matters but does not block the immediate critical path.🚦 ciGitHub Actions, analysis/test automation, build checks, release checks, or toolchain health.GitHub Actions, analysis/test automation, build checks, release checks, or toolchain health.🧩 featureA vertical slice that delivers user-visible behavior or playable product capability.A vertical slice that delivers user-visible behavior or playable product capability.
Parent
PRD-05: Game History & Replay — #111
What to build
Add a file-based local storage capability so the game can persist heavy per-match replay data outside the small key-value preferences store. The app currently has no file I/O — local storage is a key-value method channel backed by platform preferences — so this is net-new platform surface.
Extend the existing
local_storageplatform channel (rather than adding a new file-path dependency) with file write / read / delete / list operations against a no-backup location, and a flag that marks written files excluded from iCloud backup on iOS (and the equivalent no-backup directory on Android). Expose a small Flutter-side file-store abstraction over the channel. The throwaway web build, which has no filesystem, falls back to browser storage behind the same abstraction.This slice is the enabling foundation for recording matches; it is verifiable on its own via a round-trip (write → read → list → delete) through the real channel.
Acceptance criteria
Blocked by