What's Changed
Features
- Add support for Sportarr by @Sportarr in #696
- Add support for LazyLibrarian by @Flaminel in #625
- Accept recovery codes when disabling or regenerating 2FA by @Flaminel in #736
- Add rate limiting to failed 2FA attempts by @Flaminel in #737
- Add option to send the User-Agent header on all HTTP requests by @Flaminel in #750
- Add option for proactive search to ignore downloads that have strikes by @Flaminel in #760
- Add a warning when the database is newer than the app by @Flaminel in #756
- Add seeding rule option to stop a torrent instead of deleting it by @Flaminel in #769
- Improve seeding rule UX by @Flaminel in #770
- Add support for changing the username by @Flaminel in #775
Bug Fixes
- Fix the disabled save button state on some settings pages by @Flaminel in #733
- Fix slow page loads on iOS caused by the background orbs by @Flaminel in #744
- Fix 2FA code rejected when it has spaces by @Flaminel in #743
- Fix missing download removal dedupe cache key by @Flaminel in #748
- Fix Sonarr and Whisparr v2 episode search commands merging into unrelated commands by @Flaminel in #740
- Fix OIDC discovery client never picking up DNS changes by @Flaminel in #749
- Fix stale health statuses for clients that have been removed by @Flaminel in #762
- Fix app crashing on unknown enum values by @Flaminel in #755
- Fix the dead torrent docs anchor by @Flaminel in #763
- Fix missing event history retention docs by @Flaminel in #764
- Fix torrent hash inconsistent casing by @Flaminel in #771
- Fix Seeker not reporting an episode grab by @Flaminel in #776
- Fix some dead torrents not being processed by @Flaminel in #778
- Fix Windows setup crashing when stopping the existing service by @Flaminel in #781
- Fix Download Cleaner crashing on torrents deleted from qBittorrent mid-run by @Flaminel in #782
- Fix uTorrent including deleted torrents in the seeding list by @Flaminel in #783
- Fix some null checks when qBittorrent returns an empty response by @Flaminel in #784
- Fix PR build triggered by comments by @Flaminel in #796
- Use dedicated response DTOs from the API instead of the db entities by @Flaminel in #793
- Fix local blocklist files not reloading faster by @Flaminel in #800
- Fix orphaned files check not running when client returns no torrents by @Flaminel in #790
Maintenance
- Add m2ts to the blacklist by @Flaminel in #717
- Add PR approval workflow by @Flaminel in #732
- Update docs packages by @Flaminel in #735
- Update frontend packages by @Flaminel in #734
- Collapse Whisparr v2 client code onto Sonarr client code by @Flaminel in #741
- Fix e2e tests shared volume permissions by @Flaminel in #752
- Fix the GitHub sponsor button by @Flaminel in #759
- Add a shared SQLite test database helper by @Flaminel in #754
- Remove the v1 stats endpoint by @Flaminel in #765
- Add e2e tests for the v2 stats endpoint by @Flaminel in #766
- Fix UI e2e tests by @Flaminel in #767
- Fix e2e download client tests running without clients by @Flaminel in #786
- Speed up e2e suites by @Flaminel in #787
- Move NuGet credentials to build secrets by @Flaminel in #788
- Remove unused encryption key by @Flaminel in #792
- Move the SignalR hubs to the API layer by @Flaminel in #794
- Update contributing guide by @Flaminel in #797
- Use TimeProvider to make testing easier by @Flaminel in #799
New Contributors
Full Changelog: v2.10.5...v2.10.6