Release note

v1.0.0
April 9, 2026·70fb25d...0895413

What's Changed

CLI & Tooling

  • Added a new next internal upload-trace subcommand that uploads CPU profiles (.cpuprofile files) and Turbopack trace files from .next-profiles/ to Vercel Blob storage, with file-format validation and a chunked progress bar during upload. The @vercel/blob package is now bundled into next/dist/compiled/@vercel/blob.
  • Added a --internal-trace CLI flag to next build and next dev that enables Turbopack internal trace capture.

Build Output

  • Fixed the build output tree view so that parent routes with generated child paths (e.g., getStaticPaths routes) no longer display a route-type symbol on the parent row — the symbol is now shown only on the concrete child path rows, reducing misleading output.
  • The build output now distinguishes PPR routes from fully-static routes within getStaticPaths groups, ensuring each child row carries the correct rendering symbol.

Experimental APIs

  • Added an experimental unstable_io() API (opt-in via experimental.unstableIO in next.config) that enables incremental I/O support during app rendering. The API is exported from next/cache and gated behind a server-side feature flag; it is not available in browser contexts.

App Rendering

  • Introduced stream fork points in the app renderer, allowing the prerender and dynamic streams to diverge at well-defined boundaries. This is an internal infrastructure change supporting partial prerendering and concurrent rendering correctness. Added a comprehensive unit test suite (app-render-prerender-utils.test.ts) covering fork-point logic.

Turbopack

  • Switched Turbopack's asset URL scheme from an immutable token-based approach to a path-prefix-based approach, affecting how client assets and manifests are referenced across the client, edge, and server contexts.
  • Fixed a race condition in turbo-tasks-backend where two threads could concurrently restore the same task's data from backing storage. Per-category meta_restoring / data_restoring flags now coordinate concurrent restores using synchronous event waiting, and task storage is initialized before the task ID is made visible in the shared cache.
  • Added a synchronous EventListener::wait() method for blocking non-async contexts during task restore coordination.

Error Messages & Docs Links

  • Updated documentation URLs in runtime error messages across server actions, cookies, headers, connection APIs, and the use-cache transform — all /canary/ paths have been replaced with stable doc paths.

Testing Utilities

  • Fixed unstable_getResponseFromNextConfig to correctly resolve config values that are functions (e.g., headers, redirects, rewrites) before applying them during testing, preventing incorrect behavior when these fields are defined as async functions.

React

  • Updated the vendored React and React DOM builds from 74568e86 (2026-03-28) to 404b38c7 (2026-04-08) across standard, experimental, and profiling channel bundles.

This release includes a new internal trace upload command, build output rendering improvements for SSG and PPR routes, an experimental incremental I/O API, a Turbopack race condition fix, and a React update.

Generated with NoteshipAI — AI-powered changelogs from your git history

Generate your own for free →