VendorPulse
Next.js

Next.js

✓ VerifiedGitHub

The React framework for the web, built by Vercel.

Website →Last scanned 2 hours ago

Releases

114
v16.3.0-canary.78

v16.3.0-canary.78

1 day ago

Misc Changes

  • Add serverComponentsHmrCancellation experimental flag: #95462

Credits

Huge thanks to @unstubbable for helping!

v16.3.0-canary.77

v16.3.0-canary.77

2 days ago

Misc Changes

  • Avoid unnecessary rendering for validation in dev: #95394
  • fix: work around SWC compress bug: #95457
  • docs: Update FormEvent to SubmitEvent in form handling example (deprecated in React 19.2.10+): #95453
  • Update font data: #95441
  • Ignore-list internal frames whose source maps chain to original sources: #95448
  • Type resolved cacheLife profiles, dropping runtime asserts: #95428
  • Split typeof-window server requires into .browser variants: #95201
  • Collect modules with browser variants statically: #95200

Credits

Huge thanks to @lubieowoce, @M4cM4rco, @vercel-release-bot, @unstubbable, and @eps1lon for helping!

v16.3.0-canary.76

v16.3.0-canary.76

3 days ago

Misc Changes

  • Fix navigation getting reverted when a Server Action is in flight: #95391
  • Fix false-positive nested-cache error for a short default profile: #95373
  • Skip saving expire: 0 values in the default cache handler in prod: #95363
  • [ci] Disable mid-stack PR optimization for native PR stacks: #95427
  • Fix history push getting treated like replace when followed by refresh: #95392
  • Upgrade React from ec0fca31-20260701 to 3508aee6-20260702: #95410
  • fix(config): correctly validate cacheHandlers names: #95358
  • [ci] Actually migrate Turbopack jobs back to ARM: #95386
  • Recover from blocking routes under Instant Navigation lock when deployed: #95227
  • Make Instant Navigation Testing full-page loads work when deployed: #95222
  • Clear a resurrected instant cookie on unlock so a hard reload recovers: #95398
  • fix: handle prototype-colliding segment names in segment explorer trie: #95403
  • Prefetch links nearest the top of the document first: #95393
  • Fix metadata title dropped on soft navigation with Cache Components: #95315
  • Cache short-expire 'use cache' values across dev reloads: #95362

Credits

Huge thanks to @gaearon, @unstubbable, @bgw, @vercel-release-bot, @Partha-Shankar, @icyJoseph, and @acdlite for helping!

v16.3.0-canary.75

v16.3.0-canary.75

3 days ago

Misc Changes

  • [cd] Replace the release package with our own GitHub release creation: #95352
  • [test] Enable deploy tests for the Instant Navigation Testing API suite: #95236
  • Await reused in-flight prefetch entries under Instant Navigation lock: #95301
  • [test] Park the blocking-fallback segment on a withheld param: #95300
  • Make instant() resilient to a leaked navigation-testing cookie: #95375
  • [ci] Avoid running full CI mid-stack for GH-native stacks, same as we do for Graphite: #95218
  • Remove 'silence this warning' from instant validation fix output: #95187
  • fix(turbopack): allow #/ prefixed subpath import specifiers: #94461

Credits

Huge thanks to @eps1lon, @unstubbable, @bgw, @aurorascharff, and @sleitor for helping!

v15.5.20

v15.5.20

4 days ago

Contains no changes except publishing @next/swc-wasm-web which was accidentally not published since 15.5.15.

v16.2.10

v16.2.10

4 days ago

Contains no changes except publishing @next/swc-wasm-web which was accidentally not published since 16.2.4.

v16.3.0-preview.5

v16.3.0-preview.5

1 week ago

Misc Changes

  • Restore canary version 16.3.0-canary.66 after v16.3.0-preview.4 preview release
  • Fix local fonts in statically prerendered ImageResponse metadata route: #95121
  • docs(root-params): generateStaticParams section and CC requirement: #95073
  • Surface an error for blocking routes under the Navigation Inspector: #95139
  • Suppress prefetch={true} warning when route opts out via instant = false: #95099
  • skill(cc-adoption): recommend next-dev-loop and add build-only path: #95122
  • docs: server actions guide x-refs: #95143
  • [turbopack] Create ServiceWorkerChunkingContextOptions in next-core: #94920
  • instant(): Only render shell, unless prefetch prop is set: #95150
  • [turbopack] Create ServiceWorkerEntryModule and service_worker_chunk_filename: #94921
  • [turbopack] Discover ServiceWorkerEntryModules in next-api and compile + serve those service workers: #94922
  • [cd] Allow forcing a release without new commits: #95136
  • docs: clarify /_not-found failures and <html> attribute reads under Cache Components: #95163
  • [PP] Reveal after ShellRuntime when simulating a Shell Prefetch in dev: #95149
  • Replicate production prefetch shells for instant navigations in dev: #95067
  • docs: expand io reference: #95147
  • test: Remove unnecessary dynamic timestamp from instant-validation root layouts: #95105
  • [next-dev-loop] Fix some papercuts: #95153
  • Gate the dev Cold cache badge behind an experimental flag: #95169

Credits

Huge thanks to @unstubbable, @icyJoseph, @acdlite, @aurorascharff, @sampoder, @eps1lon, @lubieowoce, and @gaearon for helping!

v16.3.0-preview.4

v16.3.0-preview.4

1 week ago

Misc Changes

  • [ci] Make automatic native binding install opt-in: #95114

Credits

Huge thanks to @eps1lon for helping!

v16.3.0-canary.67

v16.3.0-canary.67

1 week ago

Misc Changes

  • Restore canary version 16.3.0-canary.66 after v16.3.0-preview.4 preview release
  • Fix local fonts in statically prerendered ImageResponse metadata route: #95121
  • docs(root-params): generateStaticParams section and CC requirement: #95073
  • Surface an error for blocking routes under the Navigation Inspector: #95139
  • Suppress prefetch={true} warning when route opts out via instant = false: #95099
  • skill(cc-adoption): recommend next-dev-loop and add build-only path: #95122

Credits

Huge thanks to @unstubbable, @icyJoseph, @acdlite, and @aurorascharff for helping!

v16.3.0-canary.66

v16.3.0-canary.66

1 week ago

Misc Changes

  • Revert "Remove legacy PPR codepaths": #95113
  • dev-overlay: wire Link prefetch={true} Partial Prefetching warning into Insights: #94798
  • Docs/partial prefetching: #94855
  • [ci] Make preview tarballs available while new Canaries are being published: #95112
  • [cd] add ad-hoc preview release cut from canary: #95086
  • Add missing switch case: #95127
  • Revert "Add missing switch case": #95129
  • Fix Navigation Inspector styles in dark mode: #95126
  • [test] Reorder hmr-intercept-routes test to avoid a reload/refresh race: #95134

Credits

Huge thanks to @eps1lon, @aurorascharff, @icyJoseph, @unstubbable, and @samselikoff for helping!

v16.3.0-canary.65

v16.3.0-canary.65

1 week ago

Misc Changes

  • docs(cache-components): clarify allow-runtime, sync-IO and instant=false, CLS fallback: #94997
  • Keep the resolved cache life for cacheMaxMemorySize: 0 caches in dev: #95100
  • Avoid mutating req.headers when stripping internal headers: #95116

Credits

Huge thanks to @aurorascharff and @unstubbable for helping!

v16.3.0-canary.64

v16.3.0-canary.64

1 week ago

Misc Changes

  • Consider merging chunks when overlap == 1: #95102
  • [turbopack] Add support for single-entry chunks: #94727
  • Turbopack: add TURBOPACK_DEBUG_CSS_CHUNKING env var: #95080
  • [cd] publish on release tags instead of branch push: #95085

Credits

Huge thanks to @sampoder, @sokra, and @eps1lon for helping!

v16.3.0-canary.63

v16.3.0-canary.63

1 week ago

Misc Changes

  • Serve ISR fallback shells in response to prefetch requests: #94534
  • Insights: drop irrelevant fix cards from instant errors: #94926
  • Navigation inspector UI updates: #94959
  • skill(next-cache-components-adoption): clarify prereqs: #95082
  • Turbopack: Delete dead AttachedFileSystem type: #94960
  • Opt Partial Prefetching routes into the runtime stage of Cached Navs: #95097
  • Fix #95015 by pulling a fix to scattered-collect: #95098
  • docs(caching): clarify generateStaticParams prebuild and recommend max for CMS: #95081
  • Release the instant navs lock without clearing the whole cookie jar: #94947
  • Compute dev fallback params from the most-specific prerendered route: #95066

Credits

Huge thanks to @acdlite, @aurorascharff, @samselikoff, @bgw, @unstubbable, @lukesandberg, and @icyJoseph for helping!

v16.3.0-canary.62

v16.3.0-canary.62

1 week ago

Misc Changes

  • [skills] Mark insight-error-page and next-rspack as internal: #95070
  • Turbopack: Fix log box test on react 18: #95078
  • Turbopack: Avoid clone when sorting by module file path: #95079
  • Fix false-positive export const dynamic in Cache Components detection: #95083
  • docs: add Interactive Apps guide: #94020

Credits

Huge thanks to @gaojude, @bgw, @eps1lon, and @aurorascharff for helping!

v16.3.0-canary.61

v16.3.0-canary.61

1 week ago

Misc Changes

  • [test] Fix failing determinism test using adapter: #95051
  • docs: fix typo in slot-missing-default.mdx: #94531
  • [otel] Correctly set error code attributes for App API routes: #94979
  • docs: Cache components requires Node.js runtime: #94897
  • [scripts] Write pnpm overrides for pnpm projects in pack/patch helpers: #94747
  • docs(authentication): add Auth and streaming, fix code fences and imports: #95056
  • Statically prerender metadata image routes under Cache Components: #94957
  • Upgrade React from b1786c31-20260618 to 247fbb45-20260622: #95063
  • codemod: cache-components-instant-false + next-cache-components-adoption skill: #94941
  • Remove legacy PPR codepaths: #94955
  • skill(next-dev-loop): fix --session flag, agent-browser bootstrap, --headed daemon note: #95005
  • Add a global opt-in for the runtime stage of Cached Navigations: #95064
  • [turbopack] Rename the edge runtime to the self-contained runtime: #94726
  • [turbopack] Sort modules in files by path not ID: #95065
  • skill(next-cache-components-adoption): tune skill to mention app router requirement: #95069

Credits

Huge thanks to @mischnic, @parkhojeong, @icyJoseph, @eps1lon, @aurorascharff, @unstubbable, @vercel-release-bot, and @sampoder for helping!

v16.3.0-canary.60

v16.3.0-canary.60

2 weeks ago

Misc Changes

  • Remove embedded Claude Code plugin marketplace: #94877

Credits

Huge thanks to @gaojude for helping!

v16.3.0-canary.59

v16.3.0-canary.59

2 weeks ago

Misc Changes

  • Upgrade to swc 70: #94814
  • [turbopack] Sort modules in chunks to reduce duplicates: #94961
  • router instrumentation: refactor client hook dispatch (1/7): #94755
  • [otel] Add more verbose-mode OTEL spans for App Router: #94894
  • Enforce route segment configs on metadata routes under Cache Components: #94962
  • typegen: default to Turbopack: #94952
  • router instrumentation: add transition start context (2/7): #94766
  • fix: after(callback) called after response end: #94974
  • fix: request APIs in promises passed to after() in actions/handlers: #94964

