Goal
Show the mustering state on the game info screen and let players opt into it when creating a private game.
Context
Step 6 of the mustering series. Implementation on claude/game-mustering-state-ah1fw2 (PR #1235). Depends on step 4 for the wire fields; independent of step 5.
Approach
packages/web/src/components/GameStatusAlerts.tsx: a mustering alert saying the game is full and starts once every player confirms, with the action slot rendered beside it.
packages/web/src/screens/Home/GameInfo.tsx: a mustering branch on the action element offering "Confirm you're ready" (useGameMusterCreate, shown while musterStatus === "confirmation_required") and Leave, with share and invite hidden while mustering since the game is full.
packages/web/src/screens/Home/CreateGame.tsx: a "Confirm before start" switch after the committed-players setting — editable and default-off on private games, checked and disabled on public ones — plus musterRequired on the create payload.
Tests: the CreateGame — confirm before start switch block added to packages/web/src/screens/Home/CreateGame.test.tsx.
Screenshots are required in the PR description — see CLAUDE.md and the screenshots skill.
Note the one-step inconsistency this introduces: a public game created between steps 6 and 8 shows the switch on but gets muster_required=False, because the backend coercion does not land until step 8. Either accept that two-PR window, or have the frontend send musterRequired: true for public games from here — which is what the branch does (musterRequired: data.private ? data.musterRequired : true).
Goal
Show the mustering state on the game info screen and let players opt into it when creating a private game.
Context
Step 6 of the mustering series. Implementation on
claude/game-mustering-state-ah1fw2(PR #1235). Depends on step 4 for the wire fields; independent of step 5.Approach
packages/web/src/components/GameStatusAlerts.tsx: a mustering alert saying the game is full and starts once every player confirms, with the action slot rendered beside it.packages/web/src/screens/Home/GameInfo.tsx: a mustering branch on the action element offering "Confirm you're ready" (useGameMusterCreate, shown whilemusterStatus === "confirmation_required") and Leave, with share and invite hidden while mustering since the game is full.packages/web/src/screens/Home/CreateGame.tsx: a "Confirm before start" switch after the committed-players setting — editable and default-off on private games, checked and disabled on public ones — plusmusterRequiredon the create payload.Tests: the
CreateGame — confirm before start switchblock added topackages/web/src/screens/Home/CreateGame.test.tsx.Screenshots are required in the PR description — see CLAUDE.md and the
screenshotsskill.Note the one-step inconsistency this introduces: a public game created between steps 6 and 8 shows the switch on but gets
muster_required=False, because the backend coercion does not land until step 8. Either accept that two-PR window, or have the frontend sendmusterRequired: truefor public games from here — which is what the branch does (musterRequired: data.private ? data.musterRequired : true).