- ArtistCard rebuilt 1:1 with Tauri SearchView.artist-card: 160x220
inside a surface-card container, 12px corners, 120px circular avatar
with a gradient placeholder, hover swaps to surface-elevated. The
Follow chip (rectangular per ADR-008) sits below the name when the
user does not follow the artist.
- Search loading state uses a rotating spinner (Lucide LoaderCircle on
Slint transform-rotation) matching the Tauri spinner — 1s linear
infinite. The search header (title + tabs + filter radios) collapses
while the initial load runs so the chrome does not show through.
- Search history: live debounce + submit now use
nav::push_or_replace_search, so the latest query is the single Search
entry in history. Back from an opened album lands on that search.
- Track row backgrounds use the OR-d row-hovered (cell / fav / dl /
more), so hovering the more button no longer drops the row tint.
- replace_category artists arm re-applies the top-result dedupe, so
filtering does not bring the duplicate back.
cc