Credits

Huge thanks to @mischnic, @sampoder, @feedthejim, @unstubbable, @wbinnssmith, and @lubieowoce for helping!

v16.3.0-canary.58

v16.3.0-canary.58

2 weeks ago

Misc Changes

  • Fix dev overlay hydration error ordering: #94555
  • [turbopack] Retry chunk loading on failure: #94918
  • Upgrade React from ad78e251-20260616 to b1786c31-20260618: #94951
  • [ci] Update playwright to 1.61.0: #94871
  • [cd] reduce size of npm metadata on publish: #94953

Credits

Huge thanks to @timneutkens, @sampoder, @vercel-release-bot, @bgw, and @styfle for helping!

v16.3.0-canary.57

v16.3.0-canary.57

2 weeks ago

Misc Changes

  • Scope the Cold cache indicator in dev to shell cache misses: #94911
  • Fix Instant Navs DevTools capture bugs and re-enable its test suite: #94866
  • docs: fix capitalization of Server and Client Components: #94891
  • docs: Fix broken link to Node.js Debugging Guide: #93958
  • docs: fix broken Node.js inspector URL in debugging guide: #94934
  • examples/with-ably: update to App Router + Ably v2: #94600
  • docs: clarify sequential data fetching example: #94930
  • docs: GtK, caching with fetch is opt-in - extended to any method or header included: #94899
  • [test] Enable metadata-streaming-config for Cache Components: #94936
  • fix(dev-overlay): correct open-in-editor path when using a src directory: #94775
  • Fix repoRoot for adapters: #94478

Credits

Huge thanks to @unstubbable, @niketchandivade, @gilest, @jahanzaib-iqbal-dev, @owenpearson, @davidgg, @icyJoseph, @eps1lon, @fhfournier, and @mischnic for helping!

v16.3.0-canary.56

v16.3.0-canary.56

2 weeks ago

Misc Changes

  • Let LLMs create less noisy and more focused PR descriptions: #94896
  • Avoid re-logging server-originated errors forwarded from the browser: #94917
  • [ci] Only install chromium-headless-shell and not chromium: #94882

Credits

Huge thanks to @eps1lon, @unstubbable, and @bgw for helping!

v16.3.0-canary.55

v16.3.0-canary.55

2 weeks ago

Misc Changes

  • [cd] Continue release train if @next/swc-wasm-* fails to publish: #94912

Credits

Huge thanks to @eps1lon for helping!

v16.3.0-canary.53

v16.3.0-canary.53

2 weeks ago

Misc Changes

  • pass --locked to cargo binstall: #94834
  • [ci] Use node-version-file when we already have a repository checkout and reduce hardcoded references to node versions: #94780
  • [turbopack] Allocate Effects in an arena: #94614
  • [turbo-tasks] Shrink RawVc to 8 bytes and CellId to 4 bytes: #94792
  • rust react compiler: detect and build for react 18: #94836
  • [test] Unflake metadata static routes cache test: #94796
  • [test] Recover from a leftover build process on test retry: #94797
  • Properly set response-based OTEL attributes with adapters : #94603
  • dev-overlay: polish error header layout and instant fix-card chip: #94790
  • Upgrade React from 43bcbf80-20260603 to d9158919-20260615: #94826
  • Make cacheMaxMemorySize: 0 and custom cache handlers fast in dev: #94784
  • [ci] Clean up references to self-hosted runners: #94827
  • Fix remaining OTEL issues in adapter: #94817
  • Turbopack: improve NFT warning message: #94854
  • Add experimental.useExperimentalReact to opt into React's experimental channel: #94861
  • Turbopack: improve issue printing colors: #94858
  • [turbopack] Update algebra in chunking algorithm: #94873
  • [CC] Fix accumulator flushing logic: #94857

Credits

Huge thanks to @lukesandberg, @bgw, @sampoder, @wbinnssmith, @unstubbable, @mischnic, @aurorascharff, @vercel-release-bot, @gaojude, and @lubieowoce for helping!

v16.3.0-canary.52

v16.3.0-canary.52

2 weeks ago

Core Changes

  • chore: upgrade next-rspack to rspack 2.0: #92222

Misc Changes

  • docs: Route Handlers to be supported later on: #94705
  • [ci] Allow "rerun failed jobs" to work up until 5 days for e2e deploy tests: #94812
  • Fix stale next data API test URL: #94815
  • Format submillisecond durations as milliseconds: #94813
  • Instruct agents to keep and commit the generated agent-rules block: #94725
  • [agents-md] Index bundled docs instead of downloading into .next-docs: #94719
  • docs: add prefetchInlining config reference: #94650
  • Move warnOnce imports into statements guarded by process.env.NODE_ENV === 'development': #94781
  • Expand signature rewriting to allow returning ResolvedVc from turbo task functions: #94772
  • Move errorOnce imports into statements guarded by process.env.NODE_ENV === 'development': #94782
  • Add a message to AGENTS.md about super:: imports.: #94733
  • Turbopack: add experimental React compiler support: #94573

Credits

Huge thanks to @icyJoseph, @eps1lon, @devjiwonchoi, @timneutkens, @gaojude, @ifer47, @sampoder, @lukesandberg, @wbinnssmith, and @SyMind for helping!

v16.3.0-canary.51

v16.3.0-canary.51

3 weeks ago

Misc Changes

  • Avoid a premature Suspense fallback flash in the streaming dev render: #94783

Credits

Huge thanks to @unstubbable for helping!

v16.3.0-canary.50

v16.3.0-canary.50

3 weeks ago

Misc Changes

  • [codemod] Write pnpm overrides to pnpm-workspace.yaml on pnpm v11+: #94690
  • [ci] Always upload canary tarballs from the canary branch: #94557
  • docs: document non-streamed bot rendering and Cache Components: #94605
  • [CC] Exclude caches with low stale from static prerenders: #94678
  • [CC] Rename shellStage to streamReleaseStage: #94749
  • [turbopack] Drop data while serializing in next build: #94561
  • [turbopack] Optimize cell_dependency representation: #94717
  • [turbopack] Use final_read_hint in top level turbo tasks: #94712
  • refactor: process streaming prerenders more efficiently: #94764
  • Allow root params in App Shell (client)
  • fix: this in edge sandbox setTimeout/setInterval: #94754

Credits

Huge thanks to @eps1lon, @icyJoseph, @lubieowoce, and @lukesandberg for helping!

v16.3.0-canary.49

v16.3.0-canary.49

3 weeks ago

Misc Changes

  • [turbopack] Rename variables in path_join and add tests: #94625
  • Warn on prefetch={true} navigation without Partial Prefetching (dev): #94672
  • Serve stale 'use cache' entries in the dev server until they expire: #94662
  • Re-fetch dynamic content on navigation with partialPrefetching enabled: #94655
  • docs: expand the Cache Components migration guide: #94649
  • Add Owner Stack to "prefetch={true} navigation without Partial Prefetching" warning: #94683
  • [tubopack] migrate rcstr! to use scattered collect: #94498
  • Strip internal dev request-id headers from userland headers(): #94703
  • Persist 'use cache: private' entries in dev: #94694
  • [App Shells] refactor instant-validation to make adding new stages easier: #94711
  • migrate turbo-tasks to scattered collect: #94503
  • [CC] refactor staged rendering codepaths in params/searchParams: #94718
  • [App Shells] Track whether shell prefetch used session data: #94484
  • Treat empty resume bodies as dynamic render requests: #94729

Credits

Huge thanks to @sampoder, @acdlite, @unstubbable, @icyJoseph, @eps1lon, @lukesandberg, @lubieowoce, and @gnoff for helping!

v16.3.0-preview.3

v16.3.0-preview.3

3 weeks ago

Misc Changes

  • [turbopack] Enable turbopackFileSystemCacheForBuild by default in non-stable releases: #94616
  • [16.3.x-preview] Setup release branch: #94594
  • [cd] Publish preview release with @preview NPM dist-tag: #94619
  • [cd] Ensure wasm binaries get tagged properly: #94621

Credits

Huge thanks to @lukesandberg and @eps1lon for helping!

v16.3.0-canary.41

v16.3.0-canary.41

1 month ago

Misc Changes

  • make TaskInput::is_resolved inlinable everywhere: #94213
  • [App Shells] staged shell rendering in cached navs: #94441
  • [App Shells] staged shell rendering during build: #94442
  • docs: fix typos in testing.md: #94446
  • Keep the dev React debug channel on Node streams end to end: #94433
  • test: pin material-ui link fixture dependencies: #94354
  • Revert "Keep the dev React debug channel on Node streams end to end": #94459
  • [turbopack] Only ship top-level async support in the runtime when needed: #94376
  • Reland the debug channel on native Node streams, fixed for React 18: #94462
  • Allow unstable_retry from TS plugin check in Next.js Error APIs: #94460
  • docs: fix typos in contribution guide: #94375

Credits

Huge thanks to @lukesandberg, @lubieowoce, @RazinShafayet2007, @unstubbable, @timneutkens, @eps1lon, @sampoder, and @devjiwonchoi for helping!

v16.3.0-canary.40

v16.3.0-canary.40

1 month ago

Misc Changes

  • docs: add GitHub SSH authentication guidance: #94360
  • Deprecate undocumented custom server methods: #94348
  • Trace cacheHandler and cacheHandlers when using adapters: #94197
  • refactor: make stage advancing logic more generic: #94349
  • docs: document Cache Components behavior for navigation hooks: #94387
  • fix: build hangs if sync IO aborts before root chunk is flushed: #94365
  • refactor: make early/late checks stricter: #94358
  • refactor: remove delayUntilRuntimeStage: #94350
  • DiskFileSystem: store Effect full_path as Arc<Path>: #94332
  • refactor: indicate which stage is the last stage in staged prerenders: #94430
  • [CC] add shell stages: #94438
  • instant: prompts on all fix cards, [group]-tagged CLI bullets, new docs slugs: #94017
  • [turbopack] Add BumpVec (vector implementation that takes a Bump): #94296
  • Ensure aborting has the same inputs as render: #94436
  • [App Shells] App shells in runtime prefetches: #93801
  • [turbopack] Optimize TaskInput implementations: #94202

Credits

Huge thanks to @timneutkens, @lubieowoce, @aurorascharff, @sokra, @sampoder, @eps1lon, and @lukesandberg for helping!

v16.3.0-canary.39

v16.3.0-canary.39

1 month ago

Misc Changes

  • Upgrade React from c0cd4d5d-20260527 to f0dfee38-20260529: #94245
  • Turbopack: fix pages index normalization for --debug-build-paths: #94341

Credits

Huge thanks to @vercel-release-bot and @mischnic for helping!

v16.3.0-canary.38

v16.3.0-canary.38

1 month ago

