feat(lobby): Tune the mesh check window and stop re-signalling connections that are still forming - #65
Merged
x64-dev merged 5 commits intoSep 25, 2026
Conversation
…letting them guess
…who haven't replied
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.
Members reply to a mesh check with a snapshot of their current connections, so an attempt used to be judged within milliseconds. Any connection still being negotiated was re-signalled, which throws away the negotiation, and the 5s window only mattered when a reply went missing. Attempts now re-poll snapshots every second until the mesh is complete or the window closes. Only then are missing pairs re-signalled, and pairs a member reports as still connecting (
connecting_map) are left alone. Checks are judged on current members only, so a player who leaves mid-check no longer produces false gaps or stalls the attempt. Members who haven't replied are re-polled, which recovers replies lost to a reconnect.The window, poll interval, retry delay and attempt count are tunable under
Core(full_mesh_check_*, defaults 8000/1000/3000/2), and each judged attempt is logged with its duration and missing pairs so the window can be tuned from real data. Setup progress now carriescountdown_msso clients no longer infer the start countdown fromtimeout_ms. The mesh-check timeout stays at 10s or more, so older clients can't mistake it for the countdown. Older clients withoutconnecting_mapbehave as before.Pairs with the GameClient mesh tuning PR.