Release 2.5.1
Patch release covering 14 fixes/features merged into dev since 2.5.0.
Highlights
Discovery / Downloads
Download Discography no longer pulls cross-artist tracks. Drops compilation/appears-on contamination, honors watchlist content-type filters (include_remixes/live/acoustic/instrumental). Closes https://github.com/Nezreka/SoulSync/issues/559.
Download Discography skips tracks already in your library. Same library-ownership check the discography backfill repair job already runs. Format-agnostic so Blasphemy mode (FLAC→MP3) doesn't false-miss.
Your Albums download missing opens a selectable modal (was silently failing) + Tidal source resolution.
Tidal Favorite Albums + Artists now show up on Discover (deprecated V2 endpoint → working user-collection endpoints). Same root cause as https://github.com/Nezreka/SoulSync/issues/502.
Import / Auto-Import
Auto-Import falls through to other metadata sources when the primary returns no match. Previously gave up on Bandcamp indie albums that exist on Tidal/Deezer.
Import History "Clear History" button now sweeps stuck "⧗ Processing" zombie rows (server-restart-mid-import survivors), guarded by the worker's active-imports map.
Tags / Metadata
Multi-artist tag settings now actually work — artist_separator, feat_in_title, write_multi_artist. Three settings that were partially or completely unimplemented. Includes Deezer per-track contributors upgrade.
AcoustID Scanner file-tag fallback for legacy compilation tracks where DB track_artist is NULL.
Repair / Diagnostics
Album Completeness "Could not determine album folder" error now names the active media server, shows a sample DB-recorded path, lists every base directory probed, and points at Settings → Library → Music Paths. Closes https://github.com/Nezreka/SoulSync/issues/558 (Navidrome on Docker case).
AudioDB enrichment no longer infinite-retries on stuck tracks. Marks audiodb_match_status=error on direct-ID lookup failure so the queue stops re-picking it. Closes https://github.com/Nezreka/SoulSync/issues/553.
Help & Docs Copy Debug Info now reports the correct music source (was always "unknown") + lists hydrabase, youtube, hifi, and the always-available metadata sources.
Sync
Server Playlist Sync append mode — preserves user-added tracks instead of overwriting them on every sync. Per-sync picker (Replace / Append only) on the playlist modal.
Soulseek
Min delay between slskd searches — new knob smooths burst patterns that trip ISP anti-abuse (Bell Canada case). Default 0 = disabled, preserves prior behavior.
Docker
Container no longer restart-loops on bind-mounted Staging folder + new entrypoint writability audit that surfaces bind-mount permission issues as warnings instead of silent failures.
Files / scope
14 PRs merged into dev since 2.5.0
Version bump: web_server.py:_SOULSYNC_BASE_VERSION → 2.5.1
WHATS_NEW: 2.5.1 block dated May 12, 2026
Docker-publish workflow default version_tag → 2.5.1
Test plan
Full pytest sweep — 2831 passed
python -m ruff check . — clean
Local python web_server.py smoke — version reports 2.5.1