fix(multiplayer): publish stalled allocation recovery

This commit is contained in:
Josh Creek
2026-09-01 18:19:28 +01:00
parent 7c044b7094
commit 76c1c3d600
4 changed files with 47 additions and 4 deletions
+8
View File
@@ -1480,4 +1480,12 @@ The three declared domain fuzz targets have now each completed a bounded 4-secon
The real ENet integration gate now passes with `GODOT_BIN=/Applications/Godot.app/Contents/MacOS/Godot bash scripts/verify_enet_integration.sh`, covering the `net`, `match-net`, `clock`, `lobby`, and `networked match` process scenarios. The default `GODOT_BIN` remains the portable `godot` PATH lookup for CI; this machine requires the explicit app-bundle path.
Stalled-allocation recovery now emits a participant-targeted `state_changed`
outbox event in the same serializable transaction that fails the abandoned
match, releases its participants, and requeues their tickets. The maintenance
adapter verifies that every reclaimed match produced its durable event, so an
API/WebSocket restart cannot turn a successful infrastructure recovery into a
silent client-side stale state. Normal, race, vet, and SQL-shape checks pass;
the live PostgreSQL chaos/restart gate remains part of 8.50.
The ENet gate now auto-detects `/Applications/Godot.app/Contents/MacOS/Godot` when no PATH executable or `GODOT_BIN` override exists, while retaining explicit override precedence. The same gate passes without an environment override on this macOS host.