Releases: cloudflare/vinext
Releases · cloudflare/vinext
v0.0.39
What's Changed
New Features
- Added standalone self-host output option with aligned production initialization scripts
- Implemented
parallelRoutesKeysupport inuseSelectedLayoutSegmentanduseSelectedLayoutSegmentshooks
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
resolveParentParamslookups for better routing performance
Internal / Chores
- Improved SSR head management and validation
- Enhanced code quality with additional lint rules including preferring
typeoverinterfaceand disabling explicitany - 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
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.waitUntilfor 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
What's Changed
Bug Fixes
- Fixed hydration timing issue where
createFromReadableStreamwas incorrectly awaited before callinghydrateRoot, 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
v0.0.36
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
v0.0.35
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
v0.0.34
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
useActionStatestate becoming undefined whenredirect()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
v0.0.33
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
v0.0.32
What's Changed
New Features
- Added support for
next/dist/*internal imports with automatic .js shim aliases generation - Full
next/compat/routersupport is now available - The
vinext checkcommand now flags usage of__dirnameand__filenameand suggests ESM path APIs instead - Added
basePathandlocaleproperties toNextURLfor 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
getStaticPropsrevalidate parsing to be scoped only to the exported function - Improved
next/headSSR serializer to validate attribute names Set-Cookieheaders are now properly stripped from fetch cache entries- Next.js config file loading now throws errors when it fails instead of failing silently
- Fixed
pageExtensionshandling in prerender and excluded underscore-prefixed API files - Enhanced
vinext checkscanner to work correctly with shimmed modules
Internal / Chores
- Switched back to
setup-vp@v1for CI - Migrated
ssrLoadModuleto usemoduleRunner.import - Marked
clientReferenceDedupas experimental and added fumadocs example
Contributors
@southpolesteve
@james-elicx
@Boyeep
@hyoban
@NathanDrake2406
v0.0.31
What's Changed
New Features
- Added support for
@vitejs/plugin-reactv6 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
revalidatePathwith layout type - Added
revalidateByPathPrefixsupport to KVCacheHandler - Propagated Next.js config
serverExternalPackagesto 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/headerscookie path semantics to align with Next.js behavior - Preserved named capture groups in Next.js config destinations
- Fixed
after()function to usewaitUntilproperly in Cloudflare Workers - Eliminated double middleware execution in hybrid app+pages development mode
- Added missing
ResponseCookies.has()method implementation - Fixed
use serverclosure 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.directoryto generatedwrangler.jsoncconfiguration - Added support for
@voidzero-dev/vite-plus-coreas Vite alias
Internal / Chores
- Migrated build system to Vite Plus
- Moved to pnpm catalogs for dependency management
- Migrated from Wrangler
unstable_devtounstable_startWorkerAPI - 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
What's Changed
New Features
- Added Pages Router i18n domain routing support
Bug Fixes
- Fixed
next/headkey 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
resolveUrlfunction - 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
MemoryCacheHandlercreating immediately-stale entries whenrevalidate: 0is used - Fixed
useSelectedLayoutSegmenthook in development mode - Fixed intercept routes (..) to climb visible route segments instead of filesystem directories
- Fixed
onLoadingCompletecallback support in modernnext/imageshim - Fixed parsing of
:param(constraint)syntax in middleware matchers - Fixed router events
hashChangeStart,hashChangeComplete, andbeforeHistoryChangeemission - Fixed route handler
Allowheader and default export behavior to align with Next.js - Fixed missing methods (
set,delete,clear,size,toString) inRequestCookies - Fixed middleware
waitUntilpropagation to Workers execution context - Fixed per-request i18n locale state using
AsyncLocalStorage - Updated import checks to support
next/{mod}.jsfile extensions - Added missing
.jsalias variants fornext/configandnext/amp - Improved metadata scanning to ignore
@slotand_privatedirectories
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 anyandas unknown astype assertions - Added missing
__vinextglobals toglobal.d.tsand 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