- Añade sistema de reconexión tras refresh/cierre del navegador
- Persistencia de sesión en localStorage (3h TTL)
- Banner de reconexión en Home
- Evento rejoin_room en backend
- Nuevas categorías: Series TV, Marvel/DC, Disney, Memes, Pokémon, Mitología
- Correcciones de bugs:
- Fix: juego bloqueado al fallar robo (steal decision)
- Fix: jugador duplicado al cambiar de equipo
- Fix: rotación incorrecta de turno tras fallo
- Config: soporte para Cloudflare tunnel (allowedHosts)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Sound System:
- Add soundStore with volume/mute persistence
- Add useSound hook with Web Audio API fallback
- Add SoundControl component for in-game volume adjustment
- Play sounds for correct/incorrect, steal, timer, victory/defeat
Team Chat:
- Add TeamChat component with collapsible panel
- Add team_message WebSocket event (team-only visibility)
- Store up to 50 messages per session
Emoji Reactions:
- Add EmojiReactions bar with 8 emojis
- Add ReactionOverlay with floating animations (Framer Motion)
- Add rate limiting (1 reaction per 3 seconds)
- Broadcast reactions to all players in room
Admin Monitor:
- Add Monitor page showing active rooms from Redis
- Display player counts, team composition, status
- Add ability to close problematic rooms
Admin Settings:
- Add Settings page for game configuration
- Configure points/times by difficulty, steal penalty, max players
- Store config in JSON file with service helpers
CSV Import/Export:
- Add export endpoint with optional filters
- Add import endpoint with validation and error reporting
- Add UI buttons and import result modal in Questions page
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Timer System:
- Add TimerManager service with asyncio for server-side timers
- Support steal time reduction (50% time)
- Automatic timer cancellation on answer
Question Loading:
- Add QuestionService to load daily questions from PostgreSQL
- Generate 8×5 board (categories × difficulties)
- Filter by date_active and approved status
Database Integration:
- Create GameSession in PostgreSQL when game starts
- Update scores during game and on finish
- Store db_session_id in Redis for cross-reference
Replay Integration:
- Save all game events: question_selected, answer_submitted, steal_attempted, steal_passed, game_finished
- Generate unique replay code on game finish
Achievement Integration:
- Initialize PlayerStats in Redis when joining room
- Update stats on every answer (streak, category, speed, etc.)
- Check achievements on game finish for all players
Game Finish:
- Automatic finish when all questions answered
- Manual finish by host
- Emit game_finished with winner, scores, replay_code, achievements
Phase 3 tasks completed:
- F3.1: Timer manager with asyncio
- F3.2: Question service for board loading
- F3.3: GameSession PostgreSQL integration
- F3.4: Replay event saving
- F3.5: Achievement stats tracking
- F3.6: Complete game finish flow
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Backend: FastAPI + Python-SocketIO + SQLAlchemy
- Models for categories, questions, game sessions, events
- AI services for answer validation and question generation (Claude)
- Room management with Redis
- Game logic with stealing mechanics
- Admin API for question management
- Frontend: React + Vite + TypeScript + Tailwind
- 5 visual themes (DRRR, Retro, Minimal, RGB, Anime 90s)
- Real-time game with Socket.IO
- Achievement system
- Replay functionality
- Sound effects per theme
- Docker Compose for deployment
- Design documentation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>