Next.js v16.0.0stable Released Oct 22, 2025
⚠️ Breaking Change Impact Score: 7/10

Next.js v16.0.0 β€” Release Notes & Engineering Impact

Source available β€” automated, not human-reviewed

Component: nextjs Β· Channel: stable. Automated analysis, not a compatibility certification. How this works.

Analysis updated: 2026-11-01.

Breaking-change evidence from the source

  • - [Breaking] Flat config as default in `@next/eslint-plugin-next`: #83763
  • - [Breaking] Remove deprecated `publicRuntimeConfig` and `serverRuntimeConfig`: #83944
  • - [breaking]: enable router scroll optimization by default: #84102
  • - BREAKING CHANGE!: bump default `images.minimumCacheTTL` from 1 min to 4 hours: #84105
  • - Revert "[Breaking] Remove deprecated `publicRuntimeConfig` and `serverRuntimeConfig` (#83944)": #84167
  • - [Breaking] Remove deprecated sync access to Dynamic APIs: #84179
  • - [Breaking] Remove AMP codemod: #84356 - [Breaking] Remove deprecated built-in AMP: #84312 - auto-enable clientParamParsing and clientSegmentCache w/ cacheComponents: #84250
  • - [Breaking] Remove deprecated built-in AMP: #84312
Read the original context β†—
Source flags breaking changes β€” review applicability
$ npm install --save-exact [email protected]
πŸ“„ .MD
⚑ Executive Summary (TL;DR)

Next.js v16.0.0. Source highlight: **Check out our Next v16 Blog Post to learn more about this release.**

Who Does This Impact? (Role-Based Analysis)

πŸ’» Software Engineers & Devs

Check the source notes against the package and APIs you use before upgrading.

πŸ“Š Product & Engineering Leads

Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.

βš™οΈ DevOps & Security

Verify the target version, runtime requirements and rollback procedure in the official documentation.

⚠️ Breaking Changes & Deprecations (8)

  • - [Breaking] Flat config as default in `@next/eslint-plugin-next`: #83763
  • - [Breaking] Remove deprecated `publicRuntimeConfig` and `serverRuntimeConfig`: #83944
  • - [breaking]: enable router scroll optimization by default: #84102
  • - BREAKING CHANGE!: bump default `images.minimumCacheTTL` from 1 min to 4 hours: #84105
  • - Revert "[Breaking] Remove deprecated `publicRuntimeConfig` and `serverRuntimeConfig` (#83944)": #84167
  • - [Breaking] Remove deprecated sync access to Dynamic APIs: #84179
  • - [Breaking] Remove AMP codemod: #84356 - [Breaking] Remove deprecated built-in AMP: #84312 - auto-enable clientParamParsing and clientSegmentCache w/ cacheComponents: #84250
  • - [Breaking] Remove deprecated built-in AMP: #84312

✨ New Features & Capabilities (6)

  • Add native ts resolver docs link to transpile-config: #83914
  • Build: Add .next/trace-build with high level trace: #83949
  • trace-build: Add missing spans: #84080
  • Feat: Add Model Context Protocol (MCP) server to Next.js dev server: #84100
  • Feat: `get_errors` MCP endpoint: #84161
  • Add internal environment variable for enabling React Compiler: #84176

⚑ Performance & Enhancements (6)

  • perf: Use a more aggressive retry loop for `recursiveDelete`: #84444
  • perf: Use synchronous IO when cleaning `distDir` in `next dev` and `next build`: #84472
  • Turbopack: improve errors/warnings for turbopack messages: #84552
  • improve next config schema validation errors: #84847
  • [turbopack] Improve the multiple bundler flags messge to note that perhaps your `package.json` is the problem: #85118
  • [turbopack] Implement improved deobfuscation for free calls and module identifiers.: #85060

πŸ”§ Bug Fixes & Patches (6)

  • Don't create client-side debug channel if the feature is disabled: #83699
  • fix: dev should produce the correct default fallback regex to match builds/Turbopack: #83701
  • [devtool] fix overlay styles are missing: #83721
  • Fix index data route for adapter build-complete: #83730
  • Fix reentrancy of unhandledRejection filtering: #83741
  • Fix type for unhandled rejection handler process.removeListener: #83748
