soulsync/core/search
BoulderBadgeDad e05979ea07 #775: links only — reject bare IDs (ambiguous), add not-found hint
Follow-up to the bare-ID footgun: a bare number like 525046 carries no
source and no entity type, so it resolved to whatever album happened to own
that id (a user pasting Kendrick's Deezer artist id got an unrelated album).

Now the resolver accepts provider URLs (and the explicit spotify: URI) only;
a bare/unrecognized string is rejected and the dropdown surfaces a hint to
paste a full link. URL parsing + album/track resolution are unchanged.
2026-06-05 06:44:01 -07:00
..
__init__.py Lift /api/search and /api/enhanced-search/* into core/search/ 2026-04-27 15:07:11 -07:00
basic.py Basic search: visual overhaul + per-source picker in hybrid mode 2026-05-28 10:22:07 -07:00
by_id.py #775: links only — reject bare IDs (ambiguous), add not-found hint 2026-06-05 06:44:01 -07:00
cache.py Search cache: preserve falsy provider returns to match original behavior 2026-04-27 15:19:52 -07:00
library_check.py Extract wishlist logic into dedicated package 2026-04-28 21:17:24 +03:00
orchestrator.py Wire Amazon Music into enhanced search and global search source picker 2026-05-16 14:18:18 -07:00
sources.py feat(import): show MusicBrainz variants 2026-05-24 21:29:22 +03:00
stream.py Cin-6: Rename soulseek_client global → download_orchestrator 2026-05-04 23:23:32 -07:00