✨ New Features
- Automate switch on a source (#1079): hand a source you imported yourself to Automation. It is switched off after the Retire idle window without a match, switched back on when a scan sees games in its group, and removed once the group has been gone the Retire gone window. Needs Stream name or Team matching. The list badge is now Automated.
- Pinned blocks can target a session and a kind of channel (#1018) — thanks @ruckusvol (#1025). Two optional conditions on a block: Segments (race, qualifying, sprint, prelims, main card…) and Keyword (main channel only, any keyword channel, driver feeds, other race feeds, one race feed, one keyword). An F1 weekend can be laid out in lanes. Blocks with neither condition behave exactly as before. Schema v100 backfills the segment onto existing racing and MMA channels.
- Franchise cricket on ESPN without a premium key (#1069) — thanks @lpukatch (#1070). IPL, Big Bash, SA20 and Major League Cricket move from TheSportsDB to ESPN's season scoreboards, with team import and team channels. Existing team selections, filters, aliases, priorities and pins migrate to ESPN ids on upgrade (schema v101); unknown or duplicate entries are kept and logged for review.
🐛 Bug Fixes
- A blank template subtitle, description or title stays blank instead of reading back a hardcoded fallback (#1063).
- Team-filter channel deletes failed the history CHECK constraint and skipped the Dispatcharr delete, leaving orphan channels (#1065).
- The daily source-discovery scan no longer empties the match cache: it bumped the cache generation once per group, and the next run re-scored every stream. It also no longer writes ~50 MB of per-stream DEBUG that rotated away the whole log window, and it waits for a generation run scheduled in the same minute (#1081).
- Team matching on a retired automated source: the revive rule now accepts team-only matches in a league the group's name names, so a team source sleeps and wakes like a name source (#1079).
⚡ Enhancements
- LFA removed as a league (#1083): ESPN stopped publishing LFA's schedule ahead of events in June 2026, so the league could never create a channel. A subscription to it is dropped on upgrade (schema v102).
- Source list wording: "Managed" sources are now "Automated"; the Retire and Remove cards say what applies to automated and manually imported sources.
🔧 Under the Hood
- Schema v100 → v102 (segment backfill, cricket identity migration, LFA removal). The cricket migration's negative-cache flush runs only on installs that actually held franchise cricket configuration (#1069).
- Dependency groups bumped (actions, npm minor/patch, python minor/patch) — thanks @lpukatch for the merges.
- Decisions recorded: no hardcoded season calendars; a league whose events ESPN posts only after the fact cannot be a league (#760 closed, #1084 tracks a schedule source for other MMA promotions).