nerdware/apps/server
AyoubBenziza 8eac8d0123 feat: bots — virtual players to fill a game
- 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>
2026-06-11 17:48:33 +02:00
..
drizzle feat: game history + question lang/active management 2026-06-11 17:12:07 +02:00
src feat: bots — virtual players to fill a game 2026-06-11 17:48:33 +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