fix(cmux-next): make Apps failures recoverable

Merged
TE
17d ago
+631-20

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 typecheck
  • bun run lint
  • bun run check:browser-lanes
  • bun test test/gallery-coverage.test.ts
  • CMUX_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 WebKit
  • git diff --check

View with [code]smith Autofix with [code]smith
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.