Make player history failures non-fatal

This commit is contained in:
Jay
2026-07-26 19:40:58 -04:00
parent 1ec3dd1276
commit 843957d154
3 changed files with 262 additions and 53 deletions
+6 -2
View File
@@ -72,7 +72,9 @@ export JAVA_HOME="/Applications/Android Studio.app/Contents/jbr/Contents/Home"
version, setup preference, session/hand counts, baseline agreement, and stable
review-category counters. It never stores hole cards, boards, opponents, or
raw action histories. Storage mutations are serialised because hand completion
and coach analysis run on different coroutines.
and coach analysis run on different coroutines. History is non-critical: an
unreadable/newer schema or failed commit falls back to in-memory counters and
disables persistence for that process rather than crashing or overwriting data.
## Testing notes
@@ -142,7 +144,9 @@ export JAVA_HOME="/Applications/Android Studio.app/Contents/jbr/Contents/Home"
- Versioned player history survives process restarts in a small aggregate
`SharedPreferences` store. The setup screen restores the last player/coach
preference and shows cross-session agreement/review trends only after at least
ten coached decisions; smaller samples are labelled as insufficient.
ten coached decisions; smaller samples are labelled as insufficient. Schema
reads go through an explicit migration dispatcher; add the migration branch
before incrementing `PLAYER_HISTORY_SCHEMA_VERSION`.
- Gradle emits an `archives` deprecation from the Kotlin Multiplatform plugin's
own `jvm()` target registration — upstream in Kotlin 2.2.10, not our build.
- Not built yet: LLM persona layer.