nerdware/apps/server
AyoubBenziza 03a0dfa998 feat: end-of-game round recap (all rounds with answers + scorers)
- shared: RoundRecap (+ scorers); game:end carries recap[]
- server: GameRound.recap(ctx) per mode (quiz: prompt + correct answer +
  image; blindtest: "title — artist" + addedBy + links); engine accumulates a
  history per round (with that round's scorers from the score deltas) and sends
  it at game:end
- client: GameEndView shows a collapsible "Récapitulatif des manches" — each
  round's label, answer, media thumbnail (image/youtube) and who scored
- engine test dummy round implements recap

Verified e2e: game:end recap lists every round with answer + scorers.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 00:54:40 +02:00
..
drizzle feat: bigger image_reveal, optional image prompt, mixed sub-mode toggles, Pokémon seed 2026-06-11 00:20:28 +02:00
src feat: end-of-game round recap (all rounds with answers + scorers) 2026-06-11 00:54:40 +02:00
.env.example feat(quiz): image_reveal format (progressive blur) end-to-end 2026-06-10 21:41:34 +02:00
drizzle.config.ts feat(server): Drizzle + PostgreSQL schema + Open Trivia DB seed 2026-06-10 12:24:17 +02:00
eslint.config.js feat(shared,server): scaffold @nerdware/shared types + Fastify/Socket.IO server 2026-06-08 14:55:52 +02:00
package.json feat: bigger image_reveal, optional image prompt, mixed sub-mode toggles, Pokémon seed 2026-06-11 00:20:28 +02:00
tsconfig.json feat(shared,server): scaffold @nerdware/shared types + Fastify/Socket.IO server 2026-06-08 14:55:52 +02:00