aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2026-09-02Merge pull request #17764 from Shadowghost/fix-tmdb-cache-retentionCody Robibero
Bound the TMDb response cache so a library scan cannot fill it without limit
2026-09-02Merge pull request #17756 from Shadowghost/fix-people-creationCody Robibero
Fix people and artist validator creation and deletion handling
2026-09-02Apply the resize sharpening kernel directly instead of via SKImageFilterAlbert
Since the SkiaSharp 3 update the MatrixConvolution image filter used in SkiaEncoder.ResizeImage no longer has a fast CPU path: on the software rasterizer it takes about 4.5 seconds per megapixel-sized image, which turns every cold image request into a multi-second operation and makes first-time loads of a library view take minutes. Draw the resize without the paint filter and apply the identical 3x3 kernel (same weights, clamped edges, alpha included) directly on the resized pixels instead. This drops a cold 1000x1500 -> 663x995 poster render from ~4.6s to well under a second; the convolution pass itself takes ~86ms. Output is visually unchanged.
2026-09-02avoid correlated item value name queriesFelix Förtsch
2026-09-02test legacy item value filter semanticsFelix Förtsch
2026-09-02Potential fix for pull request findingFelix Förtsch
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-09-02Never treat a manifest container as an audio codec or a direct play targetShadowghost
2026-09-02Add comprehensive logging for post scan tasksShadowghost
2026-09-02Optimize CachesShadowghost
Co-Authored-By: Cody Robibero <cody@robibe.ro>
2026-09-01Merge pull request #17761 from zerafachris/fix/fallback-font-404-missingCody Robibero
fix: return fallback gracefully when requested fallback font is missing
2026-09-01Bound the TMDb response cache so a library scan cannot fill it without limitShadowghost
2026-09-01Bound the directory caches a singleton would otherwise hold for the process ↵Shadowghost
lifetime
2026-09-01Guard the refresh queue so concurrent callers cannot lose the items they queueShadowghost
2026-09-01Treat an item deleted mid-save as a no-op when saving its imagesShadowghost
2026-09-01Keep a media process and its exit state usable by the caller that started itShadowghost
2026-09-01Close a change batch on its own window so a library scan cannot grow it ↵Shadowghost
without bound
2026-09-01Translated using Weblate (Lithuanian)Vitalijus
Translation: Jellyfin/Jellyfin Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/lt/
2026-09-01Translated using Weblate (Lithuanian)Vitalijus
Translation: Jellyfin/Jellyfin Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/lt/
2026-09-01Find dead people and artists by id, not by nameShadowghost
2026-09-01fix: return fallback gracefully when requested fallback font is missingzerafachris
GetFallbackFont() called .First() on the font file sequence, which throws System.InvalidOperationException when no file matched the requested name, causing HTTP 500. Change to .FirstOrDefault() so a missing font falls through to the existing null guard and returns HTTP 200 OK (the empty response is intentional to avoid breaking SubtitlesOctopus). Fixes #17683. Prepared with AI assistance (Claude Code, Anthropic), reviewed for correctness before submission. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-09-01avoid correlated legacy item value filter queriesFelix Förtsch
The legacy filter queries projected ItemValue before grouping tags and genres. EF Core translated that shape into duplicated correlated aggregates, causing multi-minute requests for libraries with many distinct values and blocking unrelated SQLite-backed API calls. Join ItemValuesMap directly to ItemValues before grouping. This preserves type and item filtering, clean-value grouping, minimum-value selection and ordering while producing one aggregate query. Add an in-memory SQLite regression test for result semantics and both SQL shapes.
2026-09-01Fix people validator not creating missing peopleShadowghost
2026-08-31Merge pull request #17743 from Shadowghost/migration-loggingv12.0-rc7Cody Robibero
Add progress logging to data migrations
2026-08-31Merge pull request #17750 from Shadowghost/refresh-people-orderingCody Robibero
Enforce reliable processing order in PeopleValidationTask
2026-08-31Merge pull request #17752 from Shadowghost/fix-linkedchildren-recursiveCody Robibero
Fix recursive handling for LinkedChildren
2026-08-31Merge pull request #17748 from Shadowghost/fix-default-config-12.xCody Robibero
Fix ListenBrainz settings and similar item defaults
2026-08-31Merge pull request #17724 from Shadowghost/fix-by-name-item-countsCody Robibero
Fix item counts on the by-name endpoints
2026-08-31Apply review suggestions, remove Logo on config pageShadowghost
2026-08-31Merge pull request #17729 from Shadowghost/enforce-acl-similar-itemsCody Robibero
Enforce permissions on similar items
2026-08-31Fix recursive handling for LinkedChildrenShadowghost
2026-08-31Enforce reliable processing order in PeopleValidationTaskShadowghost
2026-08-31Add progress logging to data migrationsShadowghost
2026-08-31Enable local similarity providers on libraries upgraded from 10.11Shadowghost
2026-08-31Repair the blank algorithm select and missing logo in ListenBrainz plugin ↵Shadowghost
settings
2026-08-31Default the similar items TMDb cache to 90 daysShadowghost
2026-08-30Probe .idx instead of .sub for external VobSub subtitle language detectionKyle Farnung
External VobSub subtitle pairs (.idx and .sub) were only probed via the bare .sub file. In cases where multiple languages are present, this results in missing language metadata. Fix by detecting the matching .idx file during media info resolution to run ffprobe on that file and skip processing the .sub entirely. ffprobe will automatically find the matching (same directory, case-sensitive base) .sub file and process both. Added regression tests covering idx/sub pairing, unpaired files, cross-directory pairs, and language-flagged filenames. Fixes #17745
2026-08-30Merge pull request #17744 from Shadowghost/fix-masterCody Robibero
Fix formatting and test
2026-08-30Fix formatting and testShadowghost
2026-08-30Merge commit from forkCody Robibero
Fix broken access control in session management
2026-08-30Merge commit from forkCody Robibero
Secure library paths
2026-08-30Merge commit from forkCody Robibero
Prevent SSRF, local file disclosure and DoS via external references in SVG rendering
2026-08-30Merge commit from forkCody Robibero
Fix calling user for playlist items
2026-08-30Merge pull request #17739 from Shadowghost/simplify-search-queryCody Robibero
Filter search candidates by user access in a single query
2026-08-30Merge pull request #17735 from Shadowghost/fix-season-child-countCody Robibero
Count a season's episodes by the season they belong to
2026-08-30Filter search candidates by user access in a single queryShadowghost
2026-08-30Translated using Weblate (Faroese)krvi
Translation: Jellyfin/Jellyfin Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/fo/
2026-08-29Count a season's episodes by the season they belong toShadowghost
2026-08-29Revert "Fix ParentId for episodes in virtual seasons"Shadowghost
This reverts commit 6da85a0aaa87bdd2c81ef2b1936a2e35c1478b76.
2026-08-29Merge pull request #17731 from Shadowghost/anime-id-season-folderCody Robibero
Support anime provider ids on season folders
2026-08-29Merge branch 'jellyfin:master' into BDMV-pgsOggeb1