fix(multiplayer): validate ticket timestamps

This commit is contained in:
Josh Creek
2026-09-01 22:08:19 +01:00
parent c08c761af3
commit 1e5825b096
3 changed files with 25 additions and 0 deletions
+2
View File
@@ -1551,4 +1551,6 @@ Proposal decline/expiry/cancellation now leaves a still-proposed ticket in `QUEU
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.
Client queue/proposal expiry and enqueue epoch metadata now fail closed on malformed, negative, or fractional values instead of being silently coerced to zero. Adversarial metadata tests cover string, negative, and fractional timestamps.
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.