New Features
Apokachi (Нанайские шашки) — new sandwich-capture board game variant on 6×6 grid with bot AI
Chapaev — physics-based checkers shooter with Matter.js → Rapier.js migration for better performance
Theme system — ThemeRegistry, theme selector component, user theme column, board/piece skin swap
Room system — Room model, RoomService, room members, room-by-code routing, game switching
Friendship system — friends API, recent opponents tracking, friendship model & service
Floating action menu (FAB) — draggable menu with context data on main WebApp pages
Newsletter system — landing page, email capture, simplified handlers
Human rematch flow — proposal, accept/decline via WebSocket and API
Offline support — ConnectionState machine and MoveQueue for unreliable internet
Command Pattern — unified game commands and bot handling across all games
Debug panel — log viewer, debug reports, request logging middleware
Chat history endpoint — retroactive message loading in room chat
Improvements
API standardization: all controllers use `Api::ok()` / `Api::error()` helpers instead of raw `response()->json()`
Frontend: unified `data.ok` response check across all Blade templates
Apokachi: timer data (white/black time, turn start) synced in move results
Chapaev HUD: transparent bg, heroes scaled, circular timer, mirrored piece dots
Chapaev: golden 8-bit nicknames, dark olive board skin, hero reload + shoot animations
Room UI: popups redesigned to match room-bar glass style
Rank system simplified to orbital particles only
Chat/WebSocket decoupled from room logic
Gzip compression enabled, ping endpoint added
Bug Fixes
Fix missing User import in GamePlayScreen causing 500 on webhook
Fix null safety in DebugPanel event filtering
Fix server-side anti-stale sequence guard and double move_sequence increment
Fix bot_id validation against config to prevent bot impersonation
Fix player identity unification across games, Chapaev turn bug
Fix CSS conflicts in room waiting page
Fix checkers piece hover drift
Fix Chapaev: board cell flip disabled, power bar removed, hero victory/defeat animations disabled
Fix eliminated piece effects: shrink+fade, burn particles, fall-off animation
Fix international checkers: pawn continues capturing as pawn on promotion row
Refactoring
Major lobby/room/game overhaul — TurnManager, WebSocket fixes, frontend rebuild
Extract ChapaevSettleDetector, PathPreviewHighlights, GameUIActionBinder
Extract shared animation modules, remove unused effects
Unify game events and API — generic GameFinishedEvent, DrawProposed/Accepted/Declined
Introduce DataObjects layer, add repositories, clean up domain
Remove legacy debug system, clean up controllers/models/migrations/views
Rename Lobby → Room throughout codebase
Architecture
DDD layers: Domain → Application → Infrastructure → Http
GameInterface + Command Pattern for all game actions
ConnectionState machine for network resilience
Repository pattern for all Eloquent queries
Unified GameApiClient with typed responses