ReleaseCloudflare (Workers AI)Cloudflare (Workers AI)published Oct 25, 2026seen 16h

cloudflare/vinext vinext@1.3.1

cloudflare/vinext

Open original ↗

Captured source

source ↗
published Oct 25, 2026seen 16hcaptured 16hhttp 200method plain

vinext@1.3.1

Repository: cloudflare/vinext

Tag: vinext@1.3.1

Published: 2026-10-25T20:37:13Z

Prerelease: no

Release notes:

Bug Fixes

App Router

  • don't hold a navigation's page for its metadata after a prefetched shell (#4285)
  • render only the route tree for no-loading-boundary loading-shell prefetches (#4150)
  • throw a slot intercept's metadata signals inside its own slot (#4266)
  • keep the source route's title under a slot intercept and follow Turbopack's slot title order (#4240)
  • keep the route's own title when a render throws notFound(), forbidden() or unauthorized() (#4238)
  • classify an intercepted prefetch by its intercepting page (#4237)
  • never reuse an automatic prefetch whose page rendered dynamically (#4231)
  • never render a dynamically rendered page in an automatic prefetch (#4230)
  • read the browser query in useSearchParams after hydration (#4250)
  • canonicalize contextual RSC requests reached through a rewrite (#4253)
  • match Next.js when a slot default or a page beside a slot's own not-found calls notFound() (#4224)
  • render a sibling intercepting layout while its sync page suspends (#4225)
  • render an ancestor loading boundary once below nested layouts (#4220)
  • link client reference stylesheets as anonymous when crossOrigin is unset (#4192)
  • render a parallel slot's own not-found inside the slot in the document (#4184)
  • link client reference stylesheets with the configured crossOrigin (#4186)
  • hint client reference scripts with the configured crossOrigin (#4181)
  • hint client reference scripts with the CSP nonce (#4174)
  • finish the navigation when a sibling intercepting layout doesn't render its page (#4172)
  • render a parallel slot's own not-found inside the slot (#4168)
  • render a sibling intercepting route's own forbidden and unauthorized (#4169)
  • catch a parallel slot layout's notFound() above the layout rendering it (#4167)
  • reset a segment's error boundary on a pathname change (#4166)
  • stream client components that await at their top level (#4135)
  • commit server-component HMR updates as transitions (#4164)
  • catch a parallel slot's notFound() above its layout in the document (#4155)
  • render a sibling intercepting route's own not-found (#4157)
  • clear access boundaries on pathname change under intercepted routes (#4156)
  • render built-in forbidden and unauthorized pages (#4154)
  • commit search+hash and prefetched navigations as transitions (#4146)
  • wrap every segment's not-found, forbidden and unauthorized boundaries in the tree (#4148)
  • render the boundary above a layout that calls notFound() (#4145)
  • let ancestor layout not-found boundaries catch page signals (#4137)
  • defer full-render link re-prefetches of dynamic routes after cache invalidation (#4136)
  • keep search-transition content on screen during response recovery (#4134)

Config

  • honor the legacy experimental.cacheComponents key (#4284)
  • percent-encode config redirect Locations like Next.js (#4139)
  • honor statusCode on next.config redirects (#4140)

Misc

  • Dev: keep vinext's next/* shims out of the dependency optimizer (#4268)
  • Deploy: let a legacy experimental.cacheComponents override the top-level key in project detection (#4306)
  • Router: keep Pages data requests out of document redirects (#4299)
  • RSC: stop including react-server-dom-webpack/static.edge in dev (#4272)
  • default NODE_ENV to production for vinext-cloudflare deploy and vinext typegen (#4267)
  • Dev: treat a dev lock left behind by a restart as stale (#4257)
  • Cache: serve entries of a tag revalidated with a cacheLife profile stale until it expires (#4256)
  • Pages Router: keep a middleware Cache-Control on getServerSideProps notFound pages (#4236)
  • Link: drop queued prefetches once their Link unmounts or leaves the viewport (#4180)
  • Image: preserve deprecated prop annotations (#4177)
  • Fonts: infer formats for extensionless Google font URLs (#4178)
  • Prod Server: default NODE_ENV to production in startProdServer (#4182)
  • Pages: send the private no-store default on getServerSideProps redirects (#4141)
  • Metadata: render openGraph emails, phone numbers, fax numbers and alternate locales (#4171)
  • Metadata: accept a single openGraph video or audio entry like Next.js (#4143)
  • CLI: default NODE_ENV to production in vinext start (#4153)

Performance

App Router

  • embed inline RSC chunks as UTF-8 bytes without a UTF-16 round trip (#4243)
  • load ipaddr.js only on routes that render next/image (#4239)
  • name client reference chunks in their Flight rows (#4194)
  • load client reference loaders from their own chunk (#4193)
  • escape RSC payload scripts only where HTML requires it (#4187)
  • forward unchanged Fizz bytes in the SSR HTML transform (#4190)
  • load the client entry's chunks at low priority (#4183)
  • preload the RouteManifest chunk at low priority (#4185)

Link

  • render plain links on the server without the client hooks (#4214)
  • skip revalidating the navigation runtime on every Link render (#4202)
  • skip repeated per-Link runtime and location work (#4189)
  • reuse App Router prefetch module imports across prefetches (#4188)

Pages Router

  • keep the App Router runtime off pages that don't use next/navigation (#4227)
  • load page-owned client shims only on pages that use them (#4226)
  • preload the page and _app chunks in the initial HTML (#4223)

Server

  • drop the React Flight stylesheet hint rewrite (#4242)
  • fold response start tracing and after() close tracking into the deferred stream wrapper (#4210)
  • read deferred streams directly and coalesce re-wrapped ones (#4209)
  • read the RSC stream directly in the preload hint pass (#4211)

Misc

  • Client: compile startup chunks eagerly with V8's explicit compile hint (#4247)
  • SSR: render HTML with React's Node Fizz build on Node (#4191)
  • OG: avoid resolving tracked imports twice (#4175)

Contributors

  • @Divkix
  • @Godsenal
  • @james-elicx
  • @MumuTW
  • @RaphaelFakhri
  • @tannerlinsley
  • @yoohahn