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
Race-weekend channels were deleted before the race. The per-run delete-time recalculation overwrote the session-aware end computed at creation with a session-blind event start + sport duration, so a multi-day event's channel vanished shortly after its first session (e.g. after Friday practice). The session-aware estimate is now persisted and the recalc only applies your timing policy to it. (#522)
Keyword channel-number swaps could desync from Dispatcharr. The swap was written to Teamarr's database whether or not Dispatcharr accepted it — leaving the database agreeing with itself while the real ordering was wrong, with nothing to re-detect it. Both updates must now be confirmed before anything is recorded. (#522)
Feed identification no longer requires feed separation. Team-branded streams like Brewers.TV were invisible to the team_feed ordering rules unless channel splitting was enabled. Identification always runs now; the Feed Separation toggle gates only whether feeds get their own channels. (#527)
Event templates were missing nine conditions. The condition picker omitted is_final, is_not_final, is_playoff, is_preseason, has_odds, is_national_broadcast, is_conference_game, is_ranked_matchup, and is_top_ten_matchup — even though they work on event templates and the shipped starter templates use them. (#521)
Exception keywords disabled through the API couldn't be re-enabled. They disappeared from the UI entirely; they're now shown dimmed with an on/off toggle. (#522)
The Channels documentation page was an infinite redirect loop and had been unreachable since the v2.7.0 docs resync. (#535)
Home/Away feed labels no longer report "Away Feed" for feeds whose side couldn't be determined. (#533)
The Event Groups Regex badge now lights up for league, fighters, and event-name custom patterns, not just team patterns. (#522)
✨ New Features
Feed Side stream-priority rules. A standing "always prefer the home broadcast" (or away) preference that applies to whichever teams are playing — no team selection needed. Works as a hard priority band or as scoring points. Each stream's resolved side is stored and shown in a new Feed column on the Dashboard. (#533)
Channel ID Format now actually applies to team imports. The setting was editable but read by nothing; imports hardcoded PascalCase. It now drives both import and bulk regeneration. Installs using the default see no change — the default is identical to the old hardcoded shape. (#522)
⚡ Enhancements
Feed side is tracked as home, away, or unknown — never guessed. Streams with no feed signal, and sports with no home/away at all (racing, combat), stay unknown and match neither Feed Side rule rather than being swept into one. (#533)
The detection-keyword form no longer offers TEAM_VS_TEAM and FIELD_EVENT as event-type targets; neither was ever consumed, so both were silent no-ops. (#522)
🎨 UI/UX
The team_feed rule is now labelled "Specific Team's Feed" — its old name, "Home/Away Feed", became misleading once real feed-side rules existed. Behavior is unchanged.
Corrected stale in-app pointers left over from the v2.7.0 navigation overhaul (Settings → Cache, Settings → EPG, Global Defaults, and others). (#522)
🔧 Under the Hood
Two new columns, both plain additions handled by schema reconciliation: managed_channel_streams.feed_side and managed_channels.event_end_estimate.
Removed the community guide link, the third-party Game Thumbs image host, and the community template downloads from the documentation.
Test suite 2,113 → 2,161.
Dependency updates across GitHub Actions and frontend npm packages.