unkin-agent
3b416c7fb2
feat: gate periodic library tasks behind a scan-leader lease
...
Timer-driven library tasks fire on every replica, so a library refresh or a
database optimise runs once per pod against the same shared library.
- add IScanLeaderLease with a Redis TTL implementation and a no-op default
- skip timer-driven runs of the gated tasks on instances without the lease
- treat an unreachable Redis as holding the lease so tasks never stop running
- leave manual and API-triggered runs ungated
2026-09-11 23:56:51 +10:00
unkin-agent
e3571eb2a4
feat(session): record open live streams in the session store
...
Live stream ownership is only tracked in process memory, so no replica can tell
which pod holds a stream open once that pod is gone.
- persist a LiveStreamSession record when the live stream mappings change
- delete the record when the stream is closed
- keep closing the stream when the store is unreachable
2026-09-11 23:56:35 +10:00
unkin-agent
c43992630e
feat: skip transcode files held by an active session
...
Every replica runs the transcode cleanup task against the same shared transcode
directory, so one pod deletes segments another pod is still streaming.
- read the active sessions from ITranscodeSessionStore before deleting
- keep files matching an active session manifest path or segment prefix
- abort the sweep when the store cannot be reached
2026-09-11 23:56:35 +10:00
unkin-agent
e23d1a23be
feat: add a durable transcode session store
...
Transcode state lives only in the process that started ffmpeg, so a pod restart
drops every in-flight HLS stream with no way for a peer to pick it up.
- add ITranscodeSessionStore plus the TranscodeSession and LiveStreamSession records
- add RedisTranscodeSessionStore with TTL leases and an atomic Lua takeover script
- add NullTranscodeSessionStore for single-instance deployments
- pick the store from Jellyfin:TranscodeStore:RedisConnectionString at startup
2026-09-11 23:56:19 +10:00
Cody Robibero
85ebd83bdd
Merge pull request #17821 from Shadowghost/more-counts
...
Expose optimized ItemCounts for byName items
2026-09-07 17:53:31 -04:00
Cody Robibero
42f7a6e720
Merge pull request #17820 from Shadowghost/only-download-missing-plugin-images
...
Only download missing plugin images
2026-09-07 17:43:57 -04:00
Cody Robibero
7d9bd1d3e4
Merge pull request #17816 from Shadowghost/version-aware-played-state
...
Share played state across alternate versions
2026-09-07 17:43:10 -04:00
krvi
837c34aee2
Translated using Weblate (Faroese)
...
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/fo/
2026-09-07 20:23:12 +00:00
Shadowghost
2644163f57
Count distinct items for byName ItemCounts and batch every kind
2026-09-07 18:39:59 +02:00
krvi
dfe57e484f
Translated using Weblate (Faroese)
...
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/fo/
2026-09-07 15:15:24 +00:00
nextlooper42
6de9d1508f
Translated using Weblate (Slovak)
...
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/sk/
2026-09-07 12:22:59 +00:00
Anastasis Marinos
b2eb088e0f
Translated using Weblate (Greek)
...
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/el/
2026-09-07 12:22:59 +00:00
Shadowghost
e1e319cb5c
Only download missing plugin images
2026-09-07 10:43:36 +02:00
Shadowghost
59cd5f983b
Expose optimized ItemCounts for byName items
2026-09-07 10:30:01 +02:00
Cody Robibero
3e7d1158da
Merge pull request #17794 from Shadowghost/plugin-install-fixes
...
Better handle timeouts on plugin operations
2026-09-06 12:47:45 -04:00
Shadowghost
fd016cfb13
Share played state across alternate versions
2026-09-06 17:20:18 +02:00
Cody Robibero
34feb3c04a
Merge pull request #17763 from Shadowghost/fix-refresh-queue-and-directory-cache
...
Fix items being lost from the refresh queue and bound the directory service caches
2026-09-06 07:36:13 -04:00
Cody Robibero
a0a42c630e
Merge pull request #17786 from Shadowghost/optimize-db
...
Optimize database after migrations
2026-09-06 07:33:07 -04:00
Shadowghost
7b638a22bb
Add test
2026-09-06 09:07:22 +02:00
Shadowghost
344a6dcd2c
Apply review suggestions
2026-09-06 08:38:43 +02:00
Cody Robibero
66d038c403
Merge pull request #17762 from Shadowghost/fix-scan-memory-leak
...
Bound change batches during a scan; keep ffprobe and image saves from failing
2026-09-06 01:28:02 -04:00
Shadowghost
93345f812e
FIx naming
2026-09-05 18:49:27 +02:00
Cody Robibero
ffd61de4f3
Merge pull request #17799 from fmarcac/fix/syncplay-stale-session-requests
...
Drop SyncPlay requests from sessions that left the group
2026-09-05 11:07:56 -04:00
Cody Robibero
2b0ccf2a30
Merge pull request #17800 from fmarcac/fix/syncplay-active-session-counter
...
Fix SyncPlay active session counter leaking on rejoin
2026-09-05 10:57:55 -04:00
fmarcac
7ce911a401
Clamp client reported ping in SyncPlay groups
2026-09-05 15:06:37 +02:00
fmarcac
e356fe9146
Return the default ping for an empty SyncPlay group
2026-09-05 14:24:49 +02:00
fmarcac
51a7d5d08a
Fix SyncPlay active session counter leaking on rejoin
2026-09-05 14:24:48 +02:00
fmarcac
5acb200c02
Drop SyncPlay requests from sessions that left the group
2026-09-05 14:23:37 +02:00
Shadowghost
bf5fb593e4
Do not treat timeouts as cancellations
2026-09-05 09:41:07 +02:00
Cody Robibero
c80f05fad1
Merge pull request #17767 from Shadowghost/post-scna-task-logging
...
Add comprehensive logging for post scan tasks
2026-09-04 21:13:54 -04:00
Shadowghost
46dd7d8e99
Invalidate the singleton DirectoryService cache on filesystem changes
2026-09-04 19:28:59 +02:00
Shadowghost
0b5bbb528a
Optimize database after running migrations
2026-09-04 18:57:54 +02:00
krvi
f10c84465a
Translated using Weblate (Faroese)
...
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/fo/
2026-09-04 16:54:10 +00:00
AlphaBeta
610887dc2c
Translated using Weblate (Thai)
...
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/th/
2026-09-04 15:42:44 +00:00
Shadowghost
5edb369e3b
Apply review suggestion
2026-09-04 07:02:08 +02:00
krvi
3f8315df4e
Translated using Weblate (Faroese)
...
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/fo/
2026-09-03 19:05:36 +00:00
Riccardo
1ccec11b91
Translated using Weblate (Bosnian)
...
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/bs/
2026-09-03 13:37:37 +00:00
Riccardo
d18d4f9cd2
Translated using Weblate (Luxembourgish)
...
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/lb/
2026-09-03 13:37:36 +00:00
Riccardo
978552b1c5
Translated using Weblate (Irish)
...
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/ga/
2026-09-03 13:37:35 +00:00
Riccardo
f53bb0aae9
Translated using Weblate (Faroese)
...
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/fo/
2026-09-03 13:37:35 +00:00
Riccardo
24d8290462
Translated using Weblate (Belarusian)
...
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/be/
2026-09-03 13:37:34 +00:00
Riccardo
849437991a
Translated using Weblate (Latvian)
...
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/lv/
2026-09-03 13:37:34 +00:00
Riccardo
1b184b2b35
Translated using Weblate (Romanian)
...
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/ro/
2026-09-03 13:37:33 +00:00
Riccardo
fb6e075e40
Translated using Weblate (Finnish)
...
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/fi/
2026-09-03 13:37:33 +00:00
Riccardo
3682840d54
Translated using Weblate (Slovenian)
...
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/sl/
2026-09-03 13:37:32 +00:00
Riccardo
a6c0fe57c5
Translated using Weblate (Norwegian Bokmål)
...
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/nb_NO/
2026-09-03 13:37:31 +00:00
Riccardo
f4d2da180d
Translated using Weblate (Croatian)
...
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/hr/
2026-09-03 13:37:30 +00:00
Riccardo
b561d6aa59
Translated using Weblate (Greek)
...
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/el/
2026-09-03 13:37:29 +00:00
Shadowghost
b724e57458
Reduce comments
2026-09-03 11:51:02 +02:00
Cody Robibero
4f2f781e68
Merge pull request #17756 from Shadowghost/fix-people-creation
...
Fix people and artist validator creation and deletion handling
2026-09-02 18:00:22 -04:00