Source automation now lives in one place, international cricket arrives via ESPN, and dynamic group patterns take the template filters.
Removed in this release: Bind by name pattern on sources and the Likely renamed / Re-bind suggestions in the stale banner (#1056). Source discovery covers a renamed group on its own. A source that was pattern-bound falls back to its pinned group; if that group is gone, it shows under Sources → Automation → Remove.
✨ New Features
- ESPN as a cricket provider: Test, ODI and T20I internationals as format leagues over ESPN's daily score panel; a Test match is one channel per day (#944)
- Source automation in one place: an Automation section on the Sources page with Discover, Add, Retire and Remove in lifecycle order; the retirement windows are settings; a new optional rule deletes a hand-made source once its group has been missing for N days (#1058)
- Dynamic group and profile patterns take the template filters:
{sport|upper} | {league}names groups "HOCKEY | NHL" (#1050) - Declarative planning: plan validator, diff and applier (Packet 8C, #902) — thanks @lpukatch (#1008)
🐛 Bug Fixes
- Racing session channels get their own session end plus buffer as delete time, not the weekend's (#1016) — thanks @ruckusvol (#1017)
- A team Pinned Block on a racing team is refused instead of silently never matching (#1019) — thanks @ruckusvol (#1024)
- Playoff Game 1 no longer borrows the regular-season series summary for
{series_summary}(#1031) — thanks @lpukatch (#1032) - Source discovery counts evidence only on streams a run would keep, so auto-added F1 onboard groups no longer match nothing (#1034)
- Packet 8C applier: external channel numbers, retire on 404, remote stream order, adoption conflicts (#1036) — thanks @lpukatch (#1043)
- Deselecting the last Dispatcharr channel-source group no longer looks like the source is still there, and a group deleted in Dispatcharr is marked missing (#1046)
- ESPN team stats survive a record stat with no value; Conference USA teams get their record, streak and averages back (#1047)
- ESPN racing leagues no longer ask the summary endpoint, ending the hourly 404 warning on race weekends (#1054)
⚡ Enhancements
- Channel-source preview lists the guide programmes that looked like games and bound nothing, with a reason each (#1026)
- Source discovery scans once a day; the on/off switch is the only schedule control (#1027)
- Failure reasons describe what the matcher saw; a guide that could not be read is its own verdict (#1029)
- An "All groups" box makes the empty channel-source selection visible (#1046)
🎨 UI/UX
- Race Feeds card explains Own channel, Separate, Ignore and the enable checkbox (#1020) — thanks @ruckusvol (#1023)
- Auto-add toggles moved from Subscriptions to Sources → Automation → Add (#1058)
🔧 Under the Hood
- Retired pattern-bound sources and re-bind suggestions (#1056)
- Cleared all 24 open CodeQL alerts (#1051)
- Beads database is named
beadson every machine (#1022) — thanks @lpukatch - Docs: disabled Dispatcharr channels are still read in channel-source mode, scope by channel group (#1013); discovery threshold re-measure recorded (#1022)