You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Mythic Masters walk together: run the Region under workerd locally (hibernation, ping auto-response, sweep, token join) #3706
Left over from the walking-together climb (#3703; code in #3669 and #3676).
Everything about the Region Durable Object is tested on scripts/party.ts, a Bun stand-in for the edge: the real Worker and Region on Bun's sockets, with workerd's pair, attachments and ping auto-response faked. That has caught a lot, but a few things only workerd can show:
hibernation really waking with every seat's attachment (pose, last den);
setWebSocketAutoResponse answering "ping" without waking the object, and getWebSocketAutoResponseTimestamp feeding the dead-seat sweep (DEAD_MS);
refuseSocket's close codes (4003 full, 4401 sign in) reaching the page through a real upgrade;
a token join against a local eqosys: the mm.eqosys setting, then party, lobby, Start, ?room=.
The plan: run apps/mythic-masters under wrangler dev (or miniflare) with its generated wrangler.jsonc, point test/together.test.ts at it (as MM_PARTY points it at the stand-in today), and run the journey there once. Then keep whichever runner is steady enough to gate on. Nothing here deploys: the owner's live run is MANUAL RUN #3697.
Most of this runs now in PR #3716 (round 12 of #3707). scripts/edge.ts runs the Worker and Region under wrangler dev, and test/edge.test.ts checks them there. It needs no Chrome, so CI runs it (21.8 s on Linux). It covers:
hibernation: after 15 s of only pings, the Region is rebuilt with both seats; a newcomer sees a pose from an attachment, and a fight report is still believed against the den walked into before the room slept;
setWebSocketAutoResponse: pings are answered without waking the room; the sweep (getWebSocketAutoResponseTimestamp) closes a silent seat and the party hears "bye";
refuseSocket codes through a real upgrade: 4401 (no token, or a forged one) and 4003 (full);
a token join checked against a local eqosys JWKS from inside workerd.
MM_EDGE=workerd bun test test/together.test.ts runs the two-page Chrome journey against workerd as well, and it passes.
It also found that workerd refused to start the Worker at all, because worker.ts exported two constants. That's fixed in the PR.
Still open here:
The lobby path with a real local eqosys: the mm.eqosys setting, then party, lobby, Start, ?room=. It needs apps/eqosys running locally, for its party Durable Object.
Under wrangler dev, a socket the room closes after it opened (a replaced tab, a swept one) gets the close frame, but the connection isn't torn down. Chrome reports the code after its 2 s timeout, and Bun's client stays in CLOSING. Worth checking once on the live edge during MANUAL RUN: Mythic Masters walk together, deploy and play the open world with a friend #3697.
PR #3806 runs the lobby end to end: eqosys's handler, Party and Hub in Bun, the game under workerd with the live door, two signed-in friends in Chrome, then Walk together, the link, Ready, Start, and one room. It found and fixes a bug: on a ?party= page the lobby and the Book's readers each joined the party, and eqosys seats a player once, so the lobby showed no members and no Start. Still open here: the socket wrangler dev closes without tearing it down, for the live check in #3697. Found on the way: #3805.
Issue-runner check (2026-11-06): covered. #3716 runs the Worker and Region under wrangler dev in CI (test/edge.test.ts: hibernation, ping auto-response and the sweep, refuse codes, a token join), and #3806 runs the lobby end to end against a local eqosys. The one item left is a socket the room closes but wrangler dev doesn't tear down; it's a live-edge check, which already belongs to MANUAL RUN #3697. Phase done here; nothing else is open.
Done, from the 2026-11-09 board scan (notes/audit/2026-11-09-*.json): #3716 runs the Region under wrangler dev in CI (test/edge.test.ts) and #3806 runs the lobby end to end (both merged); the live-edge socket teardown belongs to MANUAL RUN #3697
Activity
QuinnsCode commentedon Nov 5, 2026
Most of this runs now in PR #3716 (round 12 of #3707).
scripts/edge.tsruns the Worker and Region underwrangler dev, andtest/edge.test.tschecks them there. It needs no Chrome, so CI runs it (21.8 s on Linux). It covers:setWebSocketAutoResponse: pings are answered without waking the room; the sweep (getWebSocketAutoResponseTimestamp) closes a silent seat and the party hears "bye";refuseSocketcodes through a real upgrade: 4401 (no token, or a forged one) and 4003 (full);MM_EDGE=workerd bun test test/together.test.tsruns the two-page Chrome journey against workerd as well, and it passes.It also found that workerd refused to start the Worker at all, because
worker.tsexported two constants. That's fixed in the PR.Still open here:
mm.eqosyssetting, then party, lobby, Start,?room=. It needs apps/eqosys running locally, for its party Durable Object.wrangler dev, a socket the room closes after it opened (a replaced tab, a swept one) gets the close frame, but the connection isn't torn down. Chrome reports the code after its 2 s timeout, and Bun's client stays in CLOSING. Worth checking once on the live edge during MANUAL RUN: Mythic Masters walk together, deploy and play the open world with a friend #3697.Mythic Masters walking together, round 12: the room runs under workerd (
QuinnsCode commentedon Nov 6, 2026
PR #3806 runs the lobby end to end: eqosys's handler, Party and Hub in Bun, the game under workerd with the live door, two signed-in friends in Chrome, then Walk together, the link, Ready, Start, and one room. It found and fixes a bug: on a
?party=page the lobby and the Book's readers each joined the party, and eqosys seats a player once, so the lobby showed no members and no Start. Still open here: the socketwrangler devcloses without tearing it down, for the live check in #3697. Found on the way: #3805.Mythic Masters: the party lobby runs end to end, and the lobby and th…
QuinnsCode commentedon Nov 6, 2026
Issue-runner check (2026-11-06): covered. #3716 runs the Worker and Region under
wrangler devin CI (test/edge.test.ts: hibernation, ping auto-response and the sweep, refuse codes, a token join), and #3806 runs the lobby end to end against a local eqosys. The one item left is a socket the room closes butwrangler devdoesn't tear down; it's a live-edge check, which already belongs to MANUAL RUN #3697. Phase done here; nothing else is open.QuinnsCode commentedon Nov 9, 2026
Done, from the 2026-11-09 board scan (notes/audit/2026-11-09-*.json): #3716 runs the Region under wrangler dev in CI (test/edge.test.ts) and #3806 runs the lobby end to end (both merged); the live-edge socket teardown belongs to MANUAL RUN #3697