πŸ“„ View Raw Release Notes (Original Developer Log)
> [!TIP] > **Check out our Next v16 [Blog Post](https://nextjs.org/blog/next-16) to learn more about this release.** ### Core Changes - Development: Don't import app-router / hot-reloader through next/link in application code: #83656 - Remove clientParamParsing requirement from RDC for Navigations: #83661 - Upgrade React from `6b70072c-20250909` to `886b3d36-20250910`: #83650 - Turbopack: Use readFileSync / writeFileSync for manifest writing: #83694 - Upgrade React from `886b3d36-20250910` to `f3a80361-20250911`: #83696 - Don't create client-side debug channel if the feature is disabled: #83699 - fix: dev should produce the correct default fallback regex to match builds/Turbopack: #83701 - [devtool] fix overlay styles are missing: #83721 - Revert "Remove clientParamParsing requirement from RDC for Navigations": #83725 - Only enable unhandledRejection filtering when opted in: #83726 - Fix index data route for adapter build-complete: #83730 - Remove leading underscore for unhandledRejection envvar: #83732 - Upgrade React from `f3a80361-20250911` to `93d7aa69-20250912`: #83729 - Upgrade React from `93d7aa69-20250912` to `8a8e9a7e-20250912`: #83742 - Fix reentrancy of unhandledRejection filtering: #83741 - Fix type for unhandled rejection handler process.removeListener: #83748 - [OTel] fix: Root span name should not include high cardinality URL: #75416 - Turbopack: Remove matchers.reload() call on each request: #83720 - [Breaking] Flat config as default in `@next/eslint-plugin-next`: #83763 - fix: Rspack splitChunks.chunks regex: #83670 - Revert "Turbopack: Remove matchers.reload() call on each request": #83819 - fix: unstable_cache should perform blocking revalidation during ISR revalidation: #83820 - fix(Rspack): resolve HMR unresponsiveness or unexpected full reload & update dev snapshot: #83480 - Allow `next.config.mts` for Node.js native TS resolver: #83556 - chore: Ensure Import Trace starts in a newline: #83638 - Development: Remove matchers.reload() on each request: #83829 - Upgrade React from `8a8e9a7e-20250912` to `5e0c951b-20250916`: #83850 - Bump typescript 5.9.2: #83833 - Allow headers, rewrites and redirects to be defined as sync functions: #83743 - Turbopack: Optimize addedRoutes and removedRoutes calculation: #83840 - [next-config-ts] Set Node.js native TS loader fallback flag to process.env: #83832 - Development: Clarify TypescriptStatus in watcher: #83857 - Upgrade sharp dependency to version ^0.34.4: #83892 - Upgrade React from `5e0c951b-20250916` to `128abcfa-20250917`: #83906 - Add native ts resolver docs link to transpile-config: #83914 - OTel: use `srcPage` for templates when `next.route` is unavailable: #83911 - Remove inline CSS sourcemaps from next-devtools: #83917 - Development: Move all TypeScript related work in watcher together: #83912 - [Cache Components] Allow sync IO inside console methods : #83843 - Upgrade React from `128abcfa-20250917` to `84af9085-20250917`: #83959 - Build: Add .next/trace-build with high level trace: #83949 - Remove force writing **/*.mts to tsconfig: #83967 - feat: Isolate dev build from prod: #83961 - Remove JS size reporting from next build: #83815 - Docs/workspace setup: #83490 - Turbopack: support `import ... with {type: "bytes"}`: #83896 - fix: error overlay not closing when backdrop clicked: #83981 - Upgrade React from `84af9085-20250917` to `d415fd3e-20250919`: #84003 - fix: worker logs should still support color: #84024 - Update font data: #84005 - Allow passing port to `next internal trace`: #83907 - Turbopack: error when importing Typescript in node_modules: #83990 - Turbopack: Deterministic builds (prerender-manifest, .next/package.json, ./next/postcss.js): #84081 - Turbopack: Fix babel-loader (allowing built-in or manual configuration): #82676 - [Cache Components] allow using headers() in runtime prefetches: #83838 - [Breaking] Remove deprecated `publicRuntimeConfig` and `serverRuntimeConfig`: #83944 - Turbopack: mode to disable tracing: #83683 - babel-loader: Fix a few issues with config caching: #83973 - Turbopack: Merge babel-loader and react-compiler configuration logic to avoid running babel twice: #83502 - [breaking]: enable router scroll optimization by default: #84102 - Fix layout for `ssgPageRoutes` in the file tree: #84104 - Turbopack: Remove useless 'default' built-in webpack loader condition: #84111 - Fix: Client should auto reload after server restarts: #83971 - trace-build: Add missing spans: #84080 - Development: Remove TypeScript from the hot path during bootup: #84090 - Guide users to `experimental.cacheComponents` config: #84121 - Development: Only load webpack when used: #84123 - Turbopack: Skip loading webpack plugin: #84125 - Development: Only load createEnvDefinitions when used: #83935 - BREAKING CHANGE!: bump default `images.minimumCacheTTL` from 1 min to 4 hours: #84105 - Feat: Add Model Context Protocol (MCP) server to Next.js dev server: #84100 - Upgrade React from `d415fd3e-20250919` to `1eca9a27-20250922`: #84093 - Turbopack: Remove the deprecated `.turbo` config object: #84109 - Flag excess properties in Next.js config with TypeScript: #84069 - docs: update Security section to direct disclosures : #84156 - ci: Enable `experimental.isolatedDevBuild` for `test-experimental-dev`: #84099 - [turbopack] Ensure React Compiler options are based dev vs prod: #84062 - Enable anonymous function naming in React Compiler: #84070 - Revert "[Breaking] Remove deprecated `publicRuntimeConfig` and `serverRuntimeConfig` (#83944)": #84167 - Fix double comma in build manifest: #84131 - [turbopack] set app dir only to true when no pages entries detected: #84144 - Split code-frame into separate compiled package: #84174 - refactor: separate forward browser logs utils: #84151 - Upgrade React from `1eca9a27-20250922` to `e2332183-20250924`: #84189 - [Cache Components] default to filtering unhandledRejection after abort: #84192 - fix: prevent URL mutation in router rewrites: #83963 - fix(server): fix pages router resume router matching: #84158 - Feat: `get_errors` MCP endpoint: #84161 - Add internal environment variable for enabling React Compiler: #84176 - [devtools] Disable React's default Transition indicator: #84202 - Upgrade React from `e2332183-20250924` to `b0c1dc01-20250925`: #84248 - Feat: `get_page_metadata` MCP endpoint: #84211 - feat: capture logs into logging file during development: #84183 - babel-loader: Avoid calling expensive `isReactCompilerRequired` check when we must run Babel anyways: #84103 - [mcp] expose logging: #84226 - Move `config.turbopack.moduleIds` to `config.experimental.turbopackModuleIds`: #84230 - Show invalid default export errors during prerendering: #84242 - fix: make sure caller exists in babel preset: #84154 - [mcp] allow to enable mcp server through env var: #84278 - fix(metadata): make formatDetection respect true/false properly: #83924 - Upgrade React from `b0c1dc01-20250925` to `df38ac9a-20250926`: #84276 - Add a --webpack flag and default --turbopack to true: #84216 - fix: Update URL resolution logic to handle search parameters on root path /?foo=bar: #78262 - [Breaking] Remove deprecated sync access to Dynamic APIs: #84179 - Move `config.turbopack.moduleIds` to `config.experimental.turbopackModuleIds`: #84230 - Show invalid default export errors during prerendering: #84242 - fix: make sure caller exists in babel preset: #84154 - [mcp] allow to enable mcp server through env var: #84278 - fix(metadata): make formatDetection respect true/false properly: #83924 - Upgrade React from `b0c1dc01-20250925` to `df38ac9a-20250926`: #84276 - Add a --webpack flag and default --turbopack to true: #84216 - fix: Update URL resolution logic to handle search parameters on root path /?foo=bar: #78262 - [Breaking] Remove deprecated sync access to Dynamic APIs: #84179 - Turbopack: only write merged manifests when they have been changed: #84261 - Turbopack: add separate turbopackPersistentCachingForBuild/ForDev flags: #84215 - Revert "Add a --webpack flag and default --turbopack to true (#84216)": #84348 - Upgrade React from `df38ac9a-20250926` to `d15d7fd7-20250929`: #84347 - Mark React Compiler integration as stable: #84220 - [cna] Add `reactCompiler` option: #82251 - Turbopack: remove canary version check for turbopackPersistentCachingForDev: #84277 - [turbopack] Add support for debug_ids: #84319 - Revert "Revert "Add a --webpack flag and default --turbopack to true (#84216)"": #84351 - [Breaking] Remove AMP codemod: #84356 - [Breaking] Remove deprecated built-in AMP: #84312 - auto-enable clientParamParsing and clientSegmentCache w/ cacheComponents: #84250 - [mcp] get server action tool: #84382 - Revert "Revert "Revert "Add a --webpack flag and default --turbopack to true (#84216)""": #84389 - Update otel test assertions and pages span_name: #84393 - [Breaking] Bump minimum TypeScript version to 5.1.0: #84384 - Upgrade React from `d15d7fd7-20250929` to `ef889445-20250930`: #84383 - [Breaking] Remove deprecated `unstable_rootParams`: #84373 - [metadata] remove falsy dynamicParams approach: #84405 - fix: next rspack binding NextExternalsPlugin: #84303 - Development: Skip route matching when there is an existing match: #84227 - Revert "auto-enable clientParamParsing and clientSegmentCache w/ cacheComponents": #84419 - Upgrade React from `ef889445-20250930` to `548235db-20251001`: #84416 - [Breaking] Update default browserslist config: #84401 - Upgrade React from `548235db-20251001` to `1bd1f01f-20251001`: #84417 - Allow `metadataBase` to be a string URL in addition to `URL` instance: #84297 - Upgrade React from `1bd1f01f-20251001` to `86181134-20251001`: #84427 - [mcp] logging file should be reset for each session: #84425 - Revert "Revert "Revert "Revert "Add a --webpack flag and default --turbopack to true (#84216)"""": #84394 - Optimize isMetadataRoute function: #84409 - [ci]: split clientSegmentCache test runners off from experimental: #84440 - [Cache Components] Fix caching in `generateMetadata`/`generateViewport`: #84228 - Upgrade React from `86181134-20251001` to `a757cb76-20251002`: #84463 - [segment cache]: fix trailingSlash handling with output: export: #84465 - perf: Use a more aggressive retry loop for `recursiveDelete`: #84444 - [Cache Components] Dim logs after prerender aborts: #84153 - telemetry track mcp server usage: #84471 - simplify the way we check for turbopack config to ensure we support an empty turbopack object: #84494 - perf: Use synchronous IO when cleaning `distDir` in `next dev` and `next build`: #84472 - Make turbopack the default bundler for custom servers: #84281 - [segment cache]: fix interception route handling: #84497 - Upgrade React from `a757cb76-20251002` to `85c427d8-20251003`: #84496 - [segment cache]: collectSegmentData should respect experimental.staleTime config: #84520 - Fix potential race condition with request ID in dev mode: #84532 - [test] Enable `reactDebugChannel` for experimental test shards: #84533 - Simplify Metadata components: #84527 - Implement the updated prerender API shape: #84254 - Upgrade React from `85c427d8-20251003` to `4fdf7cf2-20251003`: #84499 - Upgrade React from `4fdf7cf2-20251003` to `c7862584-20251006`: #84573 - fix(Turbopack): Add better error messaging for when we can't determine Next.js root: #83918 - Allow silencing unhandled rejection filter warnings and improve debugging: #84572 - [MCP] Fix: Do not dedup by URL for MCP get_page_metadata: #84564 - Guard `createDebugChannel` import by feature flag: #84604 - Build: Add time to logline of every step: #84602 - Upgrade React from `c7862584-20251006` to `a4eb2dfa-20251006`: #84589 - [Cache Components] Schedule work on timeouts: #84344 - [dev] Define request ID for RSC requests on the client: #84605 - fix(cache-tags): add `/index` to implicit tags and adjust `revalidatePath()`: #84586 - Build: Highlight TypeScript and ESLint being run clearer: #84606 - [Breaking] Bump sass-loader to v16: #84387 - Update cases for build complete with adapters: #84361 - Turbopack: delete .next folder before throwing due to "pages/app directory must be in the same folder": #84553 - [mcp] change get-project-path to get-project-metadata: #84619 - feat(next/image)!: deprecate and warn on `images.domains` config: #84625 - feat(next/legacy/image)!: deprecate and warn on `next/legacy/image` usage: #84622 - Turbopack: improve errors/warnings for turbopack messages: #84552 - Turbopack: rename turbopackPersistentCachingForXXX to turbopackFileSystemCacheForXXX: #84632 - [Segment Cache] Add refresh URL to reused default segments: #84627 - [Segment Cache] Fix tests related to optimistic loading state reuse: #84498 - Upgrade React from `a4eb2dfa-20251006` to `3025aa39-20251007`: #84613 - [breaking]: enable clientSegmentCache by default: #84643 - feat: Acquire a lockfile on `distDir` in `next dev` and `next build`: #84428 - Add deprecation warning to Runtime config: #84168 - [middleware]: add upper bound to cloneBodyStream: #84539 - Remove automatic linting from build: #83136 - Re-enable legacyBehavior and passHref on Link: #84500 - [cna] Use stable React Compiler: #84660 - Add codemod for `middleware` to `proxy`: #84127 - Fix dynamic catchall parameter interpolation in parallel routes: #84279 - feat(breaking): Hard Deprecate PPR Configuration: #84280 - Deprecate `middleware` and recommend `proxy`: #84119 - Put native TS resolver for next config under `--experimental-next-config-strip-types` flag: #84675 - Fix interception route rewrites for nested dynamic routes: #84413 - fix: strip _NEXTSEP_ from interpolated pathnames: #84430 - chore: Remove useless symlink resolution logic in `recursive-delete.js`: #84582 - breaking(next/image)!: remove 16px from default `images.imageSizes` config: #84647 - add Statsig Node Core package to Server External Packages: #84157 - Remove bailed out SSG routes from the list of SSG: #83861 - Revert "[Breaking] Skip Next.js internal routes `/_next` in middleware": #84697 - Bump eslint-plugin-react-hooks to v7: #84669 - Add refresh API to next/cache: #84666 - [Breaking] Require `images.localPatterns` for query in Image src: #84406 - [Breaking] feat(next/image)!: add support for `images.dangerouslyAllowLocalIP` and `images.maximumRedirects`: #84676 - Add new updateTag API and new signature for revalidateTag: #83822 - Add validation for missing default.js in parallel routes: #84702 - misc: allow beta to be triggered: #84713 - Fix tags check for expired/stale: #84717 - tweak middlewareClientMaxBodySize handling: #84712 - docs: Add more details to `useLightningcss` docs: #84581 - Version gate migration docs link: #84740 - [Cache Components] Allow hiding logs after abort: #84579 - Log `Compiled proxy in ...`: #84746 - Upgrade React from `3025aa39-20251007` to `9724e3e6-20251008`: #84642 - Remove unused `eslint-disable` directives: #84797 - Use ESLint Flat Config: #84800 - fix missing flight-router-state-tree header normalization: #84718 - Write `.next/dev/types/**/*.d.ts` to default tsconfig: #84747 - Upgrade React from `9724e3e6-20251008` to `ead92181-20251010`: #84793 - [mcp] capture next config schema errors: #84832 - feat: using @next/rspack-core: #84221 - Upgrade React from `ead92181-20251010` to `d7215b49-20251013`: #84850 - Turbopack build: Switch to using workerthreads for process: #84818 - [Cache Components] Dev - restart render on cache miss: #84088 - Update font data: #84785 - Fix build compile mode if pages dir does not exist in Next.js 16: #84783 - improve next config schema validation errors: #84847 - Upgrade React from `d7215b49-20251013` to `56e84692-20251014`: #84860 - warnOnce for Middleware deprecation: #84862 - Add codemod for Middleware API to Proxy API: #84824 - Deprecate Middleware API and add Proxy API: #84764 - remove `clientParamParsing` configuration & bundle it with `cacheComponents`: #84763 - remove dynamicIO flag: #84872 - Bump eslint-plugin-react to 7.37.0: #84876 - Add nextjs condition when cacheComponents is enabled: #84843 - remove rdcForNavigations configuration & bundle with cacheComponents: #84870 - Convert eslint-config-next project to TypeScript: #84839 - [eslint-config] [Breaking] Use Flat config by default: #84874 - [Cache Components] Remove `unstable` prefix from `unstable_cacheLife`: #84877 - fix: always use the safe stable stringify: #84909 - [Cache Components] Fix cacheSignal in dev render: #84846 - [dev-overlay] Never dedupe errors with different names or messages: #84908 - Remove deprecated experimental_ppr route-level configuration: #84871 - Include server latency in debug info: #84580 - Fix parallel routes ignoring generateStaticParams from primary route: #84889 - Revert "Include server latency in debug info": #84932 - Development: Use process.hrtime for request time calculation: #84905 - Use correct JSX runtime for library-owned JSX in React Server: #84869 - Development: Implement request log time details: #84906 - [Cache Components] Remove `unstable` prefix from `unstable_cacheTag`: #84880 - [Cache Components] separate runtime stage in dev render: #84644 - Reland "Include server latency in debug info": #84950 - Update codemod ESLint template to Flat config: #84919 - Upgrade React from `56e84692-20251014` to `93f85932-20251016`: #84963 - [dev] Fix Middleware and Proxy file conflict: #84965 - stabilize experimental.enablePrerenderSourcemaps: #84916 - Stop manually setting stacktrace limit: #84968 - Turbopack: respect `--profile` CLI param: #84920 - Relax default.tsx validation for parallel routes leaf segments: #84767 - Add codemod for removing `unstable_` prefix: #84974 - Interception routes match from nested route navigation: #84898 - [Cache Components] Allow unstable prefix for cacheLife and cacheTag: #84934 - Relax default.tsx validation for parallel routes leaf segments: #84767 - Add codemod for removing `unstable_` prefix: #84974 - Interception routes match from nested route navigation: #84898 - [Cache Components] Allow unstable prefix for cacheLife and cacheTag: #84934 - Add codemod for removing `experimental_ppr`: #84979 - fix: throw error during build when invalid export for Proxy: #84886 - [cache components]: prevent expired entries from being served: #84975 - Delete old prefetch cache related code: #84977 - docs: Deprecation of Middleware: #84710 - Add rendered search to router state: #84983 - [segment cache]: delay revalidation prefetch pings 300ms: #84981 - Show relative path from cwd for Proxy Middleware file conflict error: #84993 - [Cache Components] fix docs for cacheLife("seconds"): #85004 - Rename MiddlewareMatcher to ProxyMatcher: #85005 - [Breaking] Rename instrumentation onRequestError `context.routeType` from `middleware` to `proxy`: #85006 - [turbopack] Prevent accidental access to `.next`: #84714 - fix: incorrect canonicalUrl set when using output: export: #85019 - Add Activity name to route layouts and pages: #85011 - Update next-lint-to-eslint-cli to support `FlatCompat.config`: #85026 - [cache components]: move flag out of experimental: #85035 - [Cache Components] When caches are disabled in dev skip the cache warmup: #85014 - [Cache Components] Use canary React when only Cache Components is enabled: #85042 - Turbopack: Remove unneeded warning for telemetry: #85039 - [cache components] stabilize cacheLife profiles: #85050 - [cache components] show when cache components is enabled in the CLI: #85047 - [cache components]: show cache components enabled in DevTools: #85048 - [Cache Components] correctly label IO promises in devtools: #84928 - Plumbing for cache indicator: #84955 - Upgrade React from `93f85932-20251016` to `1324e1bb-20251016`: #84999 - enable mcp server by default: #85058 - Add comment that we expect the function passed to bind to be anonymous: #85070 - Development: Addres comments on request log PR: #84945 - Development: Implement request time for Pages Router: #85012 - [cache components] add cache components indicator to dev start: #85069 - cli: build partial entries --debug-build-paths arg: #85052 - Turbopack: Better error for sassOptions.functions as it's unsupported: #85073 - Upgrade React from `58bdc0bb-20251019` to `f6a48828-20251019`: #85081 - [devtools]: instrument client navigation hooks for suspense devtools: #85007 - Remove Segment from CacheNodeSeedData: #85080 - label as Prefetch/Prefetchable depending on prefetch config: #85076 - [cache components]: add 'bypass' cache indicator status: #85082 - Upgrade React from `f6a48828-20251019` to `2bcbf254-20251020`: #85112 - [cache components]: guard against setCacheStatus since its conditionally defined: #85125 - warn: add deprecation warning of eslint config: #85122 - add new devtools indicator loading state: #85083 - Await initial Flight response before hydrating: #85124 - fix(experimental.lockDistDir): Acquire the lock in dev earlier: #85116 - telemetry: mcp tool call: #85120 - [Turbopack] dedupe build errors: #85062 - Fix subtree layout alignment for route summary in `next build`: #85137 - [codemod] Remove runtime config when running `middleware-to-proxy`: #85075 - [turbopack] Improve the multiple bundler flags messge to note that perhaps your `package.json` is the problem: #85118 - Add Learn more docs to Middleware deprecation warning: #84711 - [BF Cache]: skip lazyData fetch logic for inactive segments: #85142 - Pass `startTime` to initial RSC payload stream: #85144 - guard navigation `use` hooks for React 18: #85151 - [turbopack] Don't warn on the lightning css experimental option: #84913 - Turbopack: Remove redundant log line, increase delay for compiling log message: #85133 - Make params and searchParams new Promises: #85158 - Name "cache" streams for React DevTools: #85159 - Use cacheMaxMemorySize config in default cache handler: #85153 - Omit params to from client segments: #84883 - enable experimental.routerBfCache behind cacheComponents: #84923 - [Cache Components] Allow stale longer than expire in cacheLife: #85115 - Update Activity names given to routes: #85155 - use port zero for --inspect when forking, if used by parent: #85128 - Update blocking prerender error message: #85087 - Fix: CSS asset URLs broken with `experimental.inlineCss`: #85140 - Update routes generation for build-complete: #85017 - [cache components] move experimental.cacheHandlers out of experimental: #85157 - Don't assign displayName to the internal Promises: #85178 - Assign name to hydration stream: #85179 - fix: add backwards compat for middleware β†’ proxy field renames: #85183 - [turbopack] Implement improved deobfuscation for free calls and module identifiers.: #85060 - Improve Proxy invalid export error message: #84887 - Fix Activity boundary names: #85185 - [codemod] Install ESLint v9 if version under for next-lint-to-eslint-cli: #85182 - [upgrade] Version gate adding `--turbopack` flag: #85180 - Tweaks to blocking route error message: #85191 - Remove layout-router sticky/fixed debug warning: #85193 - [cache components] persist cache bypass UI until it's disabled: #85190 - Only allow node runtime in proxy: #85139 - logger: skip logging full element: #85194 - Fix: CSS asset URLs broken with `experimental.inlineCss`: #85140 - Update routes generation for build-complete: #85017 - [cache components] move experimental.cacheHandlers out of experimental: #85157 - Don't assign displayName to the internal Promises: #85178 - Assign name to hydration stream: #85179 - fix: add backwards compat for middleware β†’ proxy field renames: #85183 - [turbopack] Implement improved deobfuscation for free calls and module identifiers.: #85060 - Improve Proxy invalid export error message: #84887 - Fix Activity boundary names: #85185 - [codemod] Install ESLint v9 if version under for next-lint-to-eslint-cli: #85182 - [upgrade] Version gate adding `--turbopack` flag: #85180 - Tweaks to blocking route error message: #85191 - Remove layout-router sticky/fixed debug warning: #85193 - [cache components] persist cache bypass UI until it's disabled: #85190 - Only allow node runtime in proxy: #85139 - logger: skip logging full element: #85194 ### Example Changes - docs: Convert relative imports to @ aliases in examples: #83813 - chore: add example with oxlint: #83842 - fix: correct typo 'incomming' to 'incoming' in with-mqtt-js example: #83887 - chore: improve oxlint example: #83898 - docs: update Dockerfile to use node:lts-alpine instead of node:18-alpine: #84229 - Use Array.from to avoid @ts-ignore when copying i18n.locales: #82148 - examples: Remove AMP example: #84355 - [docs] fix(with-supabase): Update README env variables: #84745 ### Misc Changes - Turbopack: remove `css_environment` from `Environment`: #83487 - Turbopack: Don't add client_runtime_entries to Route Handler compilation: #83655 - Turbopack: Only load capsize-font-metrics once: #83654 - [CI] Fix GitHub Actions matrix configuration for React versions: #83677 - fix(Turbopack): Enable scope hoisting for large files or module counts: #83399 - [turbopack] Lazily construct `resolved::Requests` for `EsmAssetReference`: #83662 - Update content-security-policy.mdx, fix development environment error: #83665 - tests: disable flaky deployment test while investigating upstream: #83705 - [test] Update snapshots for Rspack + React 18: #83712 - Docs/sep paper cuts: #83689 - [Turbopack] Remove `ssr-data` module context: #83626 - CI: use KV for test timing data: #83745 - Emit build error when `'use cache'` directive is misspelled: #83756 - docs(metadata): align default function export name with file name: #83796 - [turbopack] Remove the `should_track_children` parameter of the turbo tasks backend: #83258 - docs(data-security): add bun package manager example: #83735 - Update next-intlayer reference in i18n doc: #83761 - Update Rspack production test manifest: #83790 - Update Rspack development test manifest: #83791 - Turbopack: chunking debugging utilities: #83801 - Removed link to maintain text consistency: #83644 - Turbopack: rename some fields in fs: #83808 - Turbopack: validate CSS without computing all paths: #83810 - [test] Disable flaky navigation test: #83828 - docs: Type narrowing using LayoutProps, PageProps: #83692 - docs: implications of mutating cookies in server actions: #83691 - Only retry if canary fails on required jobs: #83851 - docs: Fix self-referential link to Middleware in middleware.mdx: #83854 - Update Rspack production test manifest: #83826 - Update generate-metadata.mdx: #81853 - Turbopack: remove lazy invalidated tasks: #83845 - Turbopack: remove Backend TaskState: #83846 - Turbopack: don't recompute empty parse results: #83883 - Turbopack: delete broken hmr benchmark: #83882 - Turbopack: only generate error string in error case: #83884 - docs: the as prop is still available in Pages Router: #83864 - Turbopack: map_module_batch: #83885 - Turbopack: Change run once signature to avoid exposing TaskId: #83844 - docs: Update command to use `npx` for tracing files: #83903 - Turbopack: ModuleGraphRef: #83890 - Update Rspack development test manifest: #83876 - Turbopack: make graph traversal sync: #83891 - chore: Fix test snapshot: #83901 - Update Rspack production test manifest: #83877 - docs: add `next.config.ts` Node.js native resolver: #83561 - Turbopack: add turbo_tasks::run to run in turbo tasks scope without a task: #83847 - Turbopack: fix double codegen of some merged modules: #83886 - Turbopack: add traces to merged module computation: #83908 - Turbopack: RuleCondition support resourceQuery contains: #83468 - fix: add the missing comma in the document example: #83932 - Turbopack: Document the reasons for the current design of `parse_segment_config_from_source`: #83919 - Turbopack: extract parse_source_map_comment: #83938 - Turbopack: enable nodelay for node.js pool socket: #83942 - feat: next-rspack-binding: #82811 - Only send notification if canary fails on required jobs: #83953 - Turbopack: allow to read State from turbo_tasks::run: #83955 - Fix conclusion check for retry_test workflow: #83960 - Add Descope to Auth libraries list: #83968 - [turbopack] Track task durations in the task_statistics file: #83522 - [turbopack] Remove the `issue_path` feature and related functionality: #83920 - Turbopack: use turbo_tasks::run in next.js to avoid task memory leak: #83848 - Update Rspack production test manifest: #83934 - Update Rspack development test manifest: #83933 - Turbopack: add test case that checks memory leak: #83849 - Turbopack: read project strongly consistent in project_update: #83974 - Fix output comparison when checking conclusion of required jobs: #83986 - Turbopack: JsAnalyzer parse AssignExpr: #83962 - Turbopack: less eager manifest generation: #83736 - Turbopack: use depth as priority for merged module info: #83909 - Turbopack: "connect" tasks in turbo_tasks::run too: #83975 - Update Rspack production test manifest: #83979 - Update Rspack development test manifest: #83980 - Turbopack: Make transient tasks root tasks too when called in turbo_tasks::run: #83976 - Turbopack: trace state changes: #83977 - [turbopack] cleanup analyzer: #83983 - [Turbopack] Fix AST traversal for `this` in function default parameters: #83746 - [turbopack] Consolodate logic for visiting functions to simplify state management: #82763 - [turbopack] Track the scope in which variables are assigned: #82845 - [turbopack] Set `liveness` of exports based on assignment analysis: #82802 - Turbopack: trace all state changes: #84053 - docs: We have dropped the CORS example linked: #84065 - docs: add pageExtensions note to Middleware and clarify default filename: #84045 - Fix TypeScript type error in example code: #84041 - Turbopack: fix test case and update project_update to turbo_tasks::run too: #83978 - Turbopack: run tests with multiple threads: #84074 - Turbopack: flush Node.js worker IPC on error: #84077 - Turbopack: parallelize scope hoisting computation: #83904 - Add test for JS resource size on navigation: #83731 - Update Rspack development test manifest: #84061 - Update Rspack production test manifest: #84060 - Turbopack: Document automatic Babel config support: #84002 - docs: Fix the title/path of the turbopack page on pages router: #84001 - Turbopack: remove references from ChunkData: #84076 - Turbopack: include availability hash in the ident of evaluated chunks groups: #84082 - [turbopack] s/analyse/analyze/g: #84112 - [Turbopack] avoid attaching referenced output assets to chunks: #75933 - fix(docs): Fix links in UPGRADING.md: #84114 - docs: improve dynamic routes example in project structure page: #84086 - docs: onRequestError request header type: #83988 - Turbopack: Improve persistent caching test case: #83205 - Turbopack: add more details to the graph panic: #84126 - docs: Cookies store access is async: #83987 - Bump Rust to nightly-2025-09-21: #83415 - Upgrade CodSpeed action and add analyzer benchmarks: #84135 - Turbopack: fix run_once when returning error: #84142 - [turbopack] Conditionally collect affecting sources: #83921 - Turbopack: slightly improve resolve_source_map_sources: #84147 - Turbopack: RawEcmascriptModule: #81806 - Turbopack: add more details to the graph panic: #84143 - test: split app-middleware test per describe: #84130 - Update Rspack development test manifest: #84117 - script: improve release log generation: #83686 - Turbopack: split task_execution_completed into multiple methods: #84170 - Turbopack: only generate field if spans are enabled: #84184 - Turbopack: support more dynamic request with import map: #84178 - [turbopack] defer a `value_to_string` operation until we need it: #84188 - Update Rspack production test manifest: #84165 - Revert "[turbopack] Set `liveness` of exports based on assignment ana…: #84207 - Turbopack: increase retry duration, reduce busy looping when there is other work: #84171 - Turbopack: Try to avoid block_in_place in scope: #84172 - [turbopack] Remove some bitmap clones: #84193 - Turbopack: lazier manifests, part deux: #84191 - Turbopack: avoid panic on updating output when a task was cancelled: #84214 - docs: nav_title for long unbroken words: #84233 - Turbopack: Use `RawValue` for `mappings` inside `SourceMapJson`: #84208 - Update Rspack development test manifest: #84218 - Turbopack: fix NFT of readFileSync of relative path: #84155 - Turbopack: improve references benchmark: #84223 - Update Rspack production test manifest: #84217 - Turbopack: drop ASTs when only tracing: #84185 - docs: Include more detailed instructions on excluding from common AV solutions, including macOS Gatekeeper: #84206 - Turbopack: trace fs-extra calls: #84246 - [test] Overhaul `Undefined default export` test suite: #84235 - Turbopack: Scope with work queue: #84225 - [test] Make `Undefined default export` an e2e test suite: #84240 - [turbopack] Conditionally create pages router data endpoints.: #84194 - Turbopack: parallel connect children: #84173 - Turbopack: count turbo_tasks::run as foreground tasks to avoid being idle: #84245 - Turbopack: make persistent caching log line more clear: #84262 - Turbopack: make tracing nicer: #84263 - docs:Small improvement on the contribution guide for clarity: #84200 - Turbopack: Remove not-very-useful "Finished writing to disk in" log line: #84244 - Turbopack: follow up changes from parallel children: #84219 - [turbopack] Simplify take_issues and peek issues: #84199 - Update Rspack development test manifest: #84260 - Update Rspack production test manifest: #84259 - Turbopack: Scope with work queue: #84225 - [test] Make `Undefined default export` an e2e test suite: #84240 - [turbopack] Conditionally create pages router data endpoints.: #84194 - Turbopack: parallel connect children: #84173 - Turbopack: count turbo_tasks::run as foreground tasks to avoid being idle: #84245 - Turbopack: make persistent caching log line more clear: #84262 - Turbopack: make tracing nicer: #84263 - docs:Small improvement on the contribution guide for clarity: #84200 - Turbopack: Remove not-very-useful "Finished writing to disk in" log line: #84244 - Turbopack: follow up changes from parallel children: #84219 - [turbopack] Simplify take_issues and peek issues: #84199 - Update Rspack development test manifest: #84260 - Update Rspack production test manifest: #84259 - [test] Ignore pnpm update notifier: #84328 - [test] Stop downloading unused test browsers when generating PR stats: #84329 - docs: remove repeated to: #84325 - Turbopack: Use more robust logic for absolute and percent-encoded URLs in source maps received from loaders: #84255 - Turbopack: only replace edge dynamic calls in dev: #84354 - [turbopack] Remove a bunch of dead code from the source map implementation: #84318 - Turbopack: prevent duplicate NFT modules: #84369 - docs: Remove AMP docs: #84357 - docs: Type helpers don't need to be imported: #84265 - Turbopack: Add docs for debugIds option: #84375 - Remove references to size metrics in next build from our docs: #83823 - Bump to swc v42: #83477 - Turbopack: skip invalidating a task on cell/output change when the dependency is outdated: #84376 - Turbopack: trace module.createRequire: #84335 - Update failing e2e deploy tests: #84395 - Turbopack: Webpack loader `this.fs.readFile`: #83313 - Improve tests: #84374 - Revamp Next.js boilerplate: #81945 - Add test for twoslash: #84267 - Docs/project structure polish: #84386 - Bump to swc v44: #84420 - Turbopack: don't fail for parse errors in tracing: #84408 - Update Rspack development test manifest: #84365 - Update Rspack production test manifest: #84366 - [ci]: remove PPR-specific CI jobs: #84439 - docs: Verbose troubleshooting for unconfigured hosts: #84271 - Update Rspack production test manifest: #84398 - Add gt-next to i18n list: #84396 - [ci]: fix build-output-prerender to support segment cache env: #84467 - [ci]: fix app-static snapshots with clientSegmentCache: #84468 - Turbopack: Only benchmark file IO on `next dev`: #84474 - Turbopack: improve incremental build performance when deployment id changes: #84460 - fix: Missing link in Lazy Loading docs: #84473 - docs: simplify streaming metadata: #84253 - make withRspack idempotent: #84482 - Turbopack: Use strongly consistent reads in `random_change` unit test: #84505 - Update Rspack development test manifest: #84480 - Update Rspack production test manifest: #84481 - [ci]: remove test from segment cache manifest: #84507 - [ci]: de-flake client cache test: #84517 - Revert "Turbopack: skip invalidating a task on cell/output change when the dependency is outdated": #84526 - next mcp router - Revert "next mcp router" - test: Use nextTestSetup in scss tests: #84501 - [turbopack[ Use the configured hasher to implementh Hash for AutoMap and AutoSet: #84542 - Turbopack: debug ids for server chunks: #84557 - CI: Enable `experimental.isolatedDevBuild` for `test-unit`: #84559 - [test]: convert prefetching tests to be segmentCache compatible: #84521 - CI: Enable `experimental.isolatedDevBuild` for `test-prod`: #84556 - Add `.next/dev/types` to CNA templates tsconfig include: #84566 - CI: Enable `experimental.isolatedDevBuild` for `test-integration`: #84558 - Update Rspack development test manifest: #84548 - Add a webpack flag to create next app. Ensure that if you set it or decline turbopack we set the --webpack flag on the generated project: #84476 - Update Rspack production test manifest: #84549 - CI: Enable `experimental.isolatedDevBuild` for `test-dev`: #84562 - [test] Unflake static image test: #84535 - Turbopack: Lower the IO concurrency limit in CI tests: #84508 - Add documentation for experimental adapters handling: #83737 - Turbopack: improve next/dynamic eventual consistentcy: #84560 - fix hidden errors in router-act: #84603 - fix(cna): use correct postcss plugins syntax: #79949 - Turbopack: absolute requests in webpack loader: #84575 - Update Rspack development test manifest: #84592 - Update Rspack production test manifest: #84593 - Turbopack: Remove workaround in hyper for rustc miscompilation bug on macos intel: #84578 - Turbopack: add manual worker count override: #84454 - Turbopack: don't ignore TS parse errors: #84597 - Add middleware to routes order doc: #84618 - [create-next-app]: prompt to use recommended options: #84570 - Update labeler: #84623 - Turbopack: use mmap advise to help the OS preloading: #84379 - Turbopack: skip invalidating a task on cell/output change when the dependency is outdated: #84551 - Turbopack: follow-up changes from untracked tracing: #84629 - Turbopack: sourcemaps for JSON modules: #84611 - Turbopack: avoid race condition when updating cells: #84598 - docs: update core documentation for Turbopack as default bundler: #84282 - Update Rspack development test manifest: #84631 - [turbopack] Only send the filesystem caching timing messages for slow events: #84646 - docs: `experimental.isolatedDevBuild`: #84656 - docs: add note clarifying project root in monorepo: #84628 - Fix flakey overlay feedback test: #84662 - [ci]: update flake detection to only run in Turbopack: #84659 - [ci]: move router-act to top level testing utils: #84653 - [tests]: de-flake client-cache.parallel-routes.test.ts: #84655 - [create-next-app]: add eslint to default template: #84661 - Update Rspack production test manifest: #84630 - [test] Assert on stable error codes: #84671 - Turbopack: convert HashMap to IndexMap for deterministic tasks: #84641 - Add note about $ACTION_ properties, remove reference to .entries(): #84459 - Fix typo on welcome page: #84715 - Rspack: Fix lockfile test on rspack: #84707 - [turbopack] Emit a warning when there are too many matches from a FileSourceReference: #84701 - Update beta tag: #84725 - [next-codemod] fix: Set codemod version to the first introduced version: #84726 - [next-upgrade] misc: update comment: #84727 - Turbopack: use vector instead of hash map: #84696 - Revert "docs: nav_title for long unbroken words (#84233)": #84346 - [turbopack] tweak the doc on the inner graph optimization: #84752 - [turbopack] Fix a few references to caching configuration as it is no longer canary guarded: #84761 - Add 16.0.0-beta.0 to next/third-parties peerDeps: #84741 - [eslint-plugin] Remove `eslint-v8` testing: #84721 - Update Rspack production test manifest: #84729 - Update Rspack development test manifest: #84730 - fix: release next-rspack ci: #84673 - [cna] Preserve existing config option when enabling React Compiler: #84663 - Prevent failing `types-and-precompiled` from corrupting terminal output: #84799 - Update test/CNA templates React version to 19.2.0: #84736 - Turbopack: use the same serialization method for lookup as for storing: #84765 - Turbopack: update petgraph: #84757 - [turbopack] Issue 'too many matches' warning for DirAssets also: #84768 - Revert "Fix flakey overlay feedback test": #84819 - [test]: de-flake client-cache.original.test.ts: #84831 - [ci]: set NEXT_TEST_VERSION to release tag for deploy tests: #84840 - docs: soft 404's, Suspense and loading.tsx: #83867 - [turbopack] Discuss Core Web vitals in our bundle size gap docs: #84837 - [turbopack] document missing webpack loader features: #84849 - [turbopack] fix typo in docs: #84868 - [turbopack] Remove the implementation of `TaskInput` from `AutoSet`: #84867 - Update turborepo env in workflows: #84879 - Turbopack: take task cache log before starting snapshot: #84755 - Turbopack: allow gzip compression on trace files: #84685 - Turbopack: process task result as part of the task completion: #84638 - Add test for eslint-config-next: #84838 - Turbopack: lower level drop collectibles: #84895 - docs: next/dynamic headings: #84492 - Turbopack: expose client static assets correctly: #84695 - Turbopack: better errors for strip_prefix_len: #84882 - Turbopack: improve missing factory message: #84881 - CNA: Update template to use ESLint Flat config: #84917 - fix: process.env.TURBOPACK maybe undefined: #84885 - Turbopack: fix spacing on EcmascriptModuleAssetType: #84915 - Update Rspack development test manifest: #84890 - Update Rspack production test manifest: #84891 - Fix url-imports test: #84922 - Turbopack: fix pageExtensions precedence: #84926 - Turbopack: fix client reference order for shared references: #84760 - Turbopack: turn panic into bail: #84927 - Docs/sync with new features 0: #84861 - Turbopack: transpile runtime with swc: #84931 - docs: x-nextjs-stale-time header: #84901 - docs: Templates on navigation: #84493 - Docs/sync with new features 0: #84861 - Turbopack: transpile runtime with swc: #84931 - docs: x-nextjs-stale-time header: #84901 - docs: Templates on navigation: #84493 - chore: Attempt to fix ppr-partial-hydration flakiness: #84672 - Update Rspack production test manifest: #84939 - Turbopack: rename Persistent Caching: #84896 - Turbopack: Add ChunkedVec test case: #84756 - docs: Add missing codemod docs: #84980 - Update prefetching.mdx providing more clarity on the usage of `router.prefetch()`: #84903 - docs: getting started installation and next lint removal: #84781 - docs: Split "Get Started: Route Handlers and Middleware" to Route Handlers and Proxy: #84708 - docs: Replace Middleware docs to Proxy: #84709 - chore: Remove redundant copy of rust reqwest crate: #84982 - [turbopack] Allow withRspack to work even if you already have NEXT_RSPACK set: #84987 - Turbopack: Track errored tasks as dependency when using untracked(): #84914 - Turbopack: shard amount need to grow quadratic to cpu count to keep propability of conflicts constant: #84921 - Turbopack: fix race condition when adding dependencies: #84946 - Turbopack: make tracing warning not fail build: #85032 - [ci]: increase number of runners for test jobs: #85049 - add a message about Turbopack tracing: #85044 - Turbopack: Implement next/font/local declarations option: #85051 - docs: experimentalClientMaxBodySize: #85105 - Docs: Add `--debug-build-paths` next build option: #85097 - Docs: Add note on tag limits for `cacheTag`: #85106 - docs: no switcher for TS only examples: #85109 - fix: Handle non-directory files in cache folder when performing cleanup: #84930 - Turbopack: Suggest using system certs when a TLS error occurs: #85009 - [turbopack] Try to fix v8 crashes on github actions: #85114 - docs: Update to Zod v4 syntax: #84807 - Docs: Add version history for `next lint` deprecation and update error message: #85100 - Turbopack: improve module evaluation name: #84633 - [test] Current behavior of dynamic APIs integration with React DevTools: #85111 - [Cache Components] fix env labels in perf track test: #85132 - Turbopack: Disable LightningCSS MediaRangeSyntax feature: #85086 - Don't expliclitly set the `--turbopack` flag in Create Next App, it is no longer necessary: #85117 - [turbopack] Remove the canary icon from the cache components docs: #85149 - Bump swc to v45: #85143 - [test] Fix test-dev with --projects: #85167 - [test] Update snapshots: #85171 - docs: mcp: #85010 - Docs: Explain Sass tilde import difference: #85041 - Turbopack: don't fail on export type in use server: #85054 - Turbopack: speedup module merging: #85043 - docs: remove experimental_ppr route segment config: #85188 - Rename "blocking route" error docs page: #85189 - docs: upgrade from 15 to 16: #85176 - Docs: Explain Sass tilde import difference: #85041 - Turbopack: don't fail on export type in use server: #85054 - Turbopack: speedup module merging: #85043 - docs: remove experimental_ppr route segment config: #85188 - Rename "blocking route" error docs page: #85189 - docs: upgrade from 15 to 16: #85176 ### Credits Huge thanks to @mischnic, @timneutkens, @unstubbable, @wyattjoh, @Cy-Tek, @lukesandberg, @OoMNoO, @ztanner, @icyJoseph, @huozhi, @gnoff, @ijjk, @povilasv, @dwrth, @obendev, @aymericzip, @devjiwonchoi, @SyMind, @vercel-release-bot, @Shireee, @eps1lon, @dharun36, @kachkaev, @bgw, @yousefdawood7, @TheAlexLichter, @sokra, @ericx0099, @leerob, @Copilot, @fireairforce, @fufuShih, @anvibanga, @hayes, @Milancen123, @martinfrancois, @lubieowoce, @gaojude, @lachlanjc, @liketiger, @styfle, @aaronbrown-vercel, @Samii2383, @FelipeChicaiza, @kevva, @m1abdullahh, @F7b5, @Anshuman71, @RobertFent, @poteto, @chloe-yan, @sireesha-siri, @brian-lou, @joao4xz, @stefanprobst, @samselikoff, @acdlite, @gwkline, @bgub, @brock-statsig, @karlhorky, @feedthejim, @CarloQuick, @greguintow, @hallucinogenizer, @sebmarkbage, @delbaoliveira, @makandrr, @seeplusplus, and @serhalp for helping!