Match the test rendezvous to Hosted's one-time room: late joins close 4010, pre-join frames count - #878
Merged
Conversation
The in-memory rendezvous refused a join past expiresAt with 4012 and checked expiry before "already joined", and dropped a frame sent before any phone joined without counting it. Hosted's OneTimeRoom and docs/specs/one-time.md answer 4012, then 4011, then 4010, and count every text frame. Match them, and pin both with a test of the fake.
Deploying mouseterm with
|
| Latest commit: |
a3fdae1
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://088905b5.mouseterm.pages.dev |
| Branch Preview URL: | https://fix-test-rendezvous-room-par.mouseterm.pages.dev |
dormouse-bot
requested a deployment
to
hosted-preview
October 1, 2026 13:23 — with
GitHub Actions
Waiting
nedtwigg
approved these changes
Oct 1, 2026
nedtwigg
left a comment
Member
There was a problem hiding this comment.
Reviewed both fake-room changes against Hosted OneTimeRoom: join refusal precedence and accounting of frames before the phone joins now match production. Preserved main’s RELAY_PING/RELAY_PONG naming when resolving the conflict. All 236 affected local tests passed; fresh CI, Argos, and bot self-review are green with no findings.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
createTestRendezvous, the in-memory stand-in for Hosted's one-time room that four suites drive (one-time-runtime,one-time-client,one-time-e2e,service), disagreed with the real room in two places. Its header asks that an edit to either belongs in both. This PR brings the fake back in line withhosted/server/one-time-room.tsanddocs/specs/one-time.md→ "Hosted rendezvous".expiresAtwith4012(unavailable), and tested expiry before "already joined". The real room answers4012for an unknown room, then4011for a joined one, then4010(expired). The phone maps4012to the "link used" message and4010to "link expired", so a suite joining a stale room through the fake was checking the wrong copy. No current case reaches it: the phone refuses an expired link before dialing.MAX_ONE_TIME_FORWARDED. The real room counts every text frame before deciding where it goes ("Every text frame counts").The new
lib/src/remote/test-rendezvous.test.tspins both behaviours, and both cases fail against the old fake. This sandbox couldn't install dependencies (no npm registry access), so CI is the first run of the lib suite.e2e-lintandspec-lintpass locally.