Repository navigation
fix(online): Harden mesh signalling, the lobby flow and server JSON parsing - #625
Open
tintinhamans wants to merge 9 commits into
Conversation
tintinhamans
force-pushed
the
arctic/go/fix/mesh-relay-and-lobby-exit
branch
from
September 29, 2026 21:00
7864452 to
cfde97b
Compare
tintinhamans
force-pushed
the
arctic/go/fix/mesh-relay-and-lobby-exit
branch
from
October 24, 2026 20:42
cfde97b to
03fa539
Compare
tintinhamans
marked this pull request as ready for review
October 24, 2026 20:48
This was referenced Oct 24, 2026
Open
…nections the server asked for
…its and the start check
…start until the roster is complete
tintinhamans
force-pushed
the
arctic/go/fix/mesh-relay-and-lobby-exit
branch
from
October 28, 2026 01:47
389f1f5 to
f666a92
Compare
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.
Merge after #635.
Follow-up to #626 with the rest of the lobby and connection fixes. Includes #650, closed as folded into this PR.
The host no longer rejects a player the server told it to connect to just because its member list was stale. That looked like a clean close, so nobody retried. A lobby that returns 404 shows the "host left" notice, and out of order lobby responses are ignored, which stops false host changes and kicks. The host's start check times out after 30 s instead of leaving Start disabled.
Quick match no longer cancels the server's requeue when its lobby disappears, and a failed match join is shown instead of hanging. Server JSON is parsed without undefined behavior when a field is missing. The last lobby name is saved as UTF-8 (was #642).
UpdateSlotsFromCurrentLobbyasked for the member at each slot position, so positions past the list got a default slot index999999that wrapped to 16959 in auint16_t, and members without a usable slot were skipped silently. Members are now placed by their ownSlotIndexand unclaimed slots are opened. A member without a valid slot keeps the previous roster and refetches the lobby, and match start waits until every human has a slot. The host's connectivity check no longer passes with no link to another human.A peer that closed cleanly stayed in the mesh and logged
[DISC] Recv Failedevery 5 s. It is now removed from the mesh.No wire or service change. Tested:
z_generalsbuilds, parser harness with badSlotIndexvalues. The roster changes are not tested in a real lobby.