soulsync/core
Broque Thomas 4dba3757be Fix orphan detector false positives and add staging/delete choice
Orphan detector: add normalized tag matching that strips parentheticals
and brackets (feat. X, [FLAC 16bit], etc.) and tries first-artist-only
for comma-separated artists. Prevents false orphan flags for tracks
like "The Mountain (feat. Dennis Hopper...)" that exist in DB as
"The Mountain". All lookups remain O(1) set operations.

Orphan fix: replace auto-delete with user choice prompt. Single Fix
and Fix All both show modal asking "Move to Staging" or "Delete".
Move to Staging relocates file to import staging folder for proper
re-import with metadata matching. Fix action flows through API
endpoint → repair_worker.fix_finding → _fix_orphan_file handler.
Staging path uses docker_resolve_path for container compatibility.
2026-03-21 11:27:51 -07:00
..
repair_jobs Fix orphan detector false positives and add staging/delete choice 2026-03-21 11:27:51 -07:00
acoustid_client.py Fix chromaprint C-level assertion crash on 5.1 surround FLAC files. Not possible to check 2026-03-04 10:51:01 -08:00
acoustid_verification.py Strip all parentheticals in AcoustID title normalization 2026-03-13 21:28:18 -07:00
audiodb_client.py Add AudioDB enrichment for artists, albums, and tracks 2026-02-18 14:08:01 -08:00
audiodb_worker.py Fix enrichment workers never showing idle/complete status 2026-03-20 10:07:27 -07:00
automation_engine.py Scope automation-triggered watchlist scans to the calling profile & Fix watchlist scan silently skipping all albums due to metadata cache returning incomplete data 2026-03-14 13:23:03 -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 Fix album_type field missing from Deezer and Spotify Track dataclasses 2026-03-17 16:02:32 -07:00
deezer_worker.py Fix enrichment workers never showing idle/complete status 2026-03-20 10:07:27 -07:00
download_orchestrator.py Fix hybrid source toggle/reorder not saving and skip unconfigured sources 2026-03-20 16:22:48 -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 Fix enrichment workers never showing idle/complete status 2026-03-20 10:07:27 -07:00
hifi_client.py Fix HiFi client not failing over to next instance on HTTP 500 2026-03-16 13:56:20 -07:00
hydrabase_client.py Fix Hydrabase search types, ID routing, and plugin passthrough 2026-03-20 21:04:56 -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 Fix enrichment workers never showing idle/complete status 2026-03-20 10:07:27 -07:00
jellyfin_client.py Add file path and bitrate support for Jellyfin tracks 2026-03-08 13:08:26 -07:00
lastfm_client.py Add Last.fm and Genius to on-demand enrichment, settings reload, and enrich dropdown parity 2026-03-10 09:12:36 -07:00
lastfm_worker.py Fix enrichment workers never showing idle/complete status 2026-03-20 10:07:27 -07:00
listenbrainz_client.py Add per-profile ListenBrainz support with personal settings modal 2026-03-14 20:12:19 -07:00
listenbrainz_manager.py Fix per-profile ListenBrainz playlist cache scoping and stale data recovery 2026-03-14 21:11:59 -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 Beatport enrichment progress, metadata cache fixes, per-source cache clearing 2026-03-18 08:39:02 -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 workers never showing idle/complete status 2026-03-20 10:07:27 -07:00
navidrome_client.py Fix Navidrome library scan triggering via Subsonic startScan endpoint 2026-03-17 10:29:12 -07:00
personalized_playlists.py Fix discover page Deezer source support 2026-03-16 19:35:26 -07:00
plex_client.py Detect and remove deleted content during incremental database updates 2026-03-03 13:13:38 -08:00
plex_scan_manager.py fix logging issue 2025-08-09 13:17:11 -07:00
qobuz_client.py Tidal & Qobuz Background Enrichment Workers 2026-03-11 21:26:20 -07:00
qobuz_worker.py Fix enrichment workers never showing idle/complete status 2026-03-20 10:07:27 -07:00
repair_worker.py Fix orphan detector false positives and add staging/delete choice 2026-03-21 11:27:51 -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 Add SoulID worker with API-based debut year disambiguation 2026-03-21 10:21:06 -07:00
soulseek_client.py Add minimum peer upload speed setting and fix quality scoring tiers 2026-03-18 14:07:39 -07:00
spotify_client.py Fix Track Match search ignoring Track/Artist fields and low result limit 2026-03-19 08:23:19 -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 Fix Spotify enrichment worker rejecting every track via fallback 2026-03-20 12:45:36 -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 Retry Tidal download at lower quality when hi-res returns garbage file 2026-03-14 10:54:33 -07:00
tidal_worker.py Fix enrichment workers never showing idle/complete status 2026-03-20 10:07:27 -07:00
watchlist_scanner.py Add Deezer as configurable free metadata fallback source alongside iTunes 2026-03-16 13:12:12 -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