| .. |
|
artists
|
Lift liked-artist matching to core/artists/liked_match.py
|
4 weeks ago |
|
automation
|
Lift /api/automations/blocks static config into core/automation/blocks.py
|
4 weeks ago |
|
discovery
|
Preserve artwork in quality scanner wishlist handoff
|
4 weeks ago |
|
downloads
|
Lift _process_failed_tracks_to_wishlist_exact to core/downloads/wishlist_failed.py
|
4 weeks ago |
|
enrichment
|
Consolidate enrichment bubble routes behind a service registry
|
3 weeks ago |
|
imports
|
Persist source IDs at download time + backfill onto tracks on sync
|
3 weeks ago |
|
library
|
Make extract_external_ids recognize all source-tagging conventions
|
3 weeks ago |
|
metadata
|
Persist source IDs at download time + backfill onto tracks on sync
|
3 weeks ago |
|
playlists
|
Lift _prepare_stream_task + playlist_explorer_build_tree to core/
|
4 weeks ago |
|
repair_jobs
|
Add filename-pass safety: require duration agreement or artist match
|
3 weeks ago |
|
search
|
Extract wishlist logic into dedicated package
|
4 weeks ago |
|
stats
|
Lift /api/stats/* and /api/listening-stats/* into core/stats/
|
4 weeks ago |
|
streaming
|
Lift _prepare_stream_task + playlist_explorer_build_tree to core/
|
4 weeks ago |
|
watchlist
|
Bulk watchlist add: fall back through every source ID, not just active
|
3 weeks ago |
|
wishlist
|
Coerce wishlist track counts before category checks
|
4 weeks ago |
|
workers
|
Lift WebMetadataUpdateWorker to core/workers/metadata_update.py
|
4 weeks ago |
|
acoustid_client.py
|
Clean up 286 ruff lint errors to unblock CI and fix 10 latent bugs
|
1 month ago |
|
acoustid_verification.py
|
Fix silent wrong-artist track downloads (Maduk/Tom Walker bug)
|
1 month ago |
|
album_consistency.py
|
Picard-style release preference scoring for MusicBrainz matching
|
1 month ago |
|
api_call_tracker.py
|
Make ApiCallTracker.save() atomic to prevent corrupt history files
|
1 month ago |
|
artist_source_detail.py
|
Move metadata helpers into package modules
|
4 weeks ago |
|
artist_source_lookup.py
|
Make artist_name Optional in find_library_artist_for_source
|
1 month ago |
|
audiodb_client.py
|
Add API Rate Monitor dashboard with real-time speedometer gauges
|
2 months ago |
|
audiodb_worker.py
|
Add genre whitelist for filtering junk tags during enrichment
|
1 month ago |
|
auto_import_worker.py
|
Rename unused loop var to silence ruff B007
|
3 weeks ago |
|
automation_engine.py
|
Surface handler-returned errors in automation last_error
|
4 weeks ago |
|
connection_detect.py
|
Lift run_detection to core/connection_detect.py
|
4 weeks ago |
|
connection_test.py
|
Lift run_service_test to core/connection_test.py
|
4 weeks ago |
|
database_update_worker.py
|
Clean up 286 ruff lint errors to unblock CI and fix 10 latent bugs
|
1 month ago |
|
debug_info.py
|
Make Spotify status updates event-driven
|
3 weeks ago |
|
deezer_client.py
|
Move metadata API into package
|
4 weeks ago |
|
deezer_download_client.py
|
Move metadata API into package
|
4 weeks ago |
|
deezer_worker.py
|
Fix Album Completeness job reporting zero findings for every album
|
1 month ago |
|
discogs_client.py
|
Move metadata API into package
|
4 weeks ago |
|
discogs_worker.py
|
Discogs: count rows with empty type_ as real tracks too
|
4 weeks ago |
|
download_orchestrator.py
|
Fix download cleanup after wishlist runs
|
4 weeks ago |
|
genius_client.py
|
Add API Rate Monitor dashboard with real-time speedometer gauges
|
2 months ago |
|
genius_worker.py
|
Improve graceful shutdown and rollback safety
|
1 month ago |
|
genre_filter.py
|
Expand default genre whitelist from 223 to 272 genres
|
1 month ago |
|
hifi_client.py
|
get hifi tags during download, without needing to go through the enrichment pipeline
|
3 weeks ago |
|
hydrabase_client.py
|
Add missing _get_artist_image_from_albums to HydrabaseClient
|
2 months ago |
|
hydrabase_worker.py
|
Improve graceful shutdown and rollback safety
|
1 month ago |
|
itunes_client.py
|
Move metadata API into package
|
4 weeks ago |
|
itunes_worker.py
|
Fix Album Completeness job reporting zero findings for every album
|
1 month ago |
|
jellyfin_client.py
|
Clean up 286 ruff lint errors to unblock CI and fix 10 latent bugs
|
1 month ago |
|
lastfm_client.py
|
Add Last.fm Track Radio to Discover page
|
1 month ago |
|
lastfm_worker.py
|
fix: stop enrichment workers from re-processing rows forever
|
1 month ago |
|
library_reorganize.py
|
Reorganize: fix moved-count + status/total UX issues from PR #377 review
|
4 weeks ago |
|
lidarr_download_client.py
|
Clean up 286 ruff lint errors to unblock CI and fix 10 latent bugs
|
1 month ago |
|
listenbrainz_client.py
|
Remove emojis from all Python log and print statements
|
1 month ago |
|
listenbrainz_manager.py
|
Add Last.fm Track Radio to Discover page
|
1 month ago |
|
listening_stats_worker.py
|
fix: batch N+1 queries in listening stats worker
|
1 month ago |
|
lyrics_client.py
|
Remove emojis from all Python log and print statements
|
1 month ago |
|
matching_engine.py
|
Replace more print logs with proper logger usage
|
1 month ago |
|
metadata_service.py
|
Move profile Spotify cache into registry
|
4 weeks ago |
|
musicbrainz_client.py
|
MusicBrainz: Resolve release-group MBIDs to a release on album click
|
1 month ago |
|
musicbrainz_search.py
|
MusicBrainz: Dedupe same-named homonyms in artist search results
|
1 month ago |
|
musicbrainz_service.py
|
Add metadata cache maintenance and health monitoring
|
2 months ago |
|
musicbrainz_worker.py
|
fix: stop enrichment workers from re-processing rows forever
|
1 month ago |
|
navidrome_client.py
|
Clean up 286 ruff lint errors to unblock CI and fix 10 latent bugs
|
1 month ago |
|
personalized_playlists.py
|
Replace all legacy metadata_service imports with canonical functions
|
1 month ago |
|
plex_client.py
|
Clean up 286 ruff lint errors to unblock CI and fix 10 latent bugs
|
1 month ago |
|
qobuz_client.py
|
Sync Qobuz auth to enrichment worker after login
|
3 weeks ago |
|
qobuz_worker.py
|
fix: stop enrichment workers from re-processing rows forever
|
1 month ago |
|
reorganize_queue.py
|
Reorganize queue: race + dedupe fixes from kettui review
|
4 weeks ago |
|
reorganize_runner.py
|
Library reorganize: FIFO queue with live status panel
|
4 weeks ago |
|
repair_worker.py
|
Move metadata API into package
|
4 weeks ago |
|
replaygain.py
|
Clean up 286 ruff lint errors to unblock CI and fix 10 latent bugs
|
1 month ago |
|
runtime_state.py
|
PR4b: lift cancel + clear download routes to core/downloads/cancel.py
|
4 weeks ago |
|
seasonal_discovery.py
|
Clean up 286 ruff lint errors to unblock CI and fix 10 latent bugs
|
1 month ago |
|
socketio_cors.py
|
Socket.IO CORS: handle self-review nits
|
4 weeks ago |
|
soulid_worker.py
|
Tighten legacy logging output
|
1 month ago |
|
soulseek_client.py
|
get hifi tags during download, without needing to go through the enrichment pipeline
|
3 weeks ago |
|
soulsync_client.py
|
Clean up 286 ruff lint errors to unblock CI and fix 10 latent bugs
|
1 month ago |
|
spotify_client.py
|
Make Spotify status updates event-driven
|
3 weeks ago |
|
spotify_public_scraper.py
|
…
|
|
|
spotify_worker.py
|
fix: pause Spotify worker on non-Spotify primary + cut daily budget to 500
|
4 weeks ago |
|
tag_writer.py
|
Separate AcoustID file logging
|
1 month ago |
|
tidal_client.py
|
Clean up 286 ruff lint errors to unblock CI and fix 10 latent bugs
|
1 month ago |
|
tidal_download_client.py
|
get tidal tags during download, without needing to go through the enrichment pipeline
|
3 weeks ago |
|
tidal_worker.py
|
fix: stop enrichment workers from re-processing rows forever
|
1 month ago |
|
watchlist_scanner.py
|
Make extract_external_ids recognize all source-tagging conventions
|
3 weeks ago |
|
web_scan_manager.py
|
Add SoulSync standalone library — no media server required
|
1 month ago |
|
wishlist_service.py
|
Extract wishlist logic into dedicated package
|
4 weeks ago |
|
worker_utils.py
|
Fix Album Completeness job reporting zero findings for every album
|
1 month ago |
|
youtube_client.py
|
Clean up 286 ruff lint errors to unblock CI and fix 10 latent bugs
|
1 month ago |