Skip to content

feat(online): validate end-to-end handshake#47

Merged
aram-devdocs merged 37 commits into
devfrom
feat/15-ingame-handshake
Jul 24, 2026
Merged

feat(online): validate end-to-end handshake#47
aram-devdocs merged 37 commits into
devfrom
feat/15-ingame-handshake

Conversation

@aram-devdocs

Copy link
Copy Markdown
Owner

Fixes #15

Summary

  • validate the versioned ClientHello/ServerHello exchange, live API surface hash, capabilities, retries, restarts, and stale transport events
  • bound handshake, chat, and admission work with real LiteNetLib MTU capacity, monotonic rate limiting, global new-session admission, and an atomic player-row cap
  • prove client position flow, valid multi-recipient fanout, connection churn resistance, and concurrent SQLite capacity enforcement with production-path tests

Validation

  • exact Windows make validate`n- .NET networking 52/52
  • Rust workspace 146 passed; one intentional timed load test ignored
  • protocol smoke 8/8 with real LiteNetLib client and Rust server
  • spec, quality, architecture, and security review gates approved
  • live in-game Phase F validation will be recorded after CI on this reviewed candidate

aram-devdocs and others added 15 commits July 22, 2026 16:46
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>

Copy link
Copy Markdown
Owner Author

Live acceptance passed on Steam build 24324368 with PR #47 combined locally with the green startup fix in PR #44 and deployed through the isolated SailwindOnline profile.

  • Continue > slot 2 reached gameplay and handshook as player 1.
  • The game sent a real boat pose at (-248.1127, 0.7430, -374.5646).
  • An independent LiteNetLib observer joined as player 2 at that location. It received two distinct game-client samples and reported PASS observer=2 remote=1 samples=2.
  • The game log recorded the observer's inbound pose, so replication was bidirectional.
  • New Game > slot 2 reached gameplay and connected at 8 ms. The reported loading hang did not reproduce.
  • The server accepted both clients. No client exception or error was logged.
  • Sailwind and the isolated server were closed after the test.
  • All seven protected slot0*.save SHA-256 hashes matched the pre-test baseline exactly.

The exact PR head 8c889019e5d76a8ed7f9cc3a376c73530637eb85 remains green in make validate and all 13 GitHub checks.

aram-devdocs and others added 13 commits July 23, 2026 12:13
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Reject stale connected packets before they can refresh liveness, emit events, or trigger replies. Stamp every connected outbound packet with the negotiated LiteNetLib discriminator and cover nonzero reconnects over real UDP.

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
aram-devdocs and others added 9 commits July 23, 2026 20:55
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
@aram-devdocs
aram-devdocs merged commit 3a279b4 into dev Jul 24, 2026
13 checks passed
@aram-devdocs
aram-devdocs deleted the feat/15-ingame-handshake branch July 24, 2026 07:35
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.

feat(online): end-to-end handshake between game client and local server

1 participant