-
released this
2026-07-02 16:45:36 -04:00 | 12 commits to main since this releaseFixes the "fails once, stays broken forever" behavior (issue #1245, PR #106): a screen that failed to load in a dead zone or during a server restart now heals itself the moment connectivity returns — no more navigating away and back or pull-refreshing to unstick the app.
Install this APK to get screen-level auto-recovery everywhere.
Auto-recovery on reconnect
- New
NetworkStatusController.recoveries()signal — the screen-level half of the recovery idiom the sync/mutation/diagnostics singletons already used. - Every screen re-runs its load when server health returns: Home, Playlists, Liked, History, Hidden, Requests, Search, Discover, Album/Artist/Playlist detail, and all four admin screens. Direct-load screens only re-fetch from an error state, so good content never flashes a spinner.
Failure no longer looks like an empty account
- Cold-start against an unreachable server used to show "Welcome to Minstrel" / "No playlists yet". Home, Playlists, Liked, and Library now surface a real "Couldn't load…" error with a Retry button when the cache is empty and the refresh failed. A failed refresh over cached content stays silent — stale beats a full-screen error.
Stuck corners unstuck
- Requests: the 12s progress poll can now escape a failed initial load (it previously required a loaded list to ever fire), which also covers server errors that transport-level health monitoring never sees.
- Search: re-running the same query after a transient failure now works, and the error state has a Retry button.
- Artist detail: "Similar artists" / "Top tracks" re-fetch on recovery instead of staying silently absent after a blip.
Consistent Retry everywhere
- The shared error widget gained a title and now participates in pull-to-refresh, and it's used on every error branch — every load failure in the app is now recoverable by button, pull, or automatically on reconnect.
Use it
Install the APK, then try it: airplane-mode the phone, open a tab so it errors, drop out of airplane mode — the screen should populate itself within seconds of the server probe going healthy.
🤖 Generated with Claude Code
Downloads
- New