Homepage now shows only a "Spielen" card (links to /play), public games,
last 3 games as mini-board thumbnails for logged-in users, and live games.
New /play page contains all game-mode cards (create, vs AI, friends,
correspondence, tournament).
Bug fix: /ai page was constructing Chess instances from FEN on every move,
discarding the full PGN history. Switching to loadPgn() preserves all moves
so the saved game can be fully reviewed in the archive.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Replace header admin link + profile modal with a dropdown menu
- Dropdown contains: profile, settings, admin (admins only), join-game form, logout
- Remove join-game card from homepage for logged-in users (now in dropdown)
- AuthModal now only handles guest/login/register flows
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- GET /v1/games/live returns all active games with both players assigned,
including current FEN (computed server-side via chess.js)
- LiveGames component on homepage: mini chessboard tiles (160px) that
auto-refresh every 3s, clickable to join as spectator
- Tournament page: 'Zuschauen' button for non-players on ongoing rounds
(bot vs bot, human vs human, human vs bot all spectatable)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Homepage: Grid-Layout mit 3 Karten (Spiel erstellen, KI, Freunde/Beitreten)
statt vertikalem Stack mit Dividers
- CreateGame: kompakteres Styling, auf Deutsch, in Primary-Card integriert
- Einladungslink: APP_URL statt hardcoded ches.su in GamePage und CopyLink
- JoinGame: URL-Parsing für beliebige Domains (nicht nur ches.su)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>