Summary
In this PR I am still attempting to stabilize the download client behavior: making sure that imports are happening automatically, workflow loops are addressed, connections and monitoring are stable, completed download behaviors work for torrent clients, and categories are filtered. I also made the API documentation a bit cleaner and logical, added max path length for Windows and some UI fixes.
Added
- Added comprehensive Swagger endpoint documentation across the API, including summaries, parameters, remarks, and response details, to make the API much easier to explore and understand.
- Added logical Swagger controller grouping and ordering so API areas are easier to navigate.
- Added support for custom Transmission RPC paths, allowing Listenarr to connect to Transmission setups that do not use the default
/transmission/rpcendpoint. (Closes #282) - Added shared torrent pre-download support through a reusable
TorrentFileDownloaderservice, improving how torrent files and magnet redirects are handled across clients. - Added Windows path length enforcement support in both backend and frontend, including real-time path length warnings in key UI flows.
- Added focused regression coverage for:
- Prowlarr import behavior
- import lifecycle transitions and retry/block behavior
- queue reconciliation and adapter conformance
- download-client category filtering across Transmission, qBittorrent, SABnzbd, and NZBGet (Closes #219)
- import-path resolution across all supported clients
- blocked import retry/unblock workflows
- startup stuck-job reset and recovery behavior
- backend/frontend status mapping consistency
Changed
- Normalized API route casing by replacing implicit controller-token routes with explicit lowercase routes for more predictable URLs.
- Hid internal Prowlarr compatibility endpoints from Swagger while keeping them functional.
- Strengthened completed-download lifecycle handling so transitions bet...
Automated canary build