Commit Graph

12 Commits

Author SHA1 Message Date
Stefan 95692ce8f8 Merge game history feature: Add multi-game save and analysis mode 2025-11-27 09:33:23 +01:00
stefan-kp 918bbd2508 Add multi-game resume list with board previews 2025-11-27 09:26:02 +01:00
stefan-kp f7ee818360 Add onboarding flow for missing LLM key 2025-11-27 09:25:39 +01:00
stefan-kp 05f14d30a1 Add analysis page tests for PGN walkthrough 2025-11-26 21:33:45 +01:00
Stefan 49effedf61 Complete tactic recognition module with tests and real-time integration
- Add comprehensive test suite (20 tests) for tactic detection
- Fix pawn detection threshold bug (200 -> 100 centipawns)
- Add error handling to uciToSan for invalid moves
- Integrate tactical data into Tutor component for real-time feedback
- Pass missedTactics from ChessGame to Tutor via props
- Update LLM prompt to explain missed tactical opportunities
- Fix Jest configuration to handle react-markdown ESM issues
- All 50 tests passing
2025-11-26 16:51:38 +01:00
stefan-kp f0e95ae1a0 Implement tactical detection module 2025-11-26 15:16:08 +01:00
Stefan b817182a8b fix: Critical bug fixes and add new personalities
Bug Fixes:
- Fix turn validation: Players can now only move their own pieces
- Fix computer not moving when player moves too quickly (before evalP0 ready)
- Add safety check: Computer move triggered when chat messages sent
- Computer now always responds even if evalP0 is missing (only move history skipped)

New Personalities:
- Add 'Friendly Motivator' - encouraging, positive coach focused on building confidence
- Add 'Bloody Pirate' - theatrical trash-talker with Monkey Island style humor

Personality Reordering:
- Reordered from serious to playful:
  1. Opening Professor (most serious)
  2. Professional Coach
  3. Friendly Motivator
  4. Speedrun Super GM
  5. Hype Streamer
  6. Angry Prodigy
  7. Drunk Russian GM
  8. Bloody Pirate (most playful)
- Added section headers for clarity (Serious/Professional, Balanced/Entertaining, Spicy/Trash-talking)

Technical Details:
- ChessGame: Added checkAndMakeComputerMove() callback
- Tutor: Calls onCheckComputerMove after sending messages
- Both fixes ensure robust gameplay even with race conditions
2025-11-25 20:01:04 +01:00
Stefan cd6cab367a Add unified FEN/PGN import with auto-detection
- Create chessFormatDetector utility for automatic format detection
- Update StartScreen with textarea supporting both FEN and PGN input
- Add real-time format detection with visual feedback indicators
- Update translations for all 4 languages (EN, DE, FR, IT)
- Add markdown rendering for Tutor chat messages
- Add comprehensive tests for format detection (20 tests)
- Update game initialization to handle both FEN and PGN formats

This completes the fix/stale-analysis-data branch with:
- Fixed stale evaluation data in hint/best move requests
- Clarified AI's dual role (opponent + tutor) to prevent hint rejection
- Stored complete evaluation history (P0, P1, P2) for all moves
- Improved end-game analysis with better mistake detection
- Fixed duplicate analysis runs with useRef flag
- Added markdown rendering for formatted analysis output
- Added unified FEN/PGN import with auto-detection
2025-11-25 17:54:25 +01:00
Stefan 0aa4370f64 bug fixes and first try of github docker 2025-11-23 16:43:47 +01:00
Stefan 2383960cdb i18n files 2025-11-23 13:37:43 +01:00
Stefan 8a6d6bd780 game ready 2025-11-23 11:44:05 +01:00
Stefan 30f1e9e3a5 working app 2025-11-23 10:51:00 +01:00