0.7.5:0 — bundle Station Master v0.7.5

Submodule pinned to v0.7.5 (3e96149). current.ts bumped in place at
0.7.5:0 — no new version file, no migration: the change is a client-side
flow change (solitaire asks for its options before dealing, the same
question the multiplayer lobby already asks) that touches no rule the
server enforces and no save format, so every game in progress carries
over without exception.

Verified: npm run check clean, prettier clean, make x86 packs as
v0.7.5:0, installed on phoenix.local — logs show the empty migration
running and both games in progress (WHISTLE-4086, COAL-7370) resuming
with their same intent counts, and the served play.html confirmed to
contain the new #solitairesetup screen.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AdG46Ja2PEDBkpqiDazMoX
This commit is contained in:
Jesse
2026-08-29 19:27:35 -04:00
co-authored by Claude Sonnet 5
parent 085b88bb38
commit 3fc56de203
4 changed files with 69 additions and 116 deletions
+15 -9
View File
@@ -13,8 +13,13 @@ Station Master is a railroad operations board game with an authoritative multipl
solitaire needs no server and is not what this package is for. This package runs that server —
the browser client, the lobby, and the intent/SSE API — as a single StartOS service.
**Bundled version: 0.7.4.** Three rules corrections off the tracker (Gitea#13, #5, #19), all of them
places where the code and the cards disagreed.
**Bundled version: 0.7.5.** A client-side flow change: a genuinely fresh visit to the solitaire page
now opens a setup screen and asks for the game's options before dealing, the same question the
multiplayer lobby has asked before a game starts since 0.6.0. No rule the server enforces changed,
so this update carries every game in progress, on the server and in a browser, without exception.
**0.7.4 bundled three rules corrections** off the tracker (Gitea#13, #5, #19), all of them places
where the code and the cards disagreed.
**The Yard Office is offered rather than imposed (Gitea#5).** It was implemented in a form missing
all three of its conditions: a qualifying train was teleported onto the card, so nobody was asked, no
@@ -34,13 +39,14 @@ and was played 4 times in 4,212 offers across 600 games. It is now a directional
Limits, spent on the train it stops, playable either in phase or at the moment the engine sees a
certain collision.
**GAMES IN PROGRESS MAY NOT SURVIVE THIS UPDATE.** Unlike 0.7.3, which changed no rules, each of the
three above can stop an older history replaying: the Red Flags intent changed shape, a make-up that
was legal may now be refused, and a Yard Office arrival asks a question no older history has an
answer for. It fails safe — `src/server/index.ts` refuses to resume a save the rules reject, logs
which move it stopped at, and **leaves the file untouched**, so an operator can put 0.7.3 back on to
finish a game that matters. A game that never meets one of the three carries on normally, which is
why this is "may not" rather than 0.7.2's "will not".
**GAMES IN PROGRESS MAY NOT SURVIVE AN UPDATE FROM BEFORE 0.7.4.** Unlike 0.7.3, which changed no
rules, each of the three above can stop an older history replaying: the Red Flags intent changed
shape, a make-up that was legal may now be refused, and a Yard Office arrival asks a question no
older history has an answer for. It fails safe — `src/server/index.ts` refuses to resume a save the
rules reject, logs which move it stopped at, and **leaves the file untouched**, so an operator can
put 0.7.3 back on to finish a game that matters. A game that never meets one of the three carries on
normally, which is why this is "may not" rather than 0.7.2's "will not". **0.7.5 carries every game
forward without exception** — see above.
**Diagnosing the interruptions.** The Mainline Phase can now stop and ask three different questions,
of three different players: §8.1's clearance goes to the Superintendent, the Yard Office offer and