..
artists
automation
Fix: deep-scan / DB-update automation falsely errors on large libraries (stall-based timeout)
2026-06-01 16:30:28 -07:00
discovery
Fix: Spotify sync crash 'unexpected keyword argument candidate_pool'
2026-05-31 23:00:24 -07:00
download_engine
download_plugins
Fix: torrent/usenet album bundle hard-fails on 'no results' instead of falling back
2026-06-01 09:55:59 -07:00
downloads
Album bundle: fall back to per-track on an I/O error, don't hard-fail the batch
2026-06-01 13:29:05 -07:00
enrichment
Enrichment manager: 6 UX improvements
2026-06-02 19:50:57 -07:00
imports
Fix #767 : Library Organizer dry run no longer creates folders
2026-06-02 10:32:06 -07:00
library
Fix: duplicate detector kept lossy over lossless (rank format first)
2026-06-01 12:49:34 -07:00
matching
media_server
metadata
Canonical: fix ruff lint (B023 loop-bound lambda, S110 bare except-pass)
2026-06-02 15:42:14 -07:00
personalized
playback
Player: log SoulSync web-player plays (recently-played + smart-radio recency)
2026-05-30 15:11:46 -07:00
playlists
radio
Player revamp Phase 2: smart radio ranking (play-count + popularity)
2026-05-30 08:47:18 -07:00
repair_jobs
Canonical: fix ruff lint (B023 loop-bound lambda, S110 bare except-pass)
2026-06-02 15:42:14 -07:00
search
stats
streaming
Player revamp Phase 3a: extract stream state into testable per-session store
2026-05-30 08:59:15 -07:00
sync
#766 follow-on: source rows borrow their matched server track's cover
2026-06-02 11:08:35 -07:00
text
Fix #768 : playlist sync editor refusing to match certain tracks
2026-06-02 10:16:21 -07:00
torrent_clients
usenet_clients
Fix: Usenet bundle stuck at 99%/100% — SAB reports post-processing in History as non-terminal ( #721 )
2026-05-29 00:49:02 -04:00
watchlist
webui
wishlist
Wishlist: import Optional (fix ruff F821 in processing.py)
2026-05-29 18:31:45 -07:00
workers
acoustid_client.py
AcoustID: report errors honestly instead of masking them as 'Skipped'
2026-05-31 20:10:31 -07:00
acoustid_verification.py
AcoustID: report errors honestly instead of masking them as 'Skipped'
2026-05-31 20:10:31 -07:00
album_consistency.py
amazon_client.py
Fix #759 : Amazon enrichment floods when its public proxy is down
2026-06-01 13:10:51 -07:00
amazon_download_client.py
Amazon download client: write final size==transferred before returning file path
2026-05-16 11:09:04 -07:00
amazon_outage.py
Fix #759 : Amazon enrichment floods when its public proxy is down
2026-06-01 13:10:51 -07:00
amazon_worker.py
Enrichment manager: 'process this group first' + refined hero header
2026-06-02 19:45:04 -07:00
api_call_tracker.py
Wire Amazon Music as a first-class download source
2026-05-16 09:40:50 -07:00
archive_pipeline.py
fix(downloads): harden album bundle staging
2026-05-20 21:39:06 -07:00
artist_source_detail.py
Fix MusicBrainz artist detail showing MBID as name
2026-05-19 12:34:35 -07:00
artist_source_lookup.py
Source IDs: add canonical registry, adopt at the highest-value sites
2026-05-29 12:19:59 -07:00
audiodb_client.py
audiodb_worker.py
Enrichment manager: 'process this group first' + refined hero header
2026-06-02 19:45:04 -07:00
auto_import_worker.py
automation_engine.py
connection_detect.py
connection_test.py
database_update_worker.py
db_integrity.py
DB backups: verify integrity + never evict the last good backup
2026-05-30 21:13:04 -07:00
debug_info.py
deezer_client.py
Fix Deezer contributors tagging silently dropping for cache-polluted tracks
2026-05-14 11:10:51 -07:00
deezer_download_client.py
deezer_worker.py
Enrichment manager: 'process this group first' + refined hero header
2026-06-02 19:45:04 -07:00
discogs_client.py
discogs_worker.py
Enrichment manager: 'process this group first' + refined hero header
2026-06-02 19:45:04 -07:00
download_orchestrator.py
genius_client.py
genius_worker.py
Enrichment manager: 'process this group first' + refined hero header
2026-06-02 19:45:04 -07:00
genre_filter.py
hifi_client.py
Log exception when inferring HiFi manifest ext
2026-05-21 18:24:56 -07:00
hydrabase_client.py
hydrabase_worker.py
image_cache.py
Image cache: reject truncated downloads instead of caching broken covers ( #750 )
2026-05-30 17:45:01 -07:00
itunes_client.py
feat: add explicit badges to discography modal and artist-detail cards
2026-05-12 23:35:08 -04:00
itunes_worker.py
Enrichment manager: 'process this group first' + refined hero header
2026-06-02 19:45:04 -07:00
jellyfin_client.py
lastfm_client.py
lastfm_worker.py
Enrichment manager: 'process this group first' + refined hero header
2026-06-02 19:45:04 -07:00
library_reorganize.py
Canonical album version — Stage 3: Reorganizer prefers pinned canonical (read)
2026-06-02 11:45:31 -07:00
lidarr_download_client.py
Surface silent exceptions across remaining modules — ~70 sites
2026-05-07 10:28:58 -07:00
listenbrainz_client.py
listenbrainz_manager.py
listening_stats_worker.py
Final silent-exception sweep + ruff S110 lint guardrail — ~45 sites
2026-05-07 11:16:06 -07:00
lyrics_client.py
matching_engine.py
metadata_service.py
musicbrainz_client.py
MusicBrainz manual search: field-scope the artist in non-strict mode ( #754 )
2026-05-31 10:05:24 -07:00
musicbrainz_search.py
musicbrainz_service.py
musicbrainz_worker.py
Enrichment manager: 'process this group first' + refined hero header
2026-06-02 19:45:04 -07:00
navidrome_client.py
Fix #766 : Navidrome album covers blank in the sync editor (+ other modals)
2026-06-02 11:01:28 -07:00
personalized_playlists.py
Add MusicBrainz as a metadata source
2026-05-18 18:47:13 -07:00
plex_client.py
prowlarr_client.py
qobuz_client.py
qobuz_worker.py
Enrichment manager: 'process this group first' + refined hero header
2026-06-02 19:45:04 -07:00
reorganize_queue.py
reorganize_runner.py
Reorganize: optional embedded-tag mode ( closes #592 )
2026-05-15 07:56:18 -07:00
repair_worker.py
Repair settings: dropdown for fixed-choice settings (canonical source_selection)
2026-06-02 15:33:13 -07:00
replaygain.py
runtime_state.py
seasonal_discovery.py
socketio_cors.py
Socket.IO CORS: handle self-review nits
2026-04-26 19:24:43 -07:00
soulid_worker.py
Surface silent exceptions in workers + repair jobs — ~30 sites
2026-05-07 10:27:24 -07:00
soulseek_client.py
Album bundle: fall back to per-track when the chosen folder yields nothing
2026-05-29 19:46:52 -07:00
soulsync_client.py
soundcloud_client.py
Surface engine-not-wired errors + exclude soulseek from monitor aggregation
2026-05-05 12:20:51 -07:00
source_ids.py
Source IDs: add canonical registry, adopt at the highest-value sites
2026-05-29 12:19:59 -07:00
spotify_client.py
Add download buttons + bulk action to artist top-tracks sidebar
2026-05-07 15:44:47 -07:00
spotify_public_api.py
SpotipyFree integration confirmed working (236 tracks live); deps + meta tweak
2026-06-02 22:50:04 -07:00
spotify_public_scraper.py
Diagnostics: route public-fetch logs to soulsync namespace + log HTTP status
2026-06-02 22:09:51 -07:00
spotify_worker.py
Enrichment manager: 'process this group first' + refined hero header
2026-06-02 19:45:04 -07:00
tag_writer.py
tidal_client.py
tidal_download_client.py
tidal_worker.py
Enrichment manager: 'process this group first' + refined hero header
2026-06-02 19:45:04 -07:00
watchlist_scanner.py
web_scan_manager.py
wishlist_service.py
Extract wishlist logic into dedicated package
2026-04-28 21:17:24 +03:00
worker_utils.py
Enrichment manager: 'process this group first' + refined hero header
2026-06-02 19:45:04 -07:00
youtube_client.py