github Pharaoh-Labs/teamarr v2.12.4
v2.12.4 — Feed Side Ordering, Docs Audit Fixes & a Race-Weekend Deletion Bug

4 hours ago

🐛 Bug Fixes

  • 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.

Don't miss a new teamarr release

NewReleases is sending notifications on new releases.