(1/1) Cover missing workspace layout offline navigation misses#93676
Closed
feedthejim wants to merge 1 commit into
Conversation
Contributor
Tests PassedCommit: 87d2701 |
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: 87d2701 |
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 test-only stress slice on top of #93675, which covers the destructive missing activity parallel-slot case for the Slack-like workspace shell fixture introduced in #93673.
Stack context:
What changed
Adds one focused production e2e for
offlineNavigationswith Cache Components:/docsand waits for the offline navigation service worker/docs/workspace/acme/channel/general/thread/123/workspace/$d$workspacelayout segment recordrouter-cache-reconstruction-misswithmissing-segment, falls back to visiblemissing-entryUI, and does not render the workspace pageWhy this is separate
The previous workspace-shell stress slices cover the route record, head record, page segment, default slot, and parallel slot. This PR isolates the parent layout case so reviewers can verify that the replay path treats a missing layout as fatal instead of stitching child page or slot records under an absent workspace shell.
This continues the advanced e2e stress matrix in
.private-investigation/offline-navigations-production-plan.md: after this PR, the route-graph missing-record matrix only has the root layout row left among the core shell records.Reviewer focus
Please focus on the targeting and false-positive guards:
/workspace/$d$workspaceexists before deleting itmissing-segmentreconstruction miss plus visiblemissing-entryUI, not a partially rendered workspace pageIntentionally not covered here
Still pending in later stress slices:
Verification
pnpm prettier --with-node-modules --ignore-path .prettierignore --write test/production/app-dir/offline-navigations/offline-navigations.test.tsnpx eslint --config eslint.config.mjs --fix test/production/app-dir/offline-navigations/offline-navigations.test.tsgit diff --check -- test/production/app-dir/offline-navigations/offline-navigations.test.tsNEXT_SKIP_ISOLATE=1 pnpm test-start-turbo test/production/app-dir/offline-navigations/offline-navigations.test.ts -t "misses a workspace shell route when a required nested layout record is missing during fallback boot"pnpm test-start-webpack test/production/app-dir/offline-navigations/offline-navigations.test.ts -t "misses a workspace shell route when a required nested layout record is missing during fallback boot"