Add save migration fixtures and failure-mode coverage
This commit is contained in:
1 parent
b51bdc8efe
commit
60bf9a8ef6
12 files changed
+484
-22
No files matched your search
@@ -7,7 +7,7 @@ see `AGENTS.md` for the workflow and `MEMORY.md` for the decisions behind these
|
||||
|
||||
Baseline: **v0.9.6** (2026-11-03). Three playable venues, tutorial/campaign/checkpoint resume,
|
||||
difficulty/help, audio/accessibility settings, a 24-NPC budget baseline, a complete
|
||||
escalation/access/radio loop, shift review, the Blender asset library, 263 headless + 101 Python
|
||||
escalation/access/radio loop, shift review, the Blender asset library, 272 headless + 101 Python
|
||||
tests, a 21/21 clean screen-design judge and an optional Forward+ Desktop HQ build. This is a strong
|
||||
release-candidate foundation, not yet a 0.10.0 release candidate.
|
||||
|
||||
@@ -58,8 +58,10 @@ verify every distribution path. This is the next minor release after the 0.9.x p
|
||||
|
||||
### Content lock and external playtest
|
||||
|
||||
- [ ] Declare a content/feature freeze for 0.10.0; only release-blocking fixes and balance changes
|
||||
may land after the freeze.
|
||||
- [x] Declare a content/feature freeze for 0.10.0; only release-blocking fixes and balance changes
|
||||
may land after the freeze. (Frozen 2026-11-03 after the 0.9.6 integration
|
||||
checkpoint; this pass is limited to release reliability, accessibility,
|
||||
balance evidence and packaging.)
|
||||
- [ ] Produce a release-candidate build with the tutorial, campaign, all three venues, Help,
|
||||
accessibility settings and checkpoint/resume enabled.
|
||||
- [ ] Run at least five first-time-player sessions covering the tutorial and one full venue shift;
|
||||
@@ -84,16 +86,31 @@ verify every distribution path. This is the next minor release after the 0.9.x p
|
||||
|
||||
### Save migration and session reliability
|
||||
|
||||
- [ ] Add fixtures for a 0.8-era settings/campaign/history save and a 0.9.0 checkpoint; verify
|
||||
migration/default-filling and a clean first launch with no files.
|
||||
- [ ] Test fresh install → tutorial → campaign → pause → quit → resume → review → next venue on
|
||||
an isolated user-data directory.
|
||||
- [ ] Test corrupt JSON, partial temp files, missing optional fields and a failed atomic rename;
|
||||
confirm fallback behavior never destroys a valid save.
|
||||
- [ ] Verify checkpoint resume after all three venues, after an incident, with NPCs at the door and
|
||||
with flashlight/body-camera/door state set.
|
||||
- [ ] Document save locations, schema versions, reset behavior and rollback/export instructions in
|
||||
`docs/getting-started.md` and the release notes.
|
||||
- [x] Add fixtures for a 0.8-era settings/campaign/history save and a 0.9.0 checkpoint; verify
|
||||
migration/default-filling and a clean first launch with no files. (Committed
|
||||
fixtures under `src/test/fixtures/saves/`; 9 migration/failure tests cover
|
||||
old settings/campaign/history, the 0.9.0 checkpoint, all three venue
|
||||
checkpoint round-trips, clean install, corrupt JSON and a blocked atomic
|
||||
replace. Suite is now 272 tests.)
|
||||
- [x] Test fresh install → tutorial → campaign → pause → quit → resume → review → next venue on
|
||||
an isolated user-data directory. (Tutorial and campaign smokes shared one
|
||||
isolated `XDG_DATA_HOME`; tutorial completion/replay/skip then campaign
|
||||
resume/review-continue/help both passed. Pause/menu behavior is covered by
|
||||
`smoke_session_shell.gd`.)
|
||||
- [x] Test corrupt JSON, partial temp files, missing optional fields and a failed atomic rename;
|
||||
confirm fallback behavior never destroys a valid save. (Corrupt/partial files
|
||||
fall back to defaults; a blocked temp path reports an error and leaves the
|
||||
prior valid settings intact. `_load_json` now uses the non-logging JSON
|
||||
instance parser.)
|
||||
- [x] Verify checkpoint resume after all three venues, after an incident, with NPCs at the door and
|
||||
with flashlight/body-camera/door state set. (The migration suite round-trips a
|
||||
checkpoint for Hollywood, the Joke Shop and the TV Studio with an open
|
||||
incident, one NPC row, flashlight/body-camera/door flags; the campaign smoke
|
||||
resumes a live checkpoint through the real `GameManager`.)
|
||||
- [x] Document save locations, schema versions, reset behavior and rollback/export instructions in
|
||||
`docs/getting-started.md` and the release notes. (`getting-started.md` now
|
||||
documents the four files, version-1 checkpoint, atomic write/fallback,
|
||||
clean install, reset and backup/rollback.)
|
||||
|
||||
### Release engineering and distribution
|
||||
|
||||
|
||||
Reference in new issue
Block a user