ReleaseCloudflare (Workers AI)Cloudflare (Workers AI)published Mar 11, 2026seen Jun 26

cloudflare/vinext v0.0.28

cloudflare/vinext

Open original ↗

Captured source

source ↗
published Mar 11, 2026seen Jun 26captured 3whttp 200method plain

v0.0.28

Repository: cloudflare/vinext

Tag: v0.0.28

Published: 2026-03-11T11:52:32Z

Prerelease: no

Release notes:

What's Changed

New Features

  • Added ISR (Incremental Static Regeneration) caching support for App Router in production environments with stale-while-revalidate strategy
  • Added Node execution context handling for improved compatibility

Bug Fixes

  • Fixed Pages production config headers and redirects handling after middleware rewrites
  • Fixed Pages API body parsing and res.send(Buffer) behavior to align with Next.js
  • Fixed router.pathname to return route pattern instead of resolved path
  • Fixed object-form query array serialization in next/link and next/router
  • Fixed router.push/replace to properly honor the as parameter
  • Fixed Link component to skip locale prefix for absolute and protocol-relative hrefs
  • Fixed App Router ISR invalidation to match Next.js behavior for fetch and path tags
  • Fixed next/form submitter overrides and query-string GET URLs handling
  • Fixed useSearchParams to return ReadonlyURLSearchParams as expected
  • Fixed sitemap XML namespaces, video entries, and alternate-language links generation
  • Fixed useRouter to honor beforePopState callback when component is mounted
  • Fixed route rewrites and redirects to preserve repeated route and query parameters
  • Fixed dynamic route discovery to reject conflicting dynamic route siblings
  • Fixed Pages Router query arrays and hash preservation in asPath
  • Fixed catch-all routes validation to reject non-terminal catch-all routes in both Pages and App routers
  • Fixed RSC client references deduplication to prevent module duplication in development
  • Fixed next/headers to implement proper readonly semantics and legacy sync compatibility
  • Fixed RequestCookie behavior and getAll(name) method implementation
  • Fixed middleware object matcher semantics to match Next.js i18n behavior
  • Fixed Pages Router production hydration for inlined page modules

Performance

  • Added local tag cache for KV operations to reduce round-trips on cache hits
  • Improved fetch cache to register stale-while-revalidate refetch with waitUntil() for better performance
  • Fixed ISR cache handler to properly await KV put operations and prevent perpetual STALE status
  • Added cache key namespacing by buildId for better ISR cache management

Internal / Chores

  • Refactored ExecutionContext AsyncLocalStorage to be the single source of truth
  • Updated ISR implementation to use getRequestExecutionContext() from ALS in background regeneration

Contributors

@JaredStowell @NathanDrake2406 @Divkix @james-elicx