syntaqxA part of a page that fails stays a part: a card that breaks while drawing says so in its place, and a page that fails shows its error inside its repository's, workspace's or settings' frame, not over the whole app. Before, the root route was the only error boundary, so anything failing on any page replaced everything below the app shell, the repository's header and tabs included. Cards: Boundary (components/boundary.tsx) catches what breaks while drawing and shows Unavailable ("X could not be loaded just now") in its place, drawing again on the next refresh or navigation; every Panel wraps its contents in one. Data: lib/partial.server.ts soft() is the loader side, for a part beside what the page is about: null when it fails, which the part shows as Unavailable. Pages: routes.ts wraps the pages of a repository, a workspace and your settings in a pathless route (routes/page-boundary.tsx) whose boundary renders inside the layout's Outlet (a layout's own boundary would replace the layout too). Its error view is the root's, shared as RouteError (components/route-error.tsx): the stale-build reload, the self-healing "Can't reach g1t", the 404 page and developer details, now with Try again; contained, it says the rest of g1t is fine. The root keeps it as the last resort. Checked: apps/web tsc -b (with react-router typegen); npm test (986).f1687c9History
- ..
- deploy
- emoji
- ops
- perf
- apt-install.sh
- build-runner.mjs
- build-rust-worker.mjs
- cli-release.mjs
- cli-release.test.mjs
- cloudflare-setup.py
- conformance-diff.mjs
- deploy.mjs
- deploy.sh
- desktop-cross-tools.sh
- desktop-release.mjs
- desktop-release.test.mjs
- mobile-release.mjs
- mobile-release.test.mjs
- plugins-release.mjs
- plugins-release.test.mjs
- runner-release.mjs
- runner-release.test.mjs
- sandbox-image.mjs
- sccache.sh
- setup-custom-domains.sh
- setup-deployments.sh