Skip to content

Releases: cloudflare/vinext

v0.0.39

02 Apr 10:06
ed2618a

Choose a tag to compare

What's Changed

New Features

  • Added standalone self-host output option with aligned production initialization scripts
  • Implemented parallelRoutesKey support in useSelectedLayoutSegment and useSelectedLayoutSegments hooks

Bug Fixes

  • Fixed cross-route client navigation hanging issues in Firefox
  • Resolved KV cache key format mismatch between build-time and runtime for static serving
  • Fixed font self-hosting transform to properly handle nested-brace options objects
  • Fixed double-comma syntax errors when font options contain trailing commas
  • Fixed route segment revalidation mapping to Nitro routeRules SWR
  • Prevented parse errors by skipping MDX files during RSC scan-build process

Performance

  • Added build-time precompression and startup metadata cache for static file serving
  • Optimized resolveParentParams lookups for better routing performance

Internal / Chores

  • Improved SSR head management and validation
  • Enhanced code quality with additional lint rules including preferring type over interface and disabling explicit any
  • Added shared test helpers and modern JavaScript syntax improvements
  • Enabled pnpm supply chain security rules
  • Added comprehensive test running scripts for unit and integration tests
  • Expanded gitignore entries for better repository hygiene

Contributors

@Divkix
@NathanDrake2406
@james-elicx
@sankalpmukim
@ygcaicn

v0.0.38

29 Mar 12:46
083e973

Choose a tag to compare

What's Changed

New Features

  • Add instrumentation-client support for enhanced application monitoring
  • Implement cacheForRequest() per-request factory cache for improved data caching patterns

Bug Fixes

  • Fix Pages Router builds to properly run the Cloudflare plugin during build process
  • Wire ctx.waitUntil for middleware fetch event background tasks in Cloudflare Workers
  • Fix Google Fonts plugin state management by using closure variables instead of class properties
  • Improve RSC compatibility for dynamic() imports and layout segment context
  • Resolve App Router playground warnings and stabilize development checks

Internal / Chores

  • Extract image utility functions into dedicated module for better code organization
  • Refactor OG asset handling into separate plugin file
  • Refactor font processing into dedicated plugin module
  • Extract server closure collision fix into standalone plugin
  • Consolidate file path resolution logic into unified resolveEntryPath() function
  • Extract Pages API route runtime for better separation of concerns
  • Align Vite 8 bundler configuration
  • Add static export end-to-end tests

Contributors

@james-elicx
@nbardy
@hyoban
@MehediH
@benfavre
@southpolesteve
@haddoumounir
@raed04
@JamesbbBriz

v0.0.37

28 Mar 03:12
b678035

Choose a tag to compare

What's Changed

Bug Fixes

  • Fixed hydration timing issue where createFromReadableStream was incorrectly awaited before calling hydrateRoot, which could cause React hydration problems
  • Fixed pathname decoding in App Router to Pages Router fallback to properly handle URL segments with encoded characters

Internal / Chores

  • Updated benchmarks to remove Vite 7 runner and upgrade Next.js to version 16.2.1

Contributors

@southpolesteve

v0.0.36

27 Mar 14:02
07b4fb4

Choose a tag to compare

What's Changed

New Features

  • Added nextjs-tracker workflow to automatically monitor and track changes in Next.js canary releases

Bug Fixes

  • Fixed usePathname() returning "/" during server-side rendering of "use client" page components
  • Fixed anchor condition value regex to properly match full strings in routing logic

Internal / Chores

  • Improved nextjs-tracker agent performance by preventing unnecessary codebase exploration
  • Enhanced nextjs-tracker workflow reliability with better repository parameter handling
  • Refactored Pages runtime to extract page data and ISR functionality into separate modules

Contributors

@southpolesteve
@Divkix

v0.0.35

24 Mar 15:10
6cfdaa6

Choose a tag to compare

vinext v0.0.35

What's Changed

