Skip to content

Releases: recyclarr/recyclarr

v8.7.1

Choose a tag to compare

@recyclarr recyclarr released this 07 Aug 02:15

Fixed

  • Git resource providers now rebuild the local cache from scratch when it exceeds cache_limit,
    rather than running maintenance that could not shrink legacy caches from before v8.0 (#907)

v8.7.0

Choose a tag to compare

@recyclarr recyclarr released this 15 Jul 20:56

Added

  • Git resource providers automatically clean up accumulated storage when the .git directory
    exceeds a configurable size threshold (cache_limit, default 100MB) (#815)

Security

  • Config: Template manifest entries from resource providers could escape the intended directories
    via path traversal, enabling arbitrary file read and write outside the config directory
    (GHSA-9wh7-8wrf-9x8r)

Fixed

  • Sync: Crash when two custom formats from different providers resolve to the same service custom
    format (e.g. a custom provider CF duplicating a TRaSH guide CF by name)
  • Sync: No warning when an explicitly-added CF group is skipped because the profile is not in its
    compatibility list (#822)
  • CLI: Error messages not visible when stdout is redirected (e.g. piped commands, cron jobs, CI)

v8.6.0

Choose a tag to compare

@recyclarr recyclarr released this 26 Apr 17:32

Added

  • Config: Entry-level score on custom_formats entries sets a default score for every profile
    under assign_scores_to that does not define its own score (#736)
  • Sync: Error when the service type at base_url does not match the configuration type (e.g. Radarr
    config pointed at a Sonarr instance)
  • Notifications: New verbose verbosity level that includes per-item Custom Format change details
    (created/updated/deleted names) in the notification body (#541)

Changed

  • Docker: Cron mode now uses log output instead of the interactive console UI (#779)

Fixed

  • Notifications: Notification body too large when many custom formats or quality profiles are
    adopted on first sync
  • CLI: Garbled output when stdout is redirected (e.g. cron jobs, piped commands) (#779)
  • CLI: Crash when a resource provider error message contains special characters
  • Config: !file references failed with an error when the file contained a trailing newline
  • Config: !file relative paths resolved against the working directory instead of the configuration
    directory

v8.5.1

Choose a tag to compare

@github-actions github-actions released this 19 Mar 02:02

Fixed

  • CLI: config create -t named output files after repo filename instead of template ID, causing
    collisions between Radarr and Sonarr variants (#772)
  • Config: Trailing slash in base_url caused HTTP 401 errors
  • Sync: Quality group rename from TRaSH Guides not applied, causing unnecessary profile updates
    every sync (#774)

v8.5.0

Choose a tag to compare

@recyclarr recyclarr released this 13 Mar 13:02

Added

  • Sync: except_patterns option for reset_unmatched_scores to exclude custom formats by regex
    pattern (#235)

Changed

  • CLI: Show default/optional status for quality profiles in list custom-format-groups --details
    (#725)

Fixed

  • Sync: Unnecessary warning when explicitly selecting default custom formats in CF groups
  • Sync: Media naming status always showed as skipped for Radarr instances (#751)

v8.4.0

Choose a tag to compare

@recyclarr recyclarr released this 06 Mar 01:25

Added

  • CLI: --details flag for list custom-format-groups to show member CFs and their
    required/default/optional status
  • Sync: select_all option for custom format groups to include all CFs regardless of default
    status (#722)

Changed

  • Sync: Custom formats and quality profiles that already exist in the service are now automatically
    replaced by Recyclarr. The state repair --adopt workflow is no longer needed.
  • Docker: The latest tag is no longer published to Docker Hub or GHCR. Use a major version tag
    (e.g. 8) instead to receive updates within a major version.

Deprecated

  • CLI: The state repair command is deprecated and will be removed in a future release. Sync now
    handles all state reconciliation automatically.

Fixed

  • Sync: Unmatched trash_ids in custom_format_groups.skip silently ignored instead of warning
  • Migrate: Cache-to-state migration failure on cross-filesystem moves (e.g. Docker volume mounts)

v8.3.2

Choose a tag to compare

@recyclarr recyclarr released this 25 Feb 22:39

Fixed

  • Sync: Default CF groups now apply to all profile variants sharing the same trash_id (#735)
  • Sync: CF group assign_scores_to now accepts profile names for guide-backed profiles, enabling
    selective assignment to specific profile variants (#734)

v8.3.1

Choose a tag to compare

@recyclarr recyclarr released this 25 Feb 01:01

Fixed

  • CLI: State repair crash when multiple quality profiles share the same trash_id.

v8.3.0

Choose a tag to compare

@recyclarr recyclarr released this 24 Feb 20:37

Added

  • Sync: The same guide-backed quality profile trash_id can now be used multiple times with
    different names, allowing variations of the same profile on a single instance.

Fixed

  • Config: Empty YAML nodes (e.g. custom_formats: with all entries commented out) are now treated
    as no-ops instead of validation errors.
  • CLI: RECYCLARR_APP_DATA deprecation message is now displayed cleanly instead of being buried in
    a stack trace.
  • Config: YAML errors now show specific, actionable messages instead of generic "Exception at line"
    text (#728).
  • Sync: CF group assign_scores_to with name no longer requires the profile to be in
    quality_profiles (#726).
  • Sync: Quality profile names are now updated when the config or guide name differs from the service
    (#729).

v8.2.1

Choose a tag to compare

@recyclarr recyclarr released this 22 Feb 19:19

Fixed

  • Config: Removed properties like replace_existing_custom_formats now produce a deprecation
    warning instead of silently preventing sync.
  • Config: Using the same quality profile trash_id multiple times now produces a validation error
    instead of silently corrupting sync state.
  • Sync: assign_scores_to with trash_id no longer requires the target profile to be in the CF
    group's include list (#726).