A Spotify Free (no-auth) user saw 'Showing Discogs results - not from your primary source (Deezer)' on the manual album-import search. Root cause: get_primary_source() deliberately downgrades an unauthenticated Spotify to the working fallback (deezer) so client routing always yields a usable client - and the import payload reused that FUNCTIONAL value for the LABEL. The free source has no album-name search (SpotifyFreeMetadataClient.search_albums() returns []), so falling back for results is correct; only the label was wrong. Fix: get_primary_source_label() preserves the user's configured intent (Spotify Free reads as 'spotify') without touching client routing or the search chain. The import album/track/suggestions payloads now return the label; the functional source still drives the hydrabase-enqueue + fallback chain. Banner now reads 'not from your primary source (Spotify)'. Tests: seam tests for get_primary_source_label + route regression pinning the label/functional decoupling; updated 4 existing import-route tests. |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| album_mbid_cache.py | ||
| album_tracks.py | ||
| art_apply.py | ||
| art_lookup.py | ||
| art_preservation.py | ||
| art_sources.py | ||
| artist_album_cache.py | ||
| artist_image.py | ||
| artist_resolution.py | ||
| artwork.py | ||
| caa_art.py | ||
| cache.py | ||
| canonical_resolver.py | ||
| canonical_version.py | ||
| common.py | ||
| completion.py | ||
| discography.py | ||
| discography_filters.py | ||
| enrichment.py | ||
| lookup.py | ||
| lyrics.py | ||
| multi_source_search.py | ||
| registry.py | ||
| release_dates.py | ||
| release_type.py | ||
| relevance.py | ||
| service.py | ||
| similar_artists.py | ||
| source.py | ||
| status.py | ||
| track_number_format.py | ||
| types.py | ||