TODO: the wrapper is on 0.7.3, and #13 is the harder reading after all
Three updates from the 2026-08-29 session, none of them code. #37, new and already done: the StartOS wrapper is bumped to 0.7.3 (`74aea24` in station-master-startos). Recorded with what was verified — check, prettier, pack — and what was not: it is not installed on a box and has not been played, which is #35 and still open. #13 is settled, and as the reading that costs more. Jesse: "I want to be able to watch other players and bots make their moves. It's not fun to do my turn and have magic happen in the background and then have to figure out what others did." The entry had explicitly left open which of two things was meant — a log-legibility problem or a new view — and it is the second. It is Gitea#20 step 4 pointed at a player's screen rather than the common board, and `docs/plans/jitsi-common-board.md` already has the mechanism; what it does not have is the seated-player half, which that plan deliberately excludes. Jesse: "this relates to issue #20 and will require a lot more thinking." Marked to be designed with #20, not started alone. #7 is on hold: StartOS 0.4.0.2 is expected to improve action displays, and the diagnosis behind that item is that the action-result view collapses newlines — exactly the sort of thing a platform release fixes. Re-read the real output before designing around a limitation that may have been lifted. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EAgJSmeV8zrMh55Mj85ESb
This commit is contained in:
co-authored by
Claude Opus 5
parent
45580d8b61
commit
5865c3a6b7
@@ -34,9 +34,11 @@ Queued 2026-08-21, from playing the StartOS build:
|
|||||||
|
|
||||||
Queued 2026-08-22, from playing on StartOS:
|
Queued 2026-08-22, from playing on StartOS:
|
||||||
|
|
||||||
7. **Make "Games in Progress" readable** — nested groups rather than one run-on line per game, plus
|
7. **Make "Games in Progress" readable** — **ON HOLD, 2026-08-29 (Jesse).** StartOS 0.4.0.2 is
|
||||||
sorting by name, start time or last move. Reasoning in Multiplayer below. Small, and it is the
|
expected to improve how action results are displayed, which is most of what makes this unreadable
|
||||||
action most used for actual administration.
|
— so wait and see what the platform fixes before rewriting the action around a limitation that
|
||||||
|
may be gone. Re-open it against 0.4.0.2 and re-read the output before designing anything.
|
||||||
|
Reasoning in Multiplayer below.
|
||||||
8. **Give a player a way back into a game after losing their browser** — a fresh browser is still
|
8. **Give a player a way back into a game after losing their browser** — a fresh browser is still
|
||||||
locked out of a RUNNING game, even though the server knows who they are. Reasoning in Multiplayer
|
locked out of a RUNNING game, even though the server knows who they are. Reasoning in Multiplayer
|
||||||
below; needs Jesse's call on whether a token in a URL is acceptable. **The lobby half of this was
|
below; needs Jesse's call on whether a token in a URL is acceptable. **The lobby half of this was
|
||||||
@@ -106,8 +108,16 @@ Queued 2026-08-22, from the v0.4.9e gameplay-testing report filed as Gitea issue
|
|||||||
Suppressed on the first frame, on Undo stepping back across a rollover, and on the Day the game
|
Suppressed on the first frame, on Undo stepping back across a rollover, and on the Day the game
|
||||||
ends — the outcome panel is the thing to read then.
|
ends — the outcome panel is the thing to read then.
|
||||||
|
|
||||||
13. **Show me the other players' moves, bots included** — raised by Jesse 2026-08-22 from playing a
|
13. **Watch the other players and the bots actually make their moves** — raised by Jesse
|
||||||
multiplayer game. Reasoning in Multiplayer below.
|
2026-08-22, and **settled 2026-08-29 as the harder of the two readings**: "I want to be able to
|
||||||
|
watch other players and bots make their moves. It's not fun to do my turn and have magic happen
|
||||||
|
in the background and then have to figure out what others did."
|
||||||
|
|
||||||
|
So this is not the log-legibility fix. It is the ordered, per-action presentation of everyone
|
||||||
|
else's turns — **the same mechanism Gitea#20 step 4 specifies for the common board**, routed to a
|
||||||
|
player's own screen as well. Jesse: "this relates to issue #20 and will require a lot more
|
||||||
|
thinking." Do not start it as a standalone piece; it wants designing with #20. Reasoning in
|
||||||
|
Multiplayer below.
|
||||||
|
|
||||||
14. **INVESTIGATE: stamp the history with wall-clock time** — even if nothing displays it yet, so
|
14. **INVESTIGATE: stamp the history with wall-clock time** — even if nothing displays it yet, so
|
||||||
"how long did that turn take" can be answered afterwards. Reasoning in Replay / Save Games below.
|
"how long did that turn take" can be answered afterwards. Reasoning in Replay / Save Games below.
|
||||||
@@ -235,6 +245,23 @@ 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
|
||||||
|
`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
|
||||||
|
`current.ts` bumped in place. Verified: `npm run check` clean, prettier clean, `make x86` packs
|
||||||
|
as `v0.7.3:0`. **NOT installed on a box and not played** — see #35.
|
||||||
|
|
||||||
|
**Unlike 0.7.2, games in progress survive this one**, and both docs lead with it. No card data
|
||||||
|
changed and the engine changes are additive, so every intent in a 0.7.2 save is still legal;
|
||||||
|
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.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Replay / Save Games
|
## Replay / Save Games
|
||||||
@@ -713,11 +740,31 @@ Deferred while planning the server; decisions and reasoning are in `docs/archite
|
|||||||
is a line of text. The Division map is the one shared picture, and it shows trains on the
|
is a line of text. The Division map is the one shared picture, and it shows trains on the
|
||||||
Mainline, not switching inside a district.
|
Mainline, not switching inside a district.
|
||||||
|
|
||||||
**Not yet established: which of the two Jesse means.** "I need to see other players' moves" fits
|
**ANSWERED 2026-08-29, and it is the harder reading.** Jesse: "I want to be able to watch other
|
||||||
both "the history panel is not telling me" (a legibility problem — the panel scrolls, a bot can
|
players and bots make their moves. It's not fun to do my turn and have magic happen in the
|
||||||
take a dozen actions between your turns, and nothing marks where your last turn ended) and "I
|
background and then have to figure out what others did." So the complaint is not that the
|
||||||
want to watch their railroad" (a Frame problem). Ask before building: the first is an afternoon,
|
history panel is hard to read — it is that the moves are not WATCHABLE. Marking the log is a
|
||||||
the second is a new view.
|
consolation prize, not the fix.
|
||||||
|
|
||||||
|
**This is Gitea#20 step 4, pointed at a player's screen instead of the common board.** That
|
||||||
|
issue — the public common-board display published into Jitsi — already specifies the mechanism,
|
||||||
|
and `docs/plans/jitsi-common-board.md` §"Step 4 — Preserve individual human and bot actions"
|
||||||
|
has the design: a display-step collector inside `GameSession` that captures a projected frame
|
||||||
|
after EVERY successful `submit()`, human and bot alike, deltas it, and emits one step per
|
||||||
|
accepted intent (not one per `GameEvent` — an intent drains automatic work behind it, and the
|
||||||
|
event list is not a complete reducer).
|
||||||
|
|
||||||
|
**The reason it is not simply free once #20 lands** is that the plan deliberately stops short
|
||||||
|
of here: *"Keep player pushes unchanged: players still receive the final coalesced result after
|
||||||
|
all immediately due bots finish."* Extending the step stream to seated players raises questions
|
||||||
|
the common board never has to answer — a spectator can be a second behind, a player waiting to
|
||||||
|
act cannot; and a player animating three bot turns while their own move is due is a game that
|
||||||
|
feels slower, which is the opposite of the complaint. **Jesse, 2026-08-29: "this relates to
|
||||||
|
issue #20 and will require a lot more thinking."** Design it with #20; do not start it alone.
|
||||||
|
|
||||||
|
**The constraint below still binds either way**, and hardest here: the common board is seatless
|
||||||
|
and shows only public state, whereas a step stream sent to a SEATED player is a Frame, and
|
||||||
|
Frames are redacted per seat.
|
||||||
|
|
||||||
**The constraint on the second**, and it is the one that must not be got wrong: a district's
|
**The constraint on the second**, and it is the one that must not be got wrong: a district's
|
||||||
BOARD is public — cards on the table, cars standing on them, trains — and a player's HAND,
|
BOARD is public — cards on the table, cars standing on them, trains — and a player's HAND,
|
||||||
@@ -784,8 +831,14 @@ Deferred while planning the server; decisions and reasoning are in `docs/archite
|
|||||||
not yet decided whether a token in a URL is acceptable; the alternative is a bare token
|
not yet decided whether a token in a URL is acceptable; the alternative is a bare token
|
||||||
pasted into a field, which is uglier and stays out of history.
|
pasted into a field, which is uglier and stays out of history.
|
||||||
|
|
||||||
- [ ] **The StartOS "Games in Progress" action is one long unreadable run-on per game.** Raised by
|
- [ ] **The StartOS "Games in Progress" action is one long unreadable run-on per game.**
|
||||||
Jesse 2026-08-22 after using it against four games. Lives in the WRAPPER repo
|
**ON HOLD, 2026-08-29 (Jesse): StartOS 0.4.0.2 should make action displays better.** The
|
||||||
|
diagnosis below is that the action-result view collapses newlines — which is exactly the sort
|
||||||
|
of thing a platform release fixes. Re-read the real output on 0.4.0.2 before building anything;
|
||||||
|
the nested-group rewrite may turn out to be unnecessary, and designing around a limitation that
|
||||||
|
has just been lifted is worse than waiting.
|
||||||
|
|
||||||
|
Raised by Jesse 2026-08-22 after using it against four games. Lives in the WRAPPER repo
|
||||||
(`station-master-startos`, `startos/actions/gamesInProgress.ts`), whose `AGENTS.md` says work
|
(`station-master-startos`, `startos/actions/gamesInProgress.ts`), whose `AGENTS.md` says work
|
||||||
belongs in issues on that repo rather than a `TODO.md` — recorded here because this is where
|
belongs in issues on that repo rather than a `TODO.md` — recorded here because this is where
|
||||||
the project's list actually is; move it if that policy is meant to bind.
|
the project's list actually is; move it if that policy is meant to bind.
|
||||||
|
|||||||
Reference in New Issue
Block a user