Releases: vercel/next.js
v16.2.1-canary.26
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
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-routesin production and deploy: #92195 - Fix sst inspect tool to respect
CURRENTand 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
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, useEffects::applyinstead: #91858
Credits
Huge thanks to @bgw, @wbinnssmith, and @lukesandberg for helping!
v16.2.1-canary.23
v16.2.1-canary.22
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.20
Core Changes
- Improve existing dev server error message to suggest using it: #92317
- Restart the
next devserver if.nextis 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
Core Changes
- Add MCP
get_compilation_issuestool 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
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
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-navigationstests: #92199 - [test] Skip flaky
prefetch-layout-sharingsuite: #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!