In rare circumstances outside of Recyclarr, quality profiles become
invalid due to missing required qualities. When this happens, users are
not even able to save the profile using the Sonarr or Radarr UI.
Recyclarr now detects this situation and automatically repairs the
quality profile by re-adding these missing qualities for users.
See: https://github.com/Radarr/Radarr/issues/9738
Setting `NO_COLOR=1` in your environment disables ANSI coloring in
console output. This is primarily useful in scenarios such as scripting
and piping output to files.
See: https://no-color.org/Fixes#223
- Centralize sanitization into a custom Serilog enricher
- More log sites pass the exception object in
- Console output now consistently only prints the mssage, but not the
stack trace.
- File output always outputs the stack trace.
Additionally, there are fixes to several SonarLint issues.
To simplify logic in the system, a child lifetime scope is created for
each distinct configuration instance that is processed by Recyclarr. The
main driver for this is to avoid objects being reused between instances
and thus needing setup & teardown logic to deal with state.
Multiple path fragments are now supported in the built-in
`SubDirectory()` extension method, so there's no longer a need for the
custom `SubDir()` version.
It was previously located in Common, which I'm trying to gradually get
rid of. Supported services are ultimately determined by what is in the
guide, so that seems like the best place for it.
The removal of Sonarr v3 support (commit d45563cf) introduced a bug
resulting in media naming no longer working due to the `:4` key suffix
not being checked anymore.
Additionally, there were some tests under `src/tests/` that needed to be
moved to `tests/`. One of these tests in particular helped identify this
bug. Those tests have been moved to the appropriate location.
This code existed as an attempt to avoid a major version bump as a
result of the .NET 8 upgrade. However, this just adds confusion. The
migration step is now required to perform the directory migration and
the details have been added to the v7.0 upgrade guide.
- `CustomFormatCache` is now a utility class for updating cache entries.
- `CustomFormatCacheData` is now what `CustomFormatCache` used to be
(data object used for serialization).
- `CustomFormatCachePersister` is now specific to custom formats. Future
cache types will have their own persister implementation.