New Features

  • Added support for inline Next.js configuration instead of requiring separate config files
  • Enhanced optimize-imports feature to support renamed exports for better import optimization
  • Memory cache can now be pre-populated from pre-rendered routes for improved performance

Bug Fixes

  • Fixed handling of non-ASCII characters in route parameters by properly percent-encoding X-Vinext-Params header
  • Resolved Node.js compatibility issues with WASM imports in og-font-patch by using dynamic imports
  • Fixed timing issue where request context was cleared before HTML streams were fully consumed
  • Prevented DOM pollution by stripping priority prop before forwarding to UnpicImage component

Internal / Chores

  • Moved pnpm configuration settings to pnpm-workspace.yaml for better workspace management
  • Refactored pages response helpers into separate utilities for improved code organization

Contributors

@southpolesteve
@hyoban
@NathanDrake2406
@james-elicx

v0.0.34

22 Mar 19:15
5f1681b

Choose a tag to compare

What's Changed

New Features

  • Google Fonts are now handled through virtual import rewrites instead of a generated catalog, improving build performance and flexibility

Bug Fixes

  • Fixed TypeScript alias transforms not working correctly in React Server Components builds
  • Fixed useActionState state becoming undefined when redirect() is called during form actions
  • Fixed Server-Side Rendering streaming issues in Pages Router applications
  • Fixed flight hint regex not matching the correct format for hydration layer hints

Internal / Chores

  • Extracted app page render lifecycle into separate modules for better code organization
  • Refactored app page boundary rendering, HTML recovery, and probe runtimes into dedicated modules
  • Separated app page boundary helpers, request helpers, and stream helpers into individual utilities
  • Improved app page execution helpers organization
  • Added documentation for generated entry refactor guidance

Contributors

@southpolesteve
@yunus25jmi1
@JaredStowell
@james-elicx

v0.0.33

21 Mar 17:24
4241f5d

Choose a tag to compare

What's Changed

New Features

  • Optimize barrel imports for RSC-incompatible packages to improve performance and compatibility

Bug Fixes

  • Skip page RSC ISR caching for dynamic requests to prevent incorrect cache behavior

Performance

  • Improved App Router runtime performance through code restructuring and optimization

Internal / Chores

  • Refactored App Router virtual entries into typed runtime modules for better maintainability
  • Extracted app page and route handler logic into dedicated helper modules
  • Updated nitro dependency to address h3 security vulnerability
  • Upgraded vitest to v4 with agent reporter enabled

Contributors

@southpolesteve
@gentritbiba
@james-elicx

v0.0.32

20 Mar 10:27
95905ec

Choose a tag to compare

What's Changed

New Features

  • Added support for next/dist/* internal imports with automatic .js shim aliases generation
  • Full next/compat/router support is now available
  • The vinext check command now flags usage of __dirname and __filename and suggests ESM path APIs instead
  • Added basePath and locale properties to NextURL for better compatibility

Bug Fixes

  • Fixed serving of public directory files after middleware execution in production builds
  • Page extensions are now properly used for middleware files
  • Fixed getStaticProps revalidate parsing to be scoped only to the exported function
  • Improved next/head SSR serializer to validate attribute names
  • Set-Cookie headers are now properly stripped from fetch cache entries
  • Next.js config file loading now throws errors when it fails instead of failing silently
  • Fixed pageExtensions handling in prerender and excluded underscore-prefixed API files
  • Enhanced vinext check scanner to work correctly with shimmed modules

Internal / Chores

  • Switched back to setup-vp@v1 for CI
  • Migrated ssrLoadModule to use moduleRunner.import
  • Marked clientReferenceDedup as experimental and added fumadocs example

Contributors

@southpolesteve
@james-elicx
@Boyeep
@hyoban
@NathanDrake2406

v0.0.31

17 Mar 13:41
a6d6688

Choose a tag to compare

What's Changed

New Features

  • Added support for @vitejs/plugin-react v6 as a peer dependency
  • Implemented production prerender pipeline for static site generation
  • Added ISR caching support for App Router route handlers
  • Implemented prefix-based cache invalidation for revalidatePath with layout type
  • Added revalidateByPathPrefix support to KVCacheHandler
  • Propagated Next.js config serverExternalPackages to build configuration

Bug Fixes

  • Fixed Flight HL stylesheet hints rewriting during client-side navigation
  • Hardened origin validation and proxy request handling for improved security
  • Fixed next/headers cookie path semantics to align with Next.js behavior
  • Preserved named capture groups in Next.js config destinations
  • Fixed after() function to use waitUntil properly in Cloudflare Workers
  • Eliminated double middleware execution in hybrid app+pages development mode
  • Added missing ResponseCookies.has() method implementation
  • Fixed use server closure variable collision with local declarations
  • Resolved concurrent SSR isolation issues for pages router head/router state
  • Fixed parallel slot resolution to use closest ancestor instead of farthest
  • Prevented user searchParams from leaking into ISR cache
  • Fixed SSR preloading of client reference modules before first render
  • Merged top-level optimizeDeps with per-environment Vite configuration
  • Added assets.directory to generated wrangler.jsonc configuration
  • Added support for @voidzero-dev/vite-plus-core as Vite alias

Internal / Chores

  • Migrated build system to Vite Plus
  • Moved to pnpm catalogs for dependency management
  • Migrated from Wrangler unstable_dev to unstable_startWorker API
  • Enabled TypeScript type-aware checking and validation
  • Updated benchmarks to include @vitejs/plugin-react

Contributors

@aidantrabs
@gagipro
@hyoban
@james-elicx
@Jbithell
@mhart
@NathanDrake2406
@southpolesteve

v0.0.30

13 Mar 12:28
81d0cf1

Choose a tag to compare

What's Changed

New Features

  • Added Pages Router i18n domain routing support

Bug Fixes

  • Fixed next/head key deduplication to properly handle duplicate meta tags
  • Fixed image optimizer fallback stream reuse issues
  • Fixed metadata routes not serving properly in dynamic segments
  • Fixed URL object handling in metadata resolveUrl function
  • Fixed XML special character escaping in sitemap generation
  • Fixed query parameter preservation on middleware rewrites in App Router
  • Fixed stale background refetch deduplication in fetch cache
  • Fixed MemoryCacheHandler creating immediately-stale entries when revalidate: 0 is used
  • Fixed useSelectedLayoutSegment hook in development mode
  • Fixed intercept routes (..) to climb visible route segments instead of filesystem directories
  • Fixed onLoadingComplete callback support in modern next/image shim
  • Fixed parsing of :param(constraint) syntax in middleware matchers
  • Fixed router events hashChangeStart, hashChangeComplete, and beforeHistoryChange emission
  • Fixed route handler Allow header and default export behavior to align with Next.js
  • Fixed missing methods (set, delete, clear, size, toString) in RequestCookies
  • Fixed middleware waitUntil propagation to Workers execution context
  • Fixed per-request i18n locale state using AsyncLocalStorage
  • Updated import checks to support next/{mod}.js file extensions
  • Added missing .js alias variants for next/config and next/amp
  • Improved metadata scanning to ignore @slot and _private directories

Performance

  • Unified per-request AsyncLocalStorage into shared request context
  • Shared ISR deduplication maps across RSC/SSR environments using Symbol.for()

Internal / Chores

  • Upgraded Vitest to v4.1
  • Eliminated as any and as unknown as type assertions
  • Added missing __vinext globals to global.d.ts and removed unsafe casts
  • Excluded benchmarks/nextjs from pnpm workspace to prevent dependency hoisting
  • Updated Vite beta usage to v8

Contributors

@benfavre
@Dayifour
@Divkix
@hyoban
@james-elicx
@JaredStowell
@NathanDrake2406