You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fixture gate no longer vetoes college football β NCAA soccer's mascotless team names were shadowing every other college sport, rejecting 27% of a Saturday CFB slate (#650) β thanks @lpukatch
[1080p] / 720p / (4K) tags no longer poison team names β one tagged source went from 0/30 to 21/21 matched (#651)
Pipe metadata (| 8.29 | ESPN) and apostrophes (Hawai'i) no longer break matching (#652, #653) β thanks @lpukatch
{today_tonight} says "tomorrow" / the weekday for games not today instead of "today" on early-created channels (#550)
Stream Priority "Dispatcharr Group" dropdown no longer drops groups (#633) β thanks @lpukatch
Channel-source group picker now lists Dispatcharr channel groups (#631) β thanks @lpukatch
Bullpen proxy disables itself after repeated 401s instead of failing every fetch (#548)
β¨ New Features
Pinned Blocks β channel numbering exceptions: pin number ranges by team, league, or sport with lane-based allocation; manual mode retired from the Numbering page (#333)
Tennis EPG programme matching β binds a linear channel's programme to a tournament + court or player pair from any EPG field (#642)
Optional Bullpen proxy support for the provider layer (#548) β thanks @sethwv (#635)
Support bundle matching signals β source_matching_zero and source_matching_degraded flag dead or struggling sources on the first line a triager reads (#657) β thanks @lpukatch
Media-server refresh health β refresh outcomes persisted per run, dashboard warning after consecutive failures, bundle signal (#649)
SCHEDULER=off and DRY_RUN=true env flags so a dev instance can run beside prod (#554)
β‘ Enhancements
Channel-source fetch pulls curated channels' streams by id instead of walking the whole Dispatcharr catalog β 7.6s β 0.08s per run on a 118k-stream install (#647)
Failed matches now persist the near-miss diagnosis (closest candidate, both scores vs threshold) and the exclusion reason (#661) β thanks @lpukatch
Failure taxonomy: filter and skip outcomes are labelled filtered: / skipped: instead of "unmatched"; new candidates_gated reason for candidates never scored (#662)
One generation = one run row; per-source breakdown moves onto the run, retiring 23k sub-run rows on a typical install (#645)
π§ Under the Hood
One shared candidate-matching loop for single- and multi-league paths, with a parity test β the #627 league-hint hatch now covers single-league sources (#660)
Deterministic cache-eviction test replaces a wall-clock ratio that flaked on CI (#656)
Beads sync documented as Dolt refs/dolt/data (#597)