Shadowghost
89427af41c
Fixes after rebase
2026-01-18 19:48:46 +01:00
Shadowghost
5996c4afce
Complete LinkedChildren integration and batch DTO optimizations
...
This commit integrates remaining performance changes:
- Add batch user data fetching in DtoService to reduce N+1 queries
- Add GetNextUpEpisodesBatch in TVSeriesManager for efficient batch retrieval
- Update Video/Movie/BoxSet to use LibraryManager for alternate versions
- Transition LinkedChild to use ItemId instead of Path (obsolete Path/LibraryItemId)
- Update providers and controllers for LinkedChildren-based references
- Add NextUpEpisodeBatchResult for batched episode queries
- Integrate IDescendantQueryProvider in SqliteDatabaseProvider
2026-01-18 19:48:46 +01:00
Shadowghost
dfa78590c2
Add OwnerId fix migration and library options event
...
- Add FixIncorrectOwnerIdRelationships migration routine
- Add LibraryOptionsUpdatedEventArgs for library options changes
2026-01-18 19:47:02 +01:00
Shadowghost
912a963a2b
Add folder-aware filter extensions and descendant query provider
...
- Add FolderAwareFilterExtensions for LinkedChildren-based filtering
- Add IDescendantQueryProvider interface for database-specific queries
- Add MatchCriteria classes for folder filtering
- Add SqliteDescendantQueryProvider implementation
2026-01-18 19:47:02 +01:00
Shadowghost
f260585917
Add LinkedChildren data migration routine
...
Migrates existing LinkedChildren data from JSON-serialized Data column
to the new relational LinkedChildren table for boxsets, playlists,
and video alternate versions.
2026-01-18 19:47:02 +01:00
Shadowghost
22d8a00716
Add optimized indexes for UserData and latest items queries
2026-01-18 19:47:02 +01:00
Shadowghost
c350fd0f40
Remove ExtraIds column and use OwnerId relationship for extras
...
- Remove ExtraIds property from BaseItemEntity and BaseItem
- Update RefreshExtras to query via OwnerId instead of cached ExtraIds
- Update GetExtras methods to query database via OwnerIds filter
- Add OwnerIds and ExtraTypes filter support to InternalItemsQuery
- Add filter handling in BaseItemRepository for new query options
- Update HasSpecialFeature/HasTrailer filters to use Extras relationship
- Add CleanupOrphanedExtras migration routine
- Add database migration to drop ExtraIds column
2026-01-18 19:47:02 +01:00
Shadowghost
139d23ddc2
Normalize OwnerId to GUID and add performance indexes
...
- Change OwnerId from string to Guid for proper foreign key relationships
- Add Owner/Extras navigation properties for extras relationship
- Add indexes on OwnerId and ExtraType columns for efficient queries
- Add optimized composite indexes for latest items queries sorted by DateCreated
- Update BaseItemRepository and migration to handle new Guid type
2026-01-18 19:46:37 +01:00
Shadowghost
cc2ccd1bf3
Add LinkedChildren database table for normalized relationships
...
Introduces a new database table to store linked child relationships for
boxsets, playlists, and video alternate versions. This replaces the
JSON-serialized Data column approach with a proper relational structure.
- Add LinkedChildEntity and LinkedChildType enum
- Add entity configuration with proper foreign keys
- Add EF Core migration for SQLite
2026-01-18 19:46:37 +01:00
Shadowghost
1491494bcb
Add early tag check exit and enhance search ordering
...
- BaseItem: Skip GetInheritedTags() call for users without tag
restrictions, improving visibility check performance
- BaseItem: Only fetch parents once in visibility chec
- OrderMapper: Include OriginalTitle in search relevance scoring
for better matching of foreign content
2026-01-18 19:46:37 +01:00
Shadowghost
0b77f97048
Optimize latest items grouping in UserViewManager
...
- Use dictionary lookup for O(1) container grouping instead of O(n) FirstOrDefault searches
- Add optimized path for movies in GetLatestItemList
- Reduce query limit multiplier from 5x to 2x
- Update to collection expression syntax
2026-01-18 19:45:39 +01:00
Shadowghost
d3d4d37e82
Simplify UserDataManager and remove unused private methods
...
Removes unused private GetUserData and GetUserDataInternal methods.
Moves GetUserDataBatch to be an abstract interface method rather than
having a default implementation for clarity.
2026-01-18 19:45:39 +01:00
Shadowghost
1c1447362e
Skip metadata refresh for already-indexed items during validation
...
Optimizes the validation process by checking if items already exist in
the database before attempting to refresh metadata.
2026-01-18 19:45:39 +01:00
Vignesh Skanda
d1c97b8e1d
Fix typos in XML documentation comments ( #15997 )
...
CodeQL / Analyze (csharp) (push) Has been cancelled
OpenAPI / OpenAPI - HEAD (push) Has been cancelled
OpenAPI / OpenAPI - BASE (push) Has been cancelled
OpenAPI / OpenAPI - Difference (push) Has been cancelled
OpenAPI / OpenAPI - Publish Unstable Spec (push) Has been cancelled
OpenAPI / OpenAPI - Publish Stable Spec (push) Has been cancelled
Tests / run-tests (macos-latest) (push) Has been cancelled
Tests / run-tests (ubuntu-latest) (push) Has been cancelled
Tests / run-tests (windows-latest) (push) Has been cancelled
Project Automation / Project board (push) Has been cancelled
Merge Conflict Labeler / Labeling (push) Has been cancelled
Stale Issue Labeler / Check for stale issues (push) Has been cancelled
* Fix typos in XML documentation comments
* Update src/Jellyfin.Networking/Manager/NetworkManager.cs
---------
Co-authored-by: Bond-009 <bond.009@outlook.com >
2026-01-18 18:22:51 +01:00
theguymadmax
fb32709259
Backport pull request #16046 from jellyfin/release-10.11.z
...
CodeQL / Analyze (csharp) (push) Has been cancelled
OpenAPI / OpenAPI - HEAD (push) Has been cancelled
OpenAPI / OpenAPI - BASE (push) Has been cancelled
OpenAPI / OpenAPI - Difference (push) Has been cancelled
OpenAPI / OpenAPI - Publish Unstable Spec (push) Has been cancelled
OpenAPI / OpenAPI - Publish Stable Spec (push) Has been cancelled
Tests / run-tests (macos-latest) (push) Has been cancelled
Tests / run-tests (ubuntu-latest) (push) Has been cancelled
Tests / run-tests (windows-latest) (push) Has been cancelled
Project Automation / Project board (push) Has been cancelled
Merge Conflict Labeler / Labeling (push) Has been cancelled
Stale PR Check / Check PRs with merge conflicts (push) Has been cancelled
Restore weekly refresh for library folder images
Original-merge: 338b480217
Merged-by: cvium <cvium@users.noreply.github.com >
Backported-by: Bond_009 <bond.009@outlook.com >
2026-01-18 11:30:44 -05:00
theguymadmax
c9b7c5bb56
Backport pull request #16029 from jellyfin/release-10.11.z
...
Skip hidden directories and .ignore paths in library monitoring
Original-merge: 2cb7fb52d2
Merged-by: crobibero <cody@robibe.ro >
Backported-by: Bond_009 <bond.009@outlook.com >
2026-01-18 11:30:43 -05:00
theguymadmax
42ff253339
Backport pull request #16020 from jellyfin/release-10.11.z
...
Fix birthplace not saving correctly
Original-merge: 49775b1f6a
Merged-by: crobibero <cody@robibe.ro >
Backported-by: Bond_009 <bond.009@outlook.com >
2026-01-18 11:30:42 -05:00
Shadowghost
c4ffc357a3
Backport pull request #15983 from jellyfin/release-10.11.z
...
Prioritize better matches on search
Original-merge: a518160a6f
Merged-by: crobibero <cody@robibe.ro >
Backported-by: Bond_009 <bond.009@outlook.com >
2026-01-18 11:30:41 -05:00
Collin-Swish
afcaec0a89
Backport pull request #15965 from jellyfin/release-10.11.z
...
Add mblink creation logic to library update endpoint.
Original-merge: 22d593b8e9
Merged-by: crobibero <cody@robibe.ro >
Backported-by: Bond_009 <bond.009@outlook.com >
2026-01-18 11:30:39 -05:00
MarcoCoreDuo
09edca8b7a
Backport pull request #15899 from jellyfin/release-10.11.z
...
Fix watched state not kept on Media replace/rename
Original-merge: 8433b6d8a4
Merged-by: joshuaboniface <joshua@boniface.me >
Backported-by: Bond_009 <bond.009@outlook.com >
2026-01-18 11:30:38 -05:00
Shadowghost
f9fd34b11e
Backport pull request #15872 from jellyfin/release-10.11.z
...
Be more strict about PersonType assignment
Original-merge: b56de6493f
Merged-by: crobibero <cody@robibe.ro >
Backported-by: Bond_009 <bond.009@outlook.com >
2026-01-18 11:30:37 -05:00
theguymadmax
aa666565d1
Backport pull request #15808 from jellyfin/release-10.11.z
...
Trim music artist names
Original-merge: 093cfc3f3b
Merged-by: crobibero <cody@robibe.ro >
Backported-by: Bond_009 <bond.009@outlook.com >
2026-01-18 11:30:36 -05:00
Bond-009
f83e8ee806
Merge pull request #15928 from jellyfin/renovate/asynckeyedlock-8.x
...
Update dependency AsyncKeyedLock to v8
2026-01-18 16:33:39 +01:00
renovate[bot]
84ebed1eb7
Update Microsoft to v5 ( #15486 )
2026-01-18 07:40:09 -07:00
Bond-009
1d7c6af520
Merge pull request #15481 from jellyfin/renovate/major-dotnet-monorepo
...
Update dependency dotnet-ef to v10
2026-01-18 12:20:25 +01:00
Bond-009
226da3b371
Fix zh-CN subtitle language display ( #15947 )
...
The DisplayTitle property was using .NET's CultureInfo.GetCultures(NeutralCultures)
to resolve language display names. Since zh-CN is a specific culture (not neutral),
it would fall back to the base 'zh' code, resulting in generic 'Chinese' instead
of 'Chinese (Simplified)'.
This change adds a LocalizedLanguage property to MediaStream that gets populated
via LocalizationManager.FindLanguageInfo() when streams are retrieved from the
database. This leverages Jellyfin's existing iso6392.txt mappings which correctly
map zh-CN to 'Chinese (Simplified)'.
The same pattern is already used for other localized strings like LocalizedDefault
and LocalizedExternal.
2026-01-18 12:19:31 +01:00
Abitofevrything
8d052a6cb1
Merge pull request #15926 from abitofevrything/feat/accurate_hls_seeking
...
Refactor HLS transcode seeking
2026-01-18 12:17:06 +01:00
Bond-009
b9abf590c5
Merge pull request #15475 from Bond-009/net10
...
Update to .NET 10.0
2026-01-18 12:08:51 +01:00
rimasx
6a9bb060eb
Translated using Weblate (Estonian)
...
Stale PR Check / Check PRs with merge conflicts (push) Has been cancelled
Stale Issue Labeler / Check for stale issues (push) Has been cancelled
CodeQL / Analyze (csharp) (push) Has been cancelled
OpenAPI / OpenAPI - HEAD (push) Has been cancelled
OpenAPI / OpenAPI - BASE (push) Has been cancelled
Tests / run-tests (macos-latest) (push) Has been cancelled
Tests / run-tests (ubuntu-latest) (push) Has been cancelled
Tests / run-tests (windows-latest) (push) Has been cancelled
Project Automation / Project board (push) Has been cancelled
Merge Conflict Labeler / Labeling (push) Has been cancelled
OpenAPI / OpenAPI - Difference (push) Has been cancelled
OpenAPI / OpenAPI - Publish Unstable Spec (push) Has been cancelled
OpenAPI / OpenAPI - Publish Stable Spec (push) Has been cancelled
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/et/
2026-01-15 16:40:52 +00:00
Bond-009
6a7600a8c6
Merge pull request #16002 from jellyfin/renovate/ci-deps
...
Stale PR Check / Check PRs with merge conflicts (push) Has been cancelled
CodeQL / Analyze (csharp) (push) Has been cancelled
OpenAPI / OpenAPI - HEAD (push) Has been cancelled
OpenAPI / OpenAPI - BASE (push) Has been cancelled
OpenAPI / OpenAPI - Difference (push) Has been cancelled
OpenAPI / OpenAPI - Publish Unstable Spec (push) Has been cancelled
OpenAPI / OpenAPI - Publish Stable Spec (push) Has been cancelled
Tests / run-tests (macos-latest) (push) Has been cancelled
Tests / run-tests (ubuntu-latest) (push) Has been cancelled
Tests / run-tests (windows-latest) (push) Has been cancelled
Project Automation / Project board (push) Has been cancelled
Merge Conflict Labeler / Labeling (push) Has been cancelled
Stale Issue Labeler / Check for stale issues (push) Has been cancelled
Update CI dependencies
2026-01-14 21:46:53 +01:00
Bond_009
e12131108e
Update to 10.0.2
2026-01-14 18:59:02 +01:00
Richard Torhan
89b5b99873
Update Actions to .NET 10
2026-01-14 18:55:47 +01:00
Richard Torhan
50dcec1ff5
Fix error CA2016: Forward the 'cancellationToken' parameter to the 'ExtractToDirectoryAsync' method or pass in 'CancellationToken.None' explicitly to indicate intentionally not propagating the token
2026-01-14 18:55:47 +01:00
Richard Torhan
d089537bca
Fix error CA1849: 'ZipFile.ExtractToDirectory(Stream, string, bool)' synchronously blocks. Await 'ZipFile.ExtractToDirectoryAsync(Stream, string, bool, CancellationToken)' instead. ( https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1849 )
2026-01-14 18:55:47 +01:00
Richard Torhan
e70355fbe1
Fix nullable annotation
2026-01-14 18:55:47 +01:00
Richard Torhan
140c459ac3
Fix logger CA2024: Do not use StreamReader.EndOfStream in async methods
2026-01-14 18:55:47 +01:00
Bond_009
098e8c6fed
Replace AlphanumericComparator with new CompareOptions.NumericOrdering
2026-01-14 18:55:47 +01:00
Bond_009
1ba8e2c93c
Fix tests
2026-01-14 18:55:47 +01:00
Bond_009
9e480f6efb
Update to .NET 10.0
2026-01-14 18:55:47 +01:00
renovate[bot]
0892847c2f
Update CI dependencies
2026-01-14 03:34:32 +00:00
renovate[bot]
c464ba83f2
Update dependency dotnet-ef to v10
2026-01-13 18:53:28 +00:00
Samuvel Paul
62e51fd00a
Translated using Weblate (Malayalam)
...
Stale PR Check / Check PRs with merge conflicts (push) Has been cancelled
Stale Issue Labeler / Check for stale issues (push) Has been cancelled
CodeQL / Analyze (csharp) (push) Has been cancelled
OpenAPI / OpenAPI - HEAD (push) Has been cancelled
OpenAPI / OpenAPI - BASE (push) Has been cancelled
Tests / run-tests (macos-latest) (push) Has been cancelled
Tests / run-tests (ubuntu-latest) (push) Has been cancelled
Tests / run-tests (windows-latest) (push) Has been cancelled
Project Automation / Project board (push) Has been cancelled
Merge Conflict Labeler / Labeling (push) Has been cancelled
OpenAPI / OpenAPI - Difference (push) Has been cancelled
OpenAPI / OpenAPI - Publish Unstable Spec (push) Has been cancelled
OpenAPI / OpenAPI - Publish Stable Spec (push) Has been cancelled
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/ml/
2026-01-10 14:36:47 +00:00
theguymadmax
cf9051c277
Backport pull request #15961 from jellyfin/release-10.11.z
...
CodeQL / Analyze (csharp) (push) Has been cancelled
OpenAPI / OpenAPI - HEAD (push) Has been cancelled
OpenAPI / OpenAPI - BASE (push) Has been cancelled
OpenAPI / OpenAPI - Difference (push) Has been cancelled
OpenAPI / OpenAPI - Publish Unstable Spec (push) Has been cancelled
OpenAPI / OpenAPI - Publish Stable Spec (push) Has been cancelled
Tests / run-tests (macos-latest) (push) Has been cancelled
Tests / run-tests (ubuntu-latest) (push) Has been cancelled
Tests / run-tests (windows-latest) (push) Has been cancelled
Project Automation / Project board (push) Has been cancelled
Merge Conflict Labeler / Labeling (push) Has been cancelled
Fix crash when plugin repository has an invalid URL
Original-merge: 317a3a47c3
Merged-by: Bond-009 <bond.009@outlook.com >
Backported-by: Bond_009 <bond.009@outlook.com >
2026-01-10 06:11:27 -05:00
theguymadmax
d270957c82
Backport pull request #15950 from jellyfin/release-10.11.z
...
Revert "always sort season by index number"
Original-merge: 32d2414de0
Merged-by: Bond-009 <bond.009@outlook.com >
Backported-by: Bond_009 <bond.009@outlook.com >
2026-01-10 06:11:26 -05:00
theguymadmax
0ee872999d
Backport pull request #15931 from jellyfin/release-10.11.z
...
Fix tag inheritance for Continue Watching queries
Original-merge: 559e0088e5
Merged-by: crobibero <cody@robibe.ro >
Backported-by: Bond_009 <bond.009@outlook.com >
2026-01-10 06:11:25 -05:00
SilentSkies
c4f4dcc181
Translated using Weblate (Welsh)
...
CodeQL / Analyze (csharp) (push) Has been cancelled
OpenAPI / OpenAPI - HEAD (push) Has been cancelled
OpenAPI / OpenAPI - BASE (push) Has been cancelled
OpenAPI / OpenAPI - Difference (push) Has been cancelled
OpenAPI / OpenAPI - Publish Unstable Spec (push) Has been cancelled
OpenAPI / OpenAPI - Publish Stable Spec (push) Has been cancelled
Tests / run-tests (macos-latest) (push) Has been cancelled
Tests / run-tests (ubuntu-latest) (push) Has been cancelled
Tests / run-tests (windows-latest) (push) Has been cancelled
Project Automation / Project board (push) Has been cancelled
Merge Conflict Labeler / Labeling (push) Has been cancelled
Stale PR Check / Check PRs with merge conflicts (push) Has been cancelled
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/cy/
2026-01-09 23:05:26 +00:00
SilentSkies
22ee5113d0
Translated using Weblate (Welsh)
...
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/cy/
2026-01-09 22:22:37 +00:00
SilentSkies
e233eee07b
Translated using Weblate (Welsh)
...
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/cy/
2026-01-09 22:16:00 +00:00
Bond-009
185849b68a
Merge pull request #15956 from ZeusCraft10/fix/issue-15945-unknown-type-deserialization
...
CodeQL / Analyze (csharp) (push) Has been cancelled
OpenAPI / OpenAPI - HEAD (push) Has been cancelled
OpenAPI / OpenAPI - BASE (push) Has been cancelled
OpenAPI / OpenAPI - Difference (push) Has been cancelled
OpenAPI / OpenAPI - Publish Unstable Spec (push) Has been cancelled
OpenAPI / OpenAPI - Publish Stable Spec (push) Has been cancelled
Tests / run-tests (macos-latest) (push) Has been cancelled
Tests / run-tests (ubuntu-latest) (push) Has been cancelled
Tests / run-tests (windows-latest) (push) Has been cancelled
Project Automation / Project board (push) Has been cancelled
Merge Conflict Labeler / Labeling (push) Has been cancelled
Stale PR Check / Check PRs with merge conflicts (push) Has been cancelled
Stale Issue Labeler / Check for stale issues (push) Has been cancelled
fix: Handle unknown item types gracefully in DeserializeBaseItem
2026-01-09 18:40:59 +01:00
Bond-009
e62b6f8339
Merge pull request #15959 from nyanmisaka/truehd-dts-hls-codec-string
...
Add TrueHD and DTS codes string for HLS
2026-01-09 18:34:48 +01:00