Releases
v2.38.0
Compare
Sorry, something went wrong.
No results found
2.38.0 (2026-11-07)
Features
connections: add a count-as-watched setting to each connection card (c25c37a )
episode-order: server-wide TVDB/TMDB default plus a bulk re-map action (9415575 )
filter and sort by my rating (#136 ) (eac0494 ), closes #274
i18n: add translatable UI infrastructure and interface language setting (e8b7ae4 )
i18n: translate account pages and add a signed-out language picker (9c63745 )
i18n: translate browse and detail pages (96e4313 )
i18n: translate shared components (4d9cf1e )
i18n: translate the admin panel (6ac3176 )
i18n: translate the app shell (layout, shared modals, 404, about) (75d04e1 )
i18n: translate the connections page (d245178 )
i18n: translate tracking and social pages (7126a9a )
lists: move the Watchlist sync info below the items, full width (ebe6604 )
lists: show which services sync with the Watchlist, and in which direction (141367b )
native watchlist that every service syncs with (88b7907 )
next-up: add option to follow most recent watch (8e0ee41 )
plex: push playback progress (resume points) to Plex (17d863d )
scrobble: let each connection set the percent that counts as watched (82e1a3b )
settings: show TMDB, TVDB and RPDB keys as collapsible cards like the admin page, with an RPDB icon (09d9fd1 )
stats: add full most played shows and movies pages (53481c6 )
stats: show plays, watch time and last watched date on detail pages (6260c37 )
webhooks: accept optional source field in Jellyfin webhook (ddffd53 ), closes #504
Bug Fixes
episode-order: address review feedback on the default order (c5474b6 ), closes #379
history: show and clear plays from every Media row of the same episode (#527 ) (27542d3 )
i18n: format dates and numbers in the viewer's region (c5f64f3 )
i18n: format ratings and decimals with the UI locale (7d035ba ), closes #409
i18n: format the remaining raw user ratings (ef45606 )
i18n: send Vary: Cookie, Accept-Language on HTML only (83ebcf9 )
i18n: translate the progress sort and Radarr/Sonarr free-space labels (6d3691e ), closes #409
i18n: translate UI strings the extraction missed (3e25243 )
lists: keep the watchlist's name and privacy fixed; update the #497 progress test (8b9fdb5 )
migrations: put the ui_language migration after upstream's head (1166668 )
next-up: apply 'follows latest watch' in the Next Up position query (ab33b6f )
plex: gate the stop-time progress push on the connection's watched threshold (cc6612f )
scrobble: keep 90% as the default, chain the migrations after eodefault (4ef413e )
stats: count only completed watches as plays on detail pages (919c00e )
stremio: decode in Cinemeta order and retry failed lookups (#2 ) (b5f8df4 )
stremio: stop retrying unmatched items after 5 failed syncs (03e0a4e )
sync: size Jellyfin/Emby episode totals by the expanded row count (b3acdf3 ), closes #138
sync: stop sync_items overwriting the job total, the pull already sizes it (#497 ) (66752d4 )
Performance Improvements
i18n: keep the language picker script inline on signed-out pages (1ea3d29 )
i18n: skip the Paraglide middleware on backend proxy requests (1947b25 )
next-up: compute Next Up in the database (e8ca07e )
stats: count most played titles in SQL, and link TVDB-only shows on the full list (0ef9d5d )
tmdb: reuse one keep-alive HTTP client across requests (21ec543 )
You can’t perform that action at this time.