0.8.0.13:0 — bundle Station Master v0.8.0.13
Nine fixes from the Day 1-2 playtest of 0.8.0.12, almost all of them about what the table can see. The one that mattered moved a car: the Division Yard chips stayed clickable while a player's board was catching up on other people's turns, so a click submitted a real intent against a position several moves stale. They obey the catch-up queue now, and the yard counts beside them are read from the board on screen rather than the live game. The district picker gained a button for your own seat and is ordered west to east as the map draws it; the Fedora passing is announced and logged; a collision names whose district it was and who loses the 5 Revenue; and a Depot that cannot stock another passenger says which car it is short of instead of the action silently vanishing. Packaging is the submodule pin, the version and the words. No action, route, file model or interface changed — the whole release is inside the bundled game. GAMES IN PROGRESS RESUME NORMALLY, measured rather than assumed: `git diff v0.8.0.12..v0.8.0.13 -- src/engine/` is two ADDED lines — a superintendentChanged variant on the GameEvent union, and the events.push that emits it beside the actorChanged already there. Nothing was removed or edited: check(), legal.ts and every predicate are untouched, so no once-legal move became illegal, and events are derived by replaying a save rather than stored in one, so widening the union cannot invalidate anything on disk. README, instructions.md and the release notes in all five locales say so. Two files come along that this release did not otherwise touch: `prettier --write startos` reflowed a call in restoreSeat.ts and a return type in serverApi.ts, formatting drift left by the 0.8.0.12 commit. The 0.8.0.12 release it follows was deployed and verified at a table: a seat was recovered end to end from a one-time claim code minted by the StartOS action, which is what the previous commit said had not yet been exercised. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DmdqqCNoiqE7GBo6wthBnR
This commit is contained in:
@@ -13,18 +13,24 @@ 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.12.** A player who has lost their browser storage can be put back in their
|
||||
seat, through the new **Restore a Seat** action — see Actions below. The session token is the only
|
||||
identity the game has and it lives in one browser's `localStorage`, so a cleared profile, a private
|
||||
window or a different browser locks a player out of a game that is still running with their session
|
||||
still on disk. v0.8.0.11 before it was sixteen playtest fixes, including the New Train panel saying what
|
||||
a consist still needs; v0.8.0.10 corrected when the Superintendent is asked to rule.
|
||||
**Bundled version: 0.8.0.13.** Nine fixes from a live playtest of 0.8.0.12, almost all of them about
|
||||
what a player can see. The one that mattered moved a car: the Division Yard chips stayed clickable
|
||||
while a player's board was catching up on other people's turns, so a click submitted a real intent
|
||||
against a position several moves stale — they now obey the catch-up queue like every other control,
|
||||
and the yard counts beside them are read from the board on screen rather than the live game. The
|
||||
district picker gained a button for your own seat and is ordered west to east as the map draws it;
|
||||
the Fedora passing is announced and logged; a collision names whose district it was and who loses the
|
||||
5 Revenue; and a Depot that cannot take another passenger says which car it is short of instead of
|
||||
the action vanishing from the menu. v0.8.0.12 before it added the **Restore a Seat** action — see
|
||||
Actions below — for a player whose browser has lost the token that is their only identity.
|
||||
|
||||
**Games in progress resume normally on this one**, and it was checked the narrow way rather than
|
||||
assumed: `git diff v0.8.0.11..v0.8.0.12 -- src/engine/` is **empty**. The release is the server's HTTP
|
||||
surface, the browser client and the docs — no predicate was edited, 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.)
|
||||
assumed: `git diff v0.8.0.12..v0.8.0.13 -- src/engine/` is **two added lines** — a
|
||||
`superintendentChanged` variant on the `GameEvent` union, and the `events.push` that emits it. Both
|
||||
are additive. `check()`, `legal.ts` and every predicate are untouched, so no once-legal move became
|
||||
illegal, and events are derived by replaying a save rather than stored in one, so widening the union
|
||||
cannot invalidate anything on disk. (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.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user