Commit Graph

5 Commits

Author SHA1 Message Date
cottongin
c24223be5c feat: add TMP3 support and fix shard probe lifecycle bug
Add Trivia Murder Party 3 (Playtest) ticker and seed data. Bind-mount
tickers.json in docker-compose so ticker changes take effect on restart
without image rebuilds.

Fix shard monitor probe poisoning game lifecycle state — the player-count
probe no longer sets gameFinished, which was preventing the main WS from
processing room/lock and room/exit for games like TMP3 that don't send
entity updates.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-24 12:45:59 -04:00
cottongin
ea6e8db90b feat: ticker symbol voting for live votes
- Add ticker column to games table with migration
- Bootstrap tickers from tickers.json config on startup
- POST /api/votes/live accepts optional ticker field for direct game
  lookup (bypasses timestamp-interval matching)
- Ticker votes work for any game, not just session games
- Update API docs and add e2e tests for ticker voting
- Version bump to 0.6.5

Made-with: Cursor
2026-04-05 04:47:06 -04:00
cottongin
b2bb2989e9 feat: role-aware presence bar, WebSocket logging fixes
- findAdminByKey returns role from admins.json (defaults to 'admin')
- JWT includes config-defined role instead of hardcoded 'admin'
- PresenceBar split into "who's here?" (page admins) and "connected"
  (bot/utility services with icon+color badges)
- Bot/utility roles appear in presence on all pages when connected
- usePresence hook uses refs to avoid WS reconnect on navigation
- WS auth log prints admin name instead of generic 'admin'
- WS connection log reads X-Forwarded-For for real client IP
- AuthContext stores adminRole from login response
- Uncomment admins.json Docker volume mount, add SELinux :z flags

Made-with: Cursor
2026-04-05 04:46:56 -04:00
cottongin
52e9a7af42 fix: handle unreadable admins.json in Docker and exclude from image
Use fs.accessSync to check read permissions before reading the config
file. If the file exists but isn't readable, log a warning and fall
through to the ADMIN_KEY fallback. Also add config/admins.json to
backend/.dockerignore to prevent it from being copied into the image.

Made-with: Cursor
2026-04-05 01:17:22 -04:00
cottongin
fd72c0d7ee feat: add admin config loader with multi-key support
Made-with: Cursor
2026-03-23 03:46:09 -04:00