Misc Changes

  • [cd] Stop fetching all tags when searching for ancestor tag: #94302
  • chore: lint-language output only warnings and errors: #94261
  • DiskFileSystem: run write effects on a spawned task: #94140
  • Disable default-case ESLint rule for type-checked TypeScript files: #94316
  • Handle a purged browser cache on back navigation: #94317
  • Persist debug channel via IndexedDB without blocking hydration: #94243
  • Fix debug channel not closing on the client with Node streams: #94268
  • refactor: use named arguments for StagedRenderingController: #94345
  • Avoid bundling HMR refresh reducer in production: #94305
  • Remove the instantNavigationDevToolsToggle flag: #94322
  • doc: clarify rewrites execution order: #93765
  • docs: update draftMode guide: #94155
  • docs: cached functions from the client: #94301
  • skip render dev overlay ux under private flag: #94346
  • Turbopack: fix bundle-analyzer for NFT change: #93363
  • Devirtualize the backend api inside of turbo_tasks and turbo-tasks-backend: #94007
  • Delay Node Fizz piping until after render task: #94347
  • Enable Node streams by default: #94311
  • [tests] Use snapshots in debug-build-paths: #94352
  • Turbopack: support turbopackIgnore on more traced calls: #94361
  • [turbopack] Treat assignments to module.exports as side-effect free: #94293
  • instant: enable navigation validation by default: #94312
  • Turbopack: Move turbo-tasks/src/raw_vc.rs to turbo-tasks/src/vc/raw.rs: #94239

Credits

Huge thanks to @eps1lon, @icyJoseph, @sokra, @unstubbable, @lubieowoce, @timneutkens, @samselikoff, @huozhi, @mischnic, @lukesandberg, @sampoder, @aurorascharff, and @bgw for helping!

v16.3.0-canary.37

v16.3.0-canary.37

1 month ago

Misc Changes

  • Switch TotalOrderF64 to f64 in ConstantNumber to correctly handle NaN === NaN and 0 === -0 inside the Turbopack analyzer: #94172
  • Use serde_json::Number in CompileTimeDefineValue and remove TotalOrderF64: #94177
  • docs: bodySizeLimit measures raw HTTP body: #94137
  • Update ctor from 0.10 to 1.0.6: #94045
  • Include --port in next internal query-trace startup hint and help example: #93961
  • Turbopack: refactor NFT to add Endpoint.traced_files: #94224
  • Turbopack: show codeframe when tracing too much: #94207
  • fix(instrumentation): await instrumentation in RouteModule.prepare: #94306
  • [turbopack] Function pointers are copy: #94273
  • docs: accuracy and pappercuts: #94299

Credits

Huge thanks to @sampoder, @icyJoseph, @sokra, @mischnic, and @lukesandberg for helping!

v15.5.19

15.5.19

1 month ago

[!NOTE] This release is backporting bug fixes. It does not include all pending features/changes on canary.

Core Changes

  • [15.5.x] Don't drop FormData entries (#94244)

