fix(multiplayer): preserve proposal requeues

This commit is contained in:
Josh Creek
2026-09-01 22:04:53 +01:00
parent 277ad4bf98
commit 0c4ad6a5aa
3 changed files with 19 additions and 7 deletions
+2
View File
@@ -1547,4 +1547,6 @@ Ticket, proposal, and WebSocket revisions now fail closed unless they are finite
Proposal updates now enforce the documented `OPEN → ACCEPTED/DECLINED/EXPIRED/CANCELLED` graph, including rejecting higher-revision reopen/accept attempts after terminal decisions while preserving same-state duplicates. Adversarial proposal-transition tests cover accepted and declined terminal paths.
Proposal decline/expiry/cancellation now leaves a still-proposed ticket in `QUEUED`, matching the durable server requeue transaction; the proposals terminal message remains visible without making the ticket terminal. A cancelled ticket is never resurrected by a later proposal event, covered by adversarial cross-aggregate tests.
Ticket projections now validate playlist metadata on every update, rejecting unknown values before either phase or playlist state can mutate. An adversarial higher-revision update test covers this boundary.