Bundle Station Master v0.6.0: updates stop destroying games in progress
Pin moves to v0.6.0, package version to 0.6.0:0. README and instructions.md both promised the opposite of what now happens and had to be rewritten: an update keeps games in progress unless the rules actually changed, and a game that genuinely cannot replay is named in the log rather than described as a version mismatch. Verified on phoenix.local by doing the thing the release is about. A game (MAIL-4571) was created on the installed 0.5.6:0, then this build was installed over it. All four saved games on the volume came back: Resuming 4 saved game(s)… Resumed HOPPER-4607 — 37 intents replayed. (written under 0.5.2) Resumed TRESTLE-5109 — 5 intents replayed. (written under 0.5.3) Resumed TENDER-8092 — 38 intents replayed. (written under 0.5.5) Resumed MAIL-4571 — 0 intents replayed. (written under 0.5.6) The first three had been refused on every boot since the release that stranded them. They were never damaged, only unreachable, and replaying them is all it took to get them back — which is the clearest evidence that the version comparison was answering the wrong question. All four now show in Games in Progress with the correct Day, Stage and waiting-on player.
This commit is contained in:
@@ -96,12 +96,15 @@ and a critical task is raised pointing at **Get Join Secret** — the service st
|
||||
the moment the daemon is healthy, but a player cannot create or join a game until the join secret
|
||||
has been retrieved and shared with them.
|
||||
|
||||
**Updating the package ends every game in progress.** A save records the engine version that wrote
|
||||
it and the server refuses to resume one recorded under different rules, logging the refusal and
|
||||
leaving the file untouched. This is upstream's deliberate design, not something this package works
|
||||
around: a move that was legal under the old rules may not be under the new ones. Let games finish
|
||||
before updating, or accept losing them — rolling the package version back makes them loadable
|
||||
again, since nothing is deleted.
|
||||
**Updating the package keeps games in progress, unless the rules actually changed.** On boot the
|
||||
server replays each saved game's moves through the current engine and resumes it if they all still
|
||||
apply — the version that wrote the file is recorded and reported but decides nothing. When a move
|
||||
*is* rejected, that game is refused and the log names it: `move 3 of 8 (localOps.choose) is
|
||||
rejected by the current rules with OPTION_ALREADY_CHOSEN`. A refused game is never modified or
|
||||
deleted, so reinstalling the previous version makes it loadable again and it can be played out.
|
||||
|
||||
Earlier versions of this package compared version strings instead, which destroyed every game in
|
||||
progress on every update, including updates that changed only how the board is drawn.
|
||||
|
||||
## Actions
|
||||
|
||||
|
||||
Reference in New Issue
Block a user