v2.6.1
✨ New Features
- Custom Leagues via UI — add and manage your own TSDB-backed leagues from a premium-gated management page, with live test-fetch before saving (#230)
- Priority Teams — followed teams now float to the top of the channel order (#144)
- 10 new community-requested soccer leagues added via TSDB (#220–#229)
- Team channel-status endpoint — read-only API exposing per-team channel/live state (#231)
⚡ Enhancements
- EPG channel-source scoped to selected Dispatcharr groups, plus a new Dispatcharr-Group stream-sorting rule
- Configurable provider-EPG cache TTL for Xtream sources (default 24h)
- Stream Ordering rules can now be exported/imported as JSON, with an unsaved-changes warning
- EPG matching simplified to per-event-group control (global switch removed); matching settings consolidated onto the Event Groups tab
🐛 Bug Fixes
- Supabase scores: fixed a doubleheader score collision and a latent Chatham-Kent score miss by joining completed games on game number instead of parsed city names — builds on the CBL provider by @sethwv (#204)
- Match rate >100%: split true stream coverage from match volume so rates report correctly
- Custom-league delete now purges orphaned team/league cache rows
- Resolver falls back to the ungrouped set when a configured Dispatcharr channel group was deleted
- Null-safe league/team name sorting fixes a blank Settings screen
- Dropped a stale
dispatcharr_stream_idwrite that could break settings sync
What's Changed
Full Changelog: v2.6.0...v2.6.1