Bug Fixes
- Fix startup crash on fresh install when settings table doesn't exist yet
- Fix startup crash when tsdb_api_key column missing from settings
- Fix TSDB premium key not showing as saved in settings
- Fix parenthetical stripping fallback in team matcher
- Guard event_card classification with sport hint detection
Enhancements
- Add global max-height and scroll overflow to DialogContent (#154)
- Move conn.commit() from routes to service/DB layer (6 HIGH violations)
- Centralize secret masking with field_serializer
- Seed Unrivaled Basketball teams with badges
- Move AFL, NRL, and Super Rugby to TSDB premium tier
Documentation
- Complete User Guide: Detection Library, Dispatcharr, Troubleshooting
- Technical Reference: architecture, database, template engine, providers
- Channels page, Settings tabs, EPG settings rewrite
- Add short_name variables, official docs link to README
Full Changelog: v2.3.2...v2.3.3