Skip to content

Releases: vercel/next.js

v16.3.0-preview.10

v16.3.0-preview.10 Pre-release
Pre-release

Choose a tag to compare

@next-js-bot next-js-bot released this 28 Jul 16:18
35917f5

Misc Changes

  • Unify allow-runtime with Partial Prefetching: #96106
  • Attempt static prefetch before resorting to runtime: #96095
  • Block prefetch task until sufficient response is received: #96017
  • Use a safe clock for Request Insights bookkeeping: #96274
  • Count key length in remaining byte-budgeted LRUs: #96231
  • Serve cached misses from the filesystem route cache: #96230
  • Count URL key length in the filesystem route cache LRU: #96229
  • Turbopack: Only extend the watcher's batch window for unfiltered events: #96186
  • Turbopack: Store watcher batch state with bitflags instead of 4 different sets: #96114
  • docs: document query-only href resolution and fix with-vercel-blob : #96280
  • Micro-optimization for string format: #95774
  • Upgrade React from 28cd4bb0-20260723 to 756fdd47-20260727: #96270
  • [test] Unflake more tests: #96081
  • [test] Run the navigation e2e suite under cacheComponents: #95877
  • [test] Run more test suites under cacheComponents flag, again: #96196
  • [test] Unflake a prefetch-related race: #96222
  • docs(ai-agents): restructure as steps and close 16.2/16.3 coverage gaps: #96247
  • Replace vendored http-proxy with httpxy: #96060
  • Update vendored @mswjs/interceptors to 0.41.9: #96059
  • Track whether runtime data is accessed during prefetch: #95964
  • Add Instant Insights request timing: #95958
  • [turbopack] Tree-shake module.exports = {...} (CJS): #95996
  • [turbopack] Fix de-opt in getChunkRelativeUrl(): #96183
  • Add shell offset to static segment prefetches: #95963
  • Turbopack: support import.meta.glob caseSensitive option: #96226
  • fix(sandbox): release one-shot timeout ids after they run: #96161
  • Fix dev overlay symbolication for project paths needing percent-encoding: #96221
  • [internal] Add a skill for benching changes in a sandbox: #95943
  • Run dev validation in process when using Webpack: #96219
  • Read chunk source maps from disk in the dev validation worker: #96218
  • Retry the source map lookup with a plain path: #96215
  • Pass fallback params to the dev validation worker as maps: #96210
  • [sourcemaps] Reuse source map payloads and consumers across stack frames: #96198
  • fix: release compression stream when client disconnects mid-response: #96173
  • Run Cache Components dev validation on a worker thread: #96153
  • Add a benchmark for dev Cache Components validation on a worker thread: #96152
  • [test] Unflake the enabled-features-trace test suite: #96175
  • [refactor] Prepare dev validation for running on a worker thread: #96151
  • Add the experimental.devValidationWorker config flag: #96150
  • [refactor] Model dev validation render outputs as a discriminated union: #96149
  • Forward dev invalid dynamic usage errors from the render, not validation: #96148
  • Optimize implicit cache tag derivation: #96120
  • Avoid quadratic HMR queue shifts: #96137
  • [sourcemaps] Use file: sourcemaps for Turbopack to improve dev performance: #95946
  • Give RouteCacheEntry a single hidden class across its lifecycle: #96164
  • Keep optimistic-route param handling monomorphic: #96169
  • Store RouteTree slots in a Map to keep slot access monomorphic: #96168
  • Make reifyRouteTree object literals match the canonical RouteTree key order: #96162
  • Keep VaryPath monomorphic by making isRootParam required: #96122
  • docs: expand and modernize the Single-Page Applications guide: #95860
  • docs: navigation interrupts after streaming has started (notFound, forbidden, unauthorized): #95851
  • docs: reframe prefetching around automatic vs. controllable behavior: #95896
  • docs(view-transitions): fix the skill install command: #96142
  • Include additional prerender metadata about build-time routes: #96080
  • Optimize app page entry analysis: #96058
  • [ts-plugin] Preserve TypeScript quick info metadata: #95863
  • [turbopack] Import Webpack's tests for tree-shaking: #95811
  • [turbopack] Drop dead require() calls: #95718
  • [turbopack] Track usage of modules imported with require(): #95717
  • Return plain text 404 for non-document requests to unknown paths: #95930
  • [RSC HMR] Fix a flurry of refetches when a editing component imported from many routes: #96102
  • [turbopack] Track re-exports in import_usage inside of compute_import_usage: #95989
  • Turbopack: Very minor improvements for watcher loop: #96103
  • Turbopack: Refactor watcher event handling and batching logic: #96087
  • fix: remove deprecated url.parse() from custom-server example: #96105
  • Upgrade React from 711c445b-20260722 to 28cd4bb0-20260723: #96100
  • Throw for empty or incomplete generateStaticParams results with output: export: #95969
  • Throw when generateStaticParams returns invalid values: #95968
  • Remove inert experimental.viewTransition flag: #96098
  • Restore partial fallback shell upgrade coverage: #96096
  • fix(next/font/google): bound Google Fonts fetch timeout on Turbopack: #95981
  • Rewrite edge server source map sources in Rust, drop JS fallback: #95980
  • docs: view transitions guide — skill section, source-audit fixes, flag-removal docs: #96097
  • Restore canary version 16.3.0-canary.94 after v16.3.0-preview.9 preview release

Credits

Huge thanks to @acdlite, @DavidIlie, @gaearon, @bgw, @icyJoseph, @jimmyhmiller, @vercel-release-bot, @aurorascharff, @eps1lon, @timneutkens, @sampoder, @petehunt, @unstubbable, @marcoshernanz, @gnoff, @devjiwonchoi, @wasim-builds, and @lukesandberg for helping!

v16.3.0-canary.99

v16.3.0-canary.99 Pre-release
Pre-release

Choose a tag to compare

@next-js-bot next-js-bot released this 28 Jul 15:21
e70495c

Initial release

v16.3.0-canary.97

v16.3.0-canary.97 Pre-release
Pre-release

Choose a tag to compare

@next-js-bot next-js-bot released this 25 Jul 23:56
367e521

Misc Changes

  • fix(sandbox): release one-shot timeout ids after they run: #96161
  • Fix dev overlay symbolication for project paths needing percent-encoding: #96221
  • [internal] Add a skill for benching changes in a sandbox: #95943
  • Run dev validation in process when using Webpack: #96219
  • Read chunk source maps from disk in the dev validation worker: #96218
  • Retry the source map lookup with a plain path: #96215
  • Pass fallback params to the dev validation worker as maps: #96210
  • [sourcemaps] Reuse source map payloads and consumers across stack frames: #96198
  • fix: release compression stream when client disconnects mid-response: #96173
  • Run Cache Components dev validation on a worker thread: #96153
  • Add a benchmark for dev Cache Components validation on a worker thread: #96152
  • [test] Unflake the enabled-features-trace test suite: #96175
  • [refactor] Prepare dev validation for running on a worker thread: #96151
  • Add the experimental.devValidationWorker config flag: #96150
  • [refactor] Model dev validation render outputs as a discriminated union: #96149
  • Forward dev invalid dynamic usage errors from the render, not validation: #96148
  • Optimize implicit cache tag derivation: #96120
  • Avoid quadratic HMR queue shifts: #96137

Credits

Huge thanks to @petehunt, @gaearon, @unstubbable, and @marcoshernanz for helping!

v16.2.12

Choose a tag to compare

@lukesandberg lukesandberg released this 25 Jul 23:55
2234717

What's Changed

Full Changelog: v16.2.11...v16.2.12

v15.5.22

Choose a tag to compare

@lukesandberg lukesandberg released this 25 Jul 23:54
6ad9e56

What's Changed

Full Changelog: v15.5.21...v15.5.22

v16.3.0-canary.96

v16.3.0-canary.96 Pre-release
Pre-release

Choose a tag to compare

@next-js-bot next-js-bot released this 25 Jul 00:00
4a432e4

Misc Changes

  • [sourcemaps] Use file: sourcemaps for Turbopack to improve dev performance: #95946
  • Give RouteCacheEntry a single hidden class across its lifecycle: #96164
  • Keep optimistic-route param handling monomorphic: #96169
  • Store RouteTree slots in a Map to keep slot access monomorphic: #96168
  • Make reifyRouteTree object literals match the canonical RouteTree key order: #96162
  • Keep VaryPath monomorphic by making isRootParam required: #96122
  • docs: expand and modernize the Single-Page Applications guide: #95860
  • docs: navigation interrupts after streaming has started (notFound, forbidden, unauthorized): #95851
  • docs: reframe prefetching around automatic vs. controllable behavior: #95896
  • docs(view-transitions): fix the skill install command: #96142
  • Include additional prerender metadata about build-time routes: #96080
  • Optimize app page entry analysis: #96058
  • [ts-plugin] Preserve TypeScript quick info metadata: #95863
  • [turbopack] Import Webpack's tests for tree-shaking: #95811
  • [turbopack] Drop dead require() calls: #95718
  • [turbopack] Track usage of modules imported with require(): #95717
  • Return plain text 404 for non-document requests to unknown paths: #95930
  • [RSC HMR] Fix a flurry of refetches when a editing component imported from many routes: #96102
  • [turbopack] Track re-exports in import_usage inside of compute_import_usage: #95989

Credits

Huge thanks to @gaearon, @acdlite, @aurorascharff, @gnoff, @timneutkens, @devjiwonchoi, and @sampoder for helping!

v16.3.0-preview.9

v16.3.0-preview.9 Pre-release
Pre-release

Choose a tag to compare

@next-js-bot next-js-bot released this 23 Jul 12:43
838bd19

Misc Changes

  • [Bench] Add client-trace attribution pass and document metrics to render-pipeline: #95828
  • Turbopack: Split up turbo-tasks-fs/src/lib.rs into smaller modules: #96030
  • Turbopack: Use Arc and Box to make InvalidatorMap slightly more efficient: #95987
  • Turbopack: Use swc_core::ecma::utils::prop_name_eq for a couple of the next-custom-transforms: #96035
  • [Cache Components] Exclude dynamic params from prerenders when no generateStaticParams values is provided: #95872
  • Gate partialFallback behavior behind partialPrefetching flag: #96074
  • [turbopack] Fix deployment skew protection for component chunks: #96079
  • Turbopack: stop copying sourcesContent into every serialized source map: #95934
  • Upgrade React from 81e442ea-20260721 to 711c445b-20260722: #96066
  • fix: cache miss in App Shell for cached pages with gSP: #95665
  • skill(cc-adoption): add dev-only validation sweep reference: #96057
  • Refine Cache Components and Partial Prefetching adoption skills: #95817
  • [test] Move the dev-only use cache test suite to test/development: #96023
  • Fix stale dev 'use cache' for cookieless requests and route handlers: #96022
  • [test] Add failing tests for stale route handler and page cached data: #96021
  • Add a dedicated HMR message for static params changes: #96020
  • Emit the static paths HMR update after updating the cache: #96019
  • [test] Add source-mapping coverage of React's fake stack frame scripts in use cache: #95945
  • Fix basePath fallback parameter parsing: #95966
  • Restore canary version 16.3.0-canary.93 after v16.3.0-preview.8 preview release

Credits

Huge thanks to @gaearon, @bgw, @gnoff, @acdlite, @sampoder, @vercel-release-bot, @lubieowoce, @aurorascharff, @unstubbable, and @timneutkens for helping!

v16.3.0-canary.95

v16.3.0-canary.95 Pre-release
Pre-release

Choose a tag to compare

@next-js-bot next-js-bot released this 23 Jul 23:58
cf10c50

Misc Changes

  • Turbopack: Very minor improvements for watcher loop: #96103
  • Turbopack: Refactor watcher event handling and batching logic: #96087
  • fix: remove deprecated url.parse() from custom-server example: #96105
  • Upgrade React from 711c445b-20260722 to 28cd4bb0-20260723: #96100
  • Throw for empty or incomplete generateStaticParams results with output: export: #95969
  • Throw when generateStaticParams returns invalid values: #95968
  • Remove inert experimental.viewTransition flag: #96098
  • Restore partial fallback shell upgrade coverage: #96096
  • fix(next/font/google): bound Google Fonts fetch timeout on Turbopack: #95981
  • Rewrite edge server source map sources in Rust, drop JS fallback: #95980
  • docs: view transitions guide — skill section, source-audit fixes, flag-removal docs: #96097
  • Restore canary version 16.3.0-canary.94 after v16.3.0-preview.9 preview release
  • [Bench] Add client-trace attribution pass and document metrics to render-pipeline: #95828
  • Turbopack: Split up turbo-tasks-fs/src/lib.rs into smaller modules: #96030
  • Turbopack: Use Arc and Box to make InvalidatorMap slightly more efficient: #95987
  • Turbopack: Use swc_core::ecma::utils::prop_name_eq for a couple of the next-custom-transforms: #96035

Credits

Huge thanks to @bgw, @wasim-builds, @vercel-release-bot, @devjiwonchoi, @aurorascharff, @lukesandberg, and @gaearon for helping!

v16.3.0-preview.8

v16.3.0-preview.8 Pre-release
Pre-release

Choose a tag to compare

@next-js-bot next-js-bot released this 22 Jul 10:21
bedbdcf

Misc Changes

  • Always consult npm_config_user_agent first: #95879
  • Rewrite next-cache-components-optimizer around a test-driven instant() loop: #94721
  • docs: attribute App Shell prefetch to Partial Prefetching: #96003
  • Turbopack: Remove chunk group id from value of chunk groups map: #95142
  • [ci] Enforce minimumReleaseAge in e2e tests that install external dependencies: #95628
  • Turbopack: Fix missing canonicalization of paths and always use verbatim paths internally for Windows: #95668
  • Revert "[turbopack] Don't SSR on pages only navigated to through a soft nav (#95539)": #96028
  • Turbopack: Use Arc<PathBuf> for keys in turbo-task-fs's per-path MutexMap: #95951
  • chore(deps): bump sharp@0.35.3: #95507
  • [turbopack] Tree-shake CJS exports that use the Object.defineProperty syntax: #95994
  • Restore canary version 16.3.0-canary.92 after v16.3.0-preview.7 preview release

Credits

Huge thanks to @eps1lon, @gaojude, @icyJoseph, @bgw, @sampoder, and @styfle for helping!

v16.3.0-canary.94

v16.3.0-canary.94 Pre-release
Pre-release

Choose a tag to compare

@next-js-bot next-js-bot released this 23 Jul 00:02
b2144dd

Misc Changes

  • [Cache Components] Exclude dynamic params from prerenders when no generateStaticParams values is provided: #95872
  • Gate partialFallback behavior behind partialPrefetching flag: #96074
  • [turbopack] Fix deployment skew protection for component chunks: #96079
  • Turbopack: stop copying sourcesContent into every serialized source map: #95934
  • Upgrade React from 81e442ea-20260721 to 711c445b-20260722: #96066
  • fix: cache miss in App Shell for cached pages with gSP: #95665
  • skill(cc-adoption): add dev-only validation sweep reference: #96057
  • Refine Cache Components and Partial Prefetching adoption skills: #95817
  • [test] Move the dev-only use cache test suite to test/development: #96023
  • Fix stale dev 'use cache' for cookieless requests and route handlers: #96022
  • [test] Add failing tests for stale route handler and page cached data: #96021
  • Add a dedicated HMR message for static params changes: #96020
  • Emit the static paths HMR update after updating the cache: #96019
  • [test] Add source-mapping coverage of React's fake stack frame scripts in use cache: #95945
  • Fix basePath fallback parameter parsing: #95966
  • Restore canary version 16.3.0-canary.93 after v16.3.0-preview.8 preview release
  • Always consult npm_config_user_agent first: #95879
  • Rewrite next-cache-components-optimizer around a test-driven instant() loop: #94721

Credits

Huge thanks to @gnoff, @acdlite, @sampoder, @gaearon, @vercel-release-bot, @lubieowoce, @aurorascharff, @unstubbable, @timneutkens, @eps1lon, and @gaojude for helping!