Step 7 of x-check interactive workflow implementation: Frontend Integration: - GameplayPanel.vue: Add x_check_result_pending workflow state, show XCheckWizard when decision_phase is awaiting_x_check_result, handle interactive vs read-only mode based on active_team_id - store/game.ts: Add xCheckData and decideData state, add needsXCheckResult/needsDecide* getters, add set/clear actions for x-check and decide data - useWebSocket.ts: Handle decision_required events with x_check_result/decide_advance/decide_throw/decide_speed_check types, route to appropriate store actions, clear x-check/decide data on play_resolved - useGameActions.ts: Add submitXCheckResult(), submitDecideAdvance(), submitDecideThrow(), submitDecideResult() action wrappers - types: Export XCheckData, DecideAdvanceData, DecideThrowData, DecideSpeedCheckData, PendingXCheck, and new WebSocket request types Type fixes: - XCheckData: Allow readonly arrays for d6_individual and chart_row (store returns readonly refs) - GameplayPanel: Add userTeamId prop for determining interactive mode Tests: 460 passing, 28 failing (GameplayPanel.spec.ts needs Pinia setup - pre-existing issue) Next: Step 8 - End-to-end testing of basic x-check flow (no DECIDE) |
||
|---|---|---|
| .. | ||
| Decisions | ||
| Game | ||
| Gameplay | ||
| Lineup | ||
| Player | ||
| Schedule | ||
| Substitutions | ||
| UI | ||
| CLAUDE.md | ||