diff --git a/TODO.md b/TODO.md index c45f470..a30f539 100644 --- a/TODO.md +++ b/TODO.md @@ -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 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 - "waiting on Carol" is legible once Carol has closed her laptop, are still unanswered. v0.7.3 is tested — engine, server, - replay, an all-bot regression — and compiled and exercised headlessly, but nobody has sat down, - 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. + "waiting on Carol" is legible once Carol has closed her laptop, are still 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" 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 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`, 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 @@ -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 `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 - `origin`. Until Jesse pushes it, the tag exists only here and in the wrapper's submodule clone; - the recorded pin is the commit SHA, which is already on `origin`, so the wrapper is not blocked - on it. + **Bumped again to `0.7.4:0` the same day** (`085b88b`), pinned to `v0.7.4`, and installed on + `phoenix.local` — verified there, not merely packed: the resume log shows `WHISTLE-4086` coming + back with its 7 intents and all five new engine code paths present in the served build. Both tags + 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. ---