Change8

v16.2.0-canary.62

Breaking Changes
📦 next-jsView on GitHub →
2 breaking2 features🐛 7 fixes🔧 5 symbols

Summary

This release introduces instant serving for cached navigations and enforces the use of `unstable_instant` only in Server Components. Several core fixes address worker compatibility, suspense boundaries, and server patching behavior.

⚠️ Breaking Changes

  • Throw an error when `unstable_instant` is used within a Client Component. This feature is intended only for Server Components.
  • Turbopack build process has changed: it is no longer automatically included in `pnpm build`. Users must now explicitly run `pnpm build-all` to include Turbopack compilation.

Migration Steps

  1. If you were using `unstable_instant`, ensure it is only used within Server Components.
  2. If you rely on Turbopack compilation during your standard build, change your script from `pnpm build` to `pnpm build-all`.

✨ New Features

  • Cached Navigations: Segments are now served instantly on repeat visits.
  • Turborepo has been updated to version 2.8.11.

🐛 Bug Fixes

  • Worker arguments are now sanitized for compatibility with worker_threads.
  • Fixed tracking of varyParams for optional catch-all parameters that have no assigned value.
  • Worker process is no longer started when only configuration validation is being performed for Typescript.
  • Fixed an issue where loading.js was not being recognized as a suspense boundary in Instant mode.
  • Resolved a crash in the CI process when next-swc could not be loaded while `NEXT_TEST_NATIVE_DIR` was set.
  • Server patch retry mechanism now correctly preserves the push/replace intent during suspended transitions.
  • Fixed a flaky test related to delaying re-prefetching after revalidation.

Affected Symbols