What's Changed
Features
- feat: Add toggle for provider profile affinity feature (
dab77bed) - feat: Support local m3u-proxy source in Dockerfile for dev builds (
eb90dcda) - feat: Add broadcast GC env vars to embedded proxy pipeline and compose files (
305e23a6) - feat: Add client-to-profile affinity via Redis (
90088c5c) - feat: Show provider profile name on Stream Monitor page (
33b64e1f) - feat: Add ability to send notifications to users from the user mgmt. page (
e3751dd8) - ✨ feat: Add network selection for custom and merged playlists (
113673d4) - feat: Add silence detection options to proxy settings (
760c19ca) - feat: Add dedicated release log page (
de3c12de) - feat: Add quick action to get and set provider timezone (
c41e4b41) - feat: Add play action to watch rows (
eef280ee) - feat: 5-min time slots, append-to-end, insert-after + enable schedule gap (
3fa0d3f6) - feat: add cascade bump for schedule overlap + schedule_gap_seconds setting (
ca3525da) - feat: Add ability to quick clear watch progress/status for a viewer (
5eeaffe7) - feat: add manual schedule builder for networks (
810bad55) - feat: Add watch and progress tracking to in-app player (
aec7ac85) - feat: Add watch tracking to editor and add UI for managing status (
30f4b141) - feat: Implement viewers and watch status tracking (
063f8499) - feat: allow setting group name at the network level (
cc3d9f5f) - feat: use library name as default genre for local and WebDAV media (
4d6e5579) - ✨ feat: add robust WebDAV media server integration with metadata and streaming support (
868d34ee)
Bug Fixes
- fix: Broadcasting fixes (
56ef7e7d) - fix: 500 error when creating a new Playlist Alias (
6ebb5316) - fix: restore missing parameters and reuse detection for episode provider profiles (
f5d02ca3) - 🐛 fix: resolve plex broadcast 404 errors and add transcode mode UI (
42aeac21) - Fix stale HLS segment issue and improve error messaging (
2a978522) - fix spacing issue (
52197c8e) - fix: Remove missing
$forceSelectand$clientIdentifierfrom PR #811 (85792011) - fix: Postgres specific queries causing sqlite errors (
6e896211) - fix: Add HLS env vars to external proxy Docker Compose files (
bdf14bd6) - fix: Fixed URL in proxy facade (
0e68739f) - fix: Stale stream resuse leading to 404 (
5ea02903) - fix: Affinity check in
selectProfile(ec0ac778) - fix: Provider affinity with stale/invalid stream (
9540f270) - fix: Remove tests depending on methods not yet on dev branch (
d972c7f9) - Fix VOD/movie 503 failures with Provider Profiles enabled (
6a589f5d) - fix: Correct expire mock count in affinity test (3 calls in incrementConnections) (
7a105de9) - fix: Update affinity tests to match always-prefer behavior (
7b45d744) - fix: Always prefer affinity profile regardless of capacity (
2c0bdf25) - fix: Re-enable available_streams with Provider Profiles and add bypass toggle (
ed207316) - 🐛 fix: retry network broadcast start failures during container boot grace period (
2c6add80) - 🐛 fix: remove stale media from playlist on Jellyfin/Emby sync (
cd711b0a) - fix: Remove icon from release logs to prevent errors with top nav setups (
df981f89) - fix: Rollback changes to the proxy public URL resolution to fix streaming not working (
cad0b28a) - fix: Fallback for proxy URL via m3u-proxy route (
d2b75555) - fix: Resolver check when not yet saved returning error (
fbcee9e7) - fix: Broken rebuild script for local testing (
d987c9b3) - fix: Rebuild script referencing incorrect repo (
10125ec6) - fix: Make all media search for network schedule to be case insensitive (
8f8f52e7) - fix: Drop target not clear, remove button and use entire row; add drag + drop reorder (
c4088a41) - fix(networks): implement logo upload via suffix action and fix resolution scaling (
bdca0f70) - Fix timezone conversion bug in pinProgrammeTime (
4bb99390) - fix: grant use_integrations permission to test user in ManualScheduleBuilderTest (
35121ab3) - 🐛 fix: resolve CI failures in schedule and broadcast tests (
f8838202) - 🐛 fix: resolve FFmpeg broadcast failure handling and Plex transcoding issues (
25a7c521) - fix: Resuming can reset progress to 0 if not active long enough after resuming (
8a39ef25) - fix: Resume functionality for watched programs (
76eb3df7) - fix: Allow searching the viewers watch progress table (
62e7325f) - fix: cascade bump pinAnchor for insert-after + polished schedule builder UI (
6a78cdec) - fix: Actions not displayed on viewer relation manager (
7b5438d2) - fix: copy day not working + add now-playing status indicator (
54d5c831) - fix: Missing props passing to stream player for watch progress tracking (
ffccdd92) - fix: Watchers table display (
609ade53) - 🐛 fix: correctly apply network group_name to all playlist formats (
bac76098) - fix: Endpoints returning 405 for watch progress tracking (
46782068) - fix: local media and WebDAV integrations not honoring schedules (
cf816f71) - fix: preserve TMDB-enriched genres on re-sync and re-enrich library name placeholders (
770a0c0f) - fix: enrich episode titles, images, and plots from TMDB for local/WebDAV media (
417a0d03) - fix: prevent duplicate series from concurrent SyncMediaServer jobs (
a49b3659) - fix: update group/category from TMDB genre on first fetch for local/WebDAV media (
986d38f3) - fix: update episode names with TMDB metadata for local and WebDAV media (
b3c6894e)
Maintenance
- chore: Update broadcast output to only show when broadcasting enabled (
4868b98e) - chore: Update default
HLS_BROADCAST_DIRdirectory (3b51fde7) - chore: Adjust default broadcast storage location (
4ea52e83) - chore: Cleaning up playlist form page a bit (
cfb72df3) - chore: Update notice on playlist form for Bypass Provider Connection Limits (
129f041d) - chore: Update GC docs for broadcasting (
4e0536a6) - chore: Rollback Dockerfile changes (
4c648ff8) - chore: Remove redundant HLS GC collection (handled via proxy) (
42678e9b) - chore: Fix failing formatting (
129f528c) - chore: Rename test to reflect what it tests (
68d25132) - chore: Add tests for broadcast grace period (
7800373d) - chore: Line up create form with edit form (
36e3236e) - chore: Update release log page details and add quick action to run version check (
6d211096) - chore: Update proxy settings button colors to line up with other sections (
5e738d50) - chore: Clean up proxy settings tab (
418c003a) - chore: Update confusing info message about URL resolution for proxy (
54cbaa46) - chore: Don't throw error on webhook registration failure (
4403b743) - chore: Pull out provider TZ from proxy settings to top level settings (
95d61bc0) - chore: Increase line length when reading M3U file to prevent truncating URLs (
a440316e) - chore: Update proxy public url resolution to use same as the playlist public url resolution (
5cea7f2f) - chore: Call internal API url for proxy instead of reverse proxy URL via editor for webhook registration (
ad54f038) - chore: Cleanup and remove proxy public URL as it's no longer used and is redundant (
dcd50327) - chore: Fixes to auto-release log for dev/exp (
9565c549) - chore: Update button style for logo url (
c376a981) - chore: Add confirm to schedule delete on network schedule page (
5b9e9592) - chore: Adjust schedule tab display and fix action modals (
dc0f4070) - chore: Use filament modals in Schedule Builder for consistency (
3b0d1f92) - chore: Cleanup page description (
b1aace0d) - chore: Cleanup playlist viewers on delete; auto create watcher on progress updates (
688d7bc6) - chore: Match icons with resources (
e8fe5c61) - chore: Cleaning up the watcher resources (
1218efec) - chore: load experimental branch code for fix (
16db4540)
Docker Image
docker pull sparkison/m3u-editor:dev-0.10.13