This release includes breaking changes for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
ReleasePort's take
Light signalSoulSync 2.5.1 adds watchlist filtering and library-aware track skipping to Download Discography, while fixing multi-artist tag handling and playlist sync append mode. Routine upgrade; test metadata behavior in dev before rolling out.
Why it matters: Download Discography now respects filters and skips existing tracks. Multi-artist tags, playlist sync preservation, and diagnostics improvements fix operational friction points. Routine upgrade for production.
Summary
AI summaryDownload Discography now respects watchlist filters, skips existing library tracks, and shows a modal on failure.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Security | Medium |
AcoustID Scanner file-tag fallback for legacy compilation tracks where DB track_artist is NULL. AcoustID Scanner file-tag fallback for legacy compilation tracks where DB track_artist is NULL. Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Feature | Medium |
Download Discography skips tracks already in your library. Download Discography skips tracks already in your library. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Your Albums download missing now opens a selectable modal. Your Albums download missing now opens a selectable modal. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Auto-Import falls through to other metadata sources when primary returns no match. Auto-Import falls through to other metadata sources when primary returns no match. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Server Playlist Sync append mode preserves user-added tracks instead of overwriting on every sync. Server Playlist Sync append mode preserves user-added tracks instead of overwriting on every sync. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Multi-artist tag settings now actually work — artist_separator, feat_in_title, write_multi_artist. Multi-artist tag settings now actually work — artist_separator, feat_in_title, write_multi_artist. Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Feature | Medium |
Album Completeness error now names active media server and provides detailed diagnostics. Album Completeness error now names active media server and provides detailed diagnostics. Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Feature | Medium |
Tidal Favorite Albums and Artists now appear on Discover. Tidal Favorite Albums and Artists now appear on Discover. Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Feature | Medium |
AudioDB enrichment no longer infinite-retries on stuck tracks; marks as error to stop re-picking. AudioDB enrichment no longer infinite-retries on stuck tracks; marks as error to stop re-picking. Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Feature | Medium |
Help & Docs Copy Debug Info now reports correct music source and lists available sources. Help & Docs Copy Debug Info now reports correct music source and lists available sources. Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Feature | Medium |
Min delay between Soulseek searches smooths burst patterns to avoid ISP anti-abuse trips. Min delay between Soulseek searches smooths burst patterns to avoid ISP anti-abuse trips. Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Feature | Medium |
Multi‑artist tag settings (artist_separator, feat_in_title, write_multi_artist) are now fully functional, including Deezer per‑track contributors upgrade. Multi‑artist tag settings (artist_separator, feat_in_title, write_multi_artist) are now fully functional, including Deezer per‑track contributors upgrade. Source: granite4.1:30b@2026-05-23-audit Confidence: low |
— |
| Feature | Medium |
Album Completeness error now names the active media server, shows a sample path, lists probed base directories, and points to Library → Music Paths settings. Album Completeness error now names the active media server, shows a sample path, lists probed base directories, and points to Library → Music Paths settings. Source: granite4.1:30b@2026-05-23-audit Confidence: low |
— |
| Feature | Low |
Download Discography no longer pulls cross-artist tracks. Download Discography no longer pulls cross-artist tracks. Source: granite4.1:30b@2026-05-23-audit Confidence: low |
— |
| Performance | Medium |
Auto-Import now attempts alternative metadata sources for unmatched Bandcamp indie albums. Auto-Import now attempts alternative metadata sources for unmatched Bandcamp indie albums. Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Bugfix | Medium |
Clear History button sweeps stuck "⧗ Processing" zombie rows in Import History. Clear History button sweeps stuck "⧗ Processing" zombie rows in Import History. Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Refactor | Medium |
Docker container no longer restart-loops on bind-mounted Staging folder; new entrypoint writability audit surfaces permission issues as warnings. Docker container no longer restart-loops on bind-mounted Staging folder; new entrypoint writability audit surfaces permission issues as warnings. Source: llm_adapter@2026-05-21 Confidence: high |
— |
Full changelog
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
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
Related context
Related tools
Beta — feedback welcome: [email protected]