soulsync/core
Broque Thomas c1287f0ec0 Helper V2 complete + enrichment worker fixes
Helper system phases 2-7:
- Setup Progress: onboarding checklist with progress ring, auto-detection
  via /status, /api/settings, /api/library, /api/watchlist, /api/automations
- Quick Actions: accent pill buttons in popovers (service cards get
  "Open Settings" and "View Docs" actions)
- Keyboard Shortcuts: full-screen overlay with key cap styling, grouped
  by scope (Global, Player, Helper, Forms)
- Search: fuzzy search across 200+ help entries, 11 tours, and shortcuts
  with cross-page navigation via _guessPageFromSelector()
- What's New: version-tagged highlights with "Show me" navigation,
  red badge on ? button for unseen versions, older version cycling
- Troubleshoot: scans dashboard service cards for disconnected/error
  states, shows fix steps with action buttons, "All Clear" when healthy
- Contextual menu: page-aware tour suggestion at top of menu
- Ctrl+K / Cmd+K opens helper search globally
- First-launch welcome tooltip with pulsing ? button
- Redesigned floating button (48px, accent gradient, glass effect)
- Redesigned menu (unified card panel, accent left-stripe on contextual)

Enrichment worker fixes:
- AcoustID: individual recording matches downgraded INFO→DEBUG to reduce
  log noise (14 lines for one track → 1 summary line)
- Name normalization: strip " - Suffix" dash format (Spotify) same as
  "(Suffix)" parens format across all 8 workers. Fixes false mismatch
  on tracks like "Electric Eyes (Studio Brussels Remix)" vs
  "Electric Eyes - Studio Brussels Remix" (was 0.54, now matches)
