fix(multiplayer): defer reconnect recovery during mutations

This commit is contained in:
Josh Creek
2026-09-01 21:53:07 +01:00
parent 47aa196b59
commit fa2c93ec06
3 changed files with 19 additions and 3 deletions
+2
View File
@@ -1532,3 +1532,5 @@ The client matchmaking projection now preserves the server's `enqueued_at` times
The ranked profile projection now also carries the active season's authoritative end timestamp from PostgreSQL through the API and Godot client. Ranked matchmaking displays a bounded days-remaining countdown, while providers without an active season remain compatible and omit the countdown.
The versioned OpenAPI contract now declares the implemented `/profile/ranked` surface and its server-authoritative ranked profile schema, including optional active-season metadata. Contract tests reject omission of this operation, extra response fields, and credential leakage.
The Godot client now defers reconnect-triggered authoritative recovery when an HTTP mutation is still in flight, closing the `ERR_BUSY` recovery-drop race. An adversarial client test verifies that the active ticket remains queued for recovery rather than silently staying stale.