0.8.0.11:0 — bundle Station Master v0.8.0.11

Sixteen fixes from the second multiplayer playtest. Making up a train now says
what the consist STILL needs rather than only what its card calls for, says that
a player adds one car before the round passes on, marks the train being loaded
on the Division map, and gives an addable car in the yard the same amber every
other button wears. A train's arrival names whose Office it reached instead of
telling every seat they can work it. While the board catches up a player can
pause the playback, look at another player's Office Area, and sees one
consistent Day/Stage/phase rather than a turn chart running ahead of the board.
Saves download named after the game, with the join code, Day and Stage.

GAMES IN PROGRESS RESUME NORMALLY, and that was measured rather than assumed:
`git diff v0.8.0.10..v0.8.0.11 -- src/engine/` is three files and nineteen
insertions — an `owner` field on the `trainArrived` event, the one line that
fills it, and a reworded card description. `check()` and `legal.ts` are
untouched and no predicate changed its answer, so nothing once legal became
illegal, and events are derived rather than persisted. That is the opposite of
0.8.0.10, which deliberately stranded games holding a ruling the rules no longer
ask for — README, instructions.md and the release notes in all five locales say
which of the two this is.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017nnuCv8UodHucFfx3LWEoX
This commit is contained in:
Jesse
2026-09-16 16:29:07 -04:00
co-authored by Claude Opus 5
parent c6e17fc473
commit da0e5d49d6
4 changed files with 161 additions and 104 deletions
+12 -11
View File
@@ -13,18 +13,19 @@ 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.8.0.10.** Fixes from the first multiplayer playtests: the Superintendent is no
longer asked to rule on a train BEHIND the one departing (which cost a real game a collision), the screen
says whose move it is showing while the board catches up, the history no longer races ahead of it, a
Realignment says which card it converted and flashes it on the map, and a seated player can download their
own game as a save file. v0.8.0.9 before it rebuilt the bot and made the engine about three times faster.
**Bundled version: 0.8.0.11.** Sixteen fixes from the second multiplayer playtest. Making up a train
now says what the consist STILL needs, that a player adds one car before the round passes on, marks the
train being loaded on the Division map, and gives an addable car in the yard the page's action colour. A
train's arrival names whose Office it reached. A player watching the board catch up can pause it, look at
another player's Office Area, and sees one consistent Day/Stage/phase rather than a chart running ahead of
the board. Saves download named after the game. v0.8.0.10 before it corrected when the Superintendent is
asked to rule; v0.8.0.9 rebuilt the bot and made the engine about three times faster.
**GAMES IN PROGRESS DO NOT ALL SURVIVE THIS ONE**, and that is the exception to the rule below rather
than a break in it. A save is the seed and the moves replayed through the CURRENT rules, so correcting
WHEN a ruling is asked for strands a game that holds one the rules no longer ask: the server refuses that
game, logs the move it stopped at, and leaves its file untouched. Measured: 28 of 40 recorded four-seat
games stop, usually 5-40% of the way in. Jesse's call (2026-09-15) was to ship it as is; a game worth
finishing can be finished by putting v0.8.0.9 back.
**Games in progress resume normally on this one**, and it was checked the narrow way rather than assumed:
`git diff v0.8.0.10..v0.8.0.11 -- src/engine/` is three files, nineteen insertions — an `owner` field on
the `trainArrived` event, the one line that fills it, and a reworded card description. No predicate
changed its answer, so no once-legal move became illegal. (0.8.0.10 was the exception: it corrected a
ruling and deliberately stranded games holding one. That warning does not apply here.)
The paragraphs below were written for the 0.7.9.8 bump and still describe how a bump is checked.