2026-03-26 12:20:58 -07:00
..
repair_jobs Fix enhanced view reorganize not moving sidecars, add template debug logging 2026-03-24 07:12:35 -07:00
acoustid_client.py Helper V2 complete + enrichment worker fixes 2026-03-26 12:20:58 -07:00
acoustid_verification.py Strip all parentheticals in AcoustID title normalization 2026-03-13 21:28:18 -07:00
album_consistency.py Add Picard-style MB release preflight for album downloads 2026-03-23 12:42:29 -07:00
audiodb_client.py Add AudioDB enrichment for artists, albums, and tracks 2026-02-18 14:08:01 -08:00
audiodb_worker.py Helper V2 complete + enrichment worker fixes 2026-03-26 12:20:58 -07:00
automation_engine.py Fix automation signal chain: forward event data (playlist_id) to action handlers 2026-03-23 08:51:52 -07:00
database_update_worker.py Fix deep scan skipping file path updates for existing tracks 2026-03-18 13:03:01 -07:00
deezer_client.py Cache Deezer enrichment worker API calls in metadata cache 2026-03-25 15:13:55 -07:00
deezer_download_client.py Fix Deezer download crash: config_manager not in scope 2026-03-24 13:12:23 -07:00
deezer_worker.py Helper V2 complete + enrichment worker fixes 2026-03-26 12:20:58 -07:00
download_orchestrator.py Integrate Deezer download source into orchestrator 2026-03-23 15:34:27 -07:00
genius_client.py Fix Genius 429 backoff by re-raising rate limit errors from _make_request 2026-03-10 15:46:37 -07:00
genius_worker.py Helper V2 complete + enrichment worker fixes 2026-03-26 12:20:58 -07:00
hifi_client.py Add per-source quality fallback toggle for streaming downloads (#187) 2026-03-24 11:42:47 -07:00
hydrabase_client.py Add missing _get_artist_image_from_albums to HydrabaseClient 2026-03-23 17:54:21 -07:00
hydrabase_worker.py Use nonces and drain interleaved stats in Hydrabase 2026-02-24 19:16:14 -08:00
itunes_client.py Prefer album versions over singles when matching tracks to metadata sources 2026-03-17 15:18:28 -07:00
itunes_worker.py Helper V2 complete + enrichment worker fixes 2026-03-26 12:20:58 -07:00
jellyfin_client.py Add Listening Stats page with media server play data integration 2026-03-22 13:18:14 -07:00
lastfm_client.py Add scrobbling to Last.fm/ListenBrainz + update What's New 2026-03-22 14:38:53 -07:00
lastfm_worker.py Helper V2 complete + enrichment worker fixes 2026-03-26 12:20:58 -07:00
listenbrainz_client.py Add scrobbling to Last.fm/ListenBrainz + update What's New 2026-03-22 14:38:53 -07:00
listenbrainz_manager.py Fix per-profile ListenBrainz playlist cache scoping and stale data recovery 2026-03-14 21:11:59 -07:00
listening_stats_worker.py Increase stats page top artists/albums/tracks from 10 to 25 2026-03-22 16:39:53 -07:00
lyrics_client.py auto lyric download 2025-09-22 16:04:06 -07:00
matching_engine.py Add Soulseek peer queue filtering and configurable download timeout 2026-03-19 11:47:37 -07:00
media_scan_manager.py Fix automated scans for non-Plex servers & incremental scan performance 2026-03-12 11:17:32 -07:00
metadata_cache.py Multi-source genre explorer with Deezer genre support and cross-source routing 2026-03-24 19:36:11 -07:00
metadata_service.py Complete Hydrabase as selectable fallback metadata source 2026-03-20 14:18:10 -07:00
musicbrainz_client.py feat(ui): add MusicBrainz enrichment status UI with real-time monitoring 2026-02-03 15:20:04 -08:00
musicbrainz_service.py Fix MusicBrainz release matching preferring standard over deluxe 2026-03-21 10:48:35 -07:00
musicbrainz_worker.py Fix enrichment retry loops, cover art finding dupes, and Spotify rate limit during art scan 2026-03-22 23:24:42 -07:00
navidrome_client.py Add Listening Stats page with media server play data integration 2026-03-22 13:18:14 -07:00
personalized_playlists.py Multi-source genre explorer with Deezer genre support and cross-source routing 2026-03-24 19:36:11 -07:00
plex_client.py Add Listening Stats page with media server play data integration 2026-03-22 13:18:14 -07:00
plex_scan_manager.py fix logging issue 2025-08-09 13:17:11 -07:00
qobuz_client.py Add per-source quality fallback toggle for streaming downloads (#187) 2026-03-24 11:42:47 -07:00
qobuz_worker.py Helper V2 complete + enrichment worker fixes 2026-03-26 12:20:58 -07:00
repair_worker.py Fix album completeness fix returning 400 for stale findings 2026-03-24 09:32:17 -07:00
seasonal_discovery.py Fix seasonal playlists not appearing when Deezer is active source 2026-03-18 10:28:54 -07:00
soulid_worker.py Rebuild artist SoulID: track-verified canonical ID from Deezer + iTunes 2026-03-23 18:34:36 -07:00
soulseek_client.py Enforce FLAC bit depth preference and prioritize audio quality in sorting 2026-03-25 15:59:22 -07:00
spotify_client.py Add rate limit check to search_tracks and search_albums in Spotify client 2026-03-23 07:53:46 -07:00
spotify_public_scraper.py Add Spotify Link tab for public playlist/album scraping without API credentials 2026-03-15 21:25:05 -07:00
spotify_worker.py Helper V2 complete + enrichment worker fixes 2026-03-26 12:20:58 -07:00
tag_writer.py Fix false positive track matching & tag writing visibility for library files 2026-03-12 16:08:44 -07:00
tidal_client.py Fix Tidal token refresh hammering when client credentials removed 2026-03-20 07:28:32 -07:00
tidal_download_client.py Add per-source quality fallback toggle for streaming downloads (#187) 2026-03-24 11:42:47 -07:00
tidal_worker.py Helper V2 complete + enrichment worker fixes 2026-03-26 12:20:58 -07:00
watchlist_scanner.py Personalize discovery playlists using listening stats 2026-03-22 13:54:37 -07:00
web_scan_manager.py Fix automated scans for non-Plex servers & incremental scan performance 2026-03-12 11:17:32 -07:00
wishlist_service.py Fix wishlisted tracks showing 'Unknown Album' with no cover art 2026-03-18 14:23:53 -07:00
youtube_client.py User configurable youtube rate limiting and optional cookies for bot detection 2026-03-05 10:50:06 -08:00