The host transition endpoints now exist, but the remaining high-value risk is inconsistent or weakly defined behaviour around repeated clicks, stale phase state, and client-visible errors when moving from scoreboard to next round or finish.
Expected value / why now
This hardens the final host-controlled edges of the canonical loop and makes the game feel robust rather than fragile under refreshes, retries, or slightly stale UI state.
Acceptance criteria
Verify and harden idempotent behaviour for scoreboard-only host transitions (next round, finish game).
Add targeted tests for repeated host actions, wrong-phase requests, and client-visible error codes/messages.
Ensure the API returns predictable error codes for invalid phase / repeated action paths instead of inconsistent fallthrough behaviour.
Confirm the resulting session-detail state remains coherent after retry/reload patterns.
PR references #287 and documents the intended retry behaviour for host clients.
Scope boundary
Not scoring-rule redesign.
Not lobby/category UX polish.
Not release/deploy work.
Parent epic: #287
## Problem statement
The host transition endpoints now exist, but the remaining high-value risk is inconsistent or weakly defined behaviour around repeated clicks, stale phase state, and client-visible errors when moving from scoreboard to next round or finish.
## Expected value / why now
This hardens the final host-controlled edges of the canonical loop and makes the game feel robust rather than fragile under refreshes, retries, or slightly stale UI state.
## Acceptance criteria
- Verify and harden idempotent behaviour for scoreboard-only host transitions (`next round`, `finish game`).
- Add targeted tests for repeated host actions, wrong-phase requests, and client-visible error codes/messages.
- Ensure the API returns predictable error codes for invalid phase / repeated action paths instead of inconsistent fallthrough behaviour.
- Confirm the resulting session-detail state remains coherent after retry/reload patterns.
- PR references #287 and documents the intended retry behaviour for host clients.
## Scope boundary
- Not scoring-rule redesign.
- Not lobby/category UX polish.
- Not release/deploy work.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Parent epic: #287
Problem statement
The host transition endpoints now exist, but the remaining high-value risk is inconsistent or weakly defined behaviour around repeated clicks, stale phase state, and client-visible errors when moving from scoreboard to next round or finish.
Expected value / why now
This hardens the final host-controlled edges of the canonical loop and makes the game feel robust rather than fragile under refreshes, retries, or slightly stale UI state.
Acceptance criteria
next round,finish game).Scope boundary