SergeantPanda
dfb91db987
Bug Fix: VOD orphan cleanup crashing with a ForeignKeyViolation (IntegrityError) when a concurrent refresh task created a new M3UMovieRelation or M3USeriesRelation for a movie/series between the orphan-detection query and the DELETE SQL. Both orphaned_movies.delete() and orphaned_series.delete() are now wrapped in try/except IntegrityError; affected records are skipped with a warning and will be cleaned up on the next scheduled run.
2026-03-08 11:56:52 -05:00
SergeantPanda
753bc1a893
fix(stream-preview): restore stream_name and stream_stats for stream previews
...
Stream.get_stream() was never called in the preview path of
generate_stream_url(), so the channel_stream and stream_profile
Redis keys were never written. This caused the stream_id to be
missing from channel metadata, which silently broke two things:
- Stats page showed no stream name or logo
- stream_stats were never saved to the database
Fix: replace the manual profile-selection loop in the preview path
with a direct call to Stream.get_stream(), matching the channel path
exactly. This also fixes a pre-existing non-atomic slot reservation
(read-then-check vs INCR-first) that could over-allocate connections
on concurrent previews.
Regression introduced in 49b7b9e2 .
2026-03-08 11:46:31 -05:00
SergeantPanda
c0d70767e6
changelog: Add credit to @patchy8736 for contributions that came from his closed PR.
CI Pipeline / prepare (push) Waiting to run
CI Pipeline / docker (amd64, ubuntu-24.04) (push) Blocked by required conditions
CI Pipeline / docker (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
CI Pipeline / create-manifest (push) Blocked by required conditions
Build and Push Multi-Arch Docker Image / build-and-push (push) Waiting to run
2026-03-07 18:39:41 -06:00
SergeantPanda
9876a25e62
Bug Fix: XC stream refresh crashing with a null value in column "name" database error when a provider returns streams with a null or empty name. Affected streams are now assigned a generated fallback name in the format <account name> - <stream_id> so the refresh completes successfully and the stream remains accessible. A warning is logged for each affected stream.
2026-03-07 18:33:17 -06:00
SergeantPanda
639b3ea4af
Merge pull request #1022 from nickgerrer:bugfix/uwsgi-read-timeout-pr
...
CI Pipeline / prepare (push) Waiting to run
CI Pipeline / docker (amd64, ubuntu-24.04) (push) Blocked by required conditions
CI Pipeline / docker (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
CI Pipeline / create-manifest (push) Blocked by required conditions
Build and Push Multi-Arch Docker Image / build-and-push (push) Waiting to run
Frontend Tests / test (push) Has been cancelled
fix: resolve 504 timeout on M3U group settings save via bulk DB operations
2026-03-06 17:26:11 -06:00
SergeantPanda
7e5e539aac
changelog: add entry for bulk M3U group settings upsert fix
2026-03-06 17:24:54 -06:00
SergeantPanda
3d27161755
Merge branch 'dev' of https://github.com/Dispatcharr/Dispatcharr into pr/nickgerrer/1022
2026-03-06 17:22:44 -06:00
SergeantPanda
f53dd7e016
Revert "fix: add configurable uwsgi_read_timeout to fix 504 timeout on large M3U imports ( fixes #745 )"
...
This reverts commit 6f54910986 .
2026-03-06 17:21:07 -06:00
SergeantPanda
ebd112eeb2
changelog: Added reference to issue for PG version check.
2026-03-06 16:29:55 -06:00
SergeantPanda
aa02658c73
Merge pull request #1052 from CodeBormen:fix/1045-modular-postgres-check
...
Fix modular mode deployment issues (#1045 )
2026-03-06 16:22:11 -06:00
SergeantPanda
658c7744f7
changelog: Update changelog for modular hardening PR.
2026-03-06 16:21:24 -06:00
SergeantPanda
2373044adb
Merge branch 'dev' of https://github.com/Dispatcharr/Dispatcharr into pr/CodeBormen/1052
2026-03-06 16:12:52 -06:00
SergeantPanda
29943c823f
Merge pull request #1049 from nick4810:tests/frontend-unit-tests
...
Tests/frontend unit tests
2026-03-06 15:56:58 -06:00
SergeantPanda
cf3f562cab
fix: destructure props in M3uSetupSuccess component
2026-03-06 15:47:37 -06:00
None
bb2c3c228d
Fix stale env vars in profile.d on container restart
...
- Rewrite /etc/profile.d/dispatcharr.sh on every startup instead of only on first run, so container restarts with changed env vars pick up new values
- Quote exported values to prevent breakage from special characters in POSTGRES_PASSWORD or other vars
- Update /etc/environment entries instead of skipping if already present
2026-03-06 15:27:19 -06:00
SergeantPanda
846ae598fc
Tests: Fix errorboundary and floatingvideo tests.
2026-03-06 15:21:23 -06:00
None
4f41c287ac
Fix Redis flush and wait_for_redis in modular mode
...
- Move modular Redis wait from uWSGI exec-pre to entrypoint (exec-pre runs under 'su -' which strips Docker env vars, so DISPATCHARR_ENV and REDIS_HOST were never available)
- Selective flush in modular mode: clears stale app state (stream locks, proxy metadata) while preserving Celery broker/result keys
- AIO mode unchanged: full flushdb via uWSGI exec-pre
- Update unit tests for both flush paths
2026-03-06 15:17:32 -06:00
SergeantPanda
ba38dc1cd4
changelog: Removed accidental line break.
2026-03-06 15:12:28 -06:00
SergeantPanda
8b332c426b
changelog: Update changelog for refactor PR.
2026-03-06 15:08:53 -06:00
SergeantPanda
9d0b560bc7
Merge branch 'dev' of https://github.com/Dispatcharr/Dispatcharr into pr/nick4810/1049
2026-03-06 14:51:44 -06:00
SergeantPanda
d39b077715
Rename fetchChannels to fetchChannelIds in M3URefreshNotification component and tests
2026-03-06 14:51:34 -06:00
SergeantPanda
63e9469a58
Merge pull request #1069 from marcinolek:fix/frontend-stability-react-185
...
fix(frontend): prevent infinite re-renders (React error #185 )
2026-03-06 13:23:19 -06:00
SergeantPanda
375dd57ae5
changelog: Update changelog for m3u import pr.
2026-03-06 13:21:18 -06:00
SergeantPanda
95bc2eac73
Merge branch 'dev' of https://github.com/Dispatcharr/Dispatcharr into pr/marcinolek/1069
2026-03-06 13:19:35 -06:00
SergeantPanda
758a79a4f6
fix(frontend): remove non-existent autoResetRowSelection option
...
autoResetRowSelection does not exist in TanStack Table v8 — it was a v7
option. The remaining autoResetPageIndex and autoResetExpanded options
are valid v8 API and retained.
2026-03-06 13:16:49 -06:00
SergeantPanda
a0a6babe04
Merge pull request #1070 from marcinolek:fix/installer-hardening-locales-path
...
fix(install): harden debian_install.sh for non-UTF8 environments
2026-03-06 11:56:39 -06:00
SergeantPanda
03ed8c0a1c
changelog: Update changelog for debian_install script pr.
2026-03-06 11:38:12 -06:00
SergeantPanda
af41278ca2
Merge branch 'dev' of https://github.com/Dispatcharr/Dispatcharr into pr/marcinolek/1070
2026-03-06 11:29:26 -06:00
SergeantPanda
dbe80801da
Merge pull request #1073 from JCBird1012:1055
...
CI Pipeline / prepare (push) Waiting to run
CI Pipeline / docker (amd64, ubuntu-24.04) (push) Blocked by required conditions
CI Pipeline / docker (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
CI Pipeline / create-manifest (push) Blocked by required conditions
Build and Push Multi-Arch Docker Image / build-and-push (push) Waiting to run
fix: M3U EXTINF parsing for attributes ending in double equals
2026-03-06 09:06:07 -06:00
SergeantPanda
4209794cfa
changelog: Update changelog for extinf attribute parsing.
2026-03-06 09:05:30 -06:00
Jonathan Caicedo
a51eb37075
fix: M3U EXTINF parsing for attributes ending in double equals
...
fixes : #1055
2026-03-06 08:10:30 -05:00
Marcin Olek
b43618dbe9
fix(install): harden debian_install.sh for non-UTF8 environments
...
- ensure en_US.UTF-8 locales are generated and set as default
- force UTF8 encoding during PostgreSQL database creation
- add standard system paths to systemd services to ensure tools like ffmpeg are found
Made-with: Cursor
2026-03-06 00:49:23 +01:00
Marcin Olek
a09915438c
fix(frontend): prevent infinite re-renders in tables
...
- disable autoResetPageIndex, autoResetExpanded, and autoResetRowSelection in CustomTable
- memoize M3U table data to prevent re-renders on playlist progress updates
- fix default table state initialization from array to object
Made-with: Cursor
2026-03-06 00:48:22 +01:00
SergeantPanda
11671e9c4f
Merge pull request #1063 from CodeBormen:fix/1012-Celery-Work-Memory-Growth
...
CI Pipeline / prepare (push) Waiting to run
CI Pipeline / docker (amd64, ubuntu-24.04) (push) Blocked by required conditions
CI Pipeline / docker (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
CI Pipeline / create-manifest (push) Blocked by required conditions
Build and Push Multi-Arch Docker Image / build-and-push (push) Waiting to run
Frontend Tests / test (push) Waiting to run
fix(m3u): fix Celery worker memory leak during M3U/XC refresh (#1012 , #1053 )
2026-03-05 16:57:15 -06:00
SergeantPanda
2b44bf1f8e
changelog: Update changelog for M3U refresh memory improvements.
2026-03-05 16:55:24 -06:00
SergeantPanda
bf87c44a72
Merge branch 'dev' of https://github.com/Dispatcharr/Dispatcharr into pr/CodeBormen/1063
2026-03-05 16:48:34 -06:00
SergeantPanda
78aa8cf353
Enhancement: Change default new client behind seconds from 2 to 5 for stability.
2026-03-05 15:36:12 -06:00
SergeantPanda
badd552747
Tests: Fix DVR test after video player change.
2026-03-05 14:52:10 -06:00
SergeantPanda
9bffd6347d
Enhancement: Floating video player now displays the channel, stream, or VOD title in the player header bar. Title is passed through from all preview entry points: channel table, stream table, stream connection card, guide, DVR, recording cards, recording details modal, VOD modal, and series modal.
2026-03-05 14:42:33 -06:00
SergeantPanda
37fa6aac20
Merge pull request #1023 from CodeBormen/fix/940-Duplicate-Recordings-With-Corruption
...
fix(dvr): fix duplicate recording execution and add manual stop
2026-03-05 14:11:41 -06:00
None
109e52cf0f
Update changelog.md
2026-03-05 13:58:22 -06:00
None
ce9f7ccbf9
fix(m3u): fix Celery worker memory leak during M3U/XC refresh
...
Restructure cleanup in refresh_single_m3u_account so del statements
run before gc.collect(), enabling cyclic garbage collection. Add worker_max_memory_per_child as a safety net against memory fragmentation.
Closes #1012 , Closes #1053
2026-03-05 13:47:20 -06:00
SergeantPanda
c02e060c28
Enhancement: EPG output when no days parameter is specified now excludes already-ended programs instead of returning all historical data.
2026-03-05 12:31:36 -06:00
SergeantPanda
f9d4f11cb2
Bug Fix: update EPG data filtering to use end_time instead of start_time
2026-03-05 12:25:38 -06:00
SergeantPanda
4dfdafd1d7
changelog: Update changelog for DVR PR
2026-03-05 11:54:03 -06:00
SergeantPanda
9805732582
Merge branch 'dev' of https://github.com/Dispatcharr/Dispatcharr into pr/CodeBormen/1023
2026-03-05 11:16:20 -06:00
SergeantPanda
06f864ad6d
fix(stream_generator): optimize resource and health checks with throttling
2026-03-04 17:37:42 -06:00
None
5f06bd28ba
fix(guide): restrict recording indicator to pending/active recordings
...
Only show the red recording dot on the TV guide for scheduled and in-progress recordings. Completed, stopped, interrupted, and failed recordings are excluded. Including terminal recordings caused false indicators on unrelated channels due to recycled dummy program IDs for channels without real EPG data.
2026-03-04 15:20:41 -06:00
None
a21ec41f8d
fix(guide): show recording indicator for completed/stopped recordings
...
The red dot on the TV guide was filtering out all terminal recordings (completed, stopped, interrupted, failed). Now only interrupted and failed recordings are excluded, so users can see at a glance which past shows were successfully recorded.
2026-03-04 15:05:45 -06:00
Nick Sandstrom
062022b873
Added original styling back
...
These were mistakenly removed
2026-03-04 08:53:39 -08:00