[READY][Gameplay] #287-E Realtime phase-event contract for client refresh and route sync #309
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Parent epic: #287
Problem statement
Backend currently broadcasts phase events via
sync_broadcast_phase_event, while the UI still leans heavily on session-detail polling. We need one explicit child task that defines and verifies what realtime events promise to clients, so they act as acceleration instead of a second, drifting protocol.Expected value / why now
This makes host/player state updates feel more immediate without moving authority away from Django. It also reduces ambiguity about whether the browser should trust websocket payloads directly or only use them to trigger refresh.
Acceptance criteria
phase.lie_started,phase.guess_started,phase.scoreboard, andphase.game_over.Scope boundary