Skip to content

Maintainerr

v3.13.0 Breaking

This release includes 2 breaking changes for platform teams planning a safe upgrade.

Published 6d Media Servers
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

docker jellyfin maintainerr maintenance movies plex
+6 more
plex-media-server radarr seerr sonarr tv-series tv-shows

Affected surfaces

breaking_upgrade deps

ReleasePort's take

Light signal
editorial:auto 6d

Exclusions now behave as either global or per‑group; removing a global exclusion forces re‑adding any per‑group exclusions. Per‑group exclusions apply only within their own group, not globally.

Why it matters: Breaking change alters exclusion logic: global removal requires manual per‑group re‑addition (severity 70). Operators must adjust configurations before upgrade to avoid unintended inclusion/exclusion behavior.

Summary

AI summary

Updates Highlights, Internal, and 3.13.0 across a mixed release.

Changes in this release

Breaking High

Exclusions are now either global or per-group; removing a global exclusion requires re-adding per-group ones.

Exclusions are now either global or per-group; removing a global exclusion requires re-adding per-group ones.

Source: llm_adapter@2026-05-28

Confidence: high

Breaking High

Per-group exclusions now apply only to their own group, not globally.

Per-group exclusions now apply only to their own group, not globally.

Source: llm_adapter@2026-05-28

Confidence: high

Breaking High

Section without an operator is now treated as OR instead of AND; migration not reversible.

Section without an operator is now treated as OR instead of AND; migration not reversible.

Source: llm_adapter@2026-05-28

Confidence: high

Feature Medium

Added metadata fallback for rules when series are absent from Sonarr using the configured provider.

Added metadata fallback for rules when series are absent from Sonarr using the configured provider.

Source: llm_adapter@2026-05-28

Confidence: high

Feature Medium

Introduced Streamystats watchlist rule properties for Jellyfin enabling watchlist‑based rules.

Introduced Streamystats watchlist rule properties for Jellyfin enabling watchlist‑based rules.

Source: llm_adapter@2026-05-28

Confidence: high

Feature Medium

Added Plex rule for "Amount of episodes marked as watched".

Added Plex rule for "Amount of episodes marked as watched".

Source: llm_adapter@2026-05-28

Confidence: high

Dependency Low

Updated 14 dependencies including TypeORM, @tanstack/react-query, and @typescript-eslint/eslint-plugin.

Updated 14 dependencies including TypeORM, @tanstack/react-query, and @typescript-eslint/eslint-plugin.

Source: llm_adapter@2026-05-28

Confidence: high

Performance Low

Improved cache hygiene for external API and metadata responses.

Improved cache hygiene for external API and metadata responses.

Source: llm_adapter@2026-05-28

Confidence: high

Bugfix Medium

Fixed OR rule sections incorrectly evaluated as AND due to operator coercion.

Fixed OR rule sections incorrectly evaluated as AND due to operator coercion.

Source: llm_adapter@2026-05-28

Confidence: high

Bugfix Medium

Prevented Plex auth drop when plex.tv is unreachable.

Prevented Plex auth drop when plex.tv is unreachable.

Source: llm_adapter@2026-05-28

Confidence: high

Full changelog

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, which is what we always meant. 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

  • @stormshaker made their first contribution in https://github.com/Maintainerr/Maintainerr/pull/2972
  • @CampbellMG made their first contribution in https://github.com/Maintainerr/Maintainerr/pull/2975

Breaking Changes

  • Exclusions must be either global (applies everywhere) or per‑group; setting a global exclusion replaces any existing per‑group exclusions for that item, and removing the global exclusion requires re‑adding per‑group ones.
  • Rule sections without an explicit operator now evaluate as OR instead of AND; this change is not reversible and affects all existing rules.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track Maintainerr

Get notified when new releases ship.

Sign up free

About Maintainerr

Looks and smells like Seerr, does the opposite. A library maintenance tool for Plex and Jellyfin.

All releases →

Related context

Earlier breaking changes

  • v3.12.1 Renames `WATCH_HISTORY_CONCURRENCY` to `RULE_EVALUATION_CONCURRENCY` for clarity.
  • v3.11.0 Overlay reset operations are now gated against concurrent processing runs.

Beta — feedback welcome: [email protected]