118c687847
Audit v2 silent-breakage: PullToRefreshBox needs scrollable content in its nested-scroll connection to detect the gesture. Empty/Error branches used a plain centered Column → no nested-scroll participation → swipe gesture silently ignored → user can't recover from a cold-load error. Fix: re-house EmptyState inside a single-item LazyColumn with fillParentMaxSize. Visual is identical (centered icon + title + body) but LazyColumn participates in nested-scroll dispatch so PullToRefreshBox fires on swipe-down. Covers Empty + Error on every PullToRefreshScaffold-wrapped screen (Home, Library tabs, Album/Artist/Playlist detail, Discover, Requests, Admin*). Loading-state pull-to-refresh remains broken on screens using per-screen LoadingCentered helpers — that's a transient state and lower priority; separate follow-up if it becomes a real friction. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>