New Features
Export & Publish
Generate M3U/XMLTV playlists from channel profiles and publish to cloud targets (S3, WebDAV, etc.) on a cron schedule. Includes channel selector, playlist preview, cloud target management, and publish history.
Low FPS Detection
Streams below a configurable threshold (5/10/15/20 FPS) are flagged with an amber icon and deprioritized in Smart Sort. Always on with zero overhead — configurable in Settings → Maintenance.
Black Screen Detection
Optional ffmpeg signalstats check after each probe flags dark/blank streams with a purple icon. Configurable sample duration (3-30s) in Settings → Maintenance.
Normalize Names Engine
Tag-based rules engine for cleaning up stream names during bulk channel creation. YAML import/export, edit/revert controls, drag-and-drop priority ordering.
Backup & Restore
Full configuration backup/restore from Settings, with restore option during first-run setup wizard.
Merge Channels
Combine two or more channels into one, consolidating their streams.
Auto-Creation Enhancements
- EPG logo source action, Probe Streams action, Set Channel Profile action
- Smart Sort option in rule sort dropdown, rule selection in Auto-Create schedule
- Separate stream sort from channel sort per rule
Other
- PUID/PGID support for Docker container user identity
- Server-side migration of EPG matching, stream normalization, and edit consolidation
- TV Guide print view
Security & Auth
- JWT authentication in Swagger UI with /swagger redirect
- Auth hardening — secured backup endpoints, improved token handling
- Debug bundle for troubleshooting auth issues
- Fixed npm audit vulnerabilities (brace-expansion, flatted, picomatch)
- Updated all GitHub Actions to Node.js 24-compatible versions
UI/UX Improvements
- Simplified Add Action/Condition UX in auto-creation rules
- Set Logo from M3U, improved logo buttons, EPG TVG-ID suffix filter
- Push-down renumbering fix, menu overflow fix, task card grid fix
- Settings UI consistency — compact dropdowns, unified admin section CSS, proper field ordering
- Fixed radio buttons, undefined CSS variables, and card backgrounds in admin tabs
Backend & Reliability
- Scoped reprobe to last scheduled probe's channel groups
- Capped Dispatcharr HTTP client connection pool
- Prober self-healing — auto-creates if not initialized, removes false restart prompts
- Fixed persistent 503 when stream prober not initialized
- Fixed assign_logo from EPG and duplicate rule priorities
- Wired ffmpeg config CRUD to real persistence module
Code Quality
- Fixed 128 TypeScript strict mode errors —
tsc --noEmitnow reports zero errors - Removed ~2,000+ lines of dead code across backend and frontend
- Consolidated duplicate formatDate implementations, migrated 161 console.log calls to structured logger