Prove Rendezvous is genuinely reusable by integrating its released contracts/SDK with SpaceGame's LiteNetLib transport migration.
Scope
Keep SpaceGame code changes and commits in its own tracker/repository; this issue owns Rendezvous-side compatibility and evidence.
Validate host publish/heartbeat, browser query, join authorization, gameplay-socket presence, direct connect, ticket acceptance, disconnect, reconnect, and typed fallback.
Confirm SpaceGame's authoritative protocol, durable player identity, capacity checks, and gameplay traffic remain game-owned.
Exercise local host, remote client, and Linux dedicated server configurations.
Capture any generic SDK improvement in Rendezvous rather than copying it into SpaceGame.
Acceptance criteria
Linked SpaceGame work references the released Rendezvous package/server versions.
A real two-game-process plus Rendezvous run completes authenticated direct traffic.
Incompatible, stale, rejected, timeout, and configured fallback paths are exercised.
No Rendezvous ID or LiteNetLib peer ID becomes canonical SpaceGame player/entity identity.
Rendezvous carries no SpaceGame gameplay payload after connection.
Deployment/configuration and measured results are documented.
Generic defects are fixed and regression-tested in Rendezvous before the pilot passes.
Parent: #1
Depends on: #14, #19, #20
Related consumer work: https://git.finalfactory.de/Kyuubi/SpaceGame/issues/3
## Outcome
Prove Rendezvous is genuinely reusable by integrating its released contracts/SDK with SpaceGame's LiteNetLib transport migration.
## Scope
- Keep SpaceGame code changes and commits in its own tracker/repository; this issue owns Rendezvous-side compatibility and evidence.
- Validate host publish/heartbeat, browser query, join authorization, gameplay-socket presence, direct connect, ticket acceptance, disconnect, reconnect, and typed fallback.
- Confirm SpaceGame's authoritative protocol, durable player identity, capacity checks, and gameplay traffic remain game-owned.
- Exercise local host, remote client, and Linux dedicated server configurations.
- Capture any generic SDK improvement in Rendezvous rather than copying it into SpaceGame.
## Acceptance criteria
- Linked SpaceGame work references the released Rendezvous package/server versions.
- A real two-game-process plus Rendezvous run completes authenticated direct traffic.
- Incompatible, stale, rejected, timeout, and configured fallback paths are exercised.
- No Rendezvous ID or LiteNetLib peer ID becomes canonical SpaceGame player/entity identity.
- Rendezvous carries no SpaceGame gameplay payload after connection.
- Deployment/configuration and measured results are documented.
- Generic defects are fixed and regression-tested in Rendezvous before the pilot passes.
Starting the SpaceGame pilot from the verified Rendezvous stack at 7fb8505. I will keep consumer changes on the linked SpaceGame #3 branch/repository, fix only generic seams in Rendezvous, and attach real two-process/direct/failure/dedicated evidence here.
Starting the SpaceGame pilot from the verified Rendezvous stack at `7fb8505`. I will keep consumer changes on the linked SpaceGame #3 branch/repository, fix only generic seams in Rendezvous, and attach real two-process/direct/failure/dedicated evidence here.
SpaceGame checkpoint evidence is now pushed in Rendezvous commit ebb5eb6; the linked consumer implementation is Kyuubi/SpaceGame@86424eb.
Proven and regression-protected:
protocol-2 smoke tenant compatibility and bounded mode metadata
caller-owned LiteNetLib socket with three game-owned QoS channels
host publish/lease, browse, authorized join, host presence, typed direct traversal, outcome reporting, game admission, direct input/snapshot, and deregistration
separate player/entity/listing/join-attempt/peer identities
zero SpaceGame gameplay payloads through Rendezvous
hardened private signing-key file permissions and deterministic consumer secret erasure
Debug and Release builds plus 297/297 Rendezvous tests in each configuration
consumer Debug and Release builds plus 29/29 tests in each configuration
formatter, shellcheck, clean candidate-package restore, two-process harness, and adversarial review
The evidence is intentionally checkpoint-pass-with-open-gates, not a completed pilot. #21 remains open for:
public Gitea restore of immutable Client/Contracts 1.0.0 (registrations still HTTP 404);
actual Godot host/client process integration;
a real configured dedicated fallback connection;
disconnect followed by fresh authenticated reconnect;
remote client + Linux dedicated host, including shutdown/drain;
representative external NAT canaries;
the pre-existing SpaceGame ImGui native Linux runtime dependency blocker.
Authoritative matrix: docs/integration/spacegame-pilot.md and docs/evidence/consumers/spacegame.json.
SpaceGame checkpoint evidence is now pushed in Rendezvous commit `ebb5eb6`; the linked consumer implementation is `Kyuubi/SpaceGame@86424eb`.
Proven and regression-protected:
- protocol-2 smoke tenant compatibility and bounded `mode` metadata
- caller-owned LiteNetLib socket with three game-owned QoS channels
- host publish/lease, browse, authorized join, host presence, typed direct traversal, outcome reporting, game admission, direct input/snapshot, and deregistration
- separate player/entity/listing/join-attempt/peer identities
- zero SpaceGame gameplay payloads through Rendezvous
- incompatible protocol, stale presence, traversal timeout, invalid admission, replay/expiry, capacity, duplicate player, identity/sequence/rate rejection
- hardened private signing-key file permissions and deterministic consumer secret erasure
- Debug and Release builds plus 297/297 Rendezvous tests in each configuration
- consumer Debug and Release builds plus 29/29 tests in each configuration
- formatter, shellcheck, clean candidate-package restore, two-process harness, and adversarial review
The evidence is intentionally `checkpoint-pass-with-open-gates`, not a completed pilot. #21 remains open for:
1. public Gitea restore of immutable Client/Contracts 1.0.0 (registrations still HTTP 404);
2. actual Godot host/client process integration;
3. a real configured dedicated fallback connection;
4. disconnect followed by fresh authenticated reconnect;
5. remote client + Linux dedicated host, including shutdown/drain;
6. representative external NAT canaries;
7. the pre-existing SpaceGame ImGui native Linux runtime dependency blocker.
Authoritative matrix: `docs/integration/spacegame-pilot.md` and `docs/evidence/consumers/spacegame.json`.
Rendezvous Debug and Release builds plus full suites pass: 297/297 in each configuration.
Live hardened Compose deployment smoke passes HTTP liveness/readiness and authenticated UDP mediation/direct traffic.
Runtime container posture: non-root 1000:1000, read-only, all capabilities dropped, no-new-privileges, memory and PID limits.
Issue remains open for its two external acceptance gates:
restore the public package feed and prove clean external restore;
run a representative external NAT/CGNAT pilot rather than treating a private bridge as equivalent.
The broader SpaceGame production gates (ENet replacement, 64/128 capacity profiles, SIGTERM/drain/save) remain tracked in SpaceGame #3 and are not being misreported as Rendezvous #21 completion.
Checkpoint pushed as `9e863eb` on `codex/issue-21-spacegame-pilot` (consumer implementation `f3f5bc29810c362656cd7143bec1ddc2cfaf9f22`).
Verified:
- Clean, current-checkout Godot source runs for reconnect and dedicated-fallback paths.
- Fresh optimized Linux export; source dirty=false; engine SHA-256 `26b1b5d076b78c02f1476dab78e183218a6aa30c8e614653eac11a0dd198456a`; PCK SHA-256 `b5e3d3bcd9c3f16d4de898e42c5bf1890922715a8df7ddf7c7bff49871498e4f`.
- Caller-owned LiteNetLib gameplay transport with admission, frame-definition/spawn lifecycle, lease renewal, disconnect cleanup, stable-player reconnect, and typed PunchTimedOut → dedicated-fallback transition.
- Hardened isolated Linux container direct and remote-client fallback runs.
- Failure matrix covers incompatible protocol, invalid signature, dead/wrong mediator, and absent host presence.
- Rendezvous Debug and Release builds plus full suites pass: 297/297 in each configuration.
- Live hardened Compose deployment smoke passes HTTP liveness/readiness and authenticated UDP mediation/direct traffic.
- Runtime container posture: non-root 1000:1000, read-only, all capabilities dropped, no-new-privileges, memory and PID limits.
Issue remains open for its two external acceptance gates:
1. restore the public package feed and prove clean external restore;
2. run a representative external NAT/CGNAT pilot rather than treating a private bridge as equivalent.
The broader SpaceGame production gates (ENet replacement, 64/128 capacity profiles, SIGTERM/drain/save) remain tracked in SpaceGame #3 and are not being misreported as Rendezvous #21 completion.
v1.0.0 evaluation update (2026-08-22, SpaceGame docs/rendezvous-eval.md @ 8eb5607): the pilot's first open gate — public package restore — is closed (anonymous cold-cache restore from the released feed, 1.18 s). The hosted mediator was also exercised by SpaceGame as its first external client: 4/4 first-try traversal (publish ~193 ms, discovery 42–126 ms, connect ~118 ms), with a blackhole-mediator negative control proving reachability via presence-gated browse. Doc discrepancy found by the eval fixed in 1338253. Remaining gate before this closes: the representative external NAT/CGNAT canary — SpaceGame's real-network friend playtest is the planned vehicle, shared with #23. SpaceGame's recommendation (pending ratification): adopt post-M3 when real NATs are testable.
v1.0.0 evaluation update (2026-08-22, SpaceGame `docs/rendezvous-eval.md` @ 8eb5607): the pilot's first open gate — public package restore — is **closed** (anonymous cold-cache restore from the released feed, 1.18 s). The hosted mediator was also exercised by SpaceGame as its first external client: 4/4 first-try traversal (publish ~193 ms, discovery 42–126 ms, connect ~118 ms), with a blackhole-mediator negative control proving reachability via presence-gated browse. Doc discrepancy found by the eval fixed in 1338253. Remaining gate before this closes: the representative external NAT/CGNAT canary — SpaceGame's real-network friend playtest is the planned vehicle, shared with #23. SpaceGame's recommendation (pending ratification): adopt post-M3 when real NATs are testable.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Parent: #1
Depends on: #14, #19, #20
Related consumer work: Kyuubi/SpaceGame#3
Outcome
Prove Rendezvous is genuinely reusable by integrating its released contracts/SDK with SpaceGame's LiteNetLib transport migration.
Scope
Acceptance criteria
Starting the SpaceGame pilot from the verified Rendezvous stack at
7fb8505. I will keep consumer changes on the linked SpaceGame #3 branch/repository, fix only generic seams in Rendezvous, and attach real two-process/direct/failure/dedicated evidence here.SpaceGame checkpoint evidence is now pushed in Rendezvous commit
ebb5eb6; the linked consumer implementation isKyuubi/SpaceGame@86424eb.Proven and regression-protected:
modemetadataThe evidence is intentionally
checkpoint-pass-with-open-gates, not a completed pilot. #21 remains open for:Authoritative matrix:
docs/integration/spacegame-pilot.mdanddocs/evidence/consumers/spacegame.json.Checkpoint pushed as
9e863eboncodex/issue-21-spacegame-pilot(consumer implementationf3f5bc29810c362656cd7143bec1ddc2cfaf9f22).Verified:
26b1b5d076b78c02f1476dab78e183218a6aa30c8e614653eac11a0dd198456a; PCK SHA-256b5e3d3bcd9c3f16d4de898e42c5bf1890922715a8df7ddf7c7bff49871498e4f.Issue remains open for its two external acceptance gates:
The broader SpaceGame production gates (ENet replacement, 64/128 capacity profiles, SIGTERM/drain/save) remain tracked in SpaceGame #3 and are not being misreported as Rendezvous #21 completion.
v1.0.0 evaluation update (2026-08-22, SpaceGame
docs/rendezvous-eval.md@ 8eb5607): the pilot's first open gate — public package restore — is closed (anonymous cold-cache restore from the released feed, 1.18 s). The hosted mediator was also exercised by SpaceGame as its first external client: 4/4 first-try traversal (publish ~193 ms, discovery 42–126 ms, connect ~118 ms), with a blackhole-mediator negative control proving reachability via presence-gated browse. Doc discrepancy found by the eval fixed in1338253. Remaining gate before this closes: the representative external NAT/CGNAT canary — SpaceGame's real-network friend playtest is the planned vehicle, shared with #23. SpaceGame's recommendation (pending ratification): adopt post-M3 when real NATs are testable.