豆豆友情提示:这是一个非官方 GitHub 代理镜像,主要用于网络测试或访问加速。请勿在此进行登录、注册或处理任何敏感信息。进行这些操作请务必访问官方网站 github.com。 Raw 内容也通过此代理提供。
Skip to content

(7/9) Prefetch and dedupe export fallback data requests#93029

Draft
feedthejim wants to merge 9 commits intofeedthejim/export-fallback-bootstrap-reviewfrom
feedthejim/export-fallback-prefetch-review
Draft

(7/9) Prefetch and dedupe export fallback data requests#93029
feedthejim wants to merge 9 commits intofeedthejim/export-fallback-bootstrap-reviewfrom
feedthejim/export-fallback-prefetch-review

Conversation

@feedthejim
Copy link
Copy Markdown
Contributor

@feedthejim feedthejim commented Apr 20, 2026

Context

After hard loads are correct, the next step is making client navigation to unknown params efficient instead of repeatedly rediscovering the same fallback artifact.

What This PR Does

  • prefetches fallback data for unknown-param links before navigation
  • dedupes direct fallback fetches and critical-path fallback response reuse
  • adds the fetch-server-response and fixture coverage needed to prove those paths

Why This Is Separate

This PR is about the pre-hydration navigation path only. The next PR handles what happens after the app has hydrated and can remember more state.

Not In This PR

  • hydrated router-state reuse
  • unmatched-route recovery with app not-found

Validation

  • pnpm --filter=next build
  • pnpm testonly packages/next/src/client/components/router-reducer/fetch-server-response.test.ts packages/next/src/client/output-export-fallback.test.ts
  • NEXT_SKIP_ISOLATE=1 NEXT_TEST_MODE=start pnpm testheadless test/e2e/app-dir-export/test/dynamic-fallback-cache-components.test.ts

Stack

Part 7 of 9 in the output-export fallback stack.

  1. #93032 (1/9) Add the basic runtime for app-router fallbacks in output: 'export'``
  2. #93025 (2/9) Cover output: 'export' fallbacks across app-router route shapes
  3. #93026 (3/9) Prefer the most specific route for overlapping export fallbacks
  4. #93033 (4/9) Reject request-only APIs in output: 'export' fallback pages
  5. #93027 (5/9) Define sync IO rules for output: 'export' fallback pages
  6. #93028 (6/9) Hide the export fallback bootstrap document on hard loads
  7. #93029 (7/9) Prefetch and dedupe export fallback data requests (this PR)
  8. #93030 (8/9) Reuse learned export fallback paths after hydration
  9. #93031 (9/9) Use app not-found when no export fallback route matches

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 20, 2026

All broken links are now fixed, thank you!

@feedthejim feedthejim changed the title Prefetch and dedupe output-export fallback artifacts (7/9) Prefetch and dedupe output-export fallback artifacts Apr 20, 2026
@feedthejim feedthejim changed the title (7/9) Prefetch and dedupe output-export fallback artifacts (7/9) Prefetch and dedupe export fallback data requests Apr 20, 2026
@feedthejim feedthejim force-pushed the feedthejim/export-fallback-bootstrap-review branch from 0401d32 to 898e5c7 Compare April 20, 2026 04:42
@feedthejim feedthejim force-pushed the feedthejim/export-fallback-prefetch-review branch from b2f09c7 to f32d01c Compare April 20, 2026 04:42
@feedthejim feedthejim force-pushed the feedthejim/export-fallback-bootstrap-review branch from 898e5c7 to 9629b6d Compare April 20, 2026 20:36
@feedthejim feedthejim force-pushed the feedthejim/export-fallback-prefetch-review branch from f32d01c to 8842cd9 Compare April 20, 2026 20:36
@feedthejim feedthejim force-pushed the feedthejim/export-fallback-bootstrap-review branch from 9629b6d to 4fbb7a6 Compare April 20, 2026 20:56
@feedthejim feedthejim force-pushed the feedthejim/export-fallback-prefetch-review branch from 8842cd9 to 20def44 Compare April 20, 2026 20:56
@feedthejim feedthejim force-pushed the feedthejim/export-fallback-bootstrap-review branch from 4fbb7a6 to 9001702 Compare April 20, 2026 21:05
@feedthejim feedthejim force-pushed the feedthejim/export-fallback-prefetch-review branch from 20def44 to 8c13eb5 Compare April 20, 2026 21:05
@feedthejim feedthejim force-pushed the feedthejim/export-fallback-bootstrap-review branch from 9001702 to e4ab820 Compare April 20, 2026 23:13
@feedthejim feedthejim force-pushed the feedthejim/export-fallback-prefetch-review branch from 8c13eb5 to 8970167 Compare April 20, 2026 23:13
@feedthejim feedthejim force-pushed the feedthejim/export-fallback-bootstrap-review branch from e4ab820 to 0dd6f5d Compare April 20, 2026 23:35
@feedthejim feedthejim force-pushed the feedthejim/export-fallback-prefetch-review branch from 8970167 to 8631172 Compare April 20, 2026 23:35
@feedthejim feedthejim force-pushed the feedthejim/export-fallback-bootstrap-review branch from 0dd6f5d to a26ae43 Compare April 21, 2026 04:01
@feedthejim feedthejim force-pushed the feedthejim/export-fallback-prefetch-review branch from 8631172 to 4326aca Compare April 21, 2026 04:01
@feedthejim feedthejim force-pushed the feedthejim/export-fallback-bootstrap-review branch from a26ae43 to 5440441 Compare April 21, 2026 04:14
@feedthejim feedthejim force-pushed the feedthejim/export-fallback-prefetch-review branch 2 times, most recently from 05d8c02 to e211626 Compare April 21, 2026 04:22
@feedthejim feedthejim force-pushed the feedthejim/export-fallback-bootstrap-review branch from 5440441 to 1c522f0 Compare April 21, 2026 04:22
@feedthejim feedthejim force-pushed the feedthejim/export-fallback-prefetch-review branch from 44beabe to 2799468 Compare April 21, 2026 05:25
@feedthejim feedthejim force-pushed the feedthejim/export-fallback-bootstrap-review branch from 5a6ac62 to fda89e4 Compare April 21, 2026 05:28
@feedthejim feedthejim force-pushed the feedthejim/export-fallback-prefetch-review branch from 2799468 to 7902f29 Compare April 21, 2026 05:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant