(1/1) Cover workspace shell offline navigation replay#93673
Closed
feedthejim wants to merge 1 commit into
Closed
Conversation
This was referenced May 8, 2026
Contributor
Stats from current PR🔴 1 regression
📊 All Metrics📖 Metrics GlossaryDev Server Metrics:
Build Metrics:
Change Thresholds:
⚡ Dev Server
📦 Dev Server (Webpack) (Legacy)📦 Dev Server (Webpack)
⚡ Production Builds
📦 Production Builds (Webpack) (Legacy)📦 Production Builds (Webpack)
📦 Bundle SizesBundle Sizes⚡ TurbopackClient Main Bundles
Server Middleware
Build DetailsBuild Manifests
📦 WebpackClient Main Bundles
Polyfills
Pages
Server Edge SSR
Middleware
Build DetailsBuild Manifests
Build Cache
🔄 Shared (bundler-independent)Runtimes
📝 Changed Files (9 files)Files with changes:
View diffsapp-page-exp..ntime.dev.jsfailed to diffapp-page-exp..time.prod.jsfailed to diffapp-page-tur..ntime.dev.jsfailed to diffapp-page-tur..time.prod.jsfailed to diffapp-page-tur..ntime.dev.jsfailed to diffapp-page-tur..time.prod.jsfailed to diffapp-page.runtime.dev.jsfailed to diffapp-page.runtime.prod.jsfailed to diffserver.runtime.prod.jsDiff too large to display 📎 Tarball URLCommit: a17d140 |
Contributor
Author
|
Closing this draft as part of the offline navigations first-usable restack. The current review stack is the 25-PR sequence rooted at #93622, ending at #93656, with #93648 folded into PR 22 and the stress-only rows deferred into named P1/P2 owners. The branch is intentionally left intact so the coverage can be recovered or rebundled later. Review guide: https://gist.github.com/feedthejim/b3d9fe26a7c05655fd57adcce371b93d |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stack Position
This is a focused stress-test slice stacked on top of
feedthejim/offline-navigations-missing-page-segment-stress.It continues the route-graph hardening work for offlineNavigations. The previous slices cover missing route, head, and regular page segment records. This PR adds a denser workspace-shell fixture and proves the positive replay path before we start deleting nested layout/default/parallel-slot records in follow-up PRs.
Why This Exists
The existing fixture only had a simple root layout and page routes. That was enough for exact-URL, route-record, head, and page-segment coverage, but not enough to honestly test complex app-shell reconstruction.
This PR adds a small cache-components-compatible route shape:
/workspace/[workspace]/layout.tsx@sidebarslot@activityparallel slot for the thread route/workspace/[workspace]/channel/[channel]/thread/[thread]/page.tsx/workspace/acme/channel/general/thread/123test routeThe e2e then proves:
router-cacheReviewer Focus
Please focus on whether this is a good minimal fixture for later destructive route-graph tests.
The point of this PR is not to finish every
SHELL-01negative case. It establishes the positive replay contract for a realistic nested app shell so follow-up PRs can delete one required layout or slot record at a time and prove the miss reason.What This Does Not Cover Yet
Remaining follow-ups still need focused destructive coverage for:
Verification
pnpm prettier --with-node-modules --ignore-path .prettierignore --write test/production/app-dir/offline-navigations/offline-navigations.test.ts test/production/app-dir/offline-navigations/app/page.tsx test/production/app-dir/offline-navigations/app/prefetch-button.tsx test/production/app-dir/offline-navigations/app/workspace/[workspace]/layout.tsx test/production/app-dir/offline-navigations/app/workspace/[workspace]/@sidebar/default.tsx test/production/app-dir/offline-navigations/app/workspace/[workspace]/@activity/channel/[channel]/thread/[thread]/page.tsx test/production/app-dir/offline-navigations/app/workspace/[workspace]/@activity/default.tsx test/production/app-dir/offline-navigations/app/workspace/[workspace]/channel/[channel]/thread/[thread]/page.tsxnpx eslint --config eslint.config.mjs --fix test/production/app-dir/offline-navigations/offline-navigations.test.ts test/production/app-dir/offline-navigations/app/page.tsx test/production/app-dir/offline-navigations/app/prefetch-button.tsx test/production/app-dir/offline-navigations/app/workspace/[workspace]/layout.tsx test/production/app-dir/offline-navigations/app/workspace/[workspace]/@sidebar/default.tsx test/production/app-dir/offline-navigations/app/workspace/[workspace]/@activity/channel/[channel]/thread/[thread]/page.tsx test/production/app-dir/offline-navigations/app/workspace/[workspace]/@activity/default.tsx test/production/app-dir/offline-navigations/app/workspace/[workspace]/channel/[channel]/thread/[thread]/page.tsxgit diff --checkNEXT_SKIP_ISOLATE=1 pnpm test-start-turbo test/production/app-dir/offline-navigations/offline-navigations.test.ts -t "reconstructs a prefetched workspace shell route from persisted router records"pnpm test-start-webpack test/production/app-dir/offline-navigations/offline-navigations.test.ts -t "reconstructs a prefetched workspace shell route from persisted router records"