release/0.1.0 #18
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "release/0.1.0"
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?
- store: boomKey counter + boom() action - Countdown fires boom() once when it reaches 0 (timer expiry only) - Boom component (portal to body) plays a fullscreen white flash + giant 💥 - rendered at RoomPage level, keyed by boomKey so it plays fully (independent of the countdown unmounting on reveal) and replays each round Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>Mixed mode (default): - gameType is now mixed | quiz | blindtest, default "mixed"; the lobby interleaves quiz + blindtest rounds so modes alternate - lobby reworked: 3-way game-type switch, quiz count and/or blindtest config + track submission shown per selected type Free-text quiz questions: - quiz supports the `free` format (e.g. maths) alongside mcq/truefalse: payload without choices, {text} vote, tolerant matching on acceptedAnswers - shared QuizQuestionPayload.choices optional; reveal truth carries answer - match util moved to game/match.ts (shared by quiz + blindtest) - repo/seed include free + acceptedAnswers; in-code bank gains free questions - client quiz view renders a text input for free questions Mode-aware transitions: - RoundTransition themed per mode (colors/label/emoji); announces the mode on change (quiz <-> blindtest), lighter teaser within the same mode - custom media buckets per mode: assets/transitions/{quiz,blindtest}/ + shared - store tracks roundModeChanged Verified e2e: mixed game alternates quiz/blindtest to completion; free-text scoring covered by tests (22 pass). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>From the blindtest tracks revealed at game end: - per-track Spotify search link (green button) built from "title artist" - "Playlist" button copies the whole tracklist ("title — artist" per line) to the clipboard for pasting into Spotify - YouTube open link kept alongside Pure client-side, derived from the tracks already sent in game:end. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>- lib/sound: plays src/assets/sounds/victory.{mp3,ogg,wav} if present, auto-detected via import.meta.glob; no-op when absent - played alongside the confetti when the end screen appears - README documenting where to drop the file Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>image_reveal rounds (RoundType "quiz") now get their own "IMAGE" transition (emerald/teal theme, 🖼️) instead of reusing the quiz one. The store derives a roundKind (quiz | image | blindtest) from the round payload format; mode-change detection and the custom-media folder use it (assets/transitions/image/). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>Mixed settings fix: - RoundConfig carries a `pool` hint (quiz | image) per quiz round; lobby shows a separate count for each selected sub-mode (Quiz, Images) and the blindtest config — not just the quiz one - server pool composes the queue per round's pool (quiz formats vs image_reveal), in order; verified e2e (2 quiz + 2 images honored) Awards: - "⚡ Le plus rapide" — derived client-side from the speed bonus baked into quiz/image points (points above the 100 base on correct answers) Desktop restyle: - room page gets an ambient halo background and a responsive container (lobby max-w-3xl with a 2-column players|settings grid, game/end max-w-lg) - game/end views widened to max-w-lg Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>DB: - quiz_question gains `lang` ('fr' default) and `active` (true default); migration 0002 - only active questions are served to games (pool filter) History: - engine writes a game_history row at game end (modes + ranked results), fire-and-forget - public GET /api/history/:code lists a room's recent games - lobby shows a "Parties précédentes" collapsible (date, modes, winner/scores) Back-office: - create form has a FR/EN language select; lang stored - per-question active toggle (PATCH /questions/:id) — disable without deleting; inactive rows dimmed and labelled - seeds set lang (opentdb=en, manual/pokemon=fr) Verified e2e: migration applied; game played → /api/history returns it. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>- server-side bot players (isBot): host adds/removes them in the lobby (lobby:addBot / lobby:removeBot), capped at 8 players - bots auto-vote each round: GameRound.botAnswer generates a plausible answer (quiz ~50% right, blindtest guesses a random player / title); engine schedules the votes within the answer window and triggers early end when all have voted - bots are never DJ (pickDj excludes them) and are excluded from the blindtest track-submission gate (they don't submit) - snapshot players carry `bot`; lobby shows a 🤖 marker + add/remove controls Verified e2e: 2 bots added, they vote, game ends with all 3 players scored and rounds end early. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>