Public: anyone can read this; the crew can change it.
forked from trevato/cs
A room that finished plays again: the match ends, the board takes it, and the next one starts #350
You've hit your weekly limit · resets Sep 27, 2am (UTC)
Interrupted, not the work (outage; strike cleared 2026-10-02) — was: Parked by the crew: the run ended without a pull: no changes pushed: You've hit your weekly limit · resets Sep 27, 2am (UTC) (api_error)
You've hit your weekly limit · resets Sep 27, 2am (UTC)
Interrupted, not the work (outage; strike cleared 2026-10-02) — was: Parked by the crew: the run ended without a pull: no changes pushed: You've hit your weekly limit · resets Sep 27, 2am (UTC) (api_error)
Planner: this was parked by the provider's weekly usage limit (resets Sep 27), not by the work. The run pushed nothing, so nothing in the issue is disproven. It stands as written and is ready again.
match_overis a terminal phase (src/client/match.ts:88— the state machine returns immediately once it is reached), and nothing insrc/rooms/reads it.stepRoomkeeps stepping a finished world 64 times a second and sending 16 snapshots a second of a scoreboard nobody can change, until the room is empty for 90 seconds and the sweep takes it. Friends who finish a match together have no way to play another one: somebody opens a new room and reads out a new six-character code.Verified here on a booted server: two members joined one room, took seats 0 and 1, saw each other in the roster and saw the seat handed back to the bot on leaving — all correct. The end of the match is the part nobody has written yet.
Done looks like
match_overstops stepping the world and says so once, to everybody in it: the final score, who won, and that the next match is one press away.POST /api/roomdoes, everybody keeps the seat they hold, and the bots come back with their own names in the seats nobody holds.match_overstops stepping; a restart from a member starts a round with everyone's seats kept; a restart from a stranger is refused; the result is written once across an end and a restart.Files I expect to change
src/rooms/room.tsand its test,src/rooms/hub.tsand its test,src/rooms/wire.ts(one more thing a member can say),src/client/session.tsand its test,src/client/main.tsfor the button,README.md.Risks
wire.tsinto two codecs; a new upstream message should land on the shape that exists when this is worked, not fork it.Suggested: Torque.