Scriblle test submisison#7
Closed
salauddin-ee wants to merge 28 commits into
Closed
Conversation
- Add Spec Kit artifacts (constitution, templates, workflows, extensions) - Add opencode command definitions for speckit workflow - Enable auto-commit for all before/after phase hooks - Annotate AGENTS.md with SPECKIT integration markers
- Quantify timing (US3: 'a few seconds' -> '3 seconds') - Specify exact error messages for FR-003/FR-004/FR-010 - Expand FR-008 with polling lifecycle and error resilience - Add FR-014 for case-insensitive code matching + trimming - Remove out-of-scope 'completed' status from entity description - Add code audit table to tasks.md documenting pre-existing scaffold - Add 2 new tasks for whitespace trimming and schema-level validation - Renumber tasks (T014-T015 added, subsequent shifted to T016-T025)
…ion, polling, and host-gated game start
…d word isolation - Expand STARTER_WORDS from 5 to 24 words (T001) - Add Round, RoundSnapshot, RoundStatus types with currentRound on Room (T002) - Implement deterministic selectWord(roomCode, wordList) via char-code-sum modulo (T003) - Extend startGame() to create Round, assign host as drawer, re-validate names, reject empty word list (T004) - Update toRoomSnapshot() to filter secretWord per viewer — undefined for non-drawer (T005) - Update POST /rooms/:code/start to pass participantId for word filtering (T006) - Add RoundSnapshot type and currentRound to frontend RoomSnapshot (T008) - Update GamePage: drawer sees word/role badge, guessers see GuessForm/placeholder (T009) - Verify word isolation via curl API tests — secretWord absent for guesser (T010) - Add manual-test/manual-test-phase2.md with 10 test scenarios (T014) - Fix TS build error: cast STARTER_WORDS as readonly string[] for length check
…sion, history, and scoring
…on, scoring, and manual tests - Canvas drawing (POST /draw, saveStrokes/clearCanvas, Canvas.tsx component) - Guess submission (POST /guess, submitGuess, Zod validation, client-side error display) - Guess history (ResultPanel with correct guess highlighting) - Scoring (+100 on correct, Scoreboard sorted descending, correct-guesser input lockout) - Manual test document with 13 tests covering all user stories
…amp to ResultPanel
…full-array replacement
LobbyPage's useEffect cleanup calls stopPolling() on unmount, but GamePage never called startPolling(), leaving guessers without any updates via polling. Drawers still saw their own strokes because drawStroke updates state directly from POST response, but guessers rely entirely on polling.
…ontracts, timerDuration on Room, timerStartedAt in Round, timer check in draw path
…estart - Add 'result' to RoomStatus, timerStartedAt on Round, timerDuration/cumulativeScores on Room/RoomSnapshot - Implement checkRoundEnd() for all-guessers-correct and timer expiry detection - Transition to result state via saveRoom() and getRoom() for immediate + poll-based detection - Expose secretWord to all viewers in result state, include cumulativeScores in snapshots - Add POST /:code/restart route with Zod validation, host-only authorization, score merge - Create ResultView component with correct word, combined scores, guess history, read-only canvas, host-only restart button - Update GamePage to render ResultView on result status and redirect to lobby on restart - Add restartGame() to frontend api and roomStore - Create manual-test-phase4.md with 7 test scenarios
- Expose timerDuration in RoomSnapshot and timerStartedAt in RoundSnapshot - Create TimerDisplay component showing m:ss countdown, turns red at 30s - Add timer to GamePage right sidebar in Player Info card - Hide timer when timerDuration is 0 (disabled)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Contributor