2.32.0 (2026-08-05)
Features
- add
repackandproperto smart detect attributes (8aab913), closes #1110 - builtins/nab: send daily params (season=YYYY&ep=MM/DD) for date-based shows instead of numeric season/ep (3cf7f84)
- builtins: absolute-episode search for non-anime titles (3cf7f84)
- builtins: add
sceneas spec for title lang map (50c0734) - builtins: drop non-Latin-script titles from search queries (3cf7f84)
- builtins: query scene, year and country variants for same-name series (7e0c268)
- config-profiles: initial implementation (5bcfe34)
- core: add
ambiguousResultsoption to title matching (7e0c268) - core: add
countryandepisodeTitleto smart detect attributes (7e0c268) - core: add
idMatchedto flag results a source identified by external ID (d25c781) - core: add episode title matching filter (7e0c268)
- core: add language inference toggle (7e0c268)
- core: apply year matching strict mode to any request type (7e0c268)
- core: consume
properfield from parser (d0e0a47) - core: detect date-based series and search/match them by episode air date (3cf7f84)
- core: infer stream language from a matched episode title (7e0c268)
- core: passthrough all behaviorHints on stream object (3e13704), closes #1129
- dashboard/usenet: add per page option to library (1bcff8b)
- dashboard: add unblock release button to usenet library (8f98dff)
- dashboard: reorganise settings and improve settings search (2ee6ba3)
- dashboard: unify proxy and usenet stream tracking (059dd28)
- db backed task state (f5496b8)
- debrid: add torrin service (d465e6b), closes #1014
- deduplicator: add
idMatchedto the merged metadata fields (d25c781) - formatter: add
{stream.idMatched}(f1c17fe) - formatter: add
countryandepisodeTitlevariables (7e0c268) - formatter: add
languagecodeandlanguageemojistring/array modifiers (abc2e6c) - formatter: add all metadata fields (23ef02f)
- formatter: add better diagnostics (412a14a)
- formatter: add rich editor and update snippets (5d81720)
- formatter: rewrite template engine with parser, compiler and new syntax (bbf1098)
- frontend/menu-tabs: switch to standard motion tabs (80629e1)
- frontend: redesign formatter preview and include all inputs (96cbf96)
- frontend: shift-click filter list arrows to move to top/bottom (73889af)
- frontend: support drag-and-drop for filter input lists (#1123) (09e6013)
- metadata/skyhook: fall back when a keyed tvdb lookup fails (e1f1681)
- metadata: add episode-facts resolver (numbering-agnostic date-based detection + per-episode air-date resolution via TVDB/TMDB/Cinemeta) (3cf7f84)
- metadata: add Wikidata imdb/tvdb/tmdb id-mapping dataset (IdMappingDataset) (3cf7f84)
- metadata: choose primary title by explicit per-media-type provider priority (3cf7f84)
- metadata: detect same-name series conflicts and origin country (7e0c268)
- metadata: fetch Sonarr scene-mapping title aliases (SceneMappingDataset) (3cf7f84)
- metadata: resolve each field by explicit source priority (e1f1681)
- metadata: resolve episode titles in every language a source provides (7e0c268), closes #1126 #749 #635 #741
- metadata: resolve the years a release may legitimately be tagged with (7e0c268)
- metadata: resolve TVDB English translation instead of the original-language name (3cf7f84)
- metadata: skyhook TVDB metadata fallback (3cf7f84)
- metadata: surface tmdb air dates and tvdb original language (85a4c61)
- nab: add test button and remove apiPath setting (a84432a), closes #1124
- oidc: initial support (c8b725e)
- parser: expose
countryandepisodeTitlefrom release names (7e0c268) - release-blocklist: blocklist compressed/solid/unsupported archives globally (78ed29a)
- release-blocklists: support batch source operations (#1109) (68edbe9)
- sel: add
idMatched()stream expression function (d25c781) - streams: add bandwidth accounting with optional global and per-user limits (059dd28)
- streams: add temporary user and per-title stream blocks (059dd28)
- streams: count the connection limit across proxy and usenet together (059dd28)
- usenet/pool: add negative cache (2eb84eb)
- usenet: add indexer metrics (0331ef5)
- usenet: add short-lived failing stream cache (8b92b2b)
- usenet: repair MKV holes with EBML Void fill instead of raw zeros (faf9542)
- usenet: rework strict damage policy to skip degraded releases (4f0c4aa), closes #1101
- usenet: support failover/hole-filling for undecodable articles (3351417)
Bug Fixes
- add
releaseGroupto default smart detect attributes (45a111b) - allow hiding fields from command pallete (f1d70fa)
- builtins/nab: add numeric param fallback for daily searches (73c0e3b)
- builtins/nab: make guid optional (0954fc8)
- builtins/nab: retain repeated attrs and region-qualified languages (941f5dd), closes #1152
- builtins/newznab: loosen enclosure check (7f9a9b6)
- builtins/newznab: parse prowlarr indexer name field (2ab8d48)
- builtins: always search non-prefixed absolute episode (cbf8761)
- builtins: only use sceneTitles for date based (5c22564)
- cache: add max cached value size (1668652)
- config: add sane min/step values for
usenet.streamingPriority(6900423) - core: discard results whose country tag names a different series (7e0c268)
- core: match series years pointwise instead of across the whole run (7e0c268)
- dashboard/blocklist: disable certain batch actions on local source selection (#1122) (90717a4)
- dashboard/overview: update section links (f8637a5)
- dashboard/streams: fix bandwidth graph, add per-user view, adjust mobile active streams view (01171d2)
- dashboard: fix speed reporting (cbea712)
- debrid: improve error video mapping (670d931)
- debrid: map timeout to downloading video (929aabd)
- disable trakt alias fetching by default and require client ID (ba5d9eb)
- filterer: match date-named releases in seasonEpisodeMatching (3cf7f84)
- fix some typing issues (7c66a13)
- formatter: add render budget (0878f35)
- formatter: make boolean-chain presence independent of operator mix (e072e0a)
- formatter: normalise duration in time modifier to support metadata.runtime (7315281)
- frontend/checkbox: stop calling a stale onValueChange (ad02abe)
- frontend/config-modal: focus password input when initialUuid present (2c1e303)
- frontend/formtter: re-order tabs (3c24ba9)
- frontend: walk through subOptions when redacting/removing preset options (13deafc)
- metadata/cinemeta: check number field for episode too (6672990)
- metadata/cinemeta: parse en dash year ranges (e1f1681)
- metadata/id-mappings: drop conflicting records (4834b70)
- metadata/tmdb: keep primary title the en-US title (29596a2)
- metadata/tvdb: allow nullable averageRuntime (1c7cc83)
- metadata: always fetch skyhook (a8b7184)
- metadata: keep original-language tag on ambiguously-tagged titles (4f7e815)
- metadata: only fetch skyhook for series (e4610b5)
- metadata: resolve episode titles in the request's own numbering (2ca7a08)
- presets/debridioScraper: override parser and set indexer regex to undefined (035d685)
- presets: show addon name in service error (#1117) (8a7cf49)
- release-blocklists: update backbone map (d5629e1)
- server: apply rate limit middleware before user data (a6f850b)
- server: await initialisation tasks on startup (16dbda4)
- serviceWrapper: only use fileIdx when no metadata available (b652c4e)
- some fixes (3f8396b)
- streams: some fixes (67b7dcb)
- usenet: adjust segment timeout settings (9fec385)
- usenet: group unnamed rar volumes by header identity (dfc4428), closes #1113
- usenet: only report playable files and fail imports lacking one (5f91bcb)
- usenet: redirect to static video on byte-serving path errors (9983f87)
- usenet: resolve backing sets from the captured archive layout (55bedba)
- wrapper: ensure timeout is cleared in _request method (fd05cf6)
- wrapper: limit background requests and negative cache manifest failures (0abc7a2)
Performance Improvements
- auth: cache the derived config key per credential (b0bf5f4)
- extend derived key cache ttl (1846d0a)
- memoise title parsing (f9e202a)
- only build pipeline cache key when necessary (82087a8)
- only compile resource regex once (6e2053d)
- usenet: match par2 descriptors during the probe pass (c34cff5)
Reverts
- dashboard: remove proxy and usenet streams page (a313869)