Add player_name column to games (migration included), with regex-based
validation and anti-abuse sanitization. New /scoreboard page shows recent
games from localStorage, popular categories with play counts, and top-10
per-category leaderboards sorted by completion time. Also includes
two-click reverse word matching, base URL prefix support for reverse-proxy
hosting, BasePageHandler refactoring, themed table CSS for all 5 themes,
and comprehensive test coverage for player names and scoreboard API.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add input validation and error handling across all API endpoints
(malformed JSON, missing fields, invalid types return proper 4xx)
- Add per-IP rate limiting (10/min new games, 60/min other requests)
- Add session rollback on unhandled exceptions
- Default debug=False, add --debug CLI flag to opt in
- Frontend: add fetch error handling, fix feedback timeout stacking,
disable buttons during requests, allow clicking found cells for
overlapping word selection
- Expand seed data to 7 categories with 25-35 words each
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>