Skip to content

Recover dropped WebRTC routes without replacing the player seat - #35

Merged
sbddesign merged 1 commit into
mainfrom
fix/ice-recovery
Sep 6, 2026
Merged

sbddesign merged 1 commit into
mainfrom
fix/ice-recovery

Conversation

@sbddesign

@sbddesign sbddesign commented Sep 6, 2026 •

Copy link
Copy Markdown
Contributor

When a connected player's WebRTC route drops, try an ICE restart on the existing connection so their data channel and seat survive. Either side can notice the outage; the joiner owns restart offers. If recovery fails within the existing eight-second grace period, retain CONNECTION LOST and manual RETRY.

Keep signalling alive until channel close. Bind restart messages to the established peer and attempt number; buffer early candidates, retry lost offers/answers, and remove recovery listeners on leave or failure. No new infrastructure or gameplay protocol version is required.

Validation:

  • Full typecheck, 737 simulation assertions, balance, and production build pass.
  • Chrome/WebRTC: new ICE credentials with the same peer connection, data channel, seat and advancing match clock; recovery despite two seconds of dropped answers; host-triggered recovery; blocked offers lead to RETRY. Zero page errors.
  • GitHub full mutation gate: 147/147 caught cleanly, zero survivors or untestable cases. All CI checks pass at cf6b284 (run).

The browser check injects an outage notification and exercises real renegotiation over Nostr. A physical Wi-Fi interruption across two devices remains unverified. Recovery cannot replace TURN when no direct route exists or keep a match alive after its host leaves.

The local gate also printed 147 clean catches and restored the worktree, but its supervisor hit the ten-minute cap; the successful complete-run verdict above is from GitHub.

Preview: https://neon-orbit-m5abgrh1p-delineatormedia.vercel.app/?host=2

Signed-off-by: Stephen DeLorme <stephen@d.elor.me>
@vercel

vercel Bot commented Sep 6, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
neon-orbit Ready Ready Preview Sep 6, 2026 8:33pm UTC

Request Review

@sbddesign
sbddesign marked this pull request as ready for review September 6, 2026 20:44
@sbddesign
sbddesign merged commit 6cbffdb into main Sep 6, 2026
4 checks passed

This branch was successfully deployed

1 active deployment
Preview — cf6b2849 Deployed Sep 6, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant