npm next 16.0.0
v16.0.0

13 hours ago

Tip

Check out our Next v16 Blog Post 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!

Don't miss a new next release

NewReleases is sending notifications on new releases.