v0.9.3-beta - May 08, 2026
What's New: ✨
- Refresh Plex Trailer Flags Task — New weekly task that caches whether Plex already has a trailer for each media item, eliminating repeated Plex API calls during every download run. See Tasks for details.
- Plex refresh summary log — The Plex connection refresh now logs a single summary line at completion: how many library sections were scanned (vs total), and how many media items were added, updated, or newly linked. Example:
Plex refresh complete for 'My Plex': 2/5 sections scanned, 12 added, 847 updated, 3 newly linked. - Plex section skip detection — Library sections whose root folders don't match any configured path mapping are now detected and skipped up front with a single log line per section, instead of logging one line per media item in that section.
- Docs - Switched docs from
Material for MkdocstoZensicalwhich is a ground-up rebuild of theMAterial for Mkdocsby the same team. Refactored docs to make them work with Zensical.
Bug Fixes: 🐛
- Fixed Tasks page showing stale data after navigating away and back. The tasks data is now refreshed on every visit to the Tasks page, so completed or running tasks are always reflected immediately on return.
- Fixed WebSocket connection and API calls failing when WebUI authentication is disabled. The WebSocket was connecting before the backend had a chance to set the session cookie, causing an immediate 401 rejection with no reconnect. The connection is now established only after the auth check confirms the session cookie is in place.
- Fixed Plex library scan request failing after a trailer is downloaded. Plex's scan endpoint returns
200 text/html(not JSON), which caused aContentTypeErrorwhen the code tried to parse the response as JSON. The scan now checks only the HTTP status code and ignores the response body. Fixes #557. - Fixed the download missing trailers task sleeping between downloads even when a trailer was skipped (e.g. Plex already has a trailer). The sleep (120–660 seconds) is now only applied after an actual download attempt, not on skips. Fixes #558.
Other Changes: ⚡
- Centralised all path-mapping logic (subpath matching, path remapping, trailing-slash normalisation) into a single shared utility module used by all connection managers and the database layer. Fixes silent mapping failures when
path_fromand incoming paths use different separators (e.g. backslash vs forward slash on Windows), false-positive matches against sibling directories, and missing trailing-slash normalisation for Windows UNC paths (\\server\share).