fix: decouple for-you probe from cache, fix tag persistence across feeds (#1285)
three bugs from staging:
1. the probe $effect called forYouCache.fetch(), which synchronously
reads this.loading ($state) — creating a reactive dependency. any
cache state change (e.g. from setTags) re-triggered the probe, and
if tag-filtered results were empty, forYouAvailable flipped to false,
hiding the switcher. fix: use a raw fetch(limit=1) with no reactive
cache reads.
2. tag state wasn't shared between feeds. ForYouCache initialized
activeTags as empty, not from localStorage. switching feeds didn't
sync tags. tags set while in for-you mode weren't persisted. fix:
both caches initialize from localStorage.active_tags; toggleFeed
syncs tags from outgoing to incoming cache; onTagsChange persists
regardless of mode.
3. empty state said "no tracks yet" when tags filtered to zero. fix:
show "no tracks match these tags" when active tags are set.
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
authored by