soulsync/core
Broque Thomas 6820e2d4e3 Enforce FLAC bit depth preference and prioritize audio quality in sorting
Two changes to the Soulseek quality filter:

1. Sort candidates by effective bitrate first, peer quality second.
Previously a 16-bit FLAC from a fast peer could beat a 24-bit FLAC
from a slower peer. Now highest audio quality always wins within the
same format tier, with peer speed as tiebreaker.

2. Enforce the FLAC bit depth UI preference (Any/16-bit/24-bit) that
was previously cosmetic-only. Uses effective bitrate threshold of
1450 kbps to distinguish 16-bit (<1411 kbps theoretical) from 24-bit
(>2116 kbps theoretical). Respects the bit_depth_fallback toggle —
when enabled, gracefully accepts any FLAC if preferred depth is
unavailable. When disabled, strictly rejects non-matching depth.

Default bit_depth="any" — zero behavior change for existing users.
2026-03-25 15:59:22 -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 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
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 Fix enrichment retry loops, cover art finding dupes, and Spotify rate limit during art scan 2026-03-22 23:24:42 -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 Fix enrichment retry loops, cover art finding dupes, and Spotify rate limit during art scan 2026-03-22 23:24:42 -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 Fix enrichment retry loops, cover art finding dupes, and Spotify rate limit during art scan 2026-03-22 23:24:42 -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 Fix enrichment retry loops, cover art finding dupes, and Spotify rate limit during art scan 2026-03-22 23:24:42 -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 Fix enrichment retry loops, cover art finding dupes, and Spotify rate limit during art scan 2026-03-22 23:24:42 -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 Fix enrichment retry loops, cover art finding dupes, and Spotify rate limit during art scan 2026-03-22 23:24:42 -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 Start Spotify enrichment worker unpaused by default like other workers 2026-03-23 13:23:00 -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 Fix enrichment retry loops, cover art finding dupes, and Spotify rate limit during art scan 2026-03-22 23:24:42 -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