Restructure version modal and What's New for v2.31

SoulSync Standalone Library is now the first section in both the
version modal and What's New popup. Auto-Import section updated with
all improvements (recursive scan, singles, tag preference, AcoustID).
New Downloads & Soulseek section groups download-related improvements.
Recent Fixes cleaned up — feature items moved to proper sections.
This commit is contained in:
Broque Thomas 2026-04-18 01:28:19 -07:00
parent b78616431a
commit 70005968b6
2 changed files with 36 additions and 16 deletions

View file

@ -22486,15 +22486,31 @@ def get_version_info():
"title": "What's New in SoulSync",
"subtitle": f"Version {SOULSYNC_VERSION} — Latest Changes",
"sections": [
{
"title": "SoulSync Standalone Library",
"description": "Use SoulSync without Plex, Jellyfin, or Navidrome — manage your library directly",
"features": [
"• New 'Standalone' server option in Settings → Connections",
"• Downloads and imports write artist/album/track to the library database immediately",
"• Pre-populated enrichment IDs (Spotify, Deezer, MusicBrainz) — workers skip re-discovery",
"• Deep scan finds untracked files in Transfer → moves to Staging for processing",
"• Deep scan removes stale DB records when files are deleted from disk",
"• Sync page and sync buttons hidden automatically in standalone mode",
"• Full library page, artist detail, discography, and enhanced view all work standalone",
],
"usage_note": "Go to Settings → Connections and click the 'Standalone' button. No media server needed."
},
{
"title": "Auto-Import",
"description": "Background staging folder watcher that automatically identifies and imports music into your library",
"features": [
"• Three identification strategies: audio file tags, folder name parsing, and AcoustID fingerprinting",
"• Confidence-gated processing: 90%+ auto-imports, 70-90% queued for review, below 70% left for manual",
"• Smart matching with weighted algorithm — title, artist, track number, and album signals",
"• Approve or reject pending imports from the Import page Auto tab",
"• Content hash-based deduplication prevents reprocessing the same folder",
"• Recursive scan — any folder depth (Artist/Album/tracks, Album/tracks, loose files)",
"• Single file support — loose audio files identified via tags, filename, or AcoustID",
"• Tag-based identification preferred over weak metadata matches (85% confidence for tagged files)",
"• AcoustID fingerprinting fallback for untagged or ambiguous files",
"• Stats bar, filter pills (All/Review/Imported/Failed), Scan Now, Approve All, Clear History",
"• Expandable track match details with per-track confidence scores",
"• Race condition fix prevents duplicate processing during multi-track albums",
],
"usage_note": "Enable on the Import page Auto tab. Set your staging folder in Settings."
},
@ -22558,6 +22574,20 @@ def get_version_info():
"• Spotify API no longer called when Deezer/iTunes is the configured primary source",
],
},
{
"title": "Downloads & Soulseek Improvements",
"description": "Better download management, search accuracy, and queue control",
"features": [
"• Downloads batch panel — color-coded batch cards with progress, cancel, expand, and 7-day history",
"• Soulseek search queries now include album name — reduces wrong-artist downloads",
"• Reject Soulseek results from Various Artists/VA/Unknown Artist folders",
"• Clearing wishlist now cancels the active wishlist download batch",
"• Album delete with 'Delete Files Too' option on enhanced library page",
"• Fix download modal freezing mid-download — M3U auto-save was exhausting server threads",
"• Fix Unknown Artist when adding playlist tracks to wishlist",
"• Fix slskd timeout spam when Soulseek is not the active download source",
],
},
{
"title": "Recent Fixes",
"description": "Bug fixes from recent releases and community reports",
@ -22572,16 +22602,6 @@ def get_version_info():
"• Fix replace lower quality setting not persisting",
"• Fix Spotify enrichment worker infinite loop on pre-matched artists",
"• Reject Qobuz 30-second sample/preview downloads",
"• Fix slskd timeout spam — dashboard and download status skip slskd polling when Soulseek is not active or disconnected",
"• Fix Soulseek search queries missing album name — reduces wrong-artist downloads",
"• Downloads batch panel — color-coded batch cards with progress, cancel, expand, and 7-day history",
"• Fix Unknown Artist when adding playlist tracks to wishlist",
"• Fix download modal freezing mid-download — M3U auto-save was exhausting server threads",
"• SoulSync Standalone Library — manage library without a media server, downloads write to DB immediately",
"• Auto-Import: recursive scan, singles, tag preference, AcoustID fallback, race condition fix, stats/filters/batch actions",
"• Album delete with file removal option on enhanced library page",
"• Reject Soulseek results from Various Artists/VA/Unknown Artist folders",
"• Clearing wishlist now cancels the active wishlist download batch",
],
},
{

View file

@ -3602,6 +3602,7 @@ const WHATS_NEW = {
'2.31': [
// --- April 17, 2026 ---
{ date: 'April 17, 2026' },
{ title: 'SoulSync Standalone Library', desc: 'New "Standalone" server option — manage your library without Plex, Jellyfin, or Navidrome. Downloads and imports write directly to the library database with pre-populated enrichment IDs. Deep scan finds untracked files and cleans stale records. Select in Settings → Connections', page: 'settings' },
{ title: 'Auto-Import', desc: 'Background staging folder watcher that automatically identifies and imports music. Three strategies: audio tags, folder name parsing, and AcoustID fingerprinting. Confidence-gated: 90%+ auto-imports, 70-90% queued for review, below 70% left for manual. Enable on the Import page Auto tab', page: 'import' },
{ title: 'Wishlist Nebula', desc: 'Wishlist redesigned as an interactive artist orb visualization. Each artist is a glowing orb with their photo — album fans and single moons orbit around them. Click orbs to expand, download albums/singles directly. Processing state shows live progress', page: 'wishlist' },
{ title: 'Automation Group Management', desc: 'Rename, delete, and bulk-toggle automation groups. Drag-and-drop automations between groups. Right-click group headers for context menu', page: 'automations' },
@ -3619,7 +3620,6 @@ const WHATS_NEW = {
{ title: 'Downloads Batch Panel', desc: 'Downloads page now shows a batch context panel on the right side. Each active batch (wishlist, sync, album download) gets a color-coded card with progress, cancel button, and expandable track list. Color indicators on download rows link them to their batch. Completed batch history shows the last 7 days', page: 'active-downloads' },
{ title: 'Fix Unknown Artist on Wishlist Downloads', desc: 'Adding tracks to wishlist from a playlist download modal was storing "Unknown Artist" as the artist context. Now resolves the artist per-track from the track\'s own metadata instead of the playlist-level artist which is only set for album downloads' },
{ title: 'Fix Download Modal Freezing Mid-Download', desc: 'Download modals (wishlist, sync, album) would freeze and stop updating after the first track completed. Caused by M3U auto-save firing every 2 seconds during downloads, exhausting Flask server threads. Now saves M3U once on completion only' },
{ title: 'SoulSync Standalone Library', desc: 'New "Standalone" server option — manage your library without Plex, Jellyfin, or Navidrome. Downloads and imports write directly to the library database with pre-populated enrichment IDs. Filesystem scanner provides incremental and deep scan via Transfer folder. Select in Settings → Connections', page: 'settings' },
{ title: 'Auto-Import Improvements', desc: 'Recursive staging folder scan (any folder depth), single file support, expandable track match details, stats bar with filters, Scan Now button, Approve All / Clear History batch actions. Tag-based identification preferred over weak metadata matches. AcoustID fallback for untagged files. Race condition fix prevents duplicate processing', page: 'import' },
{ title: 'Album Delete with File Removal', desc: 'Enhanced library album delete now offers "Delete Files Too" option alongside "Remove from Library" — deletes audio files from disk and cleans up empty album folders', page: 'library' },