Skip to content

SoulSync

v2.5.4 Security

This release includes 1 security fix for security teams reviewing exposed deployments.

Published 18d Media Servers
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →
This release patches 1 known CVE

Affected surfaces

auth

ReleasePort's take

Light signal
editorial:auto 9d

Version 2.5.4 of SoulSync adds the _redact_url_secrets helper to strip Plex, Jellyfin, and Navidrome tokens from app.log.

Why it matters: Prevents sensitive third‑party token leakage in logs; adopt immediately for any environment logging these credentials.

Summary

AI summary

Security fix prevents Plex/Jellyfin/Navidrome token leakage in logs.

Changes in this release

Security Medium

_redact_url_secrets helper removes Plex/Jellyfin/Navidrome tokens from app.log.

_redact_url_secrets helper removes Plex/Jellyfin/Navidrome tokens from app.log.

Source: llm_adapter@2026-05-21

Confidence: low

Feature Medium

T2Tunes-backed Amazon Music download source with FLAC, Opus, and Dolby Atmos fallback.

T2Tunes-backed Amazon Music download source with FLAC, Opus, and Dolby Atmos fallback.

Source: llm_adapter@2026-05-21

Confidence: high

Feature Medium

Full ASIN enrichment worker for artists, albums, and tracks in Amazon Music.

Full ASIN enrichment worker for artists, albums, and tracks in Amazon Music.

Source: llm_adapter@2026-05-21

Confidence: high

Feature Medium

Library badges added to artist cards, hero section, and enhanced view.

Library badges added to artist cards, hero section, and enhanced view.

Source: llm_adapter@2026-05-21

Confidence: high

Feature Medium

Match status chips with click-to-rematch functionality for Amazon Music.

Match status chips with click-to-rematch functionality for Amazon Music.

Source: llm_adapter@2026-05-21

Confidence: high

Feature Medium

ASINs in Amazon Music link to music.amazon.com.

ASINs in Amazon Music link to music.amazon.com.

Source: llm_adapter@2026-05-21

Confidence: high

Feature Medium

Scoped Amazon download source and enricher correctly, not a metadata source.

Scoped Amazon download source and enricher correctly, not a metadata source.

Source: llm_adapter@2026-05-21

Confidence: high

Feature Medium

New automation action syncs discover-page playlists to active media server.

New automation action syncs discover-page playlists to active media server.

Source: llm_adapter@2026-05-21

Confidence: high

Feature Medium

Automation builder includes per-kind/variant multi-select picker for playlist config.

Automation builder includes per-kind/variant multi-select picker for playlist config.

Source: llm_adapter@2026-05-21

Confidence: high

Feature Medium

All 8 discover-page playlist types unified under one storage layer with stable identity and per-playlist configuration.

All 8 discover-page playlist types unified under one storage layer with stable identity and per-playlist configuration.

Source: llm_adapter@2026-05-21

Confidence: high

Feature Medium

REST endpoints for personalized playlists introduced at `/api/personalized/*`.

REST endpoints for personalized playlists introduced at `/api/personalized/*`.

Source: llm_adapter@2026-05-21

Confidence: high

Performance Medium

Dashboard Bento redesign with responsive breakpoints and cursor-following accent blob.

Dashboard Bento redesign with responsive breakpoints and cursor-following accent blob.

Source: llm_adapter@2026-05-21

Confidence: low

Bugfix Medium

Fixed Daily Mix to return honest discovery-only results instead of empty library half.

Fixed Daily Mix to return honest discovery-only results instead of empty library half.

Source: llm_adapter@2026-05-21

Confidence: high

Bugfix Medium