Other

  • [15.5.x] Fix CI (#94281)

Credits

Huge thanks to @eps1lon for helping!

v16.2.7

v16.2.7

1 month ago

[!NOTE] This release is backporting bug fixes. It does not include all pending features/changes on canary.

Core Changes

  • Backport documentation fixes for v16.2 (#93804)
  • [backport] Patch playwright-core to resolve _finishedPromise on requestFailed (#93920)
  • [backport] Fix dev mode hydration failure when page is served from HTTP cache (#93492)
  • [backport] Fix catch-all router.query corruption with basePath + rewrites (#93917)
  • [backport] Encode non-ASCII characters in cache tags at construction (#93918)
  • [backport] Fix server action forwarding loop with middleware rewrites (#93919)
  • [backport] Turbopack: switch from base40 to base38 hash encoding (#93932)
  • [ci] Disable hanging node 24 typescript tests on 16.2 backport branch (#94164)
  • [backport] Fix "type: module" in project dir when using standalone or adapters (#94050)
  • [backport] Propagate adapter preferred regions (#94200)
  • [16.2.x] Don't drop FormData entries (#94240)
  • [backport] feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution (#94284)

Credits

Huge thanks to @eps1lon, @icyJoseph, @unstubbable, @mischnic, @bgw, @timneutkens, and @lukesandberg for helping!

v16.3.0-canary.36

v16.3.0-canary.36

1 month ago

Misc Changes

  • Turbopack analyzer: analyze ternaries + promises in string & nullish methods: #94187
  • [turbopack] Break up graph.rs in the analyzer into smaller files: #94211
  • [turbopack] Add explain() methods to WellKnownObjectKind and WellKnownFunctionKind: #94217
  • [turbopack] Handle negative numbers as constants in the analyzer: #94218
  • [turbopack] Use ast_path.kinds() instead of mapping over ast_path in the analyzer: #94221
  • [CLI] Exit non-zero with a clear message when next typegen fails: #94241

Credits

Huge thanks to @sampoder and @gaojude for helping!

v16.3.0-canary.35

v16.3.0-canary.35

1 month ago

Misc Changes

  • Exclude static metadata and viewport from error recovery prerender when cache-components is enabled: #94134
  • [turbopack] Shrink ReadRawVcFuture from 80 to 64 bytes: #94201
  • [turbopack] Move WellKnownObjectKind & WellKnownFunctionKind into well_known/kinds.rs in the analyzer: #94209
  • [turbopack] Move require.context-related code into a seperate file in the analyzer: #94210

Credits

Huge thanks to @gnoff, @lukesandberg, and @sampoder for helping!

v16.3.0-canary.34

v16.3.0-canary.34

1 month ago

Misc Changes

  • Update shortcircuit_if_known to eval_shortcircuit(): #94163
  • Remove dead code from JsValue::Binary in is_truthy: #94165
  • Produce valid file URLs for import.meta.url on Windows in Turbopack: #94179
  • [turbopack] Store TaskDirtyCause in Dirtyness and pass to NativeFunction::span: #94057
  • Turbopack: cleanup ModuleHotReferenceAssetReference: #94206
  • [feat] updated the documentation for deployment to point to new next.js Docker official guide.: #94185
  • docs: correct custom server optimization guidance: #94229
  • Add Errors/Insights tab split to the instant error overlay: #94073
  • Replace VcStorage with real TurboTasks in tests/benches : #93955
  • Redesign the unrendered-segment instant validation overlay: #93879
  • turbopack tracing: add chunk_name to get HMR events span: #94061
  • Turbopack: reduce hmr chunk list subscriptions: #94062
  • [turbopack] Separate JsValue into it's own folder in the analyzer: #94208
  • feat(image-optimization): add experimental flag imgOptOperationCache: #94246

Credits

Huge thanks to @sampoder, @sokra, @mischnic, @kristiyan-velkov, @timneutkens, @aurorascharff, @lukesandberg, @wbinnssmith, and @styfle for helping!

v16.3.0-canary.33

v16.3.0-canary.33

1 month ago

Misc Changes

  • docs: fix code examples in getting-started guides: #93273
  • [CC] Streaming prerender: #94044
  • test: skip flaky instant-nav-panel tests: #94196
  • [CC] Avoid unnecessary conversions to a stream: #94192
  • test: fix next-after-app-static: #94195
  • Propagate adapter preferred regions: #94123
  • [ci] Update all actions/* dependencies: #94174
  • Consolidate Resume Data Caches and partially revert #88556: #94194
  • Fix 'use cache' bail-out under unstable_instant = false: #94198
  • Turbopack: use module graph for NFT: #92901
  • Turbopack's analyzer: always treat promises as truth-y and non-nullish: #94186

Credits

Huge thanks to @StanislavKozachenko, @lubieowoce, @timneutkens, @bgw, @unstubbable, @mischnic, and @sampoder for helping!

v16.3.0-canary.32

v16.3.0-canary.32

1 month ago

Misc Changes

  • Fix short circuit evaluation of AND / OR in the Turbopack analyzer for string & nullish-related methods: #94159
  • Turbopack: fix instrumentationClientInject with type:module: #94184
  • [test] Add test for static metadata files and generateStaticParams: #93465
  • Align issue triage guidance with automated behavior: #94189

Credits

Huge thanks to @sampoder, @mischnic, @eps1lon, and @timneutkens for helping!

v16.3.0-canary.31

v16.3.0-canary.31

1 month ago

Misc Changes

  • ServerActionsGraph: pass ModuleGraphLayer as OperationVc: #94141
  • [ci] Explicitly disable package-manager-cache for uses of actions/setup-node: #93953
  • Bugfix: Incorrect search params stored in cache: #94144
  • Upgrade ast-grep: #94150
  • docs: transpilePackages usage: #93602
  • [Skills] next-cache-components-optimizer: clarify private-cache scope rule: #94113
  • [ci] Increase TEST_CONCURRENCY from 8 to 12: #94138
  • Upgrade React from 75b0945b-20260526 to c0cd4d5d-20260527: #94161
  • Remove extra word: #94160
  • [ci] Give the build cache in cache in build_and_deploy a more obvious name, not just a hash and run number: #93957
  • docs: move isr cacheHandler callout to next steps: #94167
  • [ci] Rename GRAPHITE_TOKEN to GRAPHITE_CI_OPTIMIZER_TOKEN: #94166
  • Fix default regex for require.context in Turbopack analyzer: #94162
  • [ci] Use Turbopack in non-webpack-specific e2e test jobs: #94005

Credits

Huge thanks to @sokra, @bgw, @acdlite, @mischnic, @icyJoseph, @gaojude, @vercel-release-bot, @igorbabko, and @sampoder for helping!

v16.3.0-canary.30

v16.3.0-canary.30

1 month ago

Core Changes

  • Revert "Revert "refactor: write pages router export files directly to server/pages/"": #93409

Misc Changes

  • Turbopack: make available_modules an OperationVc and simplify merged module bookkeeping: #94055
  • chore: release @next/rspack-core 1.0.3: #94116
  • Improve notFound recovery in error pathway: #94037
  • Turbopack: Fix unsound IntoIterator for ReadRef<T>: #94122
  • [ci] Skip installing native binaries when fetching test timings: #93593
  • [ci] Reserve comments for stats and tests: #93240
  • docs: vocabulary-bridge rule for api-ref and guide skills: #94127
  • docs: rework dynamic segments intro section: #94126
  • [ci] Fix the playwright-chromium Dockerfile: #94064
  • Fix Firefox refresh loop on initial load of streaming pages in dev mode: #94128
  • Upgrade React from d5736f09-20260507 to 75b0945b-20260526: #94131
  • Prefetch App Shells on the client: #93999
  • [ci] Add an AGENTS.md for GitHub Actions: #94056
  • docs: add next/root-params API reference: #93764
  • docs: ISR w/ Cache Components - experimental.partialFallbacks: #93299
  • [ci] Resize tiny jobs in integration_tests_reusable.yml to use smaller machines: #93886

Credits

Huge thanks to @sokra, @SyMind, @gnoff, @timneutkens, @eps1lon, @icyJoseph, @bgw, @unstubbable, @vercel-release-bot, and @acdlite for helping!

v16.3.0-canary.29

v16.3.0-canary.29

1 month ago

Misc Changes

  • Replace next-ppr-optimizer with next-cache-components-optimizer: #94035
  • [Skills] next-dev-loop: persist login state across loops: #94105
  • Fix errors.json merge driver to handle gaps in error codes: #93829

Credits

Huge thanks to @gaojude and @sokra for helping!

v16.3.0-canary.28

v16.3.0-canary.28

1 month ago

Misc Changes

  • [Skills] Mark backport-pr and create-pr as internal: #94076

Credits

Huge thanks to @gaojude for helping!

v16.3.0-canary.27

v16.3.0-canary.27

1 month ago

Misc Changes

  • Add next-dev-loop and next-ppr-optimizer skills: #93943
  • test: migrate webdriver callers to next.browser: #93941
  • Revert "Include PPR routes in dynamicRoutes regardless of revalidate time": #94032
  • Fix pr-status job pagination: #94049
  • Prerender static metadata under dynamic segments to canonical pathname: #93873
  • Instant navs devtools revamp: #94027
  • Add Chromium-only Playwright image publisher: #94051

Credits

Huge thanks to @gaojude, @timneutkens, @gnoff, and @samselikoff for helping!

v16.3.0-canary.26

v16.3.0-canary.26

1 month ago

Misc Changes

  • [ci] Add an TURBO_TASKS_AVAILABLE_PARALLELISM environment variable that overrides std::thread::available_parallelism callsites: #93995
  • Make --debug-build-paths work with src/ directory projects: #94016
  • ci: run Linux Playwright jobs in prebuilt Microsoft container: #93794
  • Revert "Prerender HTTP access fallbacks with Cache Components semantics": #94018
  • Respond to App Shell prefetches on the server: #93998
  • [turbopack] Disable ctor under RA: #94022
  • Upgrade rustc to nightly-2026-05-15: #94021
  • Turbopack: don't crash the dev server when node_modules/next is briefly unresolvable: #93877
  • Include PPR routes in dynamicRoutes regardless of revalidate time: #94025
  • Enable experimental.varyParams by default: #94010
  • Enable experimental.optimisticRouting by default: #94011
  • Enable experimental.cachedNavigations by default with cacheComponents: #94012
  • Update font data: #94006
  • [ci] Set TURBO_TASKS_AVAILABLE_PARALLELISM to 4 in most e2e tests: #93996

Credits

Huge thanks to @bgw, @unstubbable, @timneutkens, @acdlite, @lukesandberg, @mischnic, @gnoff, and @vercel-release-bot for helping!

v16.3.0-canary.25

v16.3.0-canary.25

1 month ago

Misc Changes

  • Enable mimalloc in benchmarks: #93388
  • Turbopack: fix subpath imports pointing to external packages: #93308
  • Turbopack: fix error reporting with crashing webpack loaders: #93926
  • docs: instrumentationClientInject: #93913
  • Fix Yarn berry tests: #93962
  • Polish instant fix cards and validation messages: #93894
  • Add deployable tarballs to pack-next: #93963
  • fix(devtools): detect VS Code renamed macOS binary in launch-editor: #93971
  • turbo-tasks: task-storage memory wins: #93720
  • Add backport PR skill: #93973
  • Turbopack: respect the module-sync export condition: #93970
  • use the action cache for passing tests: #93954
  • devlow-bench: percentile-based comparison and run retries: #93950
  • @vercel/devlow-bench: 0.3.5 → 0.4.0: #93951
  • [test] Prerendering HTTP access fallback pages with Cache Components: #93987
  • Prerender HTTP access fallbacks with Cache Components semantics: #93988
  • Add experimental.appShells feature flag: #93997

Credits

Huge thanks to @lukesandberg, @mischnic, @aurorascharff, @timneutkens, @wbinnssmith, @unstubbable, and @acdlite for helping!

v16.3.0-canary.24

v16.3.0-canary.24

1 month ago

Core Changes

  • Add nextConfig.instrumentationClientInject: #93785
  • Add MCP compile_route tool: #93337
  • [turbopack-trace-server] Add memory samples to the mcp tool results: #93338

Misc Changes

  • docs: update agent test guidance: #93924
  • Add create PR skill: #93937
  • Use node streams for server inserted HTML: #93934
  • Remove vercel approvers: #93921
  • [otel] honor traceparent for verbose mode spans: #93874
  • Fix cross-param leak with prefetch={true} and cachedNavigations: #93940
  • Enable rootParams by default: #93863
  • devlow: add run sampling snapshots and comparison reports: #93833
  • Allow inspecting prerender worker again: #93947
  • make rcstrs on the heap/static slightly smaller: #93805
  • Stop pinning compiled chunk source on EcmascriptBuildNodeChunkVersion. : #93807
  • [turbopack] Add trace metadata about the persist size: #93339

Credits

Huge thanks to @timneutkens, @mischnic, @gnoff, @kakadiadarpan, @unstubbable, @wbinnssmith, and @lukesandberg for helping!

v16.3.0-canary.23

v16.3.0-canary.23

1 month ago

Core Changes

  • [Turbopack] Add graph-based CSS chunking algorithm behind experimental.cssChunking: "graph": #93606

Misc Changes

  • Convert more tests from createNext -> nextTestSetup: #93799
  • turbopack: emit assets before duplicate check in emit_assets: #93875
  • [test] split og-api test suite into default and standalone variants: #93915
  • Pass projectDir to adapter modifyConfig: #93916
  • Distinguish in-navigation errors in the instant error overlay: #93843
  • Eval next.config export functions in the try catch: #93884
  • Rename TaskExecutionReason::Initial to Root: #93922

Credits

Huge thanks to @timneutkens, @sokra, @unstubbable, @mischnic, @aurorascharff, and @lukesandberg for helping!

v16.3.0-canary.22

v16.3.0-canary.22

1 month ago

Misc Changes

  • turbo-tasks: prioritize recomputed tasks with Recomputation priority: #93876

Credits

Huge thanks to @sokra for helping!

v16.3.0-canary.21

v16.3.0-canary.21

1 month ago

Core Changes

  • Redesign dev overlay: cleaner shell + instant fix-card guidance: #93755

Misc Changes

  • Trace middleware/proxy source files in webpack NFT pipeline: #93871

Credits

Huge thanks to @unstubbable and @yavorpunchev for helping!

v16.3.0-canary.20

v16.3.0-canary.20

1 month ago

Core Changes

  • [turbopack] fix feature usage telemetry: #93100
  • Add an info panel for the existing "Cache disabled" indicator: #93756
  • Convert test/integration to isolated tests: #93247
  • Extend instant error overlay to metadata, viewport, and sync IO errors: #93287
  • Turbopack: expose hashes of source files to adapters: #93539
  • bfcacheId: Opt out of state preservation: #93633
  • Honor Suspense-above-body opt-in for dynamic generateViewport: #93759
  • Add next internal static-routes-info CLI command: #93399
  • Craigandrews/ensure isr lru is written if requests collapsed: #93766
  • Fix catch-all router.query corruption with basePath + rewrites: #93294
  • Surface invalid dynamic usage errors via Flight in dev: #93706
  • Upgrade React from dd453071-20260506 to d5736f09-20260507: #93702
  • Show inner "use cache" as cause of nested-dynamic cache error: #93707
  • Fix server action forwarding loop with middleware rewrites: #93792
  • Instant Insights: When unable to complete validation provide a filename for the unvalidated boundary: #93770

Example Changes

  • [examples] migrate cloudinary to vercel-blob: #93762

Misc Changes

  • Turbopack: don't generate next-server.js.nft.json with adapters: #93684
  • Repo: Add gh stack skill: #93705
  • Fix React 18 tests: #93763
  • docs: clarify cacheTag limit - it is per call: #93768
  • docs: devIndicators with usage example: #93784
  • Convert tests using createNext -> nextTestSetup: #93767
  • Turbopack: fix lock-order inversion between Storage::map and Storage::snapshots: #93788
  • [turbopack] Enforce root attribute for strongly consistent reads and collectibles: #93114
  • Fix Turbopack worker_threads URL resolution: #93432
  • docs: less aggressive AI agent hint for an experimental API: #93811
  • docs: fix typos and links: #92541
  • docs: less aggressive AI agent hint for an experimental API: #93814
  • Patch playwright-core to resolve _finishedPromise on requestFailed: #93802
  • Revert "[test] Skip flaky cached-navigations tests": #93798
  • fix: GNU xargs warns about incompatible --replace/--max-args: #93821
  • fix: renumber non-sequential errors in errors.json: #93824
  • simplify session dependent tasks (#91729): #93227
  • fetch: respect HTTP Cache-Control headers with TTL-based invalidation (#91729): #93228
  • [CC] fix: cachedNavigations missing asyncApiPromises in resumes: #93827
  • Fix Date.now() cause shadowing in sync IO error overlay: #93857
  • Mark .agents/skills as internal so external npx skills add hides them: #93856
  • Instant Insights: only report non-validatable if dev render is error free: #93858
  • Remove partialFallbacks config flag: #93859
  • Fix warning in new apps caused by incorrect image dimensions: #93826

Credits

Huge thanks to @lukesandberg, @mischnic, @unstubbable, @timneutkens, @aurorascharff, @icyJoseph, @acdlite, @christopherkindl, @sokra, @gnoff, @publictheta, @gaojude, @unclebay143, @lubieowoce, @vercel-release-bot, and @samselikoff for helping!

v16.3.0-canary.19

v16.3.0-canary.19

1 month ago

Misc Changes

  • Proof of concept: task eviction after snapshot for turbo-tasks-backend: #91790

Credits

Huge thanks to @lukesandberg for helping!

v16.3.0-canary.18

v16.3.0-canary.18

1 month ago

Core Changes

  • Remove redundant instant navigation prefetch header: #93713
  • Instant Insights: Favor reporting errors from all potential navigations over reporting a failed attempt to validate when a slot is missing: #93714

Misc Changes

  • CI speed improvements: #93411

Credits

Huge thanks to @acdlite, @gnoff, and @timneutkens for helping!

v16.3.0-canary.17

v16.3.0-canary.17

1 month ago

Core Changes

  • Stabilize unstable_io: #93621
  • Use Next.js version as Turbopack persistent cache versioning key: #93605
  • feat(turbopack): add chunkLoadingGlobal config option: #93488
  • fix(devtools): render nested error messages with HotlinkedText: #93620
  • Fix: Improved rewrite detection during optimistic routing: #93619
  • Fix "type: module" in project dir when using standalone or adapters: #93612
  • Instant Insights: favor reported errors over missing slots: #93709

Misc Changes

  • Trace-server: Fix bottom up, and reduce allocations in turbopack-trace-server bottom-up grouping: #93460
  • turbopack: reschedule stale tasks with correct invalidation priority: #92897
  • [ci] Also pin first-party GH actions: #93609
  • Remove ineffective turbo-tasks: #91341

Credits

Huge thanks to @gnoff, @sokra, @tim123abc, @aurorascharff, @acdlite, @timneutkens, @bgw, and @lukesandberg for helping!

v16.3.0-canary.16

v16.3.0-canary.16

1 month ago

Core Changes

  • Hold cacheSignal across unstable_cache foreground revalidation: #93617
  • Encode non-ASCII characters in cache tags at construction: #93601

Credits

Huge thanks to @unstubbable for helping!

v16.3.0-canary.15

v16.3.0-canary.15

1 month ago

Core Changes

  • [devtools] Force ANSI colors on overlay code frames regardless of TTY: #93550
  • Turbopack: Match proxy matchers with webpack implementation: #93594
  • Track searchParams access through a Proxy to catch missing-key reads: #93549
  • Cherry-pick ghsa commits to canary: #93614

Misc Changes

  • docs: escape literal triple-backticks in contribution guide: #93584
  • [test] Pin package manager to patch versions: #93592
  • turbo-rcstr: replace rcstr! macro_rules with proc macro: #93551
  • Turbopack: Fix middleware matcher suffix: #93590
  • Turbopack: Change DynEffect::dyn_value to DynEffect::value_hash, a simple u128: #93552
  • [ci] Ensure graphite_ci_optimizer fails open even if github fails to fetch the action: #93615

Credits

Huge thanks to @aurorascharff, @icyJoseph, @eps1lon, @lukesandberg, @timneutkens, @unstubbable, and @bgw for helping!

v16.3.0-canary.14

v16.3.0-canary.14

1 month ago

Misc Changes

  • perf(ecmascript): shrink JsValue 64→32 bytes: #93106
  • Order loader tree imports by tree depth: #93537
  • Turbopack: more strict vergen setup: #93541

Credits

Huge thanks to @mmastrac, @sokra, and @mischnic for helping!

v16.3.0-canary.13

v16.3.0-canary.13

2 months ago

Core Changes

  • Disable instant validations in draft mode: #93472

Misc Changes

  • Drop ReferencedAsset::from_resolve_result as a turbotask: #93297
  • Turbopack: Cache effect errors, replace the write_lock Mutex with a lazily created Notify instance: #93476

Credits

Huge thanks to @samselikoff, @lukesandberg, and @bgw for helping!

v16.3.0-canary.12

v16.3.0-canary.12

2 months ago

Core Changes

  • Refactor: Decouple request store creation from req / res: #93499
  • Detect 'use cache' module-scope deadlocks early in dev: #93500
  • Bundle the 'use cache' deadlock probe worker: #93538
  • Support configuring a default instant validation level : #93301
  • Upgrade React from f4e0d4ed-20260429 to dd453071-20260506: #93547

Misc Changes

  • [turbopack] shrink the size of futures: #93474
  • [turbopack] Simplify local task tracking: #93478
  • [turbopack] correct a fencepost error in our inline string descision: #93524
  • Turbopack: make rcstr! macro expansion const: #93516
  • Turbopack: lazy aggregation optimize via persistent pending flag: #93454
  • docs: remove unreachable forms and mutations: #93509
  • docs: broken link from usePathname compat call out: #93528
  • Turbopack: really fix MAX_INLINE_LEN: #93531
  • [ci] Clarify new preview build flow: #93540
  • Turbopack: simplify asset ident constructors: #93213

Credits

Huge thanks to @lukesandberg, @unstubbable, @mischnic, @sokra, @icyJoseph, @eps1lon, @gnoff, and @vercel-release-bot for helping!

v16.3.0-canary.11

v16.3.0-canary.11

2 months ago

Core Changes

  • Fix dev mode reload and error on back navigation between Next.js pages: #93486
  • Fix double-encoding of URL pathname parts in client param parsing: #93491
  • Don't suppress usage of deprecated TypeScript compilerOptions: #93377

Misc Changes

  • [ci] Move Turbopack, Rspack and font data workflows off of RELEASE_BOT_GITHUB_TOKEN: #93455
  • [ci] Migrate React sync off of RELEASE_BOT_GITHUB_TOKEN: #93456
  • [ci] Create unique preview build versions for canary previews: #93490
  • docs: clarify proxy runtime history: #93467
  • Turbopack: fix import_usage for functions behind member expressions: #93504
  • [ci] Ensure pnpm store cache is only filled when pnpm install runs: #93508
  • Update unstable_prefetch and unstable_instant docs to reflect current API shape: #93514
  • [ci] Remove unused setup-nextjs-build.yml workflow: #93512

Credits

Huge thanks to @eps1lon, @unstubbable, @armando-andre, @mischnic, and @gnoff for helping!

v16.3.0-canary.10

v16.3.0-canary.10

2 months ago

Core Changes

  • Upgrade React from da9325b5-20260417 to f4e0d4ed-20260429: #93457
  • Bump @vercel/ncc: #93459
  • Include deployment id in cacheHandlers keys: #93453
  • fix(next/image): Improve error message for private IP (SSRF) rejections: #91686

Misc Changes

  • Upgrade to swc 65: #93325
  • [test] Ensure target page is compiled before navigation in instant-navs-devtools: #93365
  • [ci] Allow configuring the base URL for preview builds: #93464
  • turbo-tasks-backend: fix snapshot coordination races + extract SnapshotCoordinator: #93416

Credits

Huge thanks to @mischnic, @vercel-release-bot, @eps1lon, @rishishanbhag, and @lukesandberg for helping!

v16.3.0-canary.9

v16.3.0-canary.9

2 months ago

Misc Changes

  • Drop once_cell from all direct crate deps: #93095
  • Replace Lazy<FxHashMap> static lookups with phf::Map: #93096

Credits

Huge thanks to @mmastrac for helping!

v16.3.0-canary.8

v16.3.0-canary.8

2 months ago

Core Changes

  • Revert "Revert "Node.js streams: Add forkpoint for prerenderToStream"": #93376
  • Fix streaming in draft mode for cache components: #93417

Misc Changes

  • trace-server: shrink_to_fit LazySortedVec after sorting: #93361
  • feat(metadata): support non-standard directives in robots.ts via other: #93206
  • [turbo-trace-server] optimize loading even more: #93332

Credits

Huge thanks to @sokra, @timneutkens, @lukesandberg, and @samselikoff for helping!

v16.3.0-canary.7

v16.3.0-canary.7

2 months ago

Misc Changes

  • [test] Preserve Playwright traces on every failure: #93366
  • [ci] Add support for private preview builds: #93375
  • Fix deploy tests crashing under AI coding assistants: #93394
  • Remove leftover Turbopack manifests: #93398
  • [ci]: remove PR creation from deploy test workflow: #93400

Credits

Huge thanks to @eps1lon, @unstubbable, @timneutkens, and @ztanner for helping!

v16.3.0-canary.6

v16.3.0-canary.6

2 months ago

Core Changes

  • Honor the route-level expire value with blocking revalidation: #93211
  • Turbopack: add experimental.turbopackWorkerAssetPrefix to keep Workers same-origin when assetPrefix is a CDN: #93271
  • chore: bump postcss to 8.5.10: #93288
  • Enable server HMR for metadata routes (manifest.ts, robots.ts, etc.): #93110
  • [next/image] Only fire onError once: #93209
  • fix: handling of falsey values in error boundaries: #93134
  • Update upload trace url: #93350
  • enable validateRSCRequestHeaders by default: #93367
  • Deprecate edge runtime: #93369
  • Only log partytown setup error once: #93378

Misc Changes

  • turbo-tasks: precompute trait-impl vtables at compile time: #93092
  • Report OS memory pressure in TurboMalloc and trace samples: #93333
  • Speed up native postinstall script: #93312
  • Turbopack: remove unused module references: #93335
  • Turbopack: remove ModuleResolveResultItem::OutputAsset: #93349
  • [test] Suppress build when preparing next for cache hits: #93355
  • [test] Fix broken terminal output: #93357
  • Turbopack: delete unused turbo-static crate: #93324
  • fix a snapshot encoding error that could happen under concurrent mutation and snapshotting: #92658
  • Update 05-server-and-client-components.mdx: #93374
  • docs: clarify rendering flow in Server/Client interleaving example: #93381
  • [test] Stop building fresh packages for every test: #93380

Credits

Huge thanks to @mmastrac, @unstubbable, @GuinsooRocky, @sokra, @eps1lon, @mischnic, @maximecolin, @lukesandberg, @wbinnssmith, @lubieowoce, @timneutkens, @ztanner, @zana-abdi2002, and @icyJoseph for helping!

v16.3.0-canary.5

v16.3.0-canary.5

2 months ago

Core Changes

  • Apply sourcemaps by default during prerender in next build: #93280
  • Fix route handler SWR blocking on Node runtime: #93189
  • [ci]: fix release script to not strip newlines: #93302
  • Forward invalid dynamic usage errors on client-side navigations: #93184
  • HMR: debounce status indicator transitions to prevent flicker during bursts of changes: #93229
  • ci: Fix caching of test-cargo-unit: #93327
  • Turbopack: pull in updated vercel/nft tests: #93321

Misc Changes

  • Turbopack: compute exports without full analysis: #92823
  • Turbopack: cheaper check in map_next_dynamic: #93283
  • [turbo-tasks-backend] Single-item optimization for lost follower operations: #93200
  • Fix export * as X from './self' in scope-hoisted modules: #93192
  • [ci]: Use macOS arm runner for intel builds: #93330
  • Turbopack: only compute module ids for included modules: #93276
  • Turbopack: iter_reachable_modules: #93315
  • Turbopack: add failing test for cross-module side-effect inference: #93323
  • Turbopack: also add edge count to trace: #93314
  • [turbopack-trace-server] optimize loading: #93264
  • [rust-deps] Update tokio: #93195

Credits

Huge thanks to @eps1lon, @mischnic, @unstubbable, @ztanner, @sokra, @wbinnssmith, and @lukesandberg for helping!

v16.3.0-canary.4

v16.3.0-canary.4

2 months ago

Core Changes

  • Preserve __NEXT_ERROR_CODE across the /_error page handoff: #93183

Misc Changes

  • Reduce allocations in the next_debug_instant_stack transform: #93222

Credits

Huge thanks to @unstubbable and @lukesandberg for helping!

v16.3.0-canary.3

v16.3.0-canary.3

2 months ago

Core Changes

  • New ESLint rule: no-location-assign-relative-destination: #92900
  • Upgrade React from fef12a01-20260413 to da9325b5-20260417: #92945
  • Auto-generate AGENTS.md / CLAUDE.md in next dev: #92910
  • Strengthen _rsc cache-busting param: #92755
  • rage-restart followup: #92591
  • fix(use-cache): remove awaiting revalidation: #92636
  • Revert "Adopt pnpm catalogs for devDependencies": #93226
  • instant(): Block out-of-band client fetches: #93099
  • [next/image] Stop using deprecated url.parse: #93208
  • Suspend dynamic route params in dev instant shell: #93108
  • Turbopack: import.meta.glob docs + edge case support: #92729

Misc Changes

  • chore: Prune list of users in labeler json: #92984
  • [test] Deflake shallow-routing: #93006
  • Use existing commitId for tarball URL in stats action: #92899
  • docs: link Activity guide from Cache Components migration guide: #92571
  • docs: add guide for displaying dates without hydration flash: #92786
  • chore: remote apps/docs: #93041
  • [ci]: remove unused workflow: #93064
  • [ci]: remove publish token in favor of OIDC: #93065
  • Update Rspack development test manifest: #92959
  • [ci] Temporary disable of sccache: #93074
  • Use OIDC for CodSpeed: #93059
  • Restore dev-mode cache-fill timeout for 'use cache': #93055
  • [ci]: add environment to publishRelease flow: #93093
  • Adopt pnpm catalogs for devDependencies: #93071
  • Make 'use cache' fill timeout configurable: #93070
  • turbo-tasks: drop once_cell, const-init TRAIT_METHOD, ctor WORKER_TASKS: #93090
  • Patch setHeader for direct route handlers: #93101
  • [turbopack] Persistent last_successful_parse: #92852
  • [turbopack] Unify Cell Storage: #92974
  • Collapse pnpm test scripts into a single helper invocation: #93097
  • [tests]: fix cache-components.test.ts type error: #93113
  • [ci]: cleanup labeler: #93135
  • Docs: add signed commit guidance: #93155
  • [ci]: switch to GitHub runners: #93164
  • [ci]: pin rust-musl-cross: #93176
  • [turbopack] Fix max_level_hint to return most verbose per-target level: #93128
  • feat(turbopack): add NEXT_TURBOPACK_TRACING_PATH to control trace output location: #93084
  • Turbopack: move import_usage computation into ImportMap: #92891
  • [rust-deps] Update serde: #93196
  • [rust-deps] Update tracing: #93194
  • Turbopack: unify ModuleGraph constructors: #93203
  • [ci] replace next-labeler-webhook with in-repo GitHub Action: #93080
  • example: remove with-supertokens: #93212
  • Turbopack: move get_inner_asset into ecmascript module: #93191
  • [ci] Fix auto-label workflow: #93215
  • [test] Remove dead symlink: #93217
  • [ci] Populate GITHUB_TOKEN for auto-labeler: #93219
  • [ci]: move stats & CI status comment to workflow: #93220
  • [ci] Upload preview builds directly to Vercel Blob: #93207
  • [ci]: fix permissions on comment workflow: #93225
  • [turbopack] drop TransientState: #92853
  • [ci] Handle namespaced packages in preview builds: #93241
  • [ci] Create test summary comment if job immediately passes: #93236
  • [ci] Automatically start React sync when new react@experimental is available: #93235
  • [rust-deps] Update bytes, crc32fast, memchr, pin-project-lite, quote, rand, regex, ringmap, roaring: #93197
  • Recognize super(...) messages in Error subclass constructors: #93182
  • docs: remove broken error-handling overlay screenshot: #93279
  • [ci]: app-based release workflow: #93245
  • [turbopack-trace-server] Performance improvements for span event handling: #93179
  • [ci]: trigger signed release commit via API: #93285

Credits

Huge thanks to @bgw, @eps1lon, @SukkaW, @nextjs-bot, @devjiwonchoi, @aurorascharff, @feedthejim, @icyJoseph, @ztanner, @vercel-release-bot, @mmastrac, @mischnic, @gaojude, @unstubbable, @lukesandberg, @ijjk, @wbinnssmith, @awo00, @sokra, @acdlite, and @christopherkindl for helping!

v16.3.0-canary.2

v16.3.0-canary.2

2 months ago

Misc Changes

  • Improve "make root node" trace attributes: #92941
  • CI: Track SWC native binary size in PR stats comment: #92938

Credits

Huge thanks to @sokra for helping!

v16.3.0-canary.1

v16.3.0-canary.1

2 months ago

Core Changes

  • Support more prefetch configuration options: #92859
  • Improve deduping of concurrent 'use cache' invocations: #91830
  • [partial fallbacks]: include prefetch requests in shell upgrade handling: #92894
  • Redesign blocking route dev overlay and build errors: #92638
  • Switch to cargo-binstall and pre-built sccache binaries: #92911
  • Remove prefetch from instant config: #92761

Misc Changes

  • Fix flake in rewrites-manual-href-as test: #92948
  • docs: amends to preserving-ui-state guide: #92270

Credits

Huge thanks to @gnoff, @unstubbable, @ztanner, @aurorascharff, @mmastrac, and @icyJoseph for helping!

v16.3.0-canary.0

v16.3.0-canary.0

2 months ago

Core Changes

  • fix(next/image): ensure images.maximumResponseBody applies to local images too: #92920
  • Refactor trace server sort to SortMode enum (execution order / value / name): #92873
  • Perf: Simplify static metadata handling: #92630
  • remove flag guarding unstable_io: #92923

Misc Changes

  • [ci] Cache passing test results so CI retries skip them: #92832
  • fix accidental test duplication: #92922
  • rename MagicAny: #92918
  • turbopack: reduce EffectStateStorage memory by storing u128 content hashes: #92902
  • turbo-trace-server: reduce allocation overhead when loading large trace files: #92896
  • Turbopack: optimize SelfTimeTree performance, memory usage, and fix range query boundaries: #92931
  • [ci]: fix backport sync script: #92942

Credits

Huge thanks to @styfle, @mmastrac, @ztanner, @lukesandberg, @sokra, @timneutkens, and @gnoff for helping!

v16.2.1-canary.46

v16.2.1-canary.46

2 months ago

Core Changes

  • Support type cast expressions in page static info extractor: #92837
  • Fix dev mode hydration failure when page is served from HTTP cache: #92892
  • [devtools] Preserve full code frames in browser overlay: #92621
  • Enable prefetchInlining by default: #92863
  • Replace deprecated moduleResolution: "node": #92654

Misc Changes

  • turbo-tasks: add info_span for blocking waits during task restore: #92878
  • Turbopack: Use an async lock in the filesystem watcher: #92906
  • [ci] Skip Playwright system deps install on subsequent self-hosted runs: #92893
  • turbo-tasks: Reduce allocations on cache hits: #92756
  • CI: Remove dead yarn support from next-stats-action: #92587

Credits

Huge thanks to @mischnic, @sokra, @unstubbable, @aurorascharff, @acdlite, @bgw, @mmastrac, @eps1lon, and @lukesandberg for helping!

v16.2.1-canary.45

v16.2.1-canary.45

2 months ago

Core Changes

  • Allow overriding outputHashSalt in modifyConfig: #92856

Misc Changes

  • Turbopack: Use lld again on ARM64 glibc Linux: #92860
  • [ci]: add workflow to bump canary after backport: #92801
  • turbopack: cache TransformPlugin in narrow-scoped turbo-tasks functions: #92842

Credits

Huge thanks to @bgw, @ztanner, @sokra, and @mischnic for helping!

v16.2.1-canary.44

v16.2.1-canary.44

2 months ago

Core Changes

  • fix(trace-server): default MCP port to --port + 1 to avoid conflicts: #92831
  • Revert "Node.js streams: Add forkpoint for prerenderToStream": #92845
  • Warn for non-deterministic "use cache" args during final prerender: #92820

Misc Changes

  • Share native binaries via GitHub artifacts: #92758
  • Turbopack: shorter error message for ModuleBatchesGraph::get_entry_index: #92828
  • Turbopack: refactor export analysis: #92781
  • [ci] Skip sccache on Windows runners: #92847
  • Turbopack: remove StarImportAnalyzer: #92830
  • Turbopack: analyzer improvement followups: #92834
  • Update Rspack production test manifest: #92674
  • Update Rspack development test manifest: #92673
  • Turbopack: move assignment_scopes computation into ImportMap: #92835
  • docs: restructure instant nav guide for clarity: #92684
  • docs: add documentation for no-typos ESLint rule: #92809

Credits

Huge thanks to @mmastrac, @sokra, @mischnic, @timneutkens, @vercel-release-bot, @unstubbable, @icyJoseph, and @MukundaKatta for helping!

v16.2.4

v16.2.4

2 months ago

[!NOTE] This release is backporting bug fixes. It does not include all pending features/changes on canary.

Core Changes

  • chore: Bump reqwest to 0.13.2 (Fixes Google Fonts with Turbopack for Windows on ARM64) (#92713)
  • Turbopack: fix filesystem watcher config not applying follow_symlinks(false) (#92631)
  • Scope Safari ?ts= cache-buster to CSS/font assets only (Pages Router) (#92580)
  • Compiler: Support boolean and number primtives in next.config defines (#92731)
  • turbo-tasks: Fix recomputation loop by allowing cell cleanup on error during recomputation (#92725)
  • Turbopack: shorter error for ChunkGroupInfo::get_index_of (#92814)
  • Turbopack: shorter error message for ModuleBatchesGraph::get_entry_index (#92828)
  • Adding more system info to the 'initialize project' trace (#92427)

Credits

Huge thanks to @Badbird5907, @lukesandberg, @andrewimm, @sokra, and @mischnic for helping!

v16.2.1-canary.43

v16.2.1-canary.43

2 months ago

Core Changes

  • webpack: fix swcPlugins with relative paths: #92770
  • Node.js streams: Add forkpoint for logMessagesAndSendErrorsToBrowser: #92510
  • Node.js streams: Add forkpoint for createCombinedPayloadStream: #92511
  • Node.js streams: Add forkpoint for renderWithRestartOnCacheMissInValidation: #92512
  • Node.js streams: Add forkpoint for prerenderToStream: #92513
  • Perf: Fast path for trace() when opentelemetry is not enabled: #92678

Misc Changes

  • turbopack: gate ValueDebugFormat and ValueDebug behind debug_assertions: #92628
  • Add TurboMalloc::thread_park() to flush and collect on thread park: #92804
  • Stop using deprecated baseUrl: #92653
  • Turbopack: Use FrozenMap for module export information: #92802
  • pr-status: Show all participants in review thread overview: #92730
  • docs: draftMode alignment: #92794
  • Turbopack: remove webpack chunk detection: #92773
  • Turbopack: refactor ESM codegen generation: #92777
  • Fix monorepo @next/swc binary postinstall: #92813
  • Turbopack: shorter error for ChunkGroupInfo::get_index_of: #92814
  • Turbopack: properly set NODE_ENV for SWC plugins: #92579

Credits

Huge thanks to @sokra, @eps1lon, @bgw, @icyJoseph, @mischnic, and @timneutkens for helping!

v16.2.1-canary.42

v16.2.1-canary.42

2 months ago

Core Changes

  • Scope Safari ?ts= cache-buster to CSS/font assets only (Pages Router): #92580
  • Enable wasm plugins on windows arm: #92544
  • prefetchInlining: fix build crash on notFound() pages: #92806

Credits

Huge thanks to @lukesandberg and @acdlite for helping!

v16.2.1-canary.41

v16.2.1-canary.41

2 months ago

Misc Changes

  • Fix devlow-bench: tsconfig rootDir mismatch with package.json bin: #92800

Credits

Huge thanks to @mmastrac for helping!

v16.2.1-canary.40

v16.2.1-canary.40

2 months ago

Misc Changes

  • Fix turbo cache flag: use --force: #92796

Credits

Huge thanks to @mmastrac for helping!

v16.2.1-canary.38

v16.2.1-canary.38

2 months ago

Core Changes

  • Ensure x-nextjs-data header is only set during resolve: #92752

Credits

Huge thanks to @ijjk for helping!

v16.2.1-canary.37

v16.2.1-canary.37

2 months ago

Core Changes

  • Exclude trace files from directory deletion in builds: #92486
  • Switch segment prefetch cache miss response from 204 to 404: #92751

Misc Changes

  • Re-enable sccache: #92746

Credits

Huge thanks to @lukesandberg, @mmastrac, and @acdlite for helping!

v16.2.1-canary.36

v16.2.1-canary.36

2 months ago

Core Changes

  • Fix prefetch hints not being loaded during revalidation: #92625

Credits

Huge thanks to @acdlite for helping!

v16.2.1-canary.35

v16.2.1-canary.35

2 months ago

Core Changes

  • Update font data: #92704
  • test: use Turborepo pack task for test isolation: #92575
  • Compiler: Support boolean and number primtives in next.config defines: #92731
  • Upgrade React from 404b38c7-20260408 to fef12a01-20260413: #92728
  • Revert "refactor: write pages router export files directly to server/pages/": #92733

Misc Changes

  • [test] Stop using baseUrl: #92469
  • Turbopack: properly remove unused TS enums with scope hoisting: #88205
  • bench: improve render pipeline benchmark reliability: #92715
  • bench: add A/B branch comparison workflow to BENCHMARKING.md: #92721
  • docs: fix broken bun.sh Nextjs documentation link: #92698
  • fix(server-actions): skip type-only ExportNamed in pre-pass to prevent phantom registerServerReference: #92494
  • Turbopack: Add import.meta.glob support (Vite compat): #92640
  • turbo-tasks: Fix recomputation loop by allowing cell cleanup on error during recomputation: #92725
  • chore: Bump reqwest to 0.13.2 (Fixes Google Fonts with Turbopack for Windows on ARM64): #92713
  • TURBOPACK: support crsossOriginLoading: #92070

Credits

Huge thanks to @vercel-release-bot, @eps1lon, @mischnic, @timneutkens, @hamedniroomand, @sleitor, @sokra, @Badbird5907, @fireairforce, and @andrewimm for helping!

v16.2.1-canary.34

v16.2.1-canary.34

2 months ago

Core Changes

  • Node.js streams: Add forkpoint for error recovery: #92457

Misc Changes

  • Delete some dead turbo task functions: #92596
  • docs(cli): clarify that --debug-build-paths requires route group folders in paths: #92618
  • turbo-tasks: Drop output_dependent on immutable task completion: #92683

Credits

Huge thanks to @lukesandberg, @timneutkens, and @icyJoseph for helping!

v16.2.1-canary.33

v16.2.1-canary.33

2 months ago

Core Changes

  • feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution: #91338
  • Fix segment explorer file pill accessibility: #92608
  • Perf: Only instrument clientComponentLoadTimes when used: #91385

Misc Changes

  • Remove a ton of turbo task functions from Issue trait items: #92623
  • feat(turbopack): change DiskFileSystem root to Vc<RcStr> for portable cache: #92603
  • Turbopack: remove unused ChunkableModules struct: #92606
  • Disable sccache temporarily: #92657

Credits

Huge thanks to @lukesandberg, @sokra, @mischnic, @timneutkens, and @mmastrac for helping!

v16.2.1-canary.32

v16.2.1-canary.32

2 months ago

Core Changes

  • Node.js streams: Add forkpoint for CacheComponents: #92444
  • Resolve compilerOptions.paths in tsconfigs without compilerOptions.baseUrl: #92277
  • Add codemod command to middleware deprecation warning: #92532
  • [partial fallbacks]: enable by default: #92627
  • refactor: write pages router export files directly to server/pages/: #90018

Misc Changes

  • Fix NextFontIssue IssueStage: CodeGen → Resolve: #92588
  • test: reduce writeToDisk memory test iterations to fix CI timeout: #92586
  • Refactor effects system: dedup/conflict detection, simplified Effect trait: #92300
  • fix(ci): improve Docker image cache streaming throughput and arch-awareness: #92617
  • Turbopack: extract inline base64 decode helper to shared @turbopack/base64 module: #92549
  • docs: add Link transitionTypes version history: #92624
  • CI: Download and run self-contained datadog-ci instead of using pnpm dlx or npx: #92546
  • turbopack: move CSS module composes validation from code generation to resolving: #92582
  • Drop turbo_tasks::function from ValueDebug trait items: #92593
  • Turbopack: fix filesystem watcher config not applying follow_symlinks(false): #92631
  • Bump swc to 63.1.1: #92604
  • chore(turbopack): upgrade qfiler to v0.3.0-alpha.4: #92558
  • Turbopack: cut number of client references in half: #92607
  • fix(ci): improve Docker image caching and native build skip optimization: #92633

Credits

Huge thanks to @sokra, @timneutkens, @hamidrezahanafi, @mmastrac, @lukesandberg, @aurorascharff, @bgw, @ztanner, @mischnic, @fireairforce, and @bgub for helping!

v16.2.1-canary.31

v16.2.1-canary.31

2 months ago

Core Changes

  • Don't swallow strings thrown in Server Components: #92592

Credits

Huge thanks to @eps1lon for helping!

v16.2.1-canary.30

v16.2.1-canary.30

2 months ago

Core Changes

  • Add next internal upload-trace: #92191
  • Perf: Add fast path to isAbsoluteUrl: #91389
  • Perf: Don't require watchpack in production: #91387
  • Request logging: Fix generate-params time being included in next.js time: #91386
  • Perf: Use charCodeAt in removeTrailingSlash: #91384
  • Perf: Cache regex in shouldServeStreamingMetadata: #91388
  • fix: scope "Pages Router only" comment to default export in next/error: #92566
  • Turbopack Build: Remove dev fouc from production bundle: #80935
  • fix(hmr): reconnect WebSocket after sleep/wake: #91416
  • Handle target option in React Compiler for Pages + React 18: #91500
  • [turbopack] Rust dependency caching via sccache: #91873
  • trace: detect rage restarts and deleted .next dirs: #92489

Misc Changes

  • turbo-tasks-backend: prevent duplicate task restores with restoring bits: #92389
  • docs: update details about unstable_retry() behavior: #91827
  • docs: link updateTag from cacheTag reference: #92379
  • [test] Stop using deprecated target: "es5" TypeScript compiler option: #92458
  • Docs: Instant docs updates: #92515
  • Turbopack: Improve unable to resolve next error: #91394
  • [test] Ensure incomplete minimum release age isn't propagated to fixture installs: #92568
  • test: skip .next and other build artifacts in writeFiles filter: #92578
  • Replace wasmer with wasmtime for SWC plugin WASM engine: #91533
  • docs: native db drivers with sync queries: #92572
  • turbopack: fix incremental build when module factories are restored from persistent cache: #92569
  • CI: Another attempt to fix pnpm versions for next-stats-action on canary: #92550
  • [turbopack] fix a debug_assert failure: #92581

Credits

Huge thanks to @sokra, @timneutkens, @devjiwonchoi, @aurorascharff, @eps1lon, @lukesandberg, @icyJoseph, @bgw, @mmastrac, and @wbinnssmith for helping!

v16.2.1-canary.29

v16.2.1-canary.29

2 months ago

Core Changes

  • Turbopack: switch from immutable token to path prefix: #92164
  • [build info]: distinguish between PPR and fully static routes in gSP: #92518
  • [build info]: omit symbol from top level gSP route: #92525

Misc Changes

  • CI: Fix issue with conflicting 'engines.pnpm' field in next-stats-action: #92533
  • Exclude use tests from react18 testing: #92542
  • Fix React18 tests for unstable_io: #92543

Credits

Huge thanks to @bgw, @mischnic, @gnoff, and @ztanner for helping!

v16.2.1-canary.27

v16.2.1-canary.27

2 months ago

Core Changes

  • fix: mention params and searchParams in blocking-route error messages: #92360
  • CPU prof: Write profiles to .next-profiles instead of .next/cpu-profiles: #92078
  • feat: generate root params types: #91019
  • fix: resolve function configs in unstable_getResponseFromNextConfig: #92501
  • Bundle skills/ directory into next/dist/skills: #92493
  • Node.js streams: Fork points: #92252
  • fix: replace docs/canary links with stable docs paths in error messages: #92528

Misc Changes

  • CI: Remove unused dependencies from next-stats-action dockerfile: #92485
  • docs: add note on React canary version to View transitions guide: #92315
  • docs: note PPR default in cacheComponents reference: #92378
  • Upgrade swc_core 57 -> 58, swc_sourcemap 9 -> 10, swc_plugin_runner 24 -> 25: #91532
  • docs: instant-navs draft, samples for build validation: #91850
  • docs: add middleware.mdx deprecation stub for discoverability: #92281
  • docs: improve blocking-route error page for params discoverability: #92359
  • docs: clarify cacheLife() cannot be called at module scope: #92326
  • perf: use whole_app_module_graph for get_compilation_issues MCP tool: #92473
  • Turbopack: Write trace file to .next-profiles: #92189
  • Update Rspack development test manifest: #92502
  • Update Rspack production test manifest: #92503
  • CI: Use pnpm lockfile for next-stats-action: #92488
  • docs: add note on installing server-only in data security guide: #92445
  • CI: Use minimumReleaseAge in pnpm workspace files: #92480

Credits

Huge thanks to @bgw, @aurorascharff, @lukesandberg, @icyJoseph, @timneutkens, @sokra, @vercel-release-bot, @abhishekmardiya, @bgub, @TooTallNate, and @gaojude for helping!

v15.5.15

v15.5.15

2 months ago

Please refer the following changelogs for more information about this security release:

https://vercel.com/changelog/summary-of-cve-2026-23869

v16.2.3

v16.2.3

2 months ago

[!NOTE] This release is backporting security and bug fixes. For more information about the fixed security vulnerability, please see https://vercel.com/changelog/summary-of-cve-2026-23869. The release does not include all pending features/changes on canary.

Core Changes

  • Ensure app-page reports stale ISR revalidation errors via onRequestError (#92282)
  • Fix [Bug]: manifest.ts breaks HMR in Next.js 16.2 (#91981 through #92273)
  • Deduplicate output assets and detect content conflicts on emit (#92292)
  • Fix styled-jsx race condition: styles lost due to concurrent rendering (#92459)
  • turbo-tasks-backend: stability fixes for task cancellation and error handling (#92254)

Credits

Huge thanks to @icyJoseph, @sokra, @wbinnssmith, @eps1lon and @ztanner for helping!

v16.2.1-canary.26

v16.2.1-canary.26

2 months ago

Core Changes

  • next-routing: middleware matching and app request URL normalization: #91859
  • docs: clarify serverless runtime behavior for use cache: #92232

Misc Changes

  • Adding more system info to the 'initialize project' trace: #92427
  • CI: Update and cleanup next-stats-action, force using pnpm 10.33.0: #92475
  • turbo-persistence: Use AtomicBool for is_empty() to avoid lock contention: #92481

Credits

Huge thanks to @ijjk, @andrewimm, @bgw, @wwenrr, and @lukesandberg for helping!

v16.2.1-canary.25

v16.2.1-canary.25

2 months ago

Core Changes

  • Include more context in macOS Rosetta 2 warning message: #92436
  • change the process name of builds: #92411
  • Fix styled-jsx race condition: styles lost due to concurrent rendering: #92459
  • turbo-tasks: fix hashed cell mode crash on task error (re-land #91576): #92108
  • Optimize how we track data for persistence: #89370
  • Route Handlers: Fix devRequestTimingInternalsEnd and Turbopack server HMR: #92271

Misc Changes

  • turbo-persistence: skip BlockCache for uncompressed (mmap-backed) blocks: #92390
  • docs: clarify that proxy/middleware matches static assets by default: #92441
  • turbo-persistence: pin referenced BlockCache entries to prevent eviction: #92361
  • [test] Skip flaky client-cache.parallel-routes in production and deploy: #92195
  • Fix sst inspect tool to respect CURRENT and stale sst files: #92414
  • [turbopack] add family name to many spans: #92415
  • scripts/pr-status: add reply-and-resolve-thread command: #92450
  • [test] Regenerate checked-in tsconfig.json files: #92455

Credits

Huge thanks to @sokra, @bgw, @lukesandberg, @icyJoseph, @eps1lon, and @wbinnssmith for helping!

v16.2.1-canary.24

v16.2.1-canary.24

3 months ago

Core Changes

  • chore: Upgrade to pnpm 10.x: #92283
  • fix(server-hmr): metadata routes overwrite page runtime HMR handler: #92273
  • Turbopack: Add a check for node version before allowing workerThreads: #91614

Misc Changes

  • turbo-persistence: optimize file syncing: #90542
  • Bump turborepo from 2.8.11 to 2.9.4: #92425
  • Turbopack: Remove turbo_tasks::apply_effects, use Effects::apply instead: #91858

Credits

Huge thanks to @bgw, @wbinnssmith, and @lukesandberg for helping!

v16.2.1-canary.23

v16.2.1-canary.23

3 months ago

Core Changes

  • Allow for parsing app route strings with and without slot names.: #92327

Misc Changes

  • use sorted inserts to improve builder performance: #91553
  • [tests]: remove unnecessary skipDeployment flags: #92423

Credits

Huge thanks to @lukesandberg, @ztanner, and @gnoff for helping!

v16.2.1-canary.22

v16.2.1-canary.22

3 months ago

Core Changes

  • Handle edge runtime in places that import node:stream: #92354
  • fix: add AGENTS.md at package root for agent discovery: #92376
  • Fix fallback route params case in app-page handler: #91737

Credits

Huge thanks to @timneutkens, @aurorascharff, and @ijjk for helping!

v16.2.1-canary.21

v16.2.1-canary.21

3 months ago

Misc Changes

  • next-core: deduplicate output assets and detect content conflicts on emit: #92292
  • docs: add deploy tests documentation to contributing guide: #92388

Credits

Huge thanks to @sokra and @ztanner for helping!

v16.2.1-canary.20

v16.2.1-canary.20

3 months ago

Core Changes

  • Improve existing dev server error message to suggest using it: #92317
  • Restart the next dev server if .next is deleted: #92135
  • feat: add experimental.swcEnvOptions for SWC preset-env configuration: #92272

Misc Changes

  • Update Rust toolchain to nightly-2026-04-02: #92288
  • docs: Ask AI agents to self-identify themselves in PR descriptions: #92235
  • Turbopack: Remove FileSystemPath::value_to_string in favor of ValueToStringRef::to_string_ref: #92284
  • [turbopack] use zero copy qfilter deserialization: #90574
  • Turbopack: Dedupe our two filesystempath extension/extension_ref functions: #92048
  • turbo-tasks: replace async resolve fns with custom Future types (ResolveRawVcFuture, ResolveVcFuture, ToResolvedVcFuture): #91554

Credits

Huge thanks to @feedthejim, @bgw, @wbinnssmith, @lukesandberg, @banchichen, and @sokra for helping!

v16.2.1-canary.19

v16.2.1-canary.19

3 months ago

Core Changes

  • Add MCP get_compilation_issues tool and NAPI method: #92062
  • Ensure app-page reports stale ISR revalidation errors via onRequestError: #92282
  • Move streamToUint8Array back to node-web-streams-helper.ts: #92263
  • fix: add @deprecated annotation to experimental.useCache: #92316

Misc Changes

  • turbo-tasks-backend: stability fixes for task cancellation and error handling: #92254
  • Add view transitions eval (agent-043): #92260
  • [turbopack] optimize RcStr parsing: #91773
  • ci: fix stats action: #92325
  • Revert "simplify session dependent tasks and add TTL support (#91729)": #92320
  • ci: remove deploy examples workflow from build-and-deploy: #92324

Credits

Huge thanks to @sokra, @aurorascharff, @lukesandberg, @ztanner, and @timneutkens for helping!

v16.2.1-canary.18

v16.2.1-canary.18

3 months ago

Core Changes

  • Add telemetry for adapterPath config usage: #92228
  • Node.js streams: First pass: #90500
  • fix: preserve HTTP access fallbacks during prerender recovery: #92231
  • Remove unnecessary ALS re-exports from entry-base.ts: #91527
  • Allow multi-level .localhost subdomains in dev origin check: #92262

Misc Changes

  • remove the loop from StaticSortedFile::lookup: #91688
  • Fix pr-status.js: retry on API errors and report timed-out jobs: #92205
  • docs: vt demo guide: #92249

Credits

Huge thanks to @lukesandberg, @ijjk, @timneutkens, @sokra, @ztanner, @icyJoseph, @unstubbable, and @ctate for helping!

v16.2.1-canary.17

v16.2.1-canary.17

3 months ago

Core Changes

  • Improve revalidateTag JSDoc to include guidance about required second parameter: #92176
  • partial fallbacks: adapter support for intermediate shells: #91902
  • docs: clarify id, filePath, and pathname in STATIC_FILE adapter output: #92227
  • feat: add NEXT_HASH_SALT env var for content-hash filename salting: #91871
  • Generate a CLI warning if using Rosetta 2 on Apple Silicon: #92220

Misc Changes

  • simplify session dependent tasks and add TTL support: #91729
  • disable bmi2 in qfilter: #92177
  • fix: pin 19 actions to commit SHA, extract 7 expressions to env vars: #92016
  • [test] Skip flaky cached-navigations tests: #92199
  • [test] Skip flaky prefetch-layout-sharing suite: #92198
  • Add internal header security guideline to AGENTS.md: #92128
  • docs: local images referenced by remote source: #92178
  • Update Rspack production test manifest: #92143
  • [test] Deflake allowed-dev-origins: #92211
  • Reapply "ci: add node-stream test coverage workflow (#89861)": #91664
  • Turbopack: trace fs.readdir calls: #92148
  • Fix DashMap read-write self-deadlock in task_cache causing hangs: #92210
  • [turbopack] use a single query parameter for cache busting: #92214
  • Docs/adapters review: #92223

Credits

Huge thanks to @lukesandberg, @aurorascharff, @dagecko, @eps1lon, @gaojude, @icyJoseph, @ztanner, @vercel-release-bot, @ijjk, @feedthejim, @mischnic, @sokra, and @bgw for helping!

v16.2.2

3 months ago

[!NOTE] This release is backporting bug fixes. It does not include all pending features/changes on canary.

Core Changes

  • backport: Move expanded adapters docs to API reference (#92115) (#92129)
  • Backport: TypeScript v6 deprecations for baseUrl and moduleResolution (#92130)
  • [create-next-app] Skip interactive prompts when CLI flags are provided (#91840)
  • next.config.js: Accept an option for serverFastRefresh (#91968)
  • Turbopack: enable server HMR for app route handlers (#91466)
  • Turbopack: exclude metadata routes from server HMR (#92034)
  • Fix CI for glibc linux builds
  • Backport: disable bmi2 in qfilter #92177
  • [backport] Fix CSS HMR on Safari (#92174)

Credits

Huge thanks to @nextjs-bot, @icyJoseph, @ijjk, @gaojude, @wbinnssmith, @lukesandberg, and @bgw for helping!

v16.2.1-canary.16

v16.2.1-canary.16

3 months ago

Core Changes

  • Add rust-fingerprint task and SCCACHE passthrough env: #92167
  • Improve error message for deprecated experimental.dynamicIO config: #92081
  • [turbopack] Fix CSS HMR on Safari: #92123

Misc Changes

  • Update Rspack development test manifest: #92142

Credits

Huge thanks to @mmastrac, @aurorascharff, @lukesandberg, and @vercel-release-bot for helping!

v16.2.1-canary.15

v16.2.1-canary.15

3 months ago

Core Changes

  • fix: handle file:// URLs from import.meta.resolve in cache handler path (fixes #73796): #90370
  • Turbopack: exclude metadata routes from server HMR: #92034
  • next.config.js: Accept an option for serverFastRefresh: #91968
  • Enable varyParams tracking for Cached Navigations: #92113
  • telemetry: set turboFlag correctly: #92149
  • Instant Validation: Allow unconfigured slots to render optionally: #92126

Misc Changes

  • TURBOPACK: support parse windows absolute path with single slash: #92076
  • Turbopack: statically evaluate path.sep: #92150
  • docs: add middleware bypass note to CDN caching guide: #92132
  • Turbopack: use same hash for immutable-static-hashes.json: #92157
  • [turbopack] replace regex with indexof: #92023
  • [test] Skip unstable_dynamicStaleTime tests due to flakiness: #92162
  • [test] Skip flaky segment-cache-refresh suite: #92163
  • Turbopack: createRequire(new URL("...", import.meta.url)): #92153
  • Add PPR evals and fix env loading for agent-eval 0.9.5: #92063
  • docs: document revalidateTag's required second argument in upgrade guide: #92134
  • Turbopack: support targeting even older browsers: #91563

Credits

Huge thanks to @VedantMadane, @wbinnssmith, @fireairforce, @unstubbable, @mischnic, @gnoff, @ijjk, @lukesandberg, @eps1lon, @gaojude, and @aurorascharff for helping!

v16.2.1-canary.14

v16.2.1-canary.14

3 months ago

Core Changes

  • [ftl] Include cause of route types: #92056
  • Upgrade React from 9627b5a1-20260327 to 74568e86-20260328: #92109

Misc Changes

  • docs: clarify that use cache requires async functions: #92101
  • Revert "turbo-tasks: add hashed cell mode for hash-based change detection without cell data": #92103
  • Move expanded adapters docs to API reference: #92115
  • ci: relax adapter results upload gate: #92127

Credits

Huge thanks to @aurorascharff, @unstubbable, @eps1lon, and @ijjk for helping!

v16.2.1-canary.13

v16.2.1-canary.13

3 months ago

Misc Changes

  • docs: opengraph-image papercuts: #92018
  • Update revalidateTag examples to use the new two-argument signature: #92065

Credits

Huge thanks to @icyJoseph and @aurorascharff for helping!

v16.2.1-canary.12

v16.2.1-canary.12

3 months ago

Core Changes

  • Upgrade React from 3cb2c420-20260324 to 9627b5a1-20260327: #92015
  • [experiment] Add useOffline flag with offline retry behavior: #92011
  • adapters: remove unused suffix code: #91997
  • [experiment] Add useOffline hook to expose offline state to userland: #92012
  • [turbopack] Don't use turborepo to build the docker image: #92029

Misc Changes

  • Use RcStr directly in napi(object) structs instead of converting to String: #92014
  • Rename SingleModuleReference::asset to SingleModuleReference::module: #92028

Credits

Huge thanks to @acdlite, @ztanner, @mmastrac, @sokra, and @bgw for helping!

v16.2.1-canary.11

v16.2.1-canary.11

3 months ago

Core Changes

  • [devtools] Show AggregateError.errors in the error overlay: #91835
  • Upgrade React from 8b2e903a-20260320 to 3cb2c420-20260324: #91905

Misc Changes

  • [cna] Upgrade to Biome 2.4 with Tailwind support: #86065
  • Rewrite agent rules to match bundled doc wording: #91995
  • Narrow the opengraph-image function return type: #91893

Credits

Huge thanks to @bgub, @eps1lon, @gaojude, and @remcohaszing for helping!

v16.2.1-canary.9

v16.2.1-canary.9

3 months ago

Core Changes

  • [Segment Bundling] Bundle static prefetches based on size: #91439

Credits

Huge thanks to @acdlite for helping!