TODO: v0.7.4 is shipped and installed, and four features are unplayed

Records the close of the 2026-08-29 session.

#38, done: Gitea#13, #5 and #19 in v0.7.4, wrapper 085b88b as 0.7.4:0, installed on
phoenix.local. Each issue carries a comment naming its commit and what was ruled,
per the standing instruction in #30 — auto-closing alone leaves no record of which
release answered a report.

#37 extended: the wrapper went 0.7.3 then 0.7.4 the same day, and the sequence is
written down rather than rediscovered next time. Both tags signed and pushed.

Three things the session leaves behind, and the first is the one that matters:

  #39 — NOTHING FROM v0.7.4 HAS BEEN PLAYED BY A HUMAN, and nor has extended play
  from v0.7.3 (#35). Four features shipped without a table between them. Two of them
  are interruptions that stop the Mainline Phase and put a question in front of
  somebody mid-thought, which is exactly what only play reveals.

  #40 — a save from before v0.7.4 may not replay, and nobody has been told. Same
  shape as #32 for the playtest line. It fails safe and WHISTLE-4086 did survive on
  phoenix, so "may not" rather than "will not".

  #41 — the bot still cannot use the half of Red Flags a human would: planting a
  flag on purpose to buy a Stage for switching. It takes the danger prompt
  unconditionally and still plays zero in 200 games.

Also de-duplicates #35, where an earlier edit left the superseded paragraph appended
to the rewritten one.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EAgJSmeV8zrMh55Mj85ESb
This commit is contained in:
Jesse.Markowitz
2026-08-29 08:43:43 -04:00
co-authored by Claude Opus 5
parent 19a6a47ab6
commit a02d1fcffe
+39 -11
View File
@@ -243,12 +243,8 @@ Queued 2026-08-29, from building Gitea#11 and #16 (both shipped in v0.7.3, main
**What is still untested is the part the item is named for: humans, at a table.** Nobody has sat **What is still untested is the part the item is named for: humans, at a table.** Nobody has sat
down and played a game off the end of its timetable, and the multiplayer vote has never been down and played a game off the end of its timetable, and the multiplayer vote has never been
driven through two browsers — what a second player sees while waiting on a first, and whether driven through two browsers — what a second player sees while waiting on a first, and whether
"waiting on Carol" is legible once Carol has closed her laptop, are still unanswered. v0.7.3 is tested — engine, server, "waiting on Carol" is legible once Carol has closed her laptop, are still unanswered. Worth being
replay, an all-bot regression — and compiled and exercised headlessly, but nobody has sat down, the first thing the next play session does.
run a game off the end of its timetable and voted. The multiplayer vote in particular has only
been driven through `session.intent`, never through two browsers: what a second player sees while
waiting on a first, and whether "waiting on Carol" is legible when Carol has closed her laptop,
are both unanswered. Worth being the first thing the next play session does.
36. **There is no per-Stage "this train did not move" signal, so "longest an engine sat on a siding" 36. **There is no per-Stage "this train did not move" signal, so "longest an engine sat on a siding"
cannot be answered.** Gitea#16 asks for it and the comment on that issue said `trainStoodStill` cannot be answered.** Gitea#16 asks for it and the comment on that issue said `trainStoodStill`
@@ -263,7 +259,7 @@ Queued 2026-08-29, from building Gitea#11 and #16 (both shipped in v0.7.3, main
folds a batch of events AFTER `advance` has already mutated past the moment they describe. Worth folds a batch of events AFTER `advance` has already mutated past the moment they describe. Worth
settling with the badge pass (#33) rather than on its own, since that is the only consumer. settling with the badge pass (#33) rather than on its own, since that is the only consumer.
37. ~~**Bump the StartOS wrapper to 0.7.3.**~~ — done 2026-08-29 (`74aea24` in 37. ~~**Bump the StartOS wrapper to 0.7.3, then 0.7.4.**~~ — 0.7.3 done 2026-08-29 (`74aea24` in
`station-master-startos`). Submodule pinned to `v0.7.3` (`45580d8`), `current.ts` at `0.7.3:0`, `station-master-startos`). Submodule pinned to `v0.7.3` (`45580d8`), `current.ts` at `0.7.3:0`,
release notes in all five locales, `README.md` and `instructions.md` updated. No new version file release notes in all five locales, `README.md` and `instructions.md` updated. No new version file
and no migration — the outgoing `0.7.2:0`'s `up` was empty, `versions.md`'s common case, so and no migration — the outgoing `0.7.2:0`'s `up` was empty, `versions.md`'s common case, so
@@ -275,10 +271,42 @@ Queued 2026-08-29, from building Gitea#11 and #16 (both shipped in v0.7.3, main
proven rather than assumed by `test/harness.test.ts`, which replays the three files in proven rather than assumed by `test/harness.test.ts`, which replays the three files in
`public/replays` (all recorded under an older ruleset) and asserts every intent still applies. `public/replays` (all recorded under an older ruleset) and asserts every intent still applies.
**The v0.7.3 tag is made locally and signed, but not pushed** — agents cannot push to **Bumped again to `0.7.4:0` the same day** (`085b88b`), pinned to `v0.7.4`, and installed on
`origin`. Until Jesse pushes it, the tag exists only here and in the wrapper's submodule clone; `phoenix.local` — verified there, not merely packed: the resume log shows `WHISTLE-4086` coming
the recorded pin is the commit SHA, which is already on `origin`, so the wrapper is not blocked back with its 7 intents and all five new engine code paths present in the served build. Both tags
on it. are signed and pushed.
**Keep doing the whole sequence.** Tag the app, fetch the tag into the wrapper's submodule,
bump `current.ts` in place (the outgoing `up` has been empty every time, `versions.md`'s common
case), rewrite the notes in all five locales, update `README.md` and `instructions.md`, then
`npm run check` / prettier / `make x86` / `make install`. `UPDATING.md` in the wrapper is the
authority and has not needed changing.
38. ~~**Gitea#13, #5 and #19 — three rules corrections.**~~ — done 2026-08-29 in v0.7.4
(`5e34c73`, `2280276`, `19a6a47`), wrapper `085b88b` as `0.7.4:0`, installed on `phoenix.local`.
Each issue carries a comment naming its commit and what was ruled, per #30. Reasoning is in
`CHANGELOG.md`; what matters here is what they left behind, below.
39. **NONE OF v0.7.4 HAS BEEN PLAYED BY A HUMAN.** The Yard Office offer, the Red Flag hold and its
out-of-phase prompt, and the loaded-Extra make-up rules are all tested end to end, packed, and
running on `phoenix.local` — and no person has met any of them at a board. Two are interruptions
that stop the Mainline Phase and put a question in front of somebody mid-thought, which is
exactly the kind of thing only play reveals. Together with #35 this is now the biggest gap in the
project: four features shipped without a table.
40. **A save from before v0.7.4 may not replay, and nobody has been told.** The same shape as #32 but
for the main line: 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 — the server declines the save, names the move and leaves the file untouched — and
`WHISTLE-4086` did survive on `phoenix.local`, so it is "may not" rather than "will not". Worth a
line wherever the build is announced, and worth knowing when a bug report arrives with a save
that will not load.
41. **The bot cannot use the half of Red Flags a human would.** It takes the danger prompt
unconditionally and still plays zero flags in 200 games, because the prompt needs a colliding
arrival to coincide with holding the card. What it never does is plant a flag ON PURPOSE to buy a
Stage for switching, which needs it to know it wants time — a notion it does not have. Reasoning
and the measurement are under Bot Performance.
--- ---