next internal upload-trace command that uploads CPU profiles (.cpuprofile files) and Turbopack trace files from .next-profiles/ to Vercel Blob storage via https://api.nextjs.org/api/upload-trace, with progress reporting and file-header validation. The @vercel/blob package is now bundled into next/dist/compiled/@vercel/blob.--internal-trace CLI flag to next build and next dev that enables writing Turbopack trace files directly to .next-profiles/ (previously they went elsewhere).--experimental-cpu-prof now write to .next-profiles/ instead of .next/cpu-profiles/, consolidating all profiling artifacts under one directory.next dev server now watches for deletion of the .next output directory and automatically restarts the server if it is removed while running.next build, making it easier to identify Next.js builds in system process listings.●, ◐) on parent rows that act as headers for getStaticPaths-generated child routes; the symbol now appears only on the concrete child route rows where it is meaningful.getStaticPaths groups, surfacing the right icon per route type in the printed tree.experimental.unstableIO flag that gates the unstable_io() API (exported from next/cache), providing a synchronous I/O primitive for use in specific rendering contexts.experimental.swcEnvOptions config key, which passes SWC preset-env-style options to the compiler, enabling fine-grained control over transpilation targets (e.g., disabling automatic polyfill injection).next typegen and next build now generate RootParams types derived from the actual dynamic segments in the app directory, available via next/root-params. This gives type-safe access to root layout params in TypeScript projects.get_compilation_issues tool to the Next.js MCP server that surfaces Turbopack compilation errors in a structured format, making them accessible to AI coding agents and IDE integrations via the Model Context Protocol.next-routing)next-routing package now supports middleware matching and app-request URL normalization, including improved i18n route resolution, redirect handling, and _next/data URL normalization.devRequestTimingInternalsEnd was not correctly called, and Turbopack server-side HMR was broken for route handler modules.styled-jsx race condition in the Pages Router where concurrent renders could cause styles to be lost from the final HTML output.node:stream now resolve correctly in edge contexts rather than throwing at runtime.onRequestError instrumentation hook now correctly receives stale ISR revalidation errors from app-page routes.unstable_getResponseFromNextConfig now correctly resolves function-valued config fields (e.g., headers, rewrites) before returning, fixing test utilities that relied on the resolved values.meta_restoring/data_restoring flags and synchronous event-based waiting, eliminating a class of data races during parallel cache restoration.turbo-persistence performance improvements: BlockCache is now bypassed for uncompressed mmap-backed blocks (reducing overhead), referenced BlockCache entries are pinned to prevent premature eviction, file syncing is optimized, the is_empty() check uses an AtomicBool to avoid lock contention, and the SST builder uses sorted inserts for better write performance.EventListener::wait() for synchronous blocking in non-async backend operation contexts.74568e86 (2026-03-28) to 404b38c7 (2026-04-08).swc_sourcemap from v9 to v10, and swc_plugin_runner from v24 to v25./docs/canary/… have been updated to stable paths.params and searchParams as common dynamic data sources, improving discoverability.experimental.useCache is now marked @deprecated in the config type (superseded by the "use cache" directive).This release spans canary versions 16.2.1-canary.19 through 16.2.1-canary.29, delivering new CLI tooling for profile uploads, experimental unstable_io and swcEnvOptions APIs, TypeScript root-params generation, build-output display fixes, and a broad set of Turbopack stability and performance improvements.
Generated with NoteshipAI — AI-powered changelogs from your git history
Generate your own for free →