Cody Robibero
24022092ad
Merge pull request #17456 from Shadowghost/fix-extras
...
Fix extras naming and version assignment
2026-08-02 14:25:00 -04:00
Cody Robibero
d669994bf0
Merge pull request #17503 from theguymadmax/fix-sortby-name
...
Use CleanName when sorting by name
2026-08-02 14:24:28 -04:00
Cody Robibero
45b8f6c4c8
Merge pull request #17486 from Shadowghost/fix-adjacent
...
Fix AdjacentTo being ignored on non-recursive item queries
2026-08-02 14:24:13 -04:00
Cody Robibero
044f651299
Merge pull request #17482 from Shadowghost/fix-stale-versions
...
Fix video version links being read from stale serialised item data instead of the LinkedChildren table
2026-08-02 14:24:05 -04:00
Cody Robibero
f2360c07a3
Merge pull request #17147 from Shadowghost/tmdb-missing-episodes
...
Add Tmdb missing episode provider
2026-08-02 14:23:30 -04:00
Shadowghost
b94ba9d409
Merge remote-tracking branch 'upstream/master' into tmdb-missing-episodes
...
# Conflicts:
# Jellyfin.Server.Implementations/Item/BaseItemRepository.QueryBuilding.cs
2026-08-01 14:25:20 +02:00
Cody Robibero
744ca84a8b
Merge pull request #17500 from theguymadmax/fix-storage-lookup
...
Fix storage info lookup for Windows
2026-08-01 08:18:45 -04:00
Cody Robibero
030031dcff
Merge pull request #17463 from Shadowghost/fix-unplayed-filter
...
Fix (Un)Played filter correctness and performance
2026-08-01 08:07:05 -04:00
Cody Robibero
341c19bace
Merge pull request #17460 from Shadowghost/fix-user-items
...
Queue person metadata refresh instead of blocking the item request and fix ItemCounts
2026-08-01 08:06:46 -04:00
Cody Robibero
e816870f67
Merge pull request #17416 from Shadowghost/enable-duplicate-playlist-children
...
Allow duplicate LinkedChildren for Playlists
2026-08-01 08:06:02 -04:00
theguymadmax
f28acc7fa1
Use CleanName when sorting by name
2026-07-31 00:34:43 -04:00
theguymadmax
314004bc19
Fix storage lookup for Windows
2026-07-30 19:13:32 -04:00
Shadowghost
8293eb26b9
Fix playlist entries being lost on migration and library scans
2026-07-29 14:40:49 +02:00
Shadowghost
d8fc0a9914
Fix AdjacentTo being ignored on non-recursive item queries
2026-07-29 13:13:44 +02:00
Shadowghost
1f4f4acb46
Fixup
2026-07-29 09:39:04 +02:00
Shadowghost
d64e18b69a
Fix more filter cases
2026-07-29 09:35:20 +02:00
Shadowghost
7a4271c85f
Fix video version links being read from stale serialised item data instead of the LinkedChildren table
2026-07-29 07:31:27 +02:00
Shadowghost
eed664b7d3
Fix played/unplayed filter for empty Series and BoxSets
2026-07-28 12:43:12 +02:00
Shadowghost
046225654a
Queue person metadata refresh instead of blocking the item request and fix ItemCounts
2026-07-27 23:09:30 +02:00
Shadowghost
79a55327dc
Fix extras naming and version assignment
2026-07-27 12:12:17 +02:00
Shadowghost
f3a1d56c56
Use DistinctBy where possible
2026-07-26 09:56:49 +02:00
Shadowghost
766be1e8bb
Fix favorite filter performance
2026-07-25 19:09:39 +02:00
Shadowghost
f2f66606d7
Fix DatePlayed sorting performance
2026-07-25 19:09:39 +02:00
Shadowghost
9aa79682ba
Reduce correlated subqueries to improve performance
2026-07-23 20:50:06 +02:00
Shadowghost
dc300fae53
Allow duplicate LinkedChildren for Playlists
2026-07-23 13:41:51 +02:00
Cody Robibero
526f4051e9
Merge pull request #16980 from TheMelmacian/feature/library_specific_language_filter_values
...
Improve language filters to only fetch language codes that match the requested items/libraries (follow up to #9787 )
2026-07-21 20:43:31 -04:00
TheMelmacian
b317af0d30
fix: remove obsolete code
2026-07-21 22:20:07 +02:00
Cody Robibero
65836cc844
Merge pull request #17160 from 854562/truncate-language-strings
...
Truncate ISO-639-2 language display names at first delimiter
2026-07-21 11:22:32 -04:00
Bond-009
9b9b609c83
Merge pull request #17368 from Shadowghost/security-path-traversal-fixes
...
Backport and extend path traversal fixes
2026-07-21 14:52:40 +02:00
Shadowghost
4cc69f4be0
Apply review suggestions
2026-07-21 14:30:55 +02:00
Bond-009
527ba2e11c
Merge pull request #17367 from zerafachris/fix/backup-skip-corrupt-keyframe-data
...
fix: skip corrupt KeyframeData rows during full system backup
2026-07-21 13:53:47 +02:00
Shadowghost
b99703301f
Merge remote-tracking branch 'upstream/master' into security-path-traversal-fixes
...
# Conflicts:
# Jellyfin.Api/Controllers/HlsSegmentController.cs
# Jellyfin.Api/Controllers/PluginsController.cs
2026-07-21 07:14:47 +02:00
Cody Robibero
bdf263d867
Merge pull request #17377 from mbastian77/fix/person-visibility-allowed-tags
...
Exempt people from the allowed tags visibility check
2026-07-20 21:26:06 -04:00
Cody Robibero
557b14e33e
Merge branch 'master' into fix/backup-skip-corrupt-keyframe-data
2026-07-20 20:49:37 -04:00
Cody Robibero
0d629591ed
Remove comments about JSON error handling
...
Removed comments explaining error handling for malformed JSON during backup.
2026-07-20 20:15:05 -04:00
Cody Robibero
23fa02eb59
Merge pull request #17282 from TowyTowy/fix/13137-clear-profile-image
...
Fix profile image being impossible to clear when its in-memory key is temporary
2026-07-20 19:58:43 -04:00
854562
2cd2f36fe4
Extract truncation logic to helper and add tests
2026-07-20 22:00:10 +02:00
Bond-009
aead9c0e22
Merge pull request #17302 from ElianCodes/fix/lastlogindate-stale-entity
...
Keep authenticated user entity in sync with persisted login timestamps
2026-07-20 08:36:53 +02:00
zerafachris
663a873e07
fix: log corrupt KeyframeData row read failures as errors, not warnings
...
Per review feedback from cvium: failing to read/backup an entity due to
corrupt underlying data is a significant event that should be surfaced
as an error, not silently downgraded to a warning.
2026-07-18 16:47:23 +02:00
mbastian77
5a9fb80239
Exempt people from the allowed tags visibility check
2026-07-18 14:07:52 +02:00
Shadowghost
21801e8ba1
Harden remaining path-construction sinks against traversal
2026-07-17 17:08:59 +02:00
zerafachris
d7727224c2
Skip corrupt KeyframeData rows during full system backup
...
A single row with malformed KeyframeTicks JSON (e.g. a truncated array
from an interrupted write) currently aborts the entire backup, because
the try/catch in BackupService.CreateBackupAsync only wraps
serialization of an already-materialized entity, not the enumeration
itself. EF Core throws JsonReaderException from MoveNextAsync() while
materializing the corrupt row, which propagates past that catch block.
Switch to manual enumerator iteration so MoveNextAsync() failures can
be caught per-row, logged as a warning identifying the affected table,
and skipped, allowing the remaining rows and the rest of the backup to
complete.
Fixes #17216
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
2026-07-17 16:44:25 +02:00
Shadowghost
d894a98b79
Fix tie-breaker performance
2026-07-16 14:20:42 +02:00
Elian Van Cutsem
47f567b6f1
Keep authenticated user entity in sync with persisted login timestamps
...
ExecuteUpdateAsync bypasses the EF change tracker, so the user entity
returned by AuthenticateUser still carried the old LastLoginDate and
LastActivityDate. SessionManager.LogSessionActivity then saved that
stale entity in full, reverting LastLoginDate (usually to null)
milliseconds after every login. Setting the properties on the entity
keeps the follow-up save consistent and lets the 60-second activity
guard skip the redundant write during login.
Fixes #17301
2026-07-11 14:04:07 +02:00
TowyTowy
2326ecdedc
Fix profile image being impossible to clear when its in-memory key is temporary
...
ClearProfileImageAsync removed the ProfileImage instance attached to the
passed-in User, but that instance can carry a stale, never-persisted
(temporary) key because UpdateUserAsync creates the persisted image on a
separately loaded entity and never copies the generated key back.
Removing that detached entity on a fresh DbContext made EF Core throw
InvalidOperationException ('ImageInfo.Id has a temporary value'), leaving
the profile image impossible to delete or replace.
Load the tracked, persisted user and remove its actual ProfileImage,
matching the removal pattern already used in UpdateUserAsync. Adds
regression tests covering the temporary-key case and the no-image no-op
(the first fails before this change and passes after).
Fixes #13137
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-09 13:39:09 +02:00
theguymadmax
8b826d981b
Fix max login attempts
2026-07-08 23:07:57 -04:00
Cody Robibero
31d05dbdd6
Merge pull request #17228 from Shadowghost/fix-logout-concurrency
...
Don't throw on logout if session does not exist
2026-07-05 16:22:45 -04:00
Cody Robibero
6e728b009f
Merge pull request #17044 from Shadowghost/version-model-and-handling
...
Fixes for multi version handling
2026-07-05 16:21:02 -04:00
Bond_009
482cf4b8c3
Allow changing capitalization of usernames
...
Fixes #17195
Adds a regression test
2026-07-03 18:33:10 +02:00
Shadowghost
2b4945217a
Don't throw on logout if session does not exist
2026-07-03 15:58:57 +02:00