Skip to content

fix(build): validate CDN warm discovery and deploy inputs - #3057

Draft
james-elicx wants to merge 13 commits into
codex/rsc-prewarm-terminal-responsesfrom
codex/rsc-prewarm-promotion-delay-range
Draft

fix(build): validate CDN warm discovery and deploy inputs#3057
james-elicx wants to merge 13 commits into
codex/rsc-prewarm-terminal-responsesfrom
codex/rsc-prewarm-promotion-delay-range

Conversation

@james-elicx

@james-elicx james-elicx commented Aug 22, 2026

Copy link
Copy Markdown
Member

Summary

Consolidates the path-discovery, ownership, encoding, MDX, and option validation previously split across #3047#3057.

  • validate App generateStaticParams() and Pages getStaticPaths() return shapes and parameter types before constructing cache keys
  • resolve ownership across the complete App/Pages union and exclude App route handlers and Pages API routes
  • preserve exact public path spelling, locale casing, percent-encoding case, and encoded unreserved characters used by Workers cache keys
  • reject relative, query-bearing, malformed-encoding, dot-segment, backslash, control-character, and otherwise URL-normalized paths
  • match localized Pages warm paths case-insensitively while retaining the canonical configured locale
  • require HTML build identity only when the selected CDN adapter declares that capability
  • query the built runtime for dynamic App, Pages, and MDX generators without rendering page responses locally
  • distinguish a missing generator from an invalid null result with an internal no-content sentinel
  • reject CLI and programmatic promotion delays above Node's maximum timer duration before upload

Scope

Only build-discovered CDN warm keys and warmup input validation. Runtime handler priority, middleware, TPR, development mode, local prerendering, and general cache behavior are unchanged.

Validation

The retained commits keep their focused generator, discovery, endpoint, i18n, URL-identity, deploy, and CLI coverage. The cumulative exact head passed all 67 checks, including strict deployed prewarming and Chromium reuse.

Consolidates #3047 through #3057. Stacked on #3046.

@pkg-pr-new

pkg-pr-new Bot commented Aug 22, 2026

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/@vinext/cloudflare@3057
npm i https://pkg.pr.new/create-vinext-app@3057
npm i https://pkg.pr.new/@vinext/types@3057
npm i https://pkg.pr.new/vinext@3057

commit: 59d7cb2

@james-elicx
james-elicx force-pushed the codex/rsc-prewarm-promotion-delay-range branch from 95e868b to 59d7cb2 Compare August 22, 2026 03:20
@github-actions

Copy link
Copy Markdown
Contributor

Performance benchmarks

Compared 59d7cb2 against base 3e015c8 using alternating same-runner rounds. Next.js was unchanged and skipped.

0 improved · 0 regressed · 6 within ±1.5%

Scenario Framework Baseline Current Change
Client bundle size (gzip) vinext 142.2 KB 142.2 KB ⚫ 0.0%
Client entry size (gzip) vinext 129.5 KB 129.5 KB ⚫ -0.0%
Dev server cold start vinext 3.14 s 3.14 s ⚫ -0.0%
Production build time vinext 3.62 s 3.62 s ⚫ -0.1%
RSC entry closure size (gzip) vinext 116.1 KB 116.2 KB ⚫ +0.0%
Server bundle size (gzip) vinext 197.6 KB 197.7 KB ⚫ +0.0%

View detailed results and traces

🟢 improvement · 🔴 regression · ⚫ change below 1.5% · paired base/head

@github-actions

Copy link
Copy Markdown
Contributor
Example Preview Production Original
app-router-cloudflare preview production
pages-router-cloudflare preview production
app-router-playground preview production original
realworld-api-rest preview production
nextra-docs-template preview production
benchmarks preview production
hackernews preview production original
workers-cache preview production
web preview production

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