Skip to content

Releases: vercel/next.js

v16.3.0-preview.6

v16.3.0-preview.6 Pre-release
Pre-release

Choose a tag to compare

@next-js-bot next-js-bot released this 13 Jul 20:20
ea219c9

Core Changes

  • Enhance ESLint rule no-location-assign-relative-destination: #93057

Misc Changes

  • Turbopack: order CSS modules by chunk-group co-occurrence in linearize: #95579
  • [test] Disable i18n-api-support deploy test for Turbopack with adapters: #95739
  • Fork navigation-testing-lock module: #95611
  • docs: runtime prefetching update: #95564
  • request insights: add agent diagnosis access (4/5): #93977
  • Fix Pages router 404 runtime rendering with Adapter: #95264
  • Fix duplicate static files in adapter: #95681
  • Update font data: #95725
  • [test] Disable middleware-rewrites deploy test for Turbopack with adapters: #95680
  • request insights: expose dev snapshots to tools and HMR (3/5): #93976
  • request insights: derive request history and fetch data (2/5): #93975
  • request insights: record local framework spans (1/5): #93974
  • Turbopack tests: remove assertions that duplicate webpack results: #95688
  • Fix support for custom-media-queries in LightningCSS: #95689
  • Clarify AI-assisted contribution policy in PR template and AGENTS.md: #95629
  • docs: add Building guide: #94999
  • docs: add incremental adoption path to Cache Components migration guide: #95325
  • [PPF] Sync IO is only allowed in the dynamic stage: #95384
  • refactor: remove unnecessary switches from StagedRenderingController: #95383
  • Keep the request body a plain Readable after middleware so Readable.toWeb() doesn't hang: #95607
  • docs: note default error/not-found UI follows OS color scheme, not app theme: #95673
  • test: skip redbox check in "static prefetch - missing suspense around search params": #95670
  • test: allow-runtime breaks Link's Server component child detection: #95596
  • docs: Immutable static assets: #95348
  • [turbopack] Simplify service worker e2e tests: #95672
  • [docs] Update "Handling a Custom Service Worker" in the CRA migration docs: #95434
  • [docs] Update progressive web apps documentation for new service worker syntax: #95431
  • (TypeScript 7 Support) Add experimental TypeScript CLI backend: #95639
  • [turbopack] Compile service workers registered from pages router pages: #95583
  • [turbopack] Output service workers to /_next/static/: #95554
  • Reduce the size of OperationVc from 8 bytes to 4: #95614
  • Upgrade React from df4bd1b4-20260708 to 5123b063-20260708: #95642
  • Add attribute rendering benchmark: #95621
  • docs(opengraph-image): load assets at module scope to keep route static under Cache Components: #95246
  • Convert agent-041's blocking-data check to the agentic LLM judge: #95630
  • Upgrade React from 12a4baec-20260707 to df4bd1b4-20260708: #95612
  • Make the agent-rules block verifiable and self-upgrading: #95467
  • Refresh outdated agent-rules blocks on next dev and codemod upgrade: #95470
  • [ci] Split up large instant-validation tests: #95627
  • [ci] Split up large rsc-build-errors development test: #95624
  • [ci] split up large cache-components-errors tests: #95623
  • docs: update MCP guides for the thin next-devtools-mcp: #94859
  • Normalize and validate expire and revalidate values to handle Infinity and surface mistakes early: #95493
  • [ci] Bump PR stats job timeout to 35 minutes: #95592
  • [ci] Pin typescript version in tests: #95619
  • fix(create-next-app): render filenames in Geist Mono so the preloaded font is used: #95471
  • [turbopack] print Turbopack warnings after SSG: #95430
  • fix(create-next-app): pin both axes on Tailwind template logos to silence aspect-ratio warning: #95609
  • Turbopack: enable import with {type: 'text'} by default: #95606
  • Consistently gate navigation-testing-lock API on flag: #95582
  • test: Fix immutable static asset deployment tests for real: #95600
  • Upgrade React from 23def8fd-20260706 to 12a4baec-20260707: #95581
  • Split remaining "client-node"-only modules into .browser variants: #95366
  • [turbopack] Don't evict when there is little memory to save: #95213
  • align dev and build output: #94916
  • [turbopack] Don't persist if there is little work to do: #95137
  • fix: log "Partial Prefetching enabled" during next build: #95593
  • [PP] Surface URL data during prefetching as an Instant insight with rule page: #95365
  • [turbopack] Rename rscEndpoint to rscHmrEndpoint: #95538
  • [ci] Split up large create-next-app/templates/matrix test: #95555
  • Turbopack: add more context to persistence file errors: #95318
  • [ci] Split up large cache-components-dev-warmup test suite: #95553
  • Cancel a superseded Server Components HMR refresh's server-side work: #95486
  • test: Fix immutable static asset deployment tests: #95550
  • [ci] Migrate webpack tests back to arm runners: #95549
  • docs: Fix testing-adapters variable name: #95575
  • test: Use Turbopack for 'Test new and changed tests when deployed': #95552
  • test: Disable service worker deploy tests for now: #95570
  • Fix/next info experimental analyze with graph css chunking: #95542
  • ci: Bump withgraphite/graphite-ci-action: #95562
  • Run instrumentation for Node.js Middleware without Adapter: #95547
  • Propagate maxDuration to edge adapter outputs: #95118
  • [ci] Skip apt-installed dependencies in playwright install step: #95535
  • test: Fix service worker error test: #95548
  • Upgrade to swc 72 and rust-react-compiler: #95536
  • [skills] Update gh-stack skill: #95541
  • docs: updates to Cache Components Caching: #95452
  • docs: remove incorrect statement that force-cache is the default for …: #95235
  • Turbopack: add all keys to dynamic exports before sealing the object: #93334
  • Disable supportsImmutableAssets with config.output: #95521
  • turbo-persistence: skip directory fsync on Windows: #95497
  • Abort superseded Server Components HMR requests on the client: #95463
  • [ci] Add stats comment with partial stats: #95401
  • [fragment-scroll] Enable new scroll handler by default: #95378
  • Upgrade React from 3508aee6-20260702 to 23def8fd-20260706: #95532
  • fix(dev-overlay): increase fix card grid row gap to clear floating Copy prompt button: #95526
  • evals: fix false-negative regex checks with the agentic LLM judge: #95440
  • trace-viewer: Support string span ids in nextjs trace backend: #95515
  • [turbopack] Add E2E tests for service workers: #94924
  • otel: Use correct parent span for Node.js middleware: #95306
  • Fix instrumentation hook awaiting for middleware with adapters: #95357
  • [test] Unflake cache-components-dev-streaming test suite: #95466
  • Also rewrite requires in page templates with Webpack: #95446
  • Add serverComponentsHmrCancellation experimental flag: #95462
  • 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
  • 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
  • [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
  • [ci] Migrate Turbopack build_and_test jobs back to arm64, leave webpack jobs as x86-64: #95374
  • Rename DYNAMIC_EXPIRE and DYNAMIC_STALE to describe what they gate: #95361
  • Upgrade React from 92f4fda3-20260629 to ec0fca31-20260701: #95368
  • Re-query deploy-test build logs until id markers appear: #95243
  • Fix early OTel proxy tracers in Cache Components prerenders: #95317
  • gitignore .next-profiles: #95256
  • Fix Navigation Inspector in Safari: #95329
  • Rename Copy as prompt to Copy prompt, convert FixOption to FixCard: #95309
  • codemod: bump eslint alongside eslint-config-next: #95314
  • docs: recommend explicit cacheLife and clarify overriding built-in cache profiles: #95311
  • test: Improve immutable static asset tests: #95349
  • Instant Navs guide: Highlights fixes and Client Component Page option: #95313
  • docs: Activity bfcacheId and :has caveats: #95275
  • [ci] Migrate some CI jobs back to x86-64, build both arm and x86-64 native binaries, include both os and architecture in native artifact names: #95341
  • [ci] Add optimize-ci, changes, and fetch-test-timings jobs to the needs list for the tests-pass job: #95339
  • [PP] Instant validation - error for unguarded static params: #94595
  • Revert "[ci] Move some test suites back to x86-...
Read more

v16.3.0-canary.84

v16.3.0-canary.84 Pre-release
Pre-release

Choose a tag to compare

@next-js-bot next-js-bot released this 12 Jul 23:57
a7bf120

Misc Changes

  • request insights: expose dev snapshots to tools and HMR (3/5): #93976
  • request insights: derive request history and fetch data (2/5): #93975
  • request insights: record local framework spans (1/5): #93974

Credits

Huge thanks to @feedthejim for helping!

v16.3.0-canary.83

v16.3.0-canary.83 Pre-release
Pre-release

Choose a tag to compare

@next-js-bot next-js-bot released this 10 Jul 23:56
1bd2fd5

Misc Changes

  • Turbopack tests: remove assertions that duplicate webpack results: #95688
  • Fix support for custom-media-queries in LightningCSS: #95689
  • Clarify AI-assisted contribution policy in PR template and AGENTS.md: #95629
  • docs: add Building guide: #94999
  • docs: add incremental adoption path to Cache Components migration guide: #95325
  • [PPF] Sync IO is only allowed in the dynamic stage: #95384
  • refactor: remove unnecessary switches from StagedRenderingController: #95383
  • Keep the request body a plain Readable after middleware so Readable.toWeb() doesn't hang: #95607
  • docs: note default error/not-found UI follows OS color scheme, not app theme: #95673
  • test: skip redbox check in "static prefetch - missing suspense around search params": #95670
  • test: allow-runtime breaks Link's Server component child detection: #95596
  • docs: Immutable static assets: #95348
  • [turbopack] Simplify service worker e2e tests: #95672
  • [docs] Update "Handling a Custom Service Worker" in the CRA migration docs: #95434
  • [docs] Update progressive web apps documentation for new service worker syntax: #95431
  • (TypeScript 7 Support) Add experimental TypeScript CLI backend: #95639

Credits

Huge thanks to @wbinnssmith, @sampoder, @bgw, @aurorascharff, @lubieowoce, @timneutkens, @icyJoseph, and @mischnic for helping!

v16.3.0-canary.82

v16.3.0-canary.82 Pre-release
Pre-release

Choose a tag to compare

@next-js-bot next-js-bot released this 10 Jul 00:07
a30d8b2

Misc Changes

  • [turbopack] Compile service workers registered from pages router pages: #95583
  • [turbopack] Output service workers to /_next/static/: #95554
  • Reduce the size of OperationVc from 8 bytes to 4: #95614
  • Upgrade React from df4bd1b4-20260708 to 5123b063-20260708: #95642
  • Add attribute rendering benchmark: #95621
  • docs(opengraph-image): load assets at module scope to keep route static under Cache Components: #95246
  • Convert agent-041's blocking-data check to the agentic LLM judge: #95630
  • Upgrade React from 12a4baec-20260707 to df4bd1b4-20260708: #95612
  • Make the agent-rules block verifiable and self-upgrading: #95467
  • Refresh outdated agent-rules blocks on next dev and codemod upgrade: #95470
  • [ci] Split up large instant-validation tests: #95627
  • [ci] Split up large rsc-build-errors development test: #95624
  • [ci] split up large cache-components-errors tests: #95623
  • docs: update MCP guides for the thin next-devtools-mcp: #94859
  • Normalize and validate expire and revalidate values to handle Infinity and surface mistakes early: #95493
  • [ci] Bump PR stats job timeout to 35 minutes: #95592

Credits

Huge thanks to @sampoder, @lukesandberg, @vercel-release-bot, @timneutkens, @aurorascharff, @gaojude, @bgw, and @gaearon for helping!

v16.3.0-canary.81

v16.3.0-canary.81 Pre-release
Pre-release

Choose a tag to compare

@next-js-bot next-js-bot released this 08 Jul 23:59
4bfa190

Misc Changes

  • [ci] Pin typescript version in tests: #95619
  • fix(create-next-app): render filenames in Geist Mono so the preloaded font is used: #95471
  • [turbopack] print Turbopack warnings after SSG: #95430
  • fix(create-next-app): pin both axes on Tailwind template logos to silence aspect-ratio warning: #95609
  • Turbopack: enable import with {type: 'text'} by default: #95606
  • Consistently gate navigation-testing-lock API on flag: #95582
  • test: Fix immutable static asset deployment tests for real: #95600
  • Upgrade React from 23def8fd-20260706 to 12a4baec-20260707: #95581
  • Split remaining "client-node"-only modules into .browser variants: #95366
  • [turbopack] Don't evict when there is little memory to save: #95213
  • align dev and build output: #94916
  • [turbopack] Don't persist if there is little work to do: #95137
  • fix: log "Partial Prefetching enabled" during next build: #95593
  • [PP] Surface URL data during prefetching as an Instant insight with rule page: #95365
  • [turbopack] Rename rscEndpoint to rscHmrEndpoint: #95538
  • [ci] Split up large create-next-app/templates/matrix test: #95555

Credits

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

v16.3.0-canary.80

v16.3.0-canary.80 Pre-release
Pre-release

Choose a tag to compare

@next-js-bot next-js-bot released this 07 Jul 23:59
9dd6d67

Misc Changes

  • Turbopack: add more context to persistence file errors: #95318
  • [ci] Split up large cache-components-dev-warmup test suite: #95553
  • Cancel a superseded Server Components HMR refresh's server-side work: #95486
  • test: Fix immutable static asset deployment tests: #95550
  • [ci] Migrate webpack tests back to arm runners: #95549
  • docs: Fix testing-adapters variable name: #95575
  • test: Use Turbopack for 'Test new and changed tests when deployed': #95552
  • test: Disable service worker deploy tests for now: #95570
  • Fix/next info experimental analyze with graph css chunking: #95542
  • ci: Bump withgraphite/graphite-ci-action: #95562
  • Run instrumentation for Node.js Middleware without Adapter: #95547
  • Propagate maxDuration to edge adapter outputs: #95118
  • [ci] Skip apt-installed dependencies in playwright install step: #95535
  • test: Fix service worker error test: #95548
  • Upgrade to swc 72 and rust-react-compiler: #95536
  • [skills] Update gh-stack skill: #95541
  • docs: updates to Cache Components Caching: #95452

Credits

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

v16.3.0-canary.79

v16.3.0-canary.79 Pre-release
Pre-release

Choose a tag to compare

@next-js-bot next-js-bot released this 07 Jul 00:01
b275ca5

Misc Changes

  • docs: remove incorrect statement that force-cache is the default for …: #95235
  • Turbopack: add all keys to dynamic exports before sealing the object: #93334
  • Disable supportsImmutableAssets with config.output: #95521
  • turbo-persistence: skip directory fsync on Windows: #95497
  • Abort superseded Server Components HMR requests on the client: #95463
  • [ci] Add stats comment with partial stats: #95401
  • [fragment-scroll] Enable new scroll handler by default: #95378
  • Upgrade React from 3508aee6-20260702 to 23def8fd-20260706: #95532
  • fix(dev-overlay): increase fix card grid row gap to clear floating Copy prompt button: #95526
  • evals: fix false-negative regex checks with the agentic LLM judge: #95440
  • trace-viewer: Support string span ids in nextjs trace backend: #95515
  • [turbopack] Add E2E tests for service workers: #94924
  • otel: Use correct parent span for Node.js middleware: #95306
  • Fix instrumentation hook awaiting for middleware with adapters: #95357
  • [test] Unflake cache-components-dev-streaming test suite: #95466
  • Also rewrite requires in page templates with Webpack: #95446

Credits

Huge thanks to @Pranav18M, @andrewimm, @mischnic, @chippleh1392, @unstubbable, @eps1lon, @vercel-release-bot, @aurorascharff, @gaojude, and @sampoder for helping!

v16.3.0-canary.78

v16.3.0-canary.78 Pre-release
Pre-release

Choose a tag to compare

@next-js-bot next-js-bot released this 04 Jul 23:57
0059804

Misc Changes

  • Add serverComponentsHmrCancellation experimental flag: #95462

Credits

Huge thanks to @unstubbable for helping!

v16.3.0-canary.77

v16.3.0-canary.77 Pre-release
Pre-release

Choose a tag to compare

@next-js-bot next-js-bot released this 04 Jul 00:00
65dbff0

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 Pre-release
Pre-release

Choose a tag to compare

@next-js-bot next-js-bot released this 03 Jul 00:04
7e2efbc

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!