aboutsummaryrefslogtreecommitdiff
path: root/Jellyfin.Server.Implementations
AgeCommit message (Collapse)Author
4 daysMerge pull request #16980 from ↵Cody Robibero
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)
4 daysfix: remove obsolete codeTheMelmacian
5 daysMerge pull request #17160 from 854562/truncate-language-stringsCody Robibero
Truncate ISO-639-2 language display names at first delimiter
5 daysMerge pull request #17368 from Shadowghost/security-path-traversal-fixesBond-009
Backport and extend path traversal fixes
5 daysApply review suggestionsShadowghost
5 daysMerge pull request #17367 from zerafachris/fix/backup-skip-corrupt-keyframe-dataBond-009
fix: skip corrupt KeyframeData rows during full system backup
5 daysMerge remote-tracking branch 'upstream/master' into ↵Shadowghost
security-path-traversal-fixes # Conflicts: # Jellyfin.Api/Controllers/HlsSegmentController.cs # Jellyfin.Api/Controllers/PluginsController.cs
5 daysMerge pull request #17377 from mbastian77/fix/person-visibility-allowed-tagsCody Robibero
Exempt people from the allowed tags visibility check
5 daysMerge branch 'master' into fix/backup-skip-corrupt-keyframe-dataCody Robibero
5 daysRemove comments about JSON error handlingCody Robibero
Removed comments explaining error handling for malformed JSON during backup.
5 daysMerge pull request #17282 from TowyTowy/fix/13137-clear-profile-imageCody Robibero
Fix profile image being impossible to clear when its in-memory key is temporary
5 daysExtract truncation logic to helper and add tests854562
6 daysMerge pull request #17302 from ElianCodes/fix/lastlogindate-stale-entityBond-009
Keep authenticated user entity in sync with persisted login timestamps
8 daysfix: log corrupt KeyframeData row read failures as errors, not warningszerafachris
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.
8 daysExempt people from the allowed tags visibility checkmbastian77
9 daysHarden remaining path-construction sinks against traversalShadowghost
9 daysSkip corrupt KeyframeData rows during full system backupzerafachris
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>
10 daysFix tie-breaker performanceShadowghost
2026-07-11Keep authenticated user entity in sync with persisted login timestampsElian Van Cutsem
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-09Fix profile image being impossible to clear when its in-memory key is temporaryTowyTowy
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-08Fix max login attemptstheguymadmax
2026-07-05Merge pull request #17228 from Shadowghost/fix-logout-concurrencyCody Robibero
Don't throw on logout if session does not exist
2026-07-05Merge pull request #17044 from Shadowghost/version-model-and-handlingCody Robibero
Fixes for multi version handling
2026-07-03Allow changing capitalization of usernamesBond_009
Fixes #17195 Adds a regression test
2026-07-03Don't throw on logout if session does not existShadowghost
2026-07-02Fix review commentsShadowghost
2026-06-30Use Enumerable.LeftJoin for activity log user queryBreno Alvim
2026-06-27Merge pull request #17182 from Shadowghost/vacuum-noscanCody Robibero
Don't run heavy DB tasks while scan is running
2026-06-26Skip backups whens can is runningShadowghost
2026-06-23Fix SonarCloud warnings854562
2026-06-22Truncate ISO-639-2 language display names at first delimiter854562
Prevents raw ISO-639-2 values (e.g. "Greek, Modern (1453-)" from cluttering the audio and subtitle display names by truncating them at the first comma or semicolon ("Greek"). Applies to MediaStreamRepository and ProbeResultNormalizer.
2026-06-21Fix too many SQL variables in DeleteItem for large batch deletesJoshua M. Boniface
The FixIncorrectOwnerIdRelationships migration deletes all duplicate items in a single DeleteItemsUnsafeFast -> DeleteItem(ids) call. Inside DeleteItem, the owned-extras lookup used a raw HashSet.Contains, which EF inlines as one SQL variable per id and overflows SQLite's variable limit on large libraries. Use WhereOneOrMany so the id set is bound as a single json_each parameter, like the rest of the method, making bulk deletes work for unlimited library sizes.
2026-06-19Surface the played version for resumeShadowghost
2026-06-13Apply ParentId.Value suggestionMatt Teahan
Co-authored-by: Bond-009 <bond.009@outlook.com>
2026-06-12Fix AlbumIds filtering by Name instead of by IdMatt
2026-06-12Fix performanceShadowghost
2026-06-10Merge remote-tracking branch 'upstream/master' into version-model-and-handlingShadowghost
2026-06-09Coalesce alternate-version progress onto primary in resume filterShadowghost
2026-06-07Prefer local alternate versions when deduplicating linked childrenShadowghost
(cherry picked from commit 53f02a04ef7ff8f9d78c5f4e0924a0871b0e96fb)
2026-06-07Collapse version groups to the primary version in queriesShadowghost
2026-06-07Make resume queries version-awareShadowghost
2026-06-07Merge pull request #16121 from Shadowghost/search-rebasedBond-009
Implement search providers
2026-06-07Merge pull request #16945 from Shadowghost/scan-trickplayBond-009
Discover existing trickplay files on scan
2026-06-07Backport pull request #16944 from jellyfin/release-10.11.zJPVenson
Add lockhelper for UserManager Original-merge: 39958ad9e51f83f520803aa9bc5e70e58f3a0836 Merged-by: Bond-009 <bond.009@outlook.com> Backported-by: Bond_009 <bond.009@outlook.com>
2026-05-31Merge remote-tracking branch 'upstream/master' into search-rebasedShadowghost
2026-05-31Fix similarity (#16942)Tim Eisele
Fix similarity
2026-05-30Merge remote-tracking branch 'upstream/master' into search-rebasedShadowghost
# Conflicts: # Emby.Server.Implementations/Library/LibraryManager.cs # Jellyfin.Server.Implementations/Item/PeopleRepository.cs # MediaBrowser.Controller/Library/ILibraryManager.cs # MediaBrowser.Controller/Persistence/IPeopleRepository.cs
2026-05-30only fetch language codes for the requested library when generating filter ↵TheMelmacian
values
2026-05-30Fix inaccessible artist when they exist in multiple librariestheguymadmax
2026-05-29Add a collection API for `Included In` feature (#15516)Sam Xie
Add a collection API for `Included In` feature