AcoustID multi-candidate suppression, duration guard, and multi-value retag implemented (#587).

AcoustID multi-candidate suppression, duration guard, and multi-value retag implemented (#587).

Source: llm_adapter@2026-05-21

Confidence: high

Bugfix Medium

Resolved live recording false-quarantine issue (#607).

Resolved live recording false-quarantine issue (#607).

Source: llm_adapter@2026-05-21

Confidence: high

Bugfix Medium

Fixed quarantine modal apostrophe XSS vulnerability (#608).

Fixed quarantine modal apostrophe XSS vulnerability (#608).

Source: llm_adapter@2026-05-21

Confidence: low

Bugfix Medium

Removed LYRICS tag during retag process.

Removed LYRICS tag during retag process.

Source: llm_adapter@2026-05-21

Confidence: low

Bugfix Medium

Corrected track number writing from "6/0" to proper format.

Corrected track number writing from "6/0" to proper format.

Source: llm_adapter@2026-05-21

Confidence: low

Bugfix Medium

Fixed dashboard activity display from "NaNmo ago" to accurate timing.

Fixed dashboard activity display from "NaNmo ago" to accurate timing.

Source: llm_adapter@2026-05-21

Confidence: low

Refactor Medium

Automation action handlers extracted from `web_server.py` into `core/automation/handlers/`.

Automation action handlers extracted from `web_server.py` into `core/automation/handlers/`.

Source: llm_adapter@2026-05-21

Confidence: high

Refactor Medium

_pipeline_shared logic moved to eliminate duplication between mirrored and personalized pipelines.

_pipeline_shared logic moved to eliminate duplication between mirrored and personalized pipelines.

Source: llm_adapter@2026-05-21

Confidence: high

Refactor Medium

Moved log calls for tokens to DEBUG level using _redact_url_secrets.

Moved log calls for tokens to DEBUG level using _redact_url_secrets.

Source: llm_adapter@2026-05-21

Confidence: low

Refactor Medium

Reorganized embedded-tag mode for clarity (#592).

Reorganized embedded-tag mode for clarity (#592).

Source: llm_adapter@2026-05-21

Confidence: low

Full changelog

v2.5.4 Release — dev → main

Summary

  • Amazon Music — T2Tunes-backed download source (24-bit/48kHz FLAC primary, Opus 320kbps / Dolby Atmos EAC3 fallback). Full enrichment worker with ASIN matching for artists/albums/tracks, artist thumbnail backfill, enrichment orb + rate-limit gauge on dashboard. Library badges on artist cards, hero section, and enhanced view. Match status chips with click-to-rematch. Album/track ASINs link to music.amazon.com. Scoped correctly as download source + enricher only — not a metadata source (T2Tunes has no discography API).

  • Personalized Playlist Pipeline — new automation action that syncs discover-page playlists (Hidden Gems, Time Machine, Fresh Tape, The Archives, Seasonal Mix, Daily Mix, etc.) to your active media server and queues missing tracks for download. Auto-refreshes stale snapshots after watchlist scan completes. Configurable per-kind/variant multi-select picker in the automation builder.

  • Personalized Playlists Overhaul — all 8 discover-page playlist types unified under one storage layer. Playlists now have stable identity, persistent track snapshots, explicit refresh, and per-playlist config (limit, diversity caps, popularity bounds, recency window). REST endpoints under /api/personalized/*. Daily Mix fixed (was returning empty library half, now honestly discovery-only).

  • Dashboard Bento Redesign — full bento grid layout with responsive breakpoints (3-col → 2-col → single). Cursor-following accent blob with lag + pulse. Cards darkened for contrast. Respects "reduce visual effects" setting.

  • Automation Handlers Extraction — all automation action handlers lifted out of web_server.py into core/automation/handlers/. Shared pipeline sync/wishlist logic in _pipeline_shared eliminates duplication between mirrored and personalized pipelines.

  • Security: Token Leak Fixes — Plex/Jellyfin/Navidrome tokens were landing in app.log via artwork URLs and artist-endpoint debug lines. Fixed with _redact_url_secrets helper (covers both plain and URL-encoded forms) + moved log calls to DEBUG. Wipe existing app.log if affected.

  • Bug fixes — AcoustID multi-candidate suppression + duration guard + multi-value retag (#587), quarantine modal apostrophe XSS (#608), live recording false-quarantine (#607), reorganize embedded-tag mode (#592), retag stripping LYRICS tag, track number writing "6/0", dashboard activity "NaNmo ago".

Changed files (highlights)

| Area | Files |
|---|---|
| Amazon download + metadata | core/amazon_client.py, core/amazon_download_client.py |
| Amazon enrichment | core/amazon_worker.py |
| Amazon UI | webui/static/library.js, api-monitor.js, enrichment.js, worker-orbs.js, core.js, style.css, amazon.svg |
| Personalized playlists | core/personalized/generators/*, core/personalized/manager.py |
| Personalized pipeline | core/automation/handlers/_pipeline_shared.py, handlers/personalized_pipeline.py |
| Automation extraction | core/automation/handlers/* |
| Dashboard | webui/static/api-monitor.js, style.css |
| Security | web_server.py (_redact_url_secrets), core/discovery/sync.py |
| AcoustID | core/matching/acoustid_candidates.py, core/matching/version_mismatch.py, core/tag_writer.py |
| Reorganize | core/library/reorganize_tag_source.py |
| DB | database/music_database.py (amazon_id columns, watchlist_artists.amazon_artist_id) |
| Registry | core/metadata/registry.py (Amazon removed from metadata source priority) |

Security Fixes

  • CVE‑2025‑XXXXX — Plex/Jellyfin/Navidrome tokens no longer appear in app.log; fixed via _redact_url_secrets helper and log level change. Existing logs should be wiped.

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

Track SoulSync

Get notified when new releases ship.

Sign up free

About SoulSync

Automated Music Discovery and Collection Manager

All releases →

Beta — feedback welcome: [email protected]