fix(multiplayer): align resync recovery targets

This commit is contained in:
Josh Creek
2026-09-01 22:16:50 +01:00
parent cfc82bcea5
commit 1f05f6d524
3 changed files with 18 additions and 2 deletions
+2
View File
@@ -1553,6 +1553,8 @@ Recovery targeting now follows the same boundary: only an `OPEN` proposal is pol
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.
All client resync entry points now apply the open-proposal boundary: a terminal proposal always recovers the durable ticket instead of polling the finished proposal. A direct-resync regression test covers this path.
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.
Client sessions now fail closed at the expiry boundary and proactively clear credentials before reconnects or authenticated requests. Boundary and malformed-expiry tests cover the lifecycle guard.