What's Changed
- Release 3.5.0 (#650) (1e63fde) - @plz12345
- Fix: OpenAPI security requirements now reference their scheme definitions (#647) (b0eed5b) - @alextomas955
- Fix: bound media cover processing during refresh (#644) (24c8f90) - @john doe
- Fixed: Studio matching fanned out across every UI-saved studio (#646) (b598c06) - @plz12345
- New: Import list option to tag existing scenes, performers and studios (#645) (0dc1494) - @plz12345
- New: Sorting Blocklist, History and Queue by Quality (#643) (987bcd2) - @plz12345
- New: Add reason to health checks (#642) (bcf0c43) - @plz12345
- Fixed: Missing cover URLs and statistics when fetching a movie by integer id (#641) (6ada82f) - @plz12345
- Fixed: Cache-bust covers by remote URL hash instead of file modification time (#640) (0fc1caa) - @plz12345
- New: Option to reject and blocklist torrents containing blocked extensions at grab time (#639) (d02e030) - @plz12345
- Fixed: Report SkyHook search failures instead of swallowing them (#638) (ec1d240) - @plz12345
- Chore: Upgrade StyleCop.Analyzers to 1.2.0.556 (#637) (ac9a909) - @plz12345
- Chore: Get
tsc --noEmitto zero errors (#636) (6ecf898) - @plz12345 - Chore: Bump Node to 24 LTS (#635) (26467af) - @plz12345
- Chore: Correct stale facts in the deferred upstream dispositions (#634) (4dc17cd) - @plz12345
- chore: Bump the all-nuget-updates group with 2 updates (#633) (6286014) - @plz12345
- chore: Bump the all-nuget-updates group with 2 updates (df762cb) - @dependabot[bot]
- Fixed: Return 409 instead of 500 for import exclusions (#632) (14f76c0) - @plz12345
- New: Add After Date for Performers (#631) (995c27e) - @plz12345
- New: Add scene metadata to the webhook and Notifiarr payloads (#630) (ecdfb14) - @plz12345
- New: Add After Date on the Studios mass edit page (#629) (086b979) - @plz12345
- New: Explain why movie monitoring is unavailable for unlinked Performers and Studios (#628) (c36c578) - @plz12345
- New: Sort and identify scenes on the Import Scenes page (#627) (d8a3e13) - @plz12345
- chore: bump @humanfs/node from 0.16.7 to 0.16.8 (#608) (2f23704) - @plz12345
- chore: bump @humanfs/node from 0.16.7 to 0.16.8 (83a4286) - @dependabot[bot]
- chore: bump actions/create-github-app-token from 2 to 3 (#625) (df0af9c) - @plz12345
- chore: bump the prod-minor group across 1 directory with 6 updates (#626) (4b3f75f) - @dependabot[bot]
- chore: bump the dev-minor group with 3 updates (#623) (78928d1) - @dependabot[bot]
- chore: Bump Selenium.WebDriver.ChromeDriver from 152.0.7977.6400 to 152.0.7977.7500 (#604) (4e58af0) - @dependabot[bot]
- chore: bump actions/create-github-app-token from 2 to 3 (074d0f5) - @dependabot[bot]
- Fixed: Log forging from paths, release quality and request urls (#621) (5a86614) - @plz12345
- Fixed: Disk space usage bar showing NaN% for zero-size mounts (#620) (f8adf58) - @plz12345
- Fixed: -nobrowser ignored when another instance is already running (#619) (e0c1e99) - @plz12345
- Fixed: Movie naming tokens that always rendered empty (#618) (0f417a0) - @plz12345
- Fixed: Quality profile delete guard only warned about import lists (#617) (08c4ece) - @plz12345
- Fixed: Validate quality profile and root folder on performers and studios (#616) (94e0115) - @plz12345
- Fixed: Foreign ID overlapping the Type column in list exclusions (#615) (0ddecd2) - @plz12345
- New: Mark import list exclusions in interactive search (#614) (5249711) - @plz12345
- Fixed: History filter menu missing Disk Scan Imported (#613) (16ab09c) - @plz12345
- Studio works list emptying after an edit is saved (#612) (a1ef3b6) - @plz12345
- Fixed: Performer update broadcast zeroing the movie and scene counts (a7e717c) - @plz12345
- Fixed: Studio works list emptying after an edit is saved (98a7d5e) - @plz12345
- Chore: Sync Radarr 2026-08/09 (#611) (2d4f776) - @plz12345
- New: allow unmonitored discovery items (#594) (d41224e) - @anoncod69
- Chore: Sync Sonarr 2026-07 (#610) (c2efc75) - @plz12345
- Chore: Add a 'defer' disposition for wanted-but-blocked upstream commits (1213961) - @plz12345
- Chore: Record Sonarr 2026-07 dispositions, advance high-water mark (8caa466) - @plz12345
- Fixed: Improve media info in Kodi metadata (8064142) - @plz12345
- Fixed: Parse DTS-HD MA + DTS:X as DTS-X in media info (518c9f3) - @plz12345
- New: Explain the CustomFormat:FormatName naming token (db70af6) - @plz12345
- Fixed: Announce add-implementation cards to screen readers (a094a21) - @plz12345
- Fixed: Announce settings cards to screen readers (f56562f) - @plz12345
- Fixed: Announce select-all and organize-preview checkboxes to screen readers (0fdc39d) - @plz12345
- Fixed: Announce table selection checkboxes to screen readers (6211f76) - @plz12345
- Fixed: Announce icon-only settings actions to screen readers (14379cd) - @plz12345
- Fixed: Status icon for completed tasks without a message (8115ef8) - @bogdan
- New: Statistics Page (#607) (9c01a50) - @plz12345
- New: Custom Filters for Wanted Missing and Cutoff Unmet (#606) (43ca5c0) - @plz12345
- New: Custom Filters for Wanted Missing and Cutoff Unmet (374d4cd) - @plz12345
- Chore: Sync Sonarr 2026-06 (#605) (16097d7) - @plz12345
- Chore: Sync Sonarr 2026-05 (#603) (0950dd6) - @plz12345
- Chore: Record Sonarr 2026-05 dispositions, advance high-water mark (ba82f5d) - @plz12345
- New: Optional end-to-end encryption setting for Pushover (c87b457) - @plz12345
- New: Allow bypassing authentication for Localhost (42128ff) - @plz12345
- New: Allow Actions column to be reordered in tables (4b17be8) - @plz12345
- Fixed: Importing multiple extra files with the same extension (6a3b91d) - @plz12345
- New: Add custom headers to Ntfy.sh connection (280aae5) - @plz12345
- Fixed: Queue removal method offering no explanation when it is disabled (e5b4901) - @plz12345
- New: Send Manual Interaction event for potentially dangerous extensions that aren't failed (e57bd27) - @plz12345
- Chore: Add CancellationToken to HttpClient async methods (579c0b0) - @plz12345
- Fixed: Provider schema spinner replacing content on background refetch (c01ea4f) - @plz12345
- Chore: Defer deserializing the JSON response resource with Lazy (750e939) - @plz12345
- Fixed: Modals on iOS (44935d3) - @plz12345
- Chore: Increase border-radius for medium and large labels (f1e3ecb) - @mark McDowall
- Chore: Sync Sonarr 2026-04 (#602) (7da51d5) - @plz12345
- Chore: Record Sonarr 2026-04 dispositions, advance high-water mark (88e9603) - @plz12345
- Fixed: Fanart not rendering on the details pages (4f07dc6) - @plz12345
- New: Screen reader accessibility improvements (e89c508) - @plz12345
- New: Show the protocol on indexers and download clients (7d63e94) - @plz12345
- Fixed: Scroll position not reset when navigating on small screens (3a84b9f) - @plz12345
- Fixed: Focus returns to the search box after clearing an add lookup (3695712) - @plz12345
- Chore: Add useCombinedRefs hook (4f34cc4) - @plz12345
- Fixed: File browser load failure rendered as plain text (4a82c73) - @plz12345
- Fixed: Blocklist stayed populated after clearing it (1020dd8) - @plz12345
- Fixed: Adding a provider could leave a duplicate in the list (a9a4c86) - @plz12345
- Fixed: Menus with enforceMaxHeight off stayed collapsed (b46bc53) - @plz12345
- Fixed: Don't reject pushed releases with a zero indexer or client id (661a15d) - @plz12345
- New: Ensure housekeeping doesn't run alongside other tasks (e6ef8f3) - @plz12345
- Fixed: Stop tracking downloads once removed from the download client (2d5326e) - @plz12345
- Chore: Sync Sonarr 2026-03 (#601) (ede0b9e) - @plz12345
- Chore: Record Sonarr 2026-03 dispositions, advance high-water mark (0d50805) - @plz12345
- New: Copy external IDs from the movie links tooltip (40470c5) - @plz12345
- Chore: Remove postcss-url (705c5e4) - @plz12345
- Fixed: Resolve the auto theme before the first render (db42ee6) - @plz12345
- Fixed: Consistent diacritic removal from clean titles (c351c6f) - @plz12345
- Fixed: Replace HTML encoded values in release titles (e7cc8af) - @plz12345
- Fix: Only publish config saved events when a value actually changed (9ee773a) - @plz12345
- Chore: Sync Sonarr 2026-02 (#600) (8b15c30) - @plz12345
- Chore: Record Sonarr 2026-02 dispositions, advance high-water mark (6c09749) - @plz12345
- New: Use translations for days of week (3b8704e) - @plz12345
- Chore: Convert getLanguageName to a hook (2f733ff) - @plz12345
- New: Additional logging for recycle bin cleanup (f3e5fc1) - @plz12345
- Fixed: Ensure trailing slash is removed from drive letters when updating Plex Media Server (20af5a0) - @plz12345
- New: Selecting multiple indexers per release profile (#599) (bce1804) - @plz12345
- Chore: Sync Sonarr 2026-01 (#598) (b586a6f) - @plz12345
- Fixed: Strip line breaks from user-supplied values written to the log (1593e40) - @plz12345
- Chore: Record Sonarr 2026-01 dispositions, advance high-water mark (7cd9791) - @plz12345
- Fixed: Add alt text for images and improve tab behaviour (721a2bb) - @plz12345
- Fixed: Add aria-labels to sidebar status (5d38220) - @plz12345
- Fixed: Use theme appropriate colors for image background on initial load (e5a1ebf) - @plz12345
- Fixed: Increase width of Organize and Rename modal (274af57) - @plz12345
- Fixed: Don't parse a scene title containing a dash as the release group (90e3095) - @plz12345
- New: Ability to set command priority when starting command via API (27cdfef) - @plz12345
- New: Return error if invalid indexer or download client provided for pushed releases (c98fcaf) - @plz12345
- Fixed: Plex Server port field renders as a number input (bbd5c29) - @plz12345
- Fixed: Prevent empty path from breaking custom script validation (caa2b5b) - @plz12345
- Fixed: Avoid unique constraints for primary keys in SQLite migrations (c0c00de) - @plz12345
- Chore: Sync Sonarr 2025-12 (#597) (eadcf24) - @plz12345
- Chore: Record Sonarr 2025-12 dispositions, advance high-water mark (8d87ea1) - @plz12345
- Chore: Re-calibrating, not RE-calibrating (74d551e) - @plz12345
- New: Set page background colour based on theme (dd42b23) - @plz12345
- Fixed: Redirection to login page for forms authentication (a91ac14) - @plz12345
- Fixed: Use FluentMigrator's processor id constants (fb16e31) - @plz12345
- Fixed: Don't fail the whole refresh when one movie can't be updated (fedda5f) - @plz12345
- Fixed: Prevent missing media info from failing script import (f97af92) - @plz12345
- Fixed: Prevent paths with multiple slashes causing transfers to fail (c79f083) - @plz12345
- Fixed: Cleanse logged RSS URLs (c6c719c) - @plz12345
- Fixed: Parsing of releases at 1440p (b250df8) - @plz12345
- Chore: Sync Sonarr 2025-11 (#595) (52325d5) - @plz12345
- Chore: Record Sonarr 2025-11 dispositions, advance high-water mark (4a9846b) - @plz12345
- Chore: Cover Flood post-import tag filter and SkyHook path guard (203058f) - @plz12345
- Fixed: Respect delay profile when repacks and propers aren't preferred (9377e45) - @plz12345
- New: Ignore extra files in theme-music and backdrop folders (8361b0a) - @plz12345
- New: Ignore torrents from Flood with matching Post-Import Tags (32bd46d) - @plz12345
- New: Postgres Connection String option (d46045f) - @plz12345
- Don't send full paths to Skyhook for searches (dbddbf5) - @plz12345
- New: Parse 'jap' and 'jpn' as Japanese (5928692) - @plz12345
- Chore: Note that Sonarr's v5 API commits are a no-op here (#593) (5744d98) - @plz12345
- Fix: Gate upstream commits that touch .github/workflows/ (#591) (da2412e) - @plz12345
- Chore: Prefix the tracking issue titles with [v3] (#590) (2a7b835) - @plz12345
- Fix: Stop upstream-watch opening a duplicate tracking issue every run (#589) (9845668) - @plz12345
- New: Option to specify timezone for formatting times in the UI (#588) (fde6c3a) - @plz12345
- Chore: Close out the Sonarr 2025-10 backlog (a74b133) - @plz12345
- New: Option to specify timezone for formatting times in the UI (58c6aa7) - @plz12345
- Chore: Note the merge-commit rule for PRs carrying cherry-picks (#587) (3277e0e) - @plz12345
- Chore: Sync Sonarr 2025-10 (#586) (4b5189c) - @plz12345
- Chore: Track the repo's Claude skills, keep local settings ignored (#585) (c7ff92e) - @plz12345
- Chore: Gate the upstreams' regenerated OpenAPI spec commits (#584) (6f24c21) - @plz12345
- Chore: Roll the Sonarr high-water mark back to the Radarr baseline (#583) (606b810) - @plz12345
- Chore: Paginate the upstream compare and cap the tracking issue body (#582) (cd2967a) - @plz12345
- Fix: Route upstream-watch tracking issues to Whisparr/Whisparr (#581) (d5528dc) - @plz12345
- Fix: RemovedMovieCheck health message source, separator and links (#580) (ecc23b4) - @plz12345
- Chore: Route studio, performer, add-movie, and backup hooks through useApiMutation (#579) (25c40df) - @plz12345
- chore: Bump the all-nuget-updates group with 4 updates (#578) (42258f2) - @dependabot[bot]
- Chore: Retire the API docs workflow and the checked-in spec (#577) (8cd205c) - @plz12345
- New: Watch the upstreams and pick what applies cleanly (#576) (9c536ca) - @plz12345
- Sonarr 2026-08 (2/2): add Allowed Hosts and Trusted Networks (#575) (0d41e07) - @plz12345
- Chore: Record the Sonarr 2026-08 security dispositions (604ab08) - @plz12345
- Fix: Re-run the allowed hosts check when the config file is saved (de1e0ea) - @plz12345
- New: Add Trusted Networks setting (d57e674) - @plz12345
- New: Add hostname validation (437838e) - @plz12345
- Sonarr 2026-08 (1/2): fix the [N-Z-B] release group, qBittorrent conflicts and four accessibility gaps (#574) (87d7014) - @plz12345
- Chore: Record the Sonarr 2026-08 dispositions (124c2cf) - @plz12345
- New: Jump the calendar to a date (a6e78a9) - @plz12345
- Fix: Localize the date and time format examples (8a026ea) - @plz12345
- Fix: Capture restart-required settings when the save is pressed (271caf4) - @plz12345
- Fix: Announce indexer and download client test results (da01ba9) - @plz12345
- Fix: Identify Queue download progress to screen readers (e20a8f3) - @plz12345
- Fix: Expose pages as named main landmarks (085b2b9) - @plz12345
- Fix: Announce sidebar messages to screen readers (6a7f390) - @plz12345
- Fix: Announce clipboard copy results to screen readers (c08bcea) - @plz12345
- Chore: Remove the hostage joke from the loading messages (e50dfcc) - @plz12345
- Chore: Cache free space per path in the grab decision (91e05e3) - @plz12345
- Fix: Include the reason a manual grab was rejected (65b882a) - @plz12345
- Fix: Recycle pooled HTTP connections every 30 minutes (9a09e64) - @plz12345
- Fix: Report a rejected release when qBittorrent already has the torrent (5abae62) - @plz12345
- Fix: Skip [N-Z-B] as release group name (5295ec9) - @plz12345
- Fix: Fail the build when the base version tag has gone missing (#573) (16d209d) - @plz12345
- Sonarr 2026-07: fix Basic auth encoding, split the free space check, and close three keyboard gaps (#572) (8f004b9) - @plz12345
- Chore: Record the Sonarr 2026-07 dispositions (1664265) - @plz12345
- Fix: Announce movie and scene status icons (8aebfc0) - @plz12345
- Fix: Make manual import quality and language cells keyboard accessible (17af424) - @plz12345
- Fix: Make tooltip and popover anchors reachable by keyboard (9f0b251) - @plz12345
- Fix: Separate the free space checks for grabbing and importing (0566b59) - @plz12345
- Fix: Send Basic auth credentials as UTF-8 (bed2e3e) - @plz12345
- Radarr 2026-08: fix Jellyfin, Trakt and Discord connectors, plus zip slip (#571) (5c0a55c) - @plz12345
- Radarr 2026-07: fix custom format condition validation and five smaller bugs (#570) (a774c0b) - @plz12345
- Fix cross-branch build cancellation and previous-release lookup (#569) (234c69d) - @plz12345
- Radarr 2026-06: fix Year custom formats never matching imported files (#568) (bb6b0c0) - @plz12345
- Radarr 2026-05: fix qBittorrent credential caching and HDR stream selection (#567) (aa75dfc) - @plz12345
- Radarr 2026-04: fix SizeSuffix stack overflow, log media info quality title (#566) (8e87481) - @plz12345
- Radarr 2026-03: contain HTTP file mappers, locale-safe URL parsing, Inno Setup URL (#564) (d78b12f) - @plz12345
- Add upstream sync tracking, and fix the poster grid open-in-new-tab URL (#563) (932ec79) - @plz12345
- chore: Bump the prod-minor group across 1 directory with 3 updates (#548) (f6a8979) - @dependabot[bot]
- chore: Bump actions/setup-java from 5 to 6 (#529) (14e8840) - @dependabot[bot]
- chore: Bump the dev-minor group across 1 directory with 3 updates (#562) (9bd1d87) - @dependabot[bot]
- chore: Bump Openur.FFprobeStatic and Sentry (#522) (c48dd83) - @dependabot[bot]
- Drop jQuery and converge on one error type (#560) (3b49bcf) - @plz12345
- Drop the redundant frontend jsconfig (#559) (ba176ee) - @plz12345
- Convert the quality profile items to TypeScript (#558) (ae767cc) - @plz12345
- Convert the table options modal to TypeScript (#557) (3fb66f5) - @plz12345
- Convert the filter builder to TypeScript (#556) (71baab8) - @plz12345
- Convert the one-off components to TypeScript (#555) (509332a) - @plz12345
- Convert the theme palettes to TypeScript (#554) (c033ef9) - @plz12345
- Convert the Props barrel to TypeScript (#553) (fcc67f9) - @plz12345
- Convert the Utilities leaves to TypeScript (#552) (fc12cdf) - @plz12345
- Delete the dead frontend JavaScript (#551) (7e9d3d8) - @plz12345