soulsync/core
Broque Thomas 2d511d0a16 Add SoulID worker with API-based debut year disambiguation
SoulID worker generates deterministic soul IDs for all library entities:
  - Artists: hash(name + debut_year) — searches iTunes + Deezer APIs,
    verifies correct artist by matching discography against local DB
    albums via MusicMatchingEngine, pools years from both sources and
    picks the earliest. Falls back to hash(name) if no match found.
  - Albums: hash(artist + album)
  - Tracks: song ID hash(artist + track) + album ID hash(artist + album + track)

Dashboard button with trans2.png logo, rainbow spinner, hover tooltip.
Worker orb with rainbow effect. SoulSync badge on library artist cards.
DB migration adds soul_id columns with indexes to artists/albums/tracks.
Migration version flag auto-resets artist soul IDs when algorithm changes.
2026-03-21 10:21:06 -07:00
..
repair_jobs Collect release year from all metadata sources during post-processing 2026-03-20 17:31:00 -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 recording matches with wrong titles & add MBID mismatch repair job 2026-03-16 07:52:00 -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 Album Completeness wishlist adding missing cover art and track data 2026-03-19 22:05:06 -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