Releases
v3.9.0
Compare
Sorry, something went wrong.
No results found
3.9.0 (2026-11-13)
Features
catalogs: place collections anywhere in the catalog list and give catalogs row options (1ec84c5 )
discover: add rolling Last and Next N days date windows (32efe58 ), closes #882
jellyfin: filter browse lists by official rating and list the ratings in view (a73da93 )
jellyfin: keep playlists through Jellyfin's playlists API (d56b78c )
jellyfin: let a collection folder combine its catalogs interleaved or alternating, and shuffle each page (4e976a0 )
jellyfin: let catalog reads name the household user (#864 ) (bf53c1c )
jellyfin: list a collection folder's catalogs on its folder item (bcc5f72 )
jellyfin: name addon subtitles after their release and language variant (fc0029d )
jellyfin: name addon subtitles after their release and language variant (b553f14 )
jellyfin: send Infuse PNG logos where TMDB only has an SVG (47bd2cd )
jellyfin: sort and filter by tag across the whole library (db7354f )
jellyfin: take a watched title off the server's own watchlist (57f40f9 )
simkl: combined Plan to Watch catalog with release date sort (c8bb07f )
upnext: sort Trakt and Simkl Up Next by latest aired episode (1a7e1e9 )
warmer: warm genres pinned in collections (415c699 )
Bug Fixes
ai: accept OpenRouter presets as the model instead of falling back to another (3b2b7f8 )
anime: give the second part of a split season its own Kitsu and MAL episodes (29b4ddc )
anime: keep the last episode of each part of a split season (21239c1 )
anime: place TMDB episodes on the parts the mapping data puts there when counting skips an OVA or ONA (0c4522b )
anime: share watched marks between a TMDB season split across anime entries and those entries (f5a56c6 )
catalog: keep movies and shows that are not out yet out of More Like This when catalogs hide them (90a3176 ), closes #886
catalogs: apply each source's art settings inside a merged catalog (9271523 )
id-resolver: ask Cinemeta v3 when the live host has no TMDB or TVDB link (a5e3767 )
jellyfin: answer a title's watchlist flag without waiting on a slow tracker (a81437c )
jellyfin: clear a configuration's viewing data when it is deleted (56efda3 )
jellyfin: continue Next Up after the furthest episode of a batch marked, imported or synced at once (de55561 )
jellyfin: drop only what the table feeds, once, before clients are told (ced450d )
jellyfin: find a film held under its other id when syncing tracker watches (3862303 )
jellyfin: keep a randomized catalog's length stable across windows (18d06d0 )
jellyfin: keep the profile age cap on the US rating when showing the local one (3ab0056 )
jellyfin: prefer local certification for Jellyfin metadata (5ab9a3e )
jellyfin: refresh Next Up and series counts as soon as an episode is marked watched or unwatched (1816644 )
jellyfin: refresh Next Up and series counts as soon as an episode is marked watched/unwatched (26bbc7c )
jellyfin: report no plays for an unwatched title and count a watch after an unmark from one (15ae62f )
jellyfin: serve original TMDB art when the client sends no width and the smaller-art setting is off (c5df7b6 )
jellyfin: write remembered art in slices so a large burst is not lost (b511e81 )
mal: fetch discover pages at the catalog page size (5399b24 )
mal: list only the episodes a finished anime has (764d349 )
meta: give an anime with no IMDb id its MAL or Kitsu episode ids under the IMDb id provider (fb8c38c ), closes #905
meta: keep a title's own country's art under the original language fallback (770e0cb )
meta: keep an anime's own id on TVDB metadata until it has an IMDb id to use (0a0b154 )
meta: keep an anime's own id on TVDB metadata until it has an IMDb id to use (bd6c424 )
poster-cache: keep warming images when a full cache holds pictures nothing uses any more (0b8229d )
publicmetadb: page lists from cached blocks and serve watchlists newest first (94b5d33 ), closes #861
publicmetadb: read plays back in the episode numbering they were sent in (99c916c )
recommendations: move recommendation pages with the reason language (884c430 )
recommendations: page recommendation rows by the catalog list page size (c358920 )
recommendations: write each pick's reason in the configuration's language (5b23de2 )
recommendations: write each pick's reason in the configuration's language (27ceb93 )
simkl: take an anime's TVDB id in Up Next from the mapping that placed its next episode (75a0483 )
tmdb: fill runtime-filtered TV discover pages (d6be3cf )
tvdb: use Cinemeta for a series that TVDB lists with no episodes (b6c538a ), closes #860
warmer: warm episode thumbnails from the catalog pages the warmer builds (f02ac02 )
warmer: warm hidden, MAL discover and merged-source catalogs under the keys requests use (b48bbc3 )
watch-tracking: send a TVDB episode filed under another TMDB show to that show (1280993 )
Performance Improvements
catalogs: keep confirmed end-of-list pages for a day (b77663a )
jellyfin: build Next Up once for requests that mean the same list (b6e01ed )
jellyfin: build only the located episode for history, resume and premieres (c55a385 )
jellyfin: build only the requested episode when opening one (afb82ef )
jellyfin: pass over a collection source that cannot hold the filtered type (644694e ), closes #883
jellyfin: remember the ids an episode goes by (f712b55 )
jellyfin: send People in listings only when Fields asks for it (13976ed )
jellyfin: size art asked for by height alone to that height (85eb6f5 )
jellyfin: store new id mappings in batched inserts (#871 ) (de1109a )
trailers: warm addon trailers with catalogs and keep empty answers a day (300a7cb )
You can’t perform that action at this time.