The #843 fallback saved the discovery-cache match using the client's original_artist verbatim — but the client sends a joined "A, B, C" string, while EVERY in-memory + sync path keys the cache by the first artist (artists[0]). So a multi-artist fix (the reporter's exact "Cherrymoon Traxx, Hermol, SBM, BELS" case) would have saved under a key the sync never looks up — the fix would "succeed" with no error but silently never apply. Reduce the client artist to the first (split on comma) in the no-state branch so its cache key matches the in-memory/sync convention exactly. Single-artist tracks are unaffected. Test: no-state save now keys by the first artist, and a new test pins that the no-state and in-memory paths produce an IDENTICAL cache key for the same multi-artist track. 74 discovery tests pass. |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| beatport.py | ||
| deezer.py | ||
| endpoints.py | ||
| hero.py | ||
| listenbrainz.py | ||
| manual_match.py | ||
| matching.py | ||
| playlist.py | ||
| qobuz.py | ||
| quality_scanner.py | ||
| scoring.py | ||
| spotify_public.py | ||
| sync.py | ||
| tidal.py | ||
| youtube.py | ||