f863d85c35
Quat reported the restore prompt didn't appear and noticed their save file ended up with move_count 0 — diagnosed as a destructive overwrite. The flow: 1. Player exits with moves; game_state.json has move_count > 0. 2. Player relaunches. Plugin build sees moves > 0, holds the saved game in `PendingRestoredGame`, seeds `GameStateResource` with a fresh deal so the board doesn't show the half-played game until the player picks Continue. 3. The restore prompt should appear. (Why it didn't on Quat's run is still TBD — needs a fresh test.) 4. Player exits. `save_game_state_on_exit` writes `GameStateResource` (the fresh-deal placeholder) to disk, overwriting the meaningful saved game with move_count 0. Both `save_game_state_on_exit` and `auto_save_game_state` now check `PendingRestoredGame`: if it still holds an unanswered saved game, they save THAT (or skip entirely in the auto-save path). The real saved game on disk is preserved across launches no matter how many times the player exits without answering the prompt. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>