v0.8.0.16 — the guide a tester can reach, and a flag that named the card instead of the gate
v0.8.0.15 wrote a Quickstart for a tester who has never played and then left it in docs/, where a tester does not look — reachable only by somebody who already has the repository. Nobody handed the box had it. build-web.ts now copies it to dist/quickstart.md and the splash page offers it under the three doors, as a line rather than a fourth door: reading the guide is not a way to play, and giving it equal weight in that grid would say it is. COPIED, NEVER RE-WRITTEN. The Markdown document stays the one copy. A hand-written HTML twin drifts from it on the first edit, which is the failure #15a was raised about and precisely what the v0.8.0.15 pass spent itself undoing. It is served as PLAIN TEXT, which is honest rather than good — tables render as pipes and the links do not click. Rendering it into a styled page wants a small Markdown converter and is filed as TODO #109; build-web.ts's comment names that number rather than gesturing at "the next step", so the file and the worklist cannot drift the way the references just did. Two things had to be true and tsc checks neither, so both are tests. The href on the splash page and the filename the build writes are two strings with nothing connecting them: rename the document and the build quietly publishes nothing while the page keeps offering a link that 404s. And a .md file must not arrive as a download — the server's MIME fallback is application/octet-stream, which a browser saves instead of displaying, so the link would have handed a tester a file to save rather than a page to read. '.md' is in http.ts's table now, and the test reads that table out of the source rather than asserting on a copy of it, which would pass while the real one was wrong. VERIFIED AGAINST A RUNNING SERVER, not only compiled: 200, text/plain; charset=utf-8, the guide's own first lines, and the splash link resolving. THE sortsCars COMMENT. Asked after v0.8.0.15 whether everything now agreed, and the audit turned up one place that did not — the field's own doc comment named the card's printed text as though it were the flag's meaning. Nothing reads it to permit a sort; its two readers, resolveExtraStart in apply.ts and the enumeration in legal.ts, both ask whether this is the one Mainline card with a Yard Limit and therefore the one an Extra may be made up and started on. Comment only, and worth the bump because of where it is: it is what a developer reads before using the flag, and it is the likeliest source of the sentence v0.8.0.15 had to correct off the board. The name is kept for its link to the card face and the comment now says outright that the name is not the meaning. The five references and docs/design.md read v0.8.0.16. They describe this build because the audit re-checked them against it, not because the number was swept forward — a stamp bumped without a reading is worth less than none. 1001 fast tests and 35 sim tests pass. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MUizFYCMHRWhbWwXhp7WPR
This commit is contained in:
co-authored by
Claude Opus 5
parent
f308a2d94d
commit
dc31555625
@@ -19,6 +19,91 @@ page as `v0.1.0 · <sha> · <date>`, so what is deployed can always be identifie
|
||||
|
||||
---
|
||||
|
||||
## 0.8.0.16 — 2026-09-20
|
||||
|
||||
The Quickstart put where a tester can actually reach it, the last place that still told the old
|
||||
story about the Interchange, and the release that carries v0.8.0.15's corrected card text into a
|
||||
package.
|
||||
|
||||
### The Quickstart is published beside the game
|
||||
|
||||
v0.8.0.15 wrote a Quickstart for a tester who has never played, and then left it in `docs/`, where
|
||||
a tester does not look — reachable only by someone who already has the repository. Nobody being
|
||||
handed the box has it.
|
||||
|
||||
`build-web.ts` now copies `docs/StationMaster-Quickstart.md` into `dist/quickstart.md`, and the
|
||||
splash page offers it under the three doors: *New to Station Master? Read the Quickstart guide.*
|
||||
**Not a fourth door** — reading the guide is not a way to play, and giving it equal weight in that
|
||||
grid would say it is.
|
||||
|
||||
**Copied, never re-written.** The Markdown document stays the one copy. A hand-written HTML twin
|
||||
would drift from it on the first edit, which is exactly the failure #15a was raised about and
|
||||
exactly what the v0.8.0.15 pass spent its time undoing: four references a month and two minor
|
||||
versions out of date.
|
||||
|
||||
**Served as plain text, which is honest rather than good.** Tables render as rows of pipes and the
|
||||
links do not click. Rendering it into a styled page wants a small Markdown converter and is filed
|
||||
as **TODO #109**; this is the fifteen-minute version that gets the guide in front of testers for
|
||||
this round instead of leaving them without one.
|
||||
|
||||
Two things had to be true and neither is checked by `tsc`, so both are tests:
|
||||
|
||||
- **The link has to find the file.** The href on the splash page and the filename the build writes
|
||||
are two strings with nothing connecting them — rename the document and the build quietly
|
||||
publishes nothing while the page keeps offering a link that 404s. The test asserts the guide is
|
||||
in `dist`, is the guide, and is the file the splash page names. The build also warns loudly
|
||||
rather than silently skipping a missing document.
|
||||
- **A `.md` file must not arrive as a download.** The server's MIME fallback is
|
||||
`application/octet-stream`, which a browser saves instead of displaying, so the link would hand a
|
||||
tester a file rather than a page. `'.md': 'text/plain; charset=utf-8'` was added to the table in
|
||||
`http.ts`, and the test reads that table out of the source rather than asserting on a copy of it,
|
||||
which would pass while the real one was wrong.
|
||||
|
||||
### `sortsCars` says what it gates, not what the card prints
|
||||
|
||||
Asked directly after v0.8.0.15 — does everything now agree? — and the audit turned up one place that
|
||||
did not. The field's own doc comment read:
|
||||
|
||||
```ts
|
||||
/** Interchange: "Sort cars in new order". */
|
||||
sortsCars: boolean;
|
||||
```
|
||||
|
||||
which names the printed text as though it were the flag's meaning. Nothing reads it to permit a
|
||||
sort. Its two readers — `resolveExtraStart` in `apply.ts` and the enumeration in `legal.ts` — both
|
||||
ask the same question, which is whether this is the one Mainline card with a Yard Limit and
|
||||
therefore the one an Extra may be made up and started on.
|
||||
|
||||
**Comment only, and worth the bump because of where it is.** This is what a developer reads before
|
||||
using the flag, and it is the most likely source of the sentence v0.8.0.15 had to correct — the one
|
||||
telling players, on the board, that cars could be sorted at an Interchange. The name is kept for its
|
||||
link to the card face, and the comment now says outright that the name is not the meaning.
|
||||
|
||||
Everything else already agreed, and was checked rather than assumed: `mainlineDescription`, the
|
||||
generated `rules/as-built.md`, the Mainline deck reference and the Rules FAQ all say the printed
|
||||
sorting is unimplemented and that a consist is re-ordered at a Small Yard. `rules/implications.md`
|
||||
is the deliberate exception and was already correct — it transcribes what the card face prints and
|
||||
then records that the concept is "still unimplemented".
|
||||
|
||||
### The reference stamps, and what was filed rather than done
|
||||
|
||||
The five documents v0.8.0.15 stamped — the Quickstart, the Rules, Components, the Home deck and the
|
||||
Mainline deck — plus `docs/design.md` now read **v0.8.0.16**, and the Rules book's implementation
|
||||
note about `card.discard` says the same. They describe this build because the audit above re-checked
|
||||
them against it, not because the number was swept forward: the point of the stamp is that it was
|
||||
earned, and a stamp bumped without a reading is worth less than none.
|
||||
|
||||
**TODO #109** holds the part deliberately not done — rendering the guide into a styled page instead
|
||||
of serving it as plain text. `build-web.ts`'s comment names that number rather than gesturing at
|
||||
"the next step", so the file and the worklist cannot drift apart the way the references just did.
|
||||
|
||||
### Why this is a release at all
|
||||
|
||||
One player-visible change, the link to the guide, and one that only a developer reads. The
|
||||
Interchange correction a player actually sees on the board is v0.8.0.15's; this is the version the
|
||||
wrapper bundles, so that correction reaches the box rather than only the repository — and a tag
|
||||
with an uncommitted comment sitting on top of it is not a thing to package.
|
||||
|
||||
## 0.8.0.15 — 2026-09-20
|
||||
|
||||
The reference documentation brought up to the game as it actually runs, ahead of the next round of
|
||||
|
||||
Reference in New Issue
Block a user