fix(multiplayer): recover requeued tickets

This commit is contained in:
Josh Creek
2026-09-01 22:06:30 +01:00
parent 0c4ad6a5aa
commit c08c761af3
5 changed files with 17 additions and 2 deletions
+2
View File
@@ -1549,4 +1549,6 @@ Proposal updates now enforce the documented `OPEN → ACCEPTED/DECLINED/EXPIRED/
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.
Recovery targeting now follows the same boundary: only an `OPEN` proposal is polled as a proposal; terminal proposal outcomes fall back to the ticket recovery endpoint. This prevents repeated reads of a finished proposal from starving recovery of the requeued ticket.
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.