offline navigations: cover persisted router replay (10/11)#93650
Closed
feedthejim wants to merge 10 commits intofeedthejim/offline-navigations-dynamic-route-patternsfrom
Closed
Conversation
This was referenced May 8, 2026
Contributor
Failing test suitesCommit: 80a9b05 | About building and testing Next.js
Expand output● prefetch={true} with instant route › also disables full prefetch when instant is on a layout, not the page Other failing CI jobs |
1ff84b6 to
febc878
Compare
9cde7cf to
0d5ceb3
Compare
febc878 to
e72f4b4
Compare
4e55b55 to
0a0eda1
Compare
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 (11 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 diffpages-api.ru..time.prod.jsDiff too large to display pages.runtime.prod.jsDiff too large to display server.runtime.prod.jsDiff too large to display 📎 Tarball URLCommit: 91b8607 |
0a0eda1 to
135ce89
Compare
135ce89 to
a53bd2f
Compare
35ab38b to
0fbaa6d
Compare
This was referenced May 8, 2026
b5a19ef to
7875b0e
Compare
c77c6d0 to
5d85f15
Compare
5d85f15 to
e4072ca
Compare
d6a09ea to
07b0b2a
Compare
This was referenced May 10, 2026
e4072ca to
1e0e045
Compare
fa9940c to
f21f93b
Compare
1e0e045 to
6e85165
Compare
f21f93b to
91b8607
Compare
6e85165 to
74042cd
Compare
74042cd to
88ef52f
Compare
91b8607 to
80a9b05
Compare
88ef52f to
65e9655
Compare
Contributor
Author
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Context
This is PR 10/11 in the offline navigations stack. The stack builds the initial experimental feature in two chapters: build and service worker artifacts first, then client router persistence and fallback bootstrap. The service worker owns bootstrap delivery only; route data stays in the Cached Navigations router cache and is persisted by the client when the flag is enabled. PR 11 adds the docs and examples layer.
Review guide: https://gist.github.com/feedthejim/007cb3a3c0dd39b3806213c4ce95d31a
What Changed
Adds the hardening rows for the router-cache based offline navigation design. These assertions make incomplete replay state explicit: when the router cache does not contain the records needed for the URL, the app shows an offline miss.
Reviewer Focus
Review the request-sensitive and URL-shape assertions. These should visibly miss offline rather than replaying guessed or partial UI.
What Does Not Work Yet
Runtime replay behavior for the initial experimental scope is complete after this PR. PR 11 adds docs and examples. Static export integration, dev simulation, custom miss UI, and broader production hardening remain follow-up work.
Proof In This PR
Adds production e2e coverage for request-sensitive hard-load misses and encoded/search/hash URL shape stress misses.
Deferred Coverage
Docs land in PR 11. Broader production hardening can be follow-up work once this stack lands.
Docs Status
Docs ship in #93738 (11/11).
Stack Map
offline navigations: add gated build primitives (1/11)(sibling)offline navigations: emit fallback manifest data (2/11)(sibling)offline navigations: register pass-through worker (3/11)(sibling)offline navigations: cache fallback artifacts (4/11)(sibling)offline navigations: serve fallback document offline (5/11)(sibling)offline navigations: add router-cache persistence primitives (6/11)(sibling)offline navigations: persist cached router records (7/11)(sibling)offline navigations: bootstrap fallback from router records (8/11)(sibling)offline navigations: support dynamic route patterns (9/11)(sibling)offline navigations: cover persisted router replay (10/11)(current)offline navigations: add docs and examples (11/11)(sibling)