You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
v2.15.0 - MINOR - Usenet fallback through SABnzbd, faster metadata and reads, and user-reported fixes
When DroppedNeedle can't fetch an NZB itself - an indexer only SABnzbd can reach - it now hands SABnzbd the URL instead of failing the download. Definitive indexer errors still fail fast. (#457) (@daranto)
Fixes
Finamp can stream again: PlaybackInfo responses now carry every source field its parser requires, instead of crashing playback on a missing key. (#438)
A transient stall mid-scan no longer fails the whole run. The scope is re-walked within the shared restart budget, and only a still-wedged walk fails. (#444)
"Retry all failed" now retries only the newest failure per album or track instead of re-dispatching every historical failure.
Library Management previews no longer show a stale banner while still planning, and when inputs do change the preview names the changed files (up to five) plus a count.
Long planning runs no longer fail with a stale-input error just because unrelated catalog maintenance touched other albums: previews are now sealed against their own selected inputs. (#475) (@alceasan)
Files sitting in .recycle no longer resurface as separate albums: the default recycle bin directory is now excluded from scans. (#471) (@andysom25)
Holding a verified edition-conversion candidate for review no longer crashes; it is held as intended. (#469) (@andysom25)
Feishin works with transcoding disabled again: a max bitrate of 0 is treated as unset, per OpenSubsonic. (#468) (@andysom25)
AudioDB toggle labels in settings no longer overlap their descriptions. (#472) (@andysom25)
Newznab releases whose password status is unknown (negative values from aggregators) are no longer rejected as protected; only a positive flag blocks them. (#456) (@daranto)
The cache stats view loads again: the cache service is now built with its response store instead of raising a TypeError. (#443) (@Barrykilby)
Performance
MusicBrainz lookups now pre-resolve merged-entity redirects from a persisted local map instead of re-issuing the same requests, and upstream rate limits now surface as proper 429 responses with Retry-After.
Artist discography warming polls stop after about 60 seconds per mount instead of polling forever when the backend is stuck.
Database reads reuse one SQLite connection per thread instead of re-parsing the schema on every operation. (#470) (@funkypenguin)
Docs & Chores
Routine dependency bumps across the frontend and backend, including FastAPI 0.118.3 to 0.141.1 (route-allowlist tests now read the flattened OpenAPI surface) and eslint 9 to 10.