0.19.0 (2026-09-19)
Bug Fixes
- acquisition: hard-stage enforcement, intent lifecycle, and recoverable imports (5853f09)
- arr-compat: add downloadclient, fix lookup prefixes, fix Open in Radarr links (ac18f84)
- arr-compat: implement Radarr/Sonarr exclusion list endpoints (be1a300)
- arr-compat: map language endpoints onto v2 language profiles (df59887)
- arr-compat: parse Sonarr requests tvdbId identity against Cinephage tmdbid (3973217)
- arr-compat: resolve case-insensitive routing + real language/languageprofile data (7f887d8)
- download-clients: align the debrid client form with the app template and clarify torrent-acquisition UX (877606a)
- downloads: persist failed grabs to download_history (573cf6a)
- downloads: stop the infinite import retry loop for permanently-failed items (8d6aad0)
- imports: notify media servers immediately on import completion (74d2131)
- indexer: revert NoName Club indexer name to pass indexer file test (685ac04)
- indexers: bind search-level response.type instead of silently dropping it (fc3b672)
- indexers: honest language parsing, definition-language demoted, enhanced-path language boost (76d31e1)
- language: enforce profile/settings authority and migration guards (5526446)
- library: stop stamping instance default as item profile override at add time (5761b14)
- livetv: harden HLS to TS streaming and segment proxying (cd920ce)
- mediabrowser: surface notify failures (3a9ae32)
- mediabrowser: use the full Authorization header Jellyfin 12.x requires (3647f1d)
- metadata: locale authority, naming parity, EPG display language, and parser coverage (c07a4e7)
- naming: valid localized-title locales, rename parity, canonical {AudioLanguages} (d5aa736)
- repair yaml parsing in indexer validator script (58d560e)
- reports: replace native confirm() with the app's ConfirmationModal and disable Export button when reports are empty (e0ba8f3)
- security: harden SSRF checks against mapped IPv6 and multi-address DNS (a694943)
- settings: allow saving the External URL setting (076a6c7)
- settings: resolve library quality-profile dropdown defaulting and update checkbox styling. (45d80a8)
- smart-lists: honor language_profile_id on auto-added items; drop default-stamping helper (868cd47)
- streaming: file-safe STRM handling, session correctness, and format honesty (4891ce8)
- streaming: keep session playlists uncached, subpath-safe, and Origin-free upstream (3e2188c)
- streaming: normalize HLS URL rewriting and provider URL handling (8c702e2)
- subtitles: full-result manual download, multi-file keys, surfaced provider errors (07a2e94)
- subtitles: override-aware search, provider throttling, and safe retirement (e0d66a3)
- subtitles: refuse symlinked or traversing subtitle paths (de0087f)
- subtitles: resolve effective profile read-only in tasks/import; never persist resolved defaults (95a3906)
- subtitles: route every search path through per-requirement backoff (48936e4)
- test: renumber stray migration references in media-server test (366da58)
- test: smart_lists filters column expects an object (a2be1bd)
- ui: break effect loop in library edit modal profile prefill (8fd2f2f)
- ui: link add-flow no-default-profile warning to the languages settings page (69158a0)
- ui: SSR-render subtitle requirement rows (initialize working copy from props) (e1cfb2c)
- version: stop doubling the v prefix on login and setup (61cddb3)
Features
- acquisition: intent-based acquisition authority + identity enforcement (90dc718)
- api: language profile v2 + language settings + metadata mode/value endpoints (6232afd)
- api: per-item subtitle requirement override endpoints (movies/series/episodes, bulk clear, library-aware effective) (aa5e0a3)
- arr-compat: add movie/series (POST/PUT/DELETE) actions (8076ffd)
- arr-compat: add notification webhook support for Pulsarr/Notifiarr (c9602e3)
- arr-compat: add Radarr/Sonarr API compatibility layer (53e7096)
- arr-compat: add release/push endpoint for autobrr integration (bf3c814)
- db: language profile v2 + language_settings schema definitions (df3952b)
- db: language system reset migration (v2 profiles, language_settings, canonicalization, FKs) (94f59e1)
- db: subtitle requirement override columns + inheritance repair (m143) (2fba8ed)
- db: subtitle search state, upgrade rotation, episode path-base fix (m138) (82354c8)
- indexers: add Blutopia direct API indexer definition (56937af)
- indexers: add Nebulance direct API indexer definition (d0ccf41)
- indexers: add PassThePopcorn direct API indexer definition (3d2a6e3)
- language: add combined profile types and v2 Zod schemas (f0d7202)
- language: add server boundary normalizer with ISO fallback (8def1dc)
- language: effective-profile API with source, library defaults, original-title instance default (m141) (46b4688)
- language: generate checked-in ISO 639-2/3 mapping table (92ce101)
- language: rewrite shared registry with canonical tags and aliases (29a1a14)
- library: add NFO + poster/fanart sidecar files feature and manual sidecar file regeneration task (3f647c2)
- livetv: configurable Stalker portal language; Unicode-aware channel matching (220f837)
- livetv: preserve XMLTV @lang with display-time selection (m140) (66ca882)
- media-server: detect the running product and unify API-key auth (4f8e983)
- media-server: normalized + raw language stats, deterministic multi-source enumeration (m140) (257a1d8)
- metadata: language_settings drives TMDB locale/region; discover origin filter separated (f293eda)
- metadata: language-tagged alternate titles from translations; AniList/MAL title variants persisted (8b60799)
- metadata: persist original_language with lazy+task backfill; URLSearchParams; series-original episode fallback (336ac4a)
- streaming: audio-preference-driven source selection with compatible session reuse (94037f1)
- streaming: default subtitle track from effective language requirements (35d8b98)
- subtitles: atomic downloads, single history write, notify hook, rename-aware paths (dcf2fb8)
- subtitles: effective subtitle requirements resolution (item overrides, cutoff rule, tri-state gate) (f7c6700)
- subtitles: per-requirement acquisition, normalized scores, honest automation reporting (d2239ef)
- subtitles: provider capabilities, settings UI, rate limiting, priority tiers (ba47e59)
- subtitles: reconcile scanner, unambiguous association, unified path base, scan hooks (ca0e3fc)
- subtitles: single requirement matcher with variant/accessibility truth table (3eaced2)
- subtitles: v2 profile service + language settings as single default authority (32f2f1b)
- ui+api: apply library language default to existing items (250f62a)
- ui+api: per-requirement "Search now" from details pages (28f7266)
- ui: apply the prefer-original-title instance default (0026422)
- ui: bulk language profile assignment + override clearing on list pages (779aab2)
- ui: consolidate language settings and profiles into Library Languages tab (6c1e519)
- ui: inheritance UX — library defaults, per-item overrides, effective-profile display (f3b78ef)
- ui: language profile + subtitle customization in add flows (ed27bc1)
- ui: Languages & Localization settings hub (8c2df58)
- ui: minimal v2 adaptation for language profiles, settings, and metadata overrides (db64412)
- ui: minimum-score slider with plain-language help (c171076)
- ui: per-item subtitle requirements editing on details pages (941d4d4)
- ui: profile-delete impact preview (57939d0)
- ui: requirement-aware subtitle badges and terminology pass (47c5985)
- ui: series header aggregate subtitle badge (c83306d)
- validation: subtitle requirements override schema for movies/series/episodes (b8d3f20)