offline navigations: boot fallback from exact-url data (10/25)#93632
Closed
feedthejim wants to merge 10 commits into
Closed
Conversation
Contributor
Tests PassedCommit: 00af9b0 |
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: 00af9b0 |
401a2c0 to
5ca7c5f
Compare
58fead3 to
bb5cc45
Compare
5ca7c5f to
d8e418c
Compare
bb5cc45 to
bd9034a
Compare
d8e418c to
00af9b0
Compare
bd9034a to
fff03ee
Compare
Contributor
Author
|
Closing as folded into the compressed 13-PR offline navigations review stack. fallback boot from exact URL data now lives with the exact URL replay slice; see #93631. The branch is intentionally left intact for audit. |
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
10/25 in the offline navigations first-usable stack.
This stack turns
experimental.offlineNavigationsinto a usable cache-components experiment for regular apps. The service worker owns document survival only. Cache Storage owns generated fallback artifacts. The cache-components client router owns IndexedDB, route semantics, replay, visible misses, and invalidation. Output export, dev simulation, custom miss UI, and broad production-hardening matrices are intentionally deferred.Review guide: https://gist.github.com/feedthejim/b3d9fe26a7c05655fd57adcce371b93d
Full Stack
What This PR Does
Lets the fallback document ask the client for an exact-URL record and render from it when the record is valid.
What Works After This PR
A previously persisted exact URL can hard-load offline through the fallback document, and a missing record renders visible cache-miss UI.
Reviewer Focus
Fallback bootstrap flow, exact-URL lookup, visible miss UI, diagnostics, and fail-closed behavior when the cache cannot satisfy the URL.
Not In This PR
Initial-load records, personalized same-browser replay, and route/segment reconstruction are later PRs.
Proof in This PR
pnpm --filter=next buildNEXT_SKIP_ISOLATE=1 NEXT_TEST_MODE=start pnpm testheadless test/production/app-dir/offline-navigations/offline-navigations.test.tsNEXT_TEST_MODE=start pnpm testheadless test/production/app-dir/offline-navigations/offline-navigations.test.tsIS_WEBPACK_TEST=1 NEXT_TEST_MODE=start pnpm testheadless test/production/app-dir/offline-navigations/offline-navigations.test.tsDeferred Coverage
Initial-load records, personalized same-browser replay, and route/segment reconstruction are later PRs.