Release 0.3.4: Jellyfin 12 stable support and audit fixes

Harden proxy permissions and cache behavior, streamline metadata fetching, remove obsolete rules, and validate the stable SDK with expanded regression coverage. Document backup format changes.
This commit is contained in:
ajp_anton
2026-09-09 01:18:43 +00:00
parent 8f7462fd3c
commit 096c6be8c7
50 changed files with 2126 additions and 1784 deletions
+19 -4
View File
@@ -4,7 +4,19 @@ Multilang is a Jellyfin plugin that lets different users see different metadata
languages without changing Jellyfin's stored metadata.
The `main` branch is built for the Jellyfin 10.11.x stable series. The
`jellyfin12` branch targets Jellyfin 12 and is currently early beta software.
`jellyfin12` branch targets Jellyfin 12.0 stable on Linux x64. The plugin remains
beta software.
## Upgrading to 0.2.5 or 0.3.4
Existing plugin data is upgraded automatically. Make fresh database exports after
upgrading: older translation-database exports cannot be imported by these versions.
User-settings-only exports keep their existing format. Obsolete text-based rules
are no longer supported; current classification rules are unaffected.
The first missing-data scan records the new per-language and per-provider fetch
state, so it may fetch more than subsequent scans. Later scans retry only missing
data when due and repair downloaded artwork without refetching its metadata.
## What It Does
@@ -87,9 +99,12 @@ the UI.
Some requests can be slow because Multilang may need to ask Jellyfin for a
larger list than the UI will finally display. This is needed so the plugin can
translate, filter, sort, and slice the list using the user's own rules.
Multilang caches slow transformed responses for a configurable time and also
uses a very short burst cache for repeated requests during navigation. Cache
entries are invalidated when affected items are refreshed.
Multilang caches Jellyfin's responses for a configurable time, sharing the fetched
list across pages and sort orders. Current translations and user rules are applied
each time that list is used. Simultaneous requests share an in-progress fetch, and
a short burst cache also handles fast repeated requests. Library, permission and
watched-state changes invalidate affected caches. Movie and show libraries can
optionally be fetched in advance when a user becomes active.
## Original-Language Support