github Pharaoh-Labs/teamarr v2.2.0

one hour ago

✨ New Features

  • Gold Zone — unified Olympics channel with external EPG, date-based stream filtering, stream ordering, managed channel lifecycle, and configurable settings
  • Scheduled Backups — cron-integrated with rotation, restore validation, sqlite3.backup(), and path safety checks
  • Multi-Template Assignments — template assignment modal redesigned with CheckboxListPicker; templates assignable per sport/league in bulk import
  • Conditional Title/Subtitle — postgame and idle filler now support conditional title/subtitle templates
  • Playoff Bypass — bypass team filter for playoff games
  • Run History Cleanup — cleanup UI in Settings + auto-cleanup after generation

🐛 Bug Fixes

  • Fix offset-naive vs offset-aware datetime comparison in channel sorting
  • Fix Detection Library 500 errors and ESPN team logo loss
  • Fix Dispatcharr pagination and wire up api_timeout/retry settings
  • Fix multi-template filler, segment naming, error isolation, and lifecycle path parity
  • Fix soccer mode not persisting in group edit UI
  • Fix bulk import writing literal 'league' instead of dynamic {league} channel group
  • Fix card_segment_display not resolving for non-UFC combat sports
  • Fix group processing crash and template display mismatch
  • Fix settings page crash on pre-v52 databases
  • Fix cache refresh toast showing 0 leagues/teams
  • Fix path traversal vulnerability in backup filename endpoints
  • Guard against null league names in LeaguePicker to prevent blank screen crash

⚡ Enhancements

  • Make tvg-id unique per exception keyword for EPG programme separation
  • Sync stream_profile_id to Dispatcharr on existing channel updates
  • Custom channel group pattern support in bulk import
  • Gold Zone respects stream ordering/priority rules from settings
  • Clear stale XMLTV at start of group processing to prevent serving old EPG data

🎨 UI/UX

  • Redesigned template assignment modal with reusable CheckboxListPicker component
  • Shared SelectedBadges component with overflow tooltip (standardized cap of 10)
  • Manual save button for Gold Zone settings
  • Fix sticky sport header overlaying leagues in single-sport filtered view
  • Fix soccer league picker badge overflow and Clear All visibility

🔧 Under the Hood

  • Code health audit: pruned 6 dead API endpoints, 9 dead frontend items, 1805 lines of legacy migration code
  • Extracted 25+ SQL violations from routes to database layer
  • Split god functions: run_full_generation (576→370), _sync_channel_settings (333→178)
  • Pruned dead SearchableMultiSelect component (228 lines)
  • Integrate backup into CronScheduler, remove standalone BackupScheduler
  • Register Gold Zone as managed channel for standard EPG association and orphan detection
  • Diagnostic logging for multi-template resolution and stream profile sync

Don't miss a new teamarr release

NewReleases is sending notifications on new releases.