fix(cmux-next): make Apps failures recoverable
Merged
TE
17d ago+631+631+012345678901234567890123456789-20-20-01234567890123456789
Summary
- add explicit catalog and detail loading/error/not-found states with retry and back actions
- preserve toolbar and selection while recovering a failed Apps request
- isolate the Apps gallery browser lane and cover recovery in Chromium and WebKit
Verification
bun run typecheckbun run lintbun run check:browser-lanesbun test test/gallery-coverage.test.tsCMUX_BROWSER_TESTS=1 timeout 300 bun test --timeout 120000 test/apps-flow.test.ts -t "retries a catalog failure|shows a not-found detail|retries a detail error"— 6 pass, 18 expects; Chromium and WebKitgit diff --check
Need help on this PR? Tag @codesmith-bot with what you need.
Summary by cubic
Makes Apps catalog and detail failures recoverable with explicit loading, error, and not-found states and retry/back actions, without dropping the toolbar or the selected app.
- Catalog errors show a Retry banner with stale rows staying visible during retry; detail failures keep the route and selection, and Retry reloads only the selected app.
- Loading states no longer reuse failure text: the grid and detail say "Loading…", and a missing app says "App not found" instead of the search empty state.
- A deep-linked detail settles after a catalog failure, or sits idle with no client, instead of loading forever; the banner's Reload retries both, and a failed empty catalog no longer claims "No apps match".
- Browser tests cover catalog retry, not-found, and detail error recovery in Chromium and WebKit; stage frames can opt into a single entry path so tests don't cold-load the entire registry.