fix(multiplayer): stop recovery after completion

This commit is contained in:
Josh Creek
2026-09-01 21:58:20 +01:00
parent 0f1864f8bc
commit f491725144
3 changed files with 6 additions and 3 deletions
+2
View File
@@ -1540,3 +1540,5 @@ The Godot queue projection now includes the contract's `ACCEPTED` ticket phase.
The queue projection now also accepts the contract's post-allocation/result states (`ASSIGNED`, `RESULT_PENDING`, and `COMPLETED`). These states remain visible, cannot issue queue cancellation, and completed matches return the search action to a valid new-search state; adversarial lifecycle and WebSocket vocabulary tests cover them.
Client ticket updates now enforce the versioned legal transition graph as well as revision ordering. Same-state heartbeat revisions remain valid, while higher-revision jumps and rewinds request authoritative recovery without mutating the visible phase; adversarial tests cover both boundaries.
Reconnect recovery now treats `COMPLETED` as terminal, avoiding a needless queue read after a finished match. UI policy tests cover the complete expanded lifecycle, including the completed-to-new-search boundary.