Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Releases: Maintainerr/Maintainerr

v3.17.1

Choose a tag to compare

@maintainerr-automation maintainerr-automation released this 08 Jul 18:13

3.17.1 (2026-07-08)

Fixes

  • Fix issue where episode files were not deleted after a slow unmonitor PUT request to Sonarr (#3229).

Dependencies

  • Updated 14 dependencies, including @types/node, @typescript-eslint/eslint-plugin, and react-hook-form.

v3.17.0

Choose a tag to compare

@maintainerr-automation maintainerr-automation released this 05 Jul 01:34

3.17.0 (2026-07-05)

Highlights

  • Added new rule properties for Sonarr and Radarr, enabling advanced scoping and rolling window functionality (#3095, #3222, #3223).
  • Fixed issues with library reconciliation and improved error handling for transient errors and unavailable dependencies (#3226).
  • Addressed compatibility issues with older CPUs by ensuring the server continues to boot when certain libraries fail to load (#3184).

Features

  • Added seasonFileRank rule property for Sonarr, enabling season-level rolling windows (#3223).
  • Added movieTitle and movieId rule properties for Radarr, allowing movie-specific scoping (#3222).
  • Added episodeFileRank rule property for Sonarr with seriesTitle and seriesId scoping (#3095).

Fixes

  • Resolved validation error when adding seasons or episodes with hex-GUIDs to collections in Jellyfin (#3225).
  • Improved clarity of rule-builder labels for rank properties (#3224).
  • Fixed misleading messaging for automatic collections when a library is missing (#3203, #3211).
  • Hardened library reconciliation against transient errors and clarified messaging for unavailable dependencies (#3226).
  • Ensured server boots even when sharp library fails to load on pre-x86-64-v2 CPUs (#3184).

Performance

  • Patched vulnerable transitive dependencies, including multer, dompurify, and linkify-it, via resolutions (#3201).

Database migrations

  • Backfilled the operator field in stored rules to ensure explicit values for section and within-section operators, preserving existing behavior.

Internal

  • Addressed a potential code scanning alert related to untrusted checkout in GitHub Actions (#3209).

Dependencies

  • Updated 28 dependencies, including sharp, typescript-eslint, prettier, and eslint.

New Contributors

v3.16.0

Choose a tag to compare

@maintainerr-automation maintainerr-automation released this 28 Jun 07:57

3.16.0 (2026-06-28)

Highlights

  • Sonarr/Radarr tags can now be written from Maintainerr collections and exclusions (#3162).
  • Fixed Seerr rule evaluation for large libraries by implementing bulk-prefetching (#3170).
  • Resolved Sonarr season corruption issue affecting part_of_latest_season rule (#3169).

Features

  • Added functionality to write Sonarr/Radarr tags based on Maintainerr collections and exclusions (#3162).

Fixes

  • Increased Sonarr/Radarr ID lookup timeout to 20 seconds for slow servers (#3181).
  • Fixed Seerr rule evaluation degradation by bulk-prefetching requests (#3170).
  • Prevented mutation of shared Sonarr season arrays, resolving part_of_latest_season rule failures (#3169).
  • Fixed collection log cleaning to avoid TypeORM errors on undefined ruleGroup (#3168).

Database migrations

  • Added tagInArr column to the collection table to support Sonarr/Radarr tagging.

Dependencies

  • Updated 24 dependencies, including prettier, eslint-plugin-jest, @nestjs/typeorm, and @vitejs/plugin-react.

v3.15.3

Choose a tag to compare

@maintainerr-automation maintainerr-automation released this 23 Jun 19:54

3.15.3 (2026-06-23)

Highlights

  • Improved Plex rule evaluation performance by prefetching watch history in bulk, reducing redundant API calls (#3082).
  • Standardized UI action buttons with consistent corner radii, text styles, and theme colors (#3143, #3144).

Fixes

  • Log benign SSE client disconnects without a stack trace (#3145).
  • Initialize the active media server adapter immediately after a switch to prevent false connection-test failures.
  • Dropped BETA tag from notifications and marked download client as BETA.
  • Fixed ExecuteButton corner radius to align with the shared Button component (#3144).
  • Standardized action buttons on the shared Button component and applied consistent theme colors (#3143).
  • Explicitly installed corepack in the dev container for Node 26+ compatibility (#3141).

Performance

  • Bulk-prefetched Plex watch history for rule evaluation, reducing redundant API calls (#3082).

Internal

  • Documented the L1/L2/L3 confinement model for agents in the devbox.
  • Fixed stale workspace path in agent documentation.
  • Simplified devbox workflow to work and push from inside the container.
  • Documented remote devbox workflow.
  • Documented development environment.

Dependencies

  • Updated 1 dependency, including explicit installation of corepack for Node 26+ (#3141).

v3.15.2

Choose a tag to compare

@maintainerr-automation maintainerr-automation released this 20 Jun 13:18

3.15.2 (2026-06-20)

Highlights

  • Fixed transient Sonarr/Radarr lookup failures that could cause incorrect collection item state changes under heavy load (#3125, #3128, #3139).
  • Resolved issues with Jellyfin/Emby collections, ensuring proper handling of empty collections and preventing resurrection of deleted media-server links (#3129, #3134, #3135, #3137).
  • Improved Streamystats watchlist handling by inheriting parent show information at the season/episode level, preventing unintended deletions/unmonitoring (#3127, #3133).

Fixes

  • Fail closed on transient Sonarr/Radarr lookup failures to prevent incorrect collection item state changes (#3125, #3128, #3139).
  • Fixed handling of Jellyfin/Emby collections to heal empty collections, prevent redundant deletions, and avoid resurrecting deleted media-server links (#3129, #3134, #3135, #3137).
  • Corrected Streamystats watchlist handling to inherit parent show information at the season/episode level, ensuring accurate rule evaluations (#3127, #3133).

Dependencies

  • Updated 12 dependencies, including @types/node, sharp, better-sqlite3, and @typescript-eslint/eslint-plugin.

v3.15.1

Choose a tag to compare

@maintainerr-automation maintainerr-automation released this 17 Jun 09:08

3.15.1 (2026-06-17)

Highlights

  • Fixed issue where Emby collections failed to create due to an empty initial item, resolving HTTP 500 errors (#3097).
  • Fixed Radarr exclusion handling to correctly treat "already excluded" 400 responses as success, ensuring items are properly removed from collections (#3096, #3099).
  • Fixed Plex sw_lastWatched getter to return null for never-watched shows, preventing TypeErrors (#3102).

Fixes

  • Fixed Emby collections creation by adding an initial item to avoid HTTP 500 errors (#3097).
  • Skipped remote creation for empty Emby collections to prevent unnecessary HTTP 500 errors (#3098).
  • Fixed Radarr exclusion handling to correctly treat "already excluded" 400 responses as success, avoiding misreporting and ensuring proper exclusion (#3096, #3099).
  • Resolved Plex sw_lastWatched getter issue where it threw TypeErrors for never-watched shows (#3102).
  • Fixed Emby movie/show ID resolution to correctly resolve IDs from the item itself, addressing failures in movie rule actions (#3100).
  • Fixed Plex collections to self-heal when empty collections reject every item addition (#3094).

Performance

  • Increased timeout for OverlayRenderService render tests to avoid CI flake due to slow native cold-start (#3101).

Dependencies

  • Updated 23 dependencies, including nodemailer, @typescript-eslint/parser, axios, @nestjs/typeorm, and sharp.

v3.15.0

Choose a tag to compare

@maintainerr-automation maintainerr-automation released this 09 Jun 16:54

3.15.0 (2026-06-09)

Highlights

  • Added functionality to delete items from the download client and manage collection membership within the media server.
  • Optional integration for qBittorrent to remove completed downloads and optionally their data when Radarr/Sonarr deletes media (#3054).
  • Plex connection fixes: updated connection probe to use /identity and server discovery to use v2 /api/v2/resources (#3063).

Features

  • Added item deletion and collection management features within the media server.
  • Added download client cleanup for Radarr/Sonarr deletions, scoped to qBittorrent (#3054).

Fixes

  • Fixed Plex connection issues: updated connection probe to use /identity and server discovery to use v2 /api/v2/resources (#3063).
  • Fixed overlay rendering issues: uniform style scaling, corrected rotation offsets, and improved font register logging (#3057).
  • Improved metadata ID handling: media-server IDs are now authoritative unless corroborated by provider data (#3011).

Database migrations

  • Added a new temporary_settings table with fields for download client configuration, including download_client_url, download_client_username, download_client_password, download_client_delete_data, and download_client_fallback_ratio.

Internal

  • Removed unused Plex API helpers: getWatchlist and getDiscoverDataUserState (#3064).

Dependencies

  • Updated 8 dependencies, including typescript-eslint, @types/node, and react-hook-form.

v3.14.0

Choose a tag to compare

@maintainerr-automation maintainerr-automation released this 05 Jun 23:09

3.14.0 (2026-06-05)

Highlights

  • Added /api/health endpoints for liveness and readiness checks, including database health status (GET /api/health, GET /api/health/live, GET /api/health/ready) (#3029).
  • Collection handler now skips media currently being streamed to avoid deleting or modifying active content (#3027).
  • Fixed issue where saving log settings would override an active LOG_LEVEL environment variable (#3053).

Breaking Changes

  • None.

Features

  • Added support for LOG_LEVEL environment variable to override persisted log settings on startup (#3030).

Fixes

  • Fixed issue where saving log settings would override an active LOG_LEVEL environment variable (#3053).
  • Fixed webhook agent to validate URL schemes before posting, preventing potential SSRF vulnerabilities (#3031).
  • Fixed rule group saving to preserve collection links and visibility on partial updates (#3045, #3046).
  • Fixed issue with finding manual collections across libraries on Jellyfin/Emby servers (#3042).
  • Fixed issue where deleted media remained stuck in Jellyfin/Emby collections and caused repeated processing errors (#3023, #3024, #3040).
  • Fixed issue where Seerr requests for episode rules incorrectly deleted entire season requests (#3015).
  • Fixed issue where Radarr bulk exclusions were not used, causing duplicate 400 errors (#3012).
  • Improved failure notifications for collection handling to include the name of the failing collection (#3013).

Performance

  • None.

Database migrations

  • None.

Internal

  • Updated README with refreshed features, health endpoint documentation, deployment examples, and credits (#3048).
  • Clarified that yarn command-not-found errors indicate a stale node_modules directory.

Dependencies

  • Updated 20 dependencies, including @typescript-eslint/parser, react-router-dom, axios, and vite.

New Contributors

  • @Arvuno made their first contribution in #3029

v3.13.0

Choose a tag to compare

@maintainerr-automation maintainerr-automation released this 28 May 14:01

3.13.0 (2026-05-28)

Global vs scoped exclusions

Exclusions are now either global (everywhere) or per-group — not both. Setting a global exclusion replaces any per-group ones for that item. If you later remove the global exclusion, you'll need to re-add the per-group ones.

Per-group exclusions stay in their group

Per-group exclusions used to hide an item in every group. They now apply only to the group you set them in, so items you excluded in one group may start showing up in others. Existing exclusions aren't auto-converted — to exclude something everywhere, use a global exclusion.

Rule section operators

A section without an operator used to be treated as AND; it's now OR instead. Existing rules are migrated automatically so they keep evaluating the same way.

If a multi-section rule wasn't matching as you expected, this is probably why. The operator between sections is now visible in the rule editor, and new rules need an explicit operator on every section after the first.

This migration is not reversible.

Highlights

  • Added metadata fallback for rules when series are absent from Sonarr, using the configured metadata provider (#3002).
  • Introduced Streamystats watchlist rule properties for Jellyfin, enabling watchlist-based rules (#2977).
  • Fixed OR rule sections incorrectly evaluated as AND due to operator coercion, ensuring accurate rule logic (#2971).
  • Scoped exclusions to their rule group under TypeORM 1.0, resolving latent bugs (#2991).

Features

  • Added Plex rule for "Amount of episodes marked as watched" (#2975).
  • Added Streamystats watchlist rule properties for Jellyfin (#2977).
  • Adopted Tailwind CSS v4 and implemented related UI enhancements.

Fixes

  • Fixed OR rule sections incorrectly evaluated as AND due to operator coercion (#2971).
  • Prevented Plex auth drop when plex.tv is unreachable (#2996).
  • Improved rule import robustness for YAML and community rules across media servers (#2986, #2976).
  • Fixed HTTP 414 errors when creating large collections by batching item additions (#3001).
  • Resolved navigation issues in the UI for global-exclusion warning links.
  • Omitted empty Discord embed thumbnails to prevent webhook failures.
  • Fixed styling and crash issues in Test Media search and unary-rule comparisons (#2978).

Performance

  • Improved cache hygiene for external API and metadata responses (#2972).

Database migrations

  • Backfilled the operator field in stored rules where it was previously null, ensuring explicit AND/OR values for accurate rule evaluation.

Internal

  • Refactored shared media getter rule helpers to reduce duplication (#2922).
  • Unified form field styling into a single source for consistency.

Dependencies

  • Updated 14 dependencies, including notable packages like typeorm, @tanstack/react-query, and @typescript-eslint/eslint-plugin.

New Contributors

v3.12.1

Choose a tag to compare

@maintainerr-automation maintainerr-automation released this 23 May 21:26

Highlights

  • Added ruleEvaluationFailed field to collection media, enabling tracking of rule evaluation failures.
  • Improved rule evaluation performance by batching operand reads and reducing concurrency to prevent backend overload.
  • Fixed Emby overlay issues where posters were not restored after media left a collection.

Features

  • Enhanced error handling for Emby image uploads by attaching response body to thrown errors for better debugging.

Fixes

  • Scoped Emby itemExists checks to user context to resolve overlay revert issues.
  • Corrected overlay notification titles for Emby/Jellyfin movies.
  • Fixed collection rule group entity type in the server.
  • Provided production peer dependencies for the UI.

Performance

  • Reduced RULE_EVALUATION_CONCURRENCY from 16 to 8 to prevent backend overload.
  • Batched rule operand reads with bounded concurrency for improved performance.
  • Deduplicated uncached Sonarr/Radarr identity lookups during rule evaluation.

Database migrations

  • Added ruleEvaluationFailed column to the collection_media table to track rule evaluation failures.

Internal

  • Removed unused forwardRef imports in the server module after settings module refactor.
  • Renamed settings services and fields to better reflect their roles.
  • Decoupled settings service into a data store and coordinator for improved modularity.
  • Added tests for ArrLookupCache deduplication and eviction on failure.

Dependencies

  • Updated 13 dependencies, including nodemailer, glob, qs, postcss, and vite.