Commit graph

7 commits

Author SHA1 Message Date
AyoubBenziza
541025f713 chore(release): 0.1.4
New Rebus game mode. See CHANGELOG.
2026-07-06 14:52:25 +02:00
AyoubBenziza
aae09961fa chore(release): 0.1.3
"What's new" patch notes modal. See CHANGELOG.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 09:20:44 +02:00
AyoubBenziza
ea476da01e chore(release): 0.1.2
Optional Umami analytics (env-driven). See CHANGELOG.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 08:51:41 +02:00
AyoubBenziza
7116d63c81 chore(release): 0.1.1
Playtest fixes (DB PG* connection, blindtest sound/vote-status/tracks, quiz
input reset, clock sync) and additions (DJ can be contributor, 90s blindtest,
volume control, theme switcher). See CHANGELOG.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 12:33:41 +02:00
AyoubBenziza
9a57536258 chore(release): 0.1.0 — Dokploy deployment, docs, versioning
- Dockerfiles: server (Bun, runs migrations then starts) and web (Vite build
  served by nginx with SPA fallback); .dockerignore
- docker-compose.prod.yml (postgres + server + web) ready for Dokploy, with
  uploads/pgdata volumes and .env.production.example
- README: deployment (Dokploy) + gitflow/versioning sections, Images mode, bots,
  i18n; CHANGELOG.md
- bump packages to 0.1.0

Docker images built and validated end-to-end: server migrates + serves
/health + /api/categories; web serves the SPA with VITE_SERVER_URL baked in.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 20:33:02 +02:00
AyoubBenziza
9ed3b8a4cb feat(server): generic game engine — GameRound interface + orchestration loop
- game/round.ts: GameRound contract (start/submitAnswer/reveal/score) +
  RoundContext + RoomGameController (decouples room from engine)
- game/registry.ts: register/createRound — adding a mode = one registerRound
- game/engine.ts: server-authoritative orchestration. Per round:
  start → broadcast round:start → wait (timer OR all eligible voted) →
  reveal → apply score deltas → score:update; then game:end. DJ counts as
  eligible voter; round ends on first condition met.
- handlers: game:start (host-only, validates rounds/modes) + round:vote
  wired to the engine
- shared: add game:start client event
- engine.test.ts: covers both end conditions + voteAck (bun test)
- turbo/root: add test task

Roadmap V1 step 3. No UI yet — concrete quiz mode + client come in step 4.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 15:29:49 +02:00
AyoubBenziza
e7b2f46e81 feat: initial commit 2026-06-07 18:45:52 +02:00