PackageTrack

npm · #3702

@next/eslint-plugin-next

16.3.3vercel/next.js

ESLint plugin for Next.js.

Release timeline

3137 releases since 2020
202120222023202420252026

Releases

  1. 16.4.0-canary.825 Aug 2026pre-release
    Release notes

    Misc Changes

    • Fix Turbopack resolution through chained symlinks: #97825
    • Add evals for whether agents actually use Next.js: #97816
    • evals: judge behavior instead of matching source text: #97826
    • Bump @vercel/agent-eval to 2.2.1: #97885
    • feat(turbopack): resolve /-rooted imports from the project directory: #97799
    • [ci] Use short-lived access tokens for preview-build uploads instead of static token: #97256
    • Turbopack: correctly trace through TypeScript __importStar: #97697
    • [turbopack] simplify ecmascript effect queue: #97771
    • Update default Create Next App favicon: #97634

    Credits

    Huge thanks to @marcoshernanz, @gaojude, @sokra, @eps1lon, @mischnic, and @aurorascharff for helping!

    Open source →
  2. 16.4.0-canary.725 Aug 2026pre-release
    Release notes

    Misc Changes

    • Fix ISR misses with backslashes in segments when deployed on Windows: #97876
    • [next/image]: disable avif image optimization: #97875
    • fix(wasm): don't enable SWC's plugin host for wasm targets: #97859
    • fix(turbopack-node): make process_pool inert on wasm: #97858
    • fix(turbopack): make the SWC wasm-plugin backend native-only: #97857
    • fix(turbopack-trace-utils): skip the ctrl-c handler on wasm: #97856
    • refactor(turbopack-cli-utils): replace crossterm with owo-colors: #97855
    • fix(turbo-tasks-fs): create symlinks through the WASI API on wasi: #97854
    • fix(turbo-tasks): compile EventListener::wait on wasm: #97853
    • fix(turbo-rcstr): allow the napi feature on wasm targets: #97852
    • fix(next-napi-bindings): detect the target, not the host, in build.rs: #97576
    • Stop printing a stack frame for error message text: #97829
    • docs: clarify revalidateTag profile expire semantics: #97836
    • docs: param access on use-server: #97865
    • docs: fix typos and correctness issues in App Router docs: #97823
    • Add deploy release test skill: #97563
    • [test] Deflake the page config test for a string config value: #97848
    • test: stabilize read-only page recreation: #97674
    • Show the errors of an AggregateError behind a cause: #97830
    • Upgrade React from eafeac09-20260819 to bd6ea412-20260824: #97812
    • fix: reuse a single drain listener when piping Node streams through gzip: #97698
    • test: preserve server cache after compile error: #97724

    Credits

    Huge thanks to @eps1lon, @sokra, @unstubbable, @icyJoseph, @timneutkens, @hamidrezahanafi, and @wbinnssmith for helping!

    Open source →
  3. 16.4.0-canary.624 Aug 2026pre-release
    Release notes

    Misc Changes

    • turbo-tasks: execute scheduled tasks inline when they are read: #96808
    • Revert "Record fallback cache lifetime for blocking PPR routes (#97821)": #97835
    • Sweep stale Turbopack output from distDir on dev startup: #97591
    • Fix metadata prefetch cache key for search params: #97729
    • Turbopack: Improve file existence error handling in realpath_with_links and in module resolution: #97717
    • Write traces with buffered synchronous IO: #96874

    Credits

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

    Open source →
  4. 16.4.0-canary.524 Aug 2026pre-release
    Release notes

    Misc Changes

    • Record fallback cache lifetime for blocking PPR routes: #97821
    • Document catchError for the Pages Router: #97748
    • clippy: allow needless late init where it makes sense: #96410
    • Turbopack: emit/collect: #96631
    • docs: note that response headers must be set before calling handle() in a custom server: #97693
    • Deduplicate the regress, wat/wasmparser and base64 dependencies: #97762
    • perf: split cold TurboMalloc accounting paths: #97767

    Credits

    Huge thanks to @acdlite, @devjiwonchoi, @wbinnssmith, @mischnic, @icyJoseph, @lukesandberg, and @sokra for helping!

    Open source →
  5. 16.4.0-canary.424 Aug 2026pre-release
    Release notes

    Misc Changes

    • Add next/cache-handlers types entrypoint: #97592
    • Remove unused return values from getPageStaticInfo: #97661
    • [turbopack] defer NFT module content hashes: #97773
    • test: deflake basePath external navigation: #97611
    • docs(adapters): document assetsHashes and routing.middlewareMatchers: #96536
    • Migrate remaining async blocks to async closures: #97701
    • Turn off the adapter route collapses by default: #97774
    • Serve a run of fallback shells from one route entry: #97738
    • [test] Capture the route table for apps with several param shapes: #97728
    • Stop emitting a separate route entry for a dynamic route's RSC form: #97726
    • Stop emitting a redundant route per prefetch segment: #97720
    • [test] Capture the dynamic routes a build passes to an adapter: #97719
    • turbo-tasks: compile conditional cell updates once, not per cell type: #97763
    • Turbopack: add unit test coverage for FileSystemPath::hash_file: #97743

    Credits

    Huge thanks to @marceloboeira, @mischnic, @sokra, @leejpsd, @unstubbable, and @lukesandberg for helping!

    Open source →
  6. 16.4.0-canary.323 Aug 2026pre-release
    Release notes

    Misc Changes

    • [devtools] Fix indicator dragging on touch screens: #97723

    Credits

    Huge thanks to @marcoshernanz for helping!

    Open source →
  7. 16.4.0-canary.222 Aug 2026pre-release
    Release notes

    Misc Changes

    • introduce an options struct for constructing backend storage: #97284

    Credits

    Huge thanks to @lukesandberg for helping!

    Open source →
  8. 16.4.0-canary.121 Aug 2026pre-release
    Release notes

    Misc Changes

    • docs: fix parallelRouteKey parameter name in useSelectedLayoutSegment(s): #97710
    • Turbopack: Avoid cloning paths in fs watcher if the path is already in a map: #97655
    • Remove generated error codes: #97687
    • [PPF] Instant validation for unstable_navigation(): #97309
    • Turbopack: trace graceful-fs calls: #97694
    • Migrate some async blocks to async closures: #97666
    • turbo-tasks: add scope_unbounded, a scoped execution primitive that allows more work to be discovered: #95974
    • test: make app-document-import-order more robust: #97682
    • Add a Turbopack error for missing root layouts: #97639
    • Improve Partial Prefetching adoption checks: #97637
    • test: stabilize poisoned proxy error overlay: #97609
    • docs: correct the upper stale bound for App Shell exclusion in cacheLife: #97653
    • docs: Adapters entry page lists its children pages twice: #97677
    • [PPF] unstable_prefetch(): #97622
    • [PPF] Scaffold unstable_prefetch(): #97618
    • docs: clarify beforeInteractive placement for root layouts: #97643
    • fix(turbopack): give eager import.meta.glob values the ESM namespace: #96559

    Credits

    Huge thanks to @marcoshernanz, @bgw, @devjiwonchoi, @lubieowoce, @mischnic, @lukesandberg, @DavidIlie, @aurorascharff, @sokra, and @icyJoseph for helping!

    Open source →
  9. 16.4.0-canary.021 Aug 2026pre-release
    Release notes

    Misc Changes

    • feat(turbopack): isolate HMR listeners across microfrontends: #95997
    • Turbopack: deduplicate Pages Router app chunks: #97664
    • [react-sync] Check assignability before assigning the actor: #97638
    • fix: preserve trailing slash during export MPA fallback: #97613
    • Turbopack: Split the read and write codepath data structures for symlinks: #97395
    • Turbopack: Show last modified file when waiting for the filesystem to settle: #97648

    Credits

    Huge thanks to @fireairforce, @mischnic, @eps1lon, @QingHeSite, and @bgw for helping!

    Open source →
  10. 16.3.325 Aug 2026
    Release notesOpen source →
  11. 16.3.221 Aug 2026
    Release notes

    Note

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

    Core Changes

    • [backport] Scope app-entry export validation to files inside the app directory (#97357)
    • [backport] Fix catch-all index page being served for every other slug (#97416)
    • [16.3] Turbopack: don't trace embedded WASM loader helpers (#97353) (#97463)
    • [16.3] Turbopack: retain conditions when replacing resolve request keys (#97453)
    • [16.3.x] Fix Turbopack worker chunk loading with asset prefix (#97419)
    • [16.3.x] Authenticate Turborepo remote caching with OIDC instead of a static PAT (#97603)

    Credits

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

    Open source →
  12. 16.3.113 Aug 2026
    Release notes

    What's Changed

    • [16.x] Turbopack: don't strip async-module runtime from shared runtime chunks by @lukesandberg in https://github.com/vercel/next.js/pull/96653
    • [16.x] [turbopack] Add turbopack_ecmascript and turbopack_wasm's embeded FS to internal_assets_conditions by @lukesandberg in https://github.com/vercel/next.js/pull/96655
    • [16.x] [turbopack] Collapse nested promises in the analyzer by @sampoder in https://github.com/vercel/next.js/pull/96675
    • [16.x] fix(next/image): preserve image response after optimization by @styfle in https://github.com/vercel/next.js/pull/96733
    • [16.3.x] Default deploy e2e tests to the repo next version by @eps1lon in https://github.com/vercel/next.js/pull/96900
    • [backport] Bump @swc/helpers by @mischnic in https://github.com/vercel/next.js/pull/96885
    • [backport] [turbopack] Raise registration calls in hoisted modules to the top by @lukesandberg in https://github.com/vercel/next.js/pull/97308
    • [backport] Fix missing styled-jsx styles in Pages Router SSR on adapter builds by @lukesandberg in https://github.com/vercel/next.js/pull/97302
    • [backport] [turbopack] Fix HMR for dynamic imports evaluated from layouts by @lukesandberg in https://github.com/vercel/next.js/pull/97317
    • [backport] Restore the live headers() view of the incoming request by @unstubbable in https://github.com/vercel/next.js/pull/97311
    • [backport] Allow literal exports in 'use cache' files by @unstubbable in https://github.com/vercel/next.js/pull/97312
    • [backport] Keep the dev validation worker alive across HMR updates by @unstubbable in https://github.com/vercel/next.js/pull/97315
    • [backport] Discard only cache entries that predate a tag revalidation, and reuse completed entries by @unstubbable in https://github.com/vercel/next.js/pull/97314
    • [backport] Encode the cache item name built by unstable_cache by @unstubbable in https://github.com/vercel/next.js/pull/97313
    • [16.3] [ci] Use OIDC tokens to read private preview builds by @eps1lon in https://github.com/vercel/next.js/pull/97258
    • [backport] [test] Compile the middleware redirect routes up front in dev by @lukesandberg in https://github.com/vercel/next.js/pull/97328
    • [backport] Fix Nav Inspector request loop on repeat captures by @acdlite in https://github.com/vercel/next.js/pull/97326
    • [backport] Fix: Optimistic routing bugs leading to repeated prefetch loops by @acdlite in https://github.com/vercel/next.js/pull/97325
    • [backport] Retain fewer stale cache versions and use a TTL, plus the mtime fallback by @lukesandberg in https://github.com/vercel/next.js/pull/97304
    • [backport] Revert i18n localization change for dynamic Pages API routes (#94905) by @gaojude in https://github.com/vercel/next.js/pull/97330

    Full Changelog: https://github.com/vercel/next.js/compare/v16.3.0...v16.3.1

    Open source →
  13. 16.3.1-canary.2620 Aug 2026pre-release
    Release notes

    Misc Changes

    • docs: document deploymentId build ID override and Pages Router skew in 16.2: #97645
    • Upgrade React from eb8feb71-20260814 to eafeac09-20260819: #97636
    • Turbopack: rename to use turbopack: no side effects: #94427
    • refactor: move useDynamic{Route,Search}Params to reduce snapshot churn: #97360
    • [PPF] unstable_navigation(): #96908
    • [PPF] Scaffold unstable_navigation(): #97236
    • docs: Explicit cache output description: #97548
    • Improve Cache Components sync IO migration guidance: #97572
    • [test] Use a non-native stub for the server externals list test: #97614
    • Avoid GitHub API rate limits for create-next-app examples: #97612
    • [test] Cover the prerender worker-thread backend with an addon we control: #97543
    • [test] Convert the prerender-native-module suite to local fixture packages: #97542
    • [test] Replace the turbopack-reports sqlite3 dependency with a local addon fixture: #97541
    • [test] Drop the dead sqlite3 build approval from the sharp-basic suite: #97540
    • [ci] Authenticate Turborepo remote caching with OIDC instead of a static PAT: #97590
    • Remove HmrTarget: #97253
    • Keep HMR instructions typed until serialization: #96569
    • Serialize frozen collections by value only: #96686

    Credits

    Huge thanks to @icyJoseph, @mischnic, @lubieowoce, @aurorascharff, @eps1lon, @sokra, and @wbinnssmith for helping!

    Open source →
  14. 16.3.1-canary.2519 Aug 2026pre-release
    Release notes

    Misc Changes

    • [PPF] Remove unstable_eager: #97524
    • [PPF] Do not mark complete shell requests as partial: #97503
    • fix: add accessible label to icon-only link: #96334
    • Fix stale cross-references in skills/: #97566
    • docs: generateMetadata values should be serializable with use cache: #97551
    • Move preview props into separate manifest: #96004
    • docs: adjust interactive app guide: #97558
    • Turbopack: allow TURBOPACK_PRINT_CHUNK_GROUPS in release builds: #97515
    • [test] Point next-image-legacy images at a reachable endpoint: #97545
    • test: improve error-on-next-codemod-comment flakiness: #97553
    • Turbopack: cross-module constants: #90300
    • test: better isolate concurrent-install suite: #97546
    • docs: outlining and lcp: #96942
    • Fix use cache prerender signal retention: #97476
    • Turbopack: More aggressively debounce filesystem watch events if we detected changes to node_modules: #96116
    • docs: document metadata pagination field: #95509

    Credits

    Huge thanks to @lubieowoce, @niketchandivade, @gaojude, @devjiwonchoi, @mischnic, @aurorascharff, @eps1lon, @icyJoseph, @gnoff, @bgw, and @biubiukam for helping!

    Open source →
  15. 16.3.1-canary.2418 Aug 2026pre-release
    Release notes

    Misc Changes

    • style(examples): remove redundant justify-content declaration: #97222
    • docs: rename Vercel Edge Config to Global Config in redirecting guide: #97456
    • fix: improve form accessibility by associating labels with inputs: #96335
    • [docs] fix: grammar typos in linking and navigating guide: #95544
    • fix(examples): correct error message typo: #97223
    • docs: fix typos in example links: #97149
    • Model prerenders as render candidates: #97431
    • Turbopack: support character class ranges in regex: #97502
    • docs: warn when catching permanentRedirect: #97496
    • Remove the development debug channel persistence: #97510
    • Stop the browser from restoring stale pages in development: #97505
    • Turbopack: gracefully handle outputFileTracingIncludes matching a symlink: #97507
    • docs: mention Valibot as validation library option in forms guides: #97468

    Credits

    Huge thanks to @niketchandivade, @molebox, @seanbeirnes, @0ldh, @gnoff, @mischnic, @DavidIlie, @unstubbable, and @fabian-hiller for helping!

    Open source →
  16. 16.3.1-canary.2318 Aug 2026pre-release
    Release notes

    Misc Changes

    • Trace lazy App Route module loading: #97439
    • [ci] Wait for the next version to be available on npm before deploy tests: #97460
    • docs: fix stale Dev Overlay README link in contributing guide: #97486
    • docs: app router reference accuracy: #97477
    • test: Don't wait trying to load non-existing images: #97488
    • test: cover dynamic APIs with i18n base path: #97367

    Credits

    Huge thanks to @DavidIlie, @eps1lon, @icyJoseph, and @mischnic for helping!

    Open source →
  17. 16.3.1-canary.2217 Aug 2026pre-release
    Release notes

    Misc Changes

    • fix(turbo-persistence): allow 32-bit usize conversion: #97288
    • test: restore missing NFT exports* unit fixtures: #97459
    • [ci] Fix backport canary release dispatch: #97383
    • turbo-tasks-backend: Enforce that tasks exist when accessing them: #96043
    • turbo-tasks-backend: add persistence delete/tombstone plumbing for GC: #95975
    • turbo-persistence: add key-value tombstones for MultiValue families: #96929

    Credits

    Huge thanks to @hardfist, @mischnic, @ztanner, and @lukesandberg for helping!

    Open source →
  18. 16.3.1-canary.2116 Aug 2026pre-release
    Release notes

    Misc Changes

    • Anchor the async local storage instances to global symbols: #97255
    • test: deflake use-cache-size-zero warm reload: #97421
    • Scaffolding for concurrentRouterQueue flag: #97413
    • Reorganize client router modules: #97402

    Credits

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

    Open source →
  19. 16.3.1-canary.2015 Aug 2026pre-release
    Release notes

    Misc Changes

    • Wait for back-before-hydration recoveries in the browser: #97321
    • Extract metadata resolution primitives: #97388
    • test: update React 18 redbox snapshot: #97415
    • Turbopack: retain conditions when replacing resolve request keys: #97372
    • Remove server route matcher stack: #94157

    Credits

    Huge thanks to @gaearon, @gnoff, @timneutkens, and @mischnic for helping!

    Open source →
  20. 16.3.1-canary.1914 Aug 2026pre-release
    Release notes

    Misc Changes

    • Adopt SelectedMetadata for metadata rendering: #97387
    • fix(next/image): reject empty image on read/write to disk cache : #97278
    • Turbopack: remove stale manifests for deleted routes: #97333
    • Turbopack: make unreachable codegen more generic: #97385

    Credits

    Huge thanks to @gnoff, @styfle, @marcoshernanz, and @mischnic for helping!

    Open source →
  21. 16.3.1-canary.1814 Aug 2026pre-release
    Release notes

    Misc Changes

    • Upgrade React from 22e4f993-20260811 to eb8feb71-20260814: #97382
    Open source →
  22. 16.3.1-canary.1714 Aug 2026pre-release
    Release notes

    Misc Changes

    • Turbopack: add imports_wildcard NFT unit test: #97373
    • Turbopack: improve chunk_item_content docs: #97370
    • Turbopack: don't trace embedded WASM loader helpers: #97353
    • test: Reenable i18n-api-support deploy test for Turbopack with adapters: #96898
    • Trace instrumentation startup: #97296
    • Trace route module preparation: #97295
    • Trace route module loading: #97318
    • fix(deps): bump satori and @vercel/og: #97276
    • Scope app-entry export validation to files inside the app directory: #97350
    • Emit whole-app server NFTs when output: 'standalone' is used with an adapter: #97287
    • [test] Cover 'use cache: private' in route handlers: #97349
    • Fix missing Pages runtime in adapter Pages API outputs: #96819
    • docs: align SPA guide reducer example with React conventions: #97341
    • Update blob version.: #97342

    Credits

    Huge thanks to @mischnic, @DavidIlie, @styfle, @unstubbable, @bryan-ferry, @timneutkens, @aurorascharff, and @gdborton for helping!

    Open source →
  23. 16.3.1-canary.1613 Aug 2026pre-release
    Release notes

    Misc Changes

    • Unify how a response's shell and full payloads are written: #96878
    • Convert per-segment prefetches to NavigationFlightResponse format: #96877
    • Unify how server responses are written into the client cache: #96876
    • Convert tree prefetches to NavigationFlightResponse format: #96788
    • Revert i18n localization change for dynamic Pages API routes (#94905): #97327
    • fix(next/image): skip 0-byte entries when initializing disk LRU cache: #94068
    • Update authentication diagram URL: #97320
    • Add a script for adopting fork pull requests: #97252
    • Migrate napi-rs bindings from v2 to v3: #95412
    • Upgrade React from 11eddecd-20260805 to 22e4f993-20260811: #97249
    • Add RDC compression rollout controls: #97247
    • [testmode] Fix infinite recursion in testmode passthrough fetch: #96525

    Credits

    Huge thanks to @acdlite, @gaojude, @hammadxcm, @marcoshernanz, @eps1lon, @jimmyhmiller, @gnoff, and @lazerg for helping!

    Open source →
  24. 16.3.1-canary.1512 Aug 2026pre-release
    Release notes

    Misc Changes

    • test: fix 'ouput' typo in parseIdsFromCliOutput: #97266
    • Add the mtime fallback back: #97268
    • Allow issue participants to request reopening: #96947
    • [turbopack] Document clusters for chunking: #97267
    • Link to issues in the contribution guide and discourage trivial PRs: #97188
    • Stop serializing hmr version state: #97146
    • [turbopack] Add clusters to chunking heuristics: #95157
    • [test] Redirect the deployment host in-process for proxy deploy tests: #97260
    • [test] Unflake two cache-components-dev-streaming assertions: #97246
    • [test] Unflake use-cache-default-profile-expire-zero tests: #97250
    • [turbopack] Fix HMR for dynamic imports evaluated from layouts: #97213
    • [ci] Use OIDC tokens to read private preview builds: #96919
    • Allow running ncc before pnpm build: #97234
    • Invalidate deferred Webpack entry sources: #97205

    Credits

    Huge thanks to @syedsohailhussain1, @lukesandberg, @marcoshernanz, @sampoder, @unstubbable, @eps1lon, and @gnoff for helping!

    Open source →
  25. 16.3.1-canary.1412 Aug 2026pre-release
    Release notes

    Core Changes

    • Fix debug build paths Pages Router support entries: #93529

    Misc Changes

    • Restore the live headers() view of the incoming request: #97166
    • [test] Compile the middleware redirect routes up front in dev: #97190
    • Update gh-stack skill guidance: #97163
    • [test] Unflake use-cache-custom-handler-dev tests: #97187
    • Forward a build-container pin to deploy-test deployments: #97191
    • Fix unset crossOrigin in Turbopack manifests: #97164
    • Allow literal exports in 'use cache' files: #97181
    • Fix shared Turbopack runtime initialization race: #97215
    • Fix stale data after navigation despite revalidation: #95439
    • [turbopack] Only use the shared runtime by default on canary: #97208

    Credits

    Huge thanks to @unstubbable, @timneutkens, @Stanzilla, @gnoff, @gaearon, and @sampoder for helping!

    Open source →
  26. 16.3.1-canary.1311 Aug 2026pre-release
    Release notes

    Misc Changes

    • Decouple loader tree construction from children ordering: #97192
    • [turbopack] Retain fewer stale cache versions and use a TTL: #96941
    • Bump lightningcss: #97159

    Credits

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

    Open source →
  27. 16.3.1-canary.1211 Aug 2026pre-release
    Release notes

    Misc Changes

    • [turbopack] Bail CJS tree-shaking on var x = module.exports = {}: #97130
    • docs: server client and directives: #96145
    • docs: clarify client cache freshness after hydration: #97180
    • Fix: Optimistic routing bugs leading to repeated prefetch loops: #97128
    • docs: create client-side fetching guide: #96341
    • Turbopack: accept a module type argument for import.meta.glob: #96991
    • docs: align Cache Components authentication guide title: #97143
    • test: re-enable a few more passing NFT unit cases: #97017
    • [turbopack] Do the CJS analysis needed for scope hoisting: #95826
    • Remove legacy PPR code paths: #96868
    • Use Cache Components as the internal PPR signal: #96827
    • Make legacy PPR paths explicit: #96753
    • fix: typos in code comments: #97137
    • Fix spelling in two comments: #97136

    Credits

    Huge thanks to @sampoder, @icyJoseph, @aurorascharff, @acdlite, @kelvinampofo, @mischnic, @ztanner, and @marcoshernanz for helping!

    Open source →
  28. 16.3.1-canary.1110 Aug 2026pre-release
    Release notes

    Core Changes

    • fix(scripts): correct typo in rm.mjs error message: #87015
    • docs: improve clarity and punctuation in README: #86096

    Misc Changes

    • Encode the cache item name built by unstable_cache: #96937
    • [refactor] Rename encodeCacheTag to encodeHeaderSafe: #96936
    • Fix formatting of Google Fonts section in documentation: #88447
    • Fixing a bug - typo issue fixed: #97141
    • examples: fix Webiny API env variable name: #97134
    • docs: fix Link prefetch grammar and Client Components wording: #97132
    • Use emitted app entries for post-build processing: #97139
    • docs(mdx): fix package name in .md handling section: #97131
    • [turbopack] Reduce native React Compiler work: #96820
    • Keep the dev validation worker alive across HMR updates: #96988
    • docs: rename repo to repository for consistency: #87849
    • Fix Nav Inspector request loop on repeat captures: #97050
    • Fix typo in Data Access Layer section: #87202
    • docs: runtime prefetching -> optimizing prefetching: #96934
    • [CC] Track APIs that cause incompatible static/app shells: #97040
    • Fix client component loading span timing: #96455
    • Trace development route compilation: #96454
    • Prefix 'use cache' debug logs with the full directive: #97037
    • Revert "[turbopack] Enable CJS tree shaking by default (#96779)": #97018
    • Revert "[turbopack] Follow re-exports for side-effect free async modules": #97009
    • [fragment-scroll] Rename ScrollAndMaybeFocusHandler to ScrollHandler: #96828
    • Trace development route preparation: #96453
    • test: cleanup Turbopack snapshot config: #97013
    • Remove unused htmlLimitedBots from renderOpts: #96701
    • fix(turbopack): point at the glob that matched a file with no module type: #96561

    Credits

    Huge thanks to @unstubbable, @koenpunt, @marcoshernanz, @gnoff, @mayur9210, @Jashnavi25, @jarrensj, @acdlite, @akselipalmer, @icyJoseph, @lubieowoce, @DavidIlie, @eps1lon, @mischnic, and @sokra for helping!

    Open source →
  29. 16.3.1-canary.1010 Aug 2026pre-release
    Release notes

    Misc Changes

    • [turbopack] Treat constants with values referencing other values as unsafe: #96190

    Credits

    Huge thanks to @sampoder for helping!

    Open source →
  30. 16.3.1-canary.98 Aug 2026pre-release
    Release notes

    Misc Changes

    • [turbopack] Fix a potential deadlock in scope_and_block: #95695
    • Remove the turbopack-build-events trace span, use next build instead: #96746
    • docs: add export const dynamic = 'force-static' to Route Handlers example on Static Exports: #96964
    • [turbopack] Follow re-exports for side-effect free async modules: #95993

    Credits

    Huge thanks to @lukesandberg, @m-kawafuji, and @sampoder for helping!

    Open source →
  31. 16.3.1-canary.87 Aug 2026pre-release
    Release notes

    Misc Changes

    • Flush pending revalidations for forwarded action error responses: #96945
    • Handle Server Actions on dynamic PPR fallback routes: #96932
    • Turbopack: Improve how DiskWatcher is configured and fix polling watcher bugs: #96440
    • Turbopack: Allow DiskWatcher to use a mocked DiskFileSystem, add a small unit test: #96353
    • [turbopack] Add e2e test that uses component chunks + workers: #96556
    • [turbopack] Support experimental.serverMinification & expand experimental.turbopackMinify: #96578
    • Add a turbopackChunking documentation page for pages router: #96698
    • [turbopack] Don't run Webpack tests on Turbopack-only changes: #96656
    • [turbopack] Enable the shared runtime by default: #96778
    • [turbopack] Enable CJS tree shaking by default: #96779
    • [ci] Default deploy e2e tests to the repo next version: #96895
    • refactor: clean up places that needlessly list all RenderStages: #96907
    • Fix the documented invocation for generating tests non-interactively: #96896
    • Make NextConfigComplete typing more accurate: #96700
    • Upgrade to swc 75: #96702
    • docs: link View Transitions skill on skills.sh and clarify the example prompt: #96863
    • [ci] Reset the turbopack deploy test project in the weekly cron: #96822
    • docs: add authentication with Cache Components guide and iron-session example: #95802

    Credits

    Huge thanks to @ztanner, @bgw, @sampoder, @eps1lon, @lubieowoce, @unstubbable, @mischnic, @aurorascharff, and @icyJoseph for helping!

    Open source →
  32. 16.3.1-canary.77 Aug 2026pre-release
    Release notes

    Core Changes

    • Show compiler plugin warning in more situations: #75682

    Misc Changes

    • ci: stop publishing @vercel/devlow-bench: #96887
    • fix(turbopack): name the module in the non-ESM-placeable error, and stop duplicating the importer in traces: #96560
    • fix(turbopack): support type: 'text' in rules, and error on binding imports of non-ESM modules: #96558
    • Fix missing styled-jsx styles in Pages Router SSR on adapter builds: #96632
    • Lint devlow-bench with the root eslint config: #96871
    • Remove turbopack/packages and relocate devlow to packages/: #96860

    Credits

    Huge thanks to @mischnic, @wbinnssmith, @sokra, and @Janpot for helping!

    Open source →
  33. 16.3.1-canary.57 Aug 2026pre-release
    Release notes

    Misc Changes

    • Refactor server from CacheNodeSeedData -> TransportData: #96679
    • Unify full/partial navigation response types: #96439
    • Unify RouteTree and CacheNodeSeedData on the client: #96406
    • Consolidate Promise.withResolvers polyfills: #96772
    • [ci] Open automated update pull requests with nextjs-bot: #96683
    • Require Cache Components for Instant Navigation testing: #96745
    • Fix use cache over- and under-invalidation in dev: #96235
    • Fix which pages the dev server announces, and when: #96250
    • docs: update redirected links to current targets: #96723
    • Fix(deployment-id): prevent exception on old webkit: #94604
    • [fragment-scroll] Remove config.experimental.appNewScrollHandler: #95602
    • Bump @swc/helpers: #96720
    • [turbopack] Enable reexport-unknown execution test: #96774

    Credits

    Huge thanks to @acdlite, @wbinnssmith, @eps1lon, @ztanner, @gaearon, @molebox, @kyamaz99, @mischnic, and @sampoder for helping!

    Open source →
  34. 16.3.1-canary.46 Aug 2026pre-release
    Release notes

    Misc Changes

    • [Bench] Fixes for pure Fizz bench: #96771
    • Derive foreground cache revalidation from the consumer: #96731
    • [turbopack] Raise registration calls in hoisted modules to the top: #96697
    • Fix race when navigating Back before hydration: #96252
    • docs: present each Skill as steps in the AI agents guide: #96751
    • Reuse completed cache entries for the rest of a request: #96727
    • Discard only cache entries that predate a tag revalidation: #96726
    • Upgrade React from 7dfc7ccd-20260803 to 11eddecd-20260805: #96735
    • Remove WorkStore execution mode: #96674
    • Remove cache revalidation execution mode reads: #96670
    • Separate App Route render and prerender pipelines: #96662
    • Remove App Page execution mode reads: #96660
    • test: fix missing await in css-chunking test: #96725
    • fix(next/image): preserve image response after optimization: #96681
    • docs (Skills): stop assuming app/ at the root and port 3000: #96696
    • Implement next/font BeforeResolvePlugins as ImportMappingReplacement: #95808
    • Use Tailwind Turbopack loader in create-next-app: #96606
    • docs: instant navigation quick start with an adoption prompt: #96663
    • Separate App Page render and prerender pipelines: #96659
    • Move App Router execution intent to entrypoints: #96640
    • Pass explicit render capabilities through App Render: #96576
    • Pass explicit prefetch hint policy through App Render: #96572
    • Replace WorkStore isStaticGeneration with executionMode: #96570
    • docs: document ! exclusion and src/ prefix for --debug-build-paths: #96703
    • Change loadManifest to return undefined with handleMissing: #96530

    Credits

    Huge thanks to @gaearon, @ztanner, @sampoder, @aurorascharff, @unstubbable, @lubieowoce, @lukesandberg, @mischnic, @timneutkens, and @icyJoseph for helping!

    Open source →
  35. 16.3.1-canary.35 Aug 2026pre-release
    Release notes

    Misc Changes

    • Fix Turbopack worker chunk loading with asset prefix: #96636
    • [react-sync] Open pull requests as the bot that authors the commits: #96682

    Credits

    Huge thanks to @timneutkens and @eps1lon for helping!

    Open source →
  36. 16.3.1-canary.25 Aug 2026pre-release
    Release notes

    Misc Changes

    • [turbopack] Add test for sideEffects with optimizePackageImports: #96549
    • [turbopack] Strip leading BOM before parsing CSS: #96678
    • Upgrade React from cbb046ab-20260731 to 7dfc7ccd-20260803: #96550
    • docs: use relative doc links in instant-navigation error pages: #96672
    • Turbopack: terminate failed plugin worker threads: #96592
    • [turbopack] Collapse nested promises in the analyzer: #96601
    • Fix HTML-limited bot matching in prerender bypass rules: #96584
    • [ci] Fix create_release_branch for new repo permissions: #96641
    • test: skip action module instance deploy test: #96629
    • docs: quote the dynamicParams build error in a blockquote: #96633

    Credits

    Huge thanks to @sampoder, @lukesandberg, @vercel-release-bot, @icyJoseph, @marcoshernanz, @ztanner, and @mischnic for helping!

    Open source →
  37. 16.3.1-canary.14 Aug 2026pre-release
    Release notes

    Misc Changes

    • docs: correction to dynamicParams migration: #96624
    • docs: proxy event argument: #96435
    • docs: remove experimental note from runtime prefetching: #96615
    • Turbopack: don't strip async-module runtime from shared runtime chunks: #96599
    • [turbopack] Add turbopack_ecmascript and turbopack_wasm's embeded FS to internal_assets_conditions: #96600
    • Preserve per-segment prefetching after dynamic navigation: #96583
    • Rename static generation stream option to waitForAllReady: #96564
    • Remove obsolete static generation plumbing: #96563
    • [turbopack] Drop dead writes to exports: #96381
    • [turbopack] Ignore writes to exports after a module.exports = {} writes: #96380

    Credits

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

    Open source →
  38. 16.3.1-canary.03 Aug 2026pre-release
    Release notes

    Misc Changes

    • Fix catch-all index page being served for every other slug: #96553

    Credits

    Huge thanks to @acdlite for helping!

    Open source →
  39. 16.3.03 Aug 2026
    Release notes

    Core Changes

    • Update vendored lodash to 4.17.23 to fix CVE-2025-13465: #91558
    • Fix invalid HTML response for route-level RSC requests in deployment adapter: #91541
    • Normalize encoded dynamic placeholders in app routes: #91603
    • Fix(pages-router): restore Content-Length and ETag for /_next/data/ JSON responses: #90304
    • Update tokio from 1.43.0 to 1.47.3: #90945
    • [turbopack] Simplify snapshotting logic: #91178
    • Turbopack: enable server HMR for app route handlers: #91466
    • turbo-tasks-backend: batch find_and_schedule_dirty using for_each_task_meta: #91497
    • [turbopack] Use bail! instead of panic! for duplicate module ident error: #91636
    • Skip loadBindings() Lightning CSS check during next start: #91538
    • turbo-tasks-backend: batch schedule dirty tasks in aggregation_update: #91461
    • Turbopack: Add importModule() support to webpack loaders: #89630
    • turbo-persistence: fix mmap page alignment and improve error context in MetaFile::open_internal: #91640
    • turbopack-css: demote recoverable CSS parse warnings to Warning severity: #91524
    • feat(node-streams): add config flag, define-env, and env precedence test: #90427
    • Rename /_next/webpack-hmr to /_next/hmr: #91415
    • Add per-slot error attribution for instant validation using slot markers and config depth preference: #91610
    • Handle encoded params further: #91627
    • [turbopack] Respect {eval:true} in worker_threads constructors: #91666
    • Fix missing route in otel spans without base-server: #91665
    • [turbopack] Optimize compaction cpu usage: #91468
    • Fix layout segment optimization: move app-page imports to server-utility transition: #91701
    • Fix server actions in standalone mode with cacheComponents: #91711
    • turbo-persistence: remove Unmergeable mmap advice: #91713
    • turbopack: move "compact database" tracing span to backend layer: #91693
    • Turbopack: lazy require metadata and handle TLA: #91705
    • Fix adapter outputs for dynamic metadata routes: #91680
    • Turbopack: fix webpack loader runner layer: #91727
    • [turbopack] Remove incorrect debug_assert in try_read_task_cell: #91699
    • Add module count field to module graph tracing spans: #91697
    • turbopack-cli: add --persistent-caching flag for filesystem-backed cache: #91657
    • Turbopack: pull in updated vercel/nft tests: #91651
    • [turbopack] Improve regressed build speed on cross-compiled MUSL: #91477
    • [Segment Bundling] [Scaffolding] Ensure inlining hint correctness: #91320
    • [Segment Bundling] [Scaffolding] Track which segments can be omitted from prefetch: #91438
    • Avoid deprecated TS node10 moduleResolution defaults: #91847
    • [turbopack] Rebuild the docker build scripts: #91799
    • Fix TS6 baseUrl deprecation for extended tsconfig: #91855
    • Add next internal post-build CLI command for Turbopack database compaction: #91336
    • Turbopack: Define Effect as a trait instead of a closure: #89080
    • Turbopack: Implement TraceRawVcs and NonLocalValue correctly for Effects: #89133
    • turbo-tasks-backend: improve print_cache_item_size instrumentation: #91742
    • Turbopack: switch from base40 to base38 hash encoding (remove ~ and . from charset): #91832
    • Use charCodeAt for normalizePathTrailingSlash: #91380
    • Turbopack: Only patch lockfile when bindings fails to load: #91379
    • [create-next-app] Skip interactive prompts when CLI flags are provided: #91840
    • [devtools] Make instant navs panel draggable: #91914
    • [Segment Bundling] Bundle static prefetches based on size: #91439
    • turbo-tasks-backend: assert non-transient task_ids in track_modification: #91924
    • fix(turbopack): preserve resolveExtensions priority in read_matches fast path: #91856
    • turbopack: Remove Vc::resolve(), migrate all callsites to Vc::to_resolved(): #91725
    • turbo-tasks: add hashed cell mode for hash-based change detection without cell data: #91576
    • [cna] Upgrade to Biome 2.4 with Tailwind support: #86065
    • [devtools] Show AggregateError.errors in the error overlay: #91835
    • Narrow the opengraph-image function return type: #91893
    • [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
    • Use RcStr directly in napi(object) structs instead of converting to String: #92014
    • Rename SingleModuleReference::asset to SingleModuleReference::module: #92028
    • Revert "turbo-tasks: add hashed cell mode for hash-based change detection without cell data": #92103
    • [ftl] Include cause of route types: #92056
    • 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
    • TURBOPACK: support parse windows absolute path with single slash: #92076
    • Enable varyParams tracking for Cached Navigations: #92113
    • telemetry: set turboFlag correctly: #92149
    • Instant Validation: Allow unconfigured slots to render optionally: #92126
    • Turbopack: statically evaluate path.sep: #92150
    • Turbopack: use same hash for immutable-static-hashes.json: #92157
    • [turbopack] replace regex with indexof: #92023
    • Turbopack: createRequire(new URL("...", import.meta.url)): #92153
    • Add PPR evals and fix env loading for agent-eval 0.9.5: #92063
    • Turbopack: support targeting even older browsers: #91563
    • 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
    • simplify session dependent tasks and add TTL support: #91729
    • disable bmi2 in qfilter: #92177
    • Improve revalidateTag JSDoc to include guidance about required second parameter: #92176
    • fix: pin 19 actions to commit SHA, extract 7 expressions to env vars: #92016
    • partial fallbacks: adapter support for intermediate shells: #91902
    • Turbopack: trace fs.readdir calls: #92148
    • feat: add NEXT_HASH_SALT env var for content-hash filename salting: #91871
    • Fix DashMap read-write self-deadlock in task_cache causing hangs: #92210
    • [turbopack] use a single query parameter for cache busting: #92214
    • Generate a CLI warning if using Rosetta 2 on Apple Silicon: #92220
    • remove the loop from StaticSortedFile::lookup: #91688
    • 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
    • turbo-tasks-backend: stability fixes for task cancellation and error handling: #92254
    • Add MCP get_compilation_issues tool and NAPI method: #92062
    • Add view transitions eval (agent-043): #92260
    • [turbopack] optimize RcStr parsing: #91773
    • Ensure app-page reports stale ISR revalidation errors via onRequestError: #92282
    • Move streamToUint8Array back to node-web-streams-helper.ts: #92263
    • Revert "simplify session dependent tasks and add TTL support (#91729)": #92320
    • fix: add @deprecated annotation to experimental.useCache: #92316
    • Improve existing dev server error message to suggest using it: #92317
    • Restart the next dev server if .next is deleted: #92135
    • Update Rust toolchain to nightly-2026-04-02: #92288
    • Turbopack: Remove FileSystemPath::value_to_string in favor of ValueToStringRef::to_string_ref: #92284
    • [turbopack] use zero copy qfilter deserialization: #90574
    • feat: add experimental.swcEnvOptions for SWC preset-env configuration: #92272
    • Turbopack: Dedupe our two filesystempath extension/extension_ref functions: #92048
    • turbo-tasks: replace async resolve fns with custom Future types (ResolveRawVcFuture, ResolveVcFuture, ToResolvedVcFuture): #91554
    • next-core: deduplicate output assets and detect content conflicts on emit: #92292
    • Handle edge runtime in places that import node:stream: #92354
    • Fix fallback route params case in app-page handler: #91737
    • use sorted inserts to improve builder performance: #91553
    • Allow for parsing app route strings with and without slot names.: #92327
    • fix(server-hmr): metadata routes overwrite page runtime HMR handler: #92273
    • turbo-persistence: optimize file syncing: #90542
    • Turbopack: Remove turbo_tasks::apply_effects, use Effects::apply instead: #91858
    • Turbopack: Add a check for node version before allowing workerThreads: #91614
    • turbo-persistence: skip BlockCache for uncompressed (mmap-backed) blocks: #92390
    • Include more context in macOS Rosetta 2 warning message: #92436
    • change the process name of builds: #92411
    • turbo-persistence: pin referenced BlockCache entries to prevent eviction: #92361
    • 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
    • Fix sst inspect tool to respect CURRENT and stale sst files: #92414
    • Optimize how we track data for persistence: #89370
    • [turbopack] add family name to many spans: #92415
    • Route Handlers: Fix devRequestTimingInternalsEnd and Turbopack server HMR: #92271
    • next-routing: middleware matching and app request URL normalization: #91859
    • turbo-persistence: Use AtomicBool for is_empty() to avoid lock contention: #92481
    • fix: mention params and searchParams in blocking-route error messages: #92360
    • CPU prof: Write profiles to .next-profiles instead of .next/cpu-profiles: #92078
    • Turbopack: Write trace file to .next-profiles: #92189
    • feat: generate root params types: #91019
    • fix: resolve function configs in unstable_getResponseFromNextConfig: #92501
    • Node.js streams: Fork points: #92252
    • Turbopack: Add --internal-trace cli flag: #92190
    • Fix minimumReleaseAgeExclude for React and friends: #92535
    • Add experimental unstable_io() API behind experimental.unstableIO flag: #92521
    • Update React from 74568e86-20260328 to 404b38c7-20260408: #92536
    • 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
    • turbo-tasks-backend: prevent duplicate task restores with restoring bits: #92389
    • Add next internal upload-trace: #92191
    • Request logging: Fix generate-params time being included in next.js time: #91386
    • fix: scope "Pages Router only" comment to default export in next/error: #92566
    • Turbopack Build: Remove dev fouc from production bundle: #80935
    • Turbopack: Improve unable to resolve next error: #91394
    • fix(hmr): reconnect WebSocket after sleep/wake: #91416
    • Handle target option in React Compiler for Pages + React 18: #91500
    • Replace wasmer with wasmtime for SWC plugin WASM engine: #91533
    • turbopack: fix incremental build when module factories are restored from persistent cache: #92569
    • [turbopack] Rust dependency caching via sccache: #91873
    • trace: detect rage restarts and deleted .next dirs: #92489
    • [turbopack] fix a debug_assert failure: #92581
    • Don't swallow strings thrown in Server Components: #92592
    • Fix NextFontIssue IssueStage: CodeGen → Resolve: #92588
    • Node.js streams: Add forkpoint for CacheComponents: #92444
    • Resolve compilerOptions.paths in tsconfigs without compilerOptions.baseUrl: #92277
    • Turbopack: extract inline base64 decode helper to shared @turbopack/base64 module: #92549
    • Add codemod command to middleware deprecation warning: #92532
    • turbopack: move CSS module composes validation from code generation to resolving: #92582
    • Drop turbo_tasks::function from ValueDebug trait items: #92593
    • [partial fallbacks]: enable by default: #92627
    • Turbopack: fix filesystem watcher config not applying follow_symlinks(false): #92631
    • Turbopack: cut number of client references in half: #92607
    • Remove a ton of turbo task functions from Issue trait items: #92623
    • feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution: #91338
    • feat(turbopack): change DiskFileSystem root to Vc<RcStr> for portable cache: #92603
    • Turbopack: remove unused ChunkableModules struct: #92606
    • Fix segment explorer file pill accessibility: #92608
    • Disable sccache temporarily: #92657
    • Delete some dead turbo task functions: #92596
    • Node.js streams: Add forkpoint for error recovery: #92457
    • turbo-tasks: Drop output_dependent on immutable task completion: #92683
    • Turbopack: properly remove unused TS enums with scope hoisting: #88205
    • 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
    • TURBOPACK: support crsossOriginLoading: #92070
    • Compiler: Support boolean and number primtives in next.config defines: #92731
    • Fix prefetch hints not being loaded during revalidation: #92625
    • Exclude trace files from directory deletion in builds: #92486
    • Switch segment prefetch cache miss response from 204 to 404: #92751
    • Ensure x-nextjs-data header is only set during resolve: #92752
    • feat(trace-server): add query CLI and MCP API to turbopack-trace-server: #92030
    • Improve error stacks for dynamic API usage in "use cache": #92736
    • Node.js streams: Add forkpoint for continueDynamicHTMLResume: #92471
    • Node.js streams: Add forkpoint for generateDynamicFlightRenderResult: #92474
    • Node.js streams: Add forkpoint for generateStagedDynamicFlightRenderResult: #92509
    • Add unstable_prefetch route segment config and decouple runtime prefetching from unstable_instant: #92754
    • feat(turbo-tasks-backend): gate prepare_tasks_with_callback trace span behind feature flag: #92779
    • Update next versions of internal apps: #92666
    • turbo-persistence: stop background persisting after unrecoverable failure: #92106
    • Stop using deprecated downlevelIteration: #92652
    • Disable build caches for production/staging/force-preview deploys: #92792
    • Fix turbo cache flag: use --force: #92796
    • Fix devlow-bench: tsconfig rootDir mismatch with package.json bin: #92800
    • 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
    • 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
    • Turbopack: remove webpack chunk detection: #92773
    • Turbopack: refactor ESM codegen generation: #92777
    • Fix monorepo @next/swc binary postinstall: #92813
    • webpack: fix swcPlugins with relative paths: #92770
    • Turbopack: shorter error for ChunkGroupInfo::get_index_of: #92814
    • Turbopack: properly set NODE_ENV for SWC plugins: #92579
    • 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
    • Turbopack: shorter error message for ModuleBatchesGraph::get_entry_index: #92828
    • Turbopack: refactor export analysis: #92781
    • fix(trace-server): default MCP port to --port + 1 to avoid conflicts: #92831
    • Revert "Node.js streams: Add forkpoint for prerenderToStream": #92845
    • Turbopack: remove StarImportAnalyzer: #92830
    • Turbopack: analyzer improvement followups: #92834
    • Turbopack: move assignment_scopes computation into ImportMap: #92835
    • Warn for non-deterministic "use cache" args during final prerender: #92820
    • Turbopack: Use lld again on ARM64 glibc Linux: #92860
    • turbopack: cache TransformPlugin in narrow-scoped turbo-tasks functions: #92842
    • Allow overriding outputHashSalt in modifyConfig: #92856
    • Support type cast expressions in page static info extractor: #92837
    • turbo-tasks: add info_span for blocking waits during task restore: #92878
    • 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
    • Turbopack: Use an async lock in the filesystem watcher: #92906
    • Replace deprecated moduleResolution: "node": #92654
    • turbo-tasks: Reduce allocations on cache hits: #92756
    • fix(next/image): ensure images.maximumResponseBody applies to local images too: #92920
    • 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
    • remove flag guarding unstable_io: #92923
    • 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
    • Improve "make root node" trace attributes: #92941
    • Use existing commitId for tarball URL in stats action: #92899
    • Use OIDC for CodSpeed: #93059
    • Restore dev-mode cache-fill timeout for 'use cache': #93055
    • Make 'use cache' fill timeout configurable: #93070
    • Strengthen _rsc cache-busting param: #92755
    • 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
    • fix(use-cache): remove awaiting revalidation: #92636
    • [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
    • Turbopack: unify ModuleGraph constructors: #93203
    • Turbopack: move get_inner_asset into ecmascript module: #93191
    • [turbopack] drop TransientState: #92853
    • 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
    • Recognize super(...) messages in Error subclass constructors: #93182
    • [turbopack-trace-server] Performance improvements for span event handling: #93179
    • Preserve __NEXT_ERROR_CODE across the /_error page handoff: #93183
    • Reduce allocations in the next_debug_instant_stack transform: #93222
    • Apply sourcemaps by default during prerender in next build: #93280
    • Turbopack: compute exports without full analysis: #92823
    • Turbopack: cheaper check in map_next_dynamic: #93283
    • Fix route handler SWR blocking on Node runtime: #93189
    • [turbo-tasks-backend] Single-item optimization for lost follower operations: #93200
    • Fix export * as X from './self' in scope-hoisted modules: #93192
    • Turbopack: only compute module ids for included modules: #93276
    • Forward invalid dynamic usage errors on client-side navigations: #93184
    • HMR: debounce status indicator transitions to prevent flicker during bursts of changes: #93229
    • 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: pull in updated vercel/nft tests: #93321
    • [turbopack-trace-server] optimize loading: #93264
    • turbo-tasks: precompute trait-impl vtables at compile time: #93092
    • 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
    • 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
    • Turbopack: delete unused turbo-static crate: #93324
    • fix a snapshot encoding error that could happen under concurrent mutation and snapshotting: #92658
    • 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
    • Update 05-server-and-client-components.mdx: #93374
    • Only log partytown setup error once: #93378
    • Remove leftover Turbopack manifests: #93398
    • trace-server: shrink_to_fit LazySortedVec after sorting: #93361
    • Revert "Revert "Node.js streams: Add forkpoint for prerenderToStream"": #93376
    • feat(metadata): support non-standard directives in robots.ts via other: #93206
    • [turbo-trace-server] optimize loading even more: #93332
    • Fix streaming in draft mode for cache components: #93417
    • Drop once_cell from all direct crate deps: #93095
    • Replace Lazy<FxHashMap> static lookups with phf::Map: #93096
    • Include deployment id in cacheHandlers keys: #93453
    • fix(next/image): Improve error message for private IP (SSRF) rejections: #91686
    • turbo-tasks-backend: fix snapshot coordination races + extract SnapshotCoordinator: #93416
    • 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
    • Turbopack: fix import_usage for functions behind member expressions: #93504
    • [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
    • Detect 'use cache' module-scope deadlocks early in dev: #93500
    • Turbopack: really fix MAX_INLINE_LEN: #93531
    • Bundle the 'use cache' deadlock probe worker: #93538
    • Support configuring a default instant validation level : #93301
    • Turbopack: simplify asset ident constructors: #93213
    • Disable instant validations in draft mode: #93472
    • 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
    • Order loader tree imports by tree depth: #93537
    • Turbopack: more strict vergen setup: #93541
    • [devtools] Force ANSI colors on overlay code frames regardless of TTY: #93550
    • turbo-rcstr: replace rcstr! macro_rules with proc macro: #93551
    • Turbopack: Fix middleware matcher suffix: #93590
    • Turbopack: Match proxy matchers with webpack implementation: #93594
    • Track searchParams access through a Proxy to catch missing-key reads: #93549
    • Turbopack: Change DynEffect::dyn_value to DynEffect::value_hash, a simple u128: #93552
    • Cherry-pick ghsa commits to canary: #93614
    • Hold cacheSignal across unstable_cache foreground revalidation: #93617
    • Encode non-ASCII characters in cache tags at construction: #93601
    • Stabilize unstable_io: #93621
    • Use Next.js version as Turbopack persistent cache versioning key: #93605
    • Trace-server: Fix bottom up, and reduce allocations in turbopack-trace-server bottom-up grouping: #93460
    • feat(turbopack): add chunkLoadingGlobal config option: #93488
    • turbopack: reschedule stale tasks with correct invalidation priority: #92897
    • 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
    • Remove ineffective turbo-tasks: #91341
    • 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
    • Proof of concept: task eviction after snapshot for turbo-tasks-backend: #91790
    • [turbopack] fix feature usage telemetry: #93100
    • Turbopack: don't generate next-server.js.nft.json with adapters: #93684
    • Add an info panel for the existing "Cache disabled" indicator: #93756
    • 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
    • Turbopack: fix lock-order inversion between Storage::map and Storage::snapshots: #93788
    • [turbopack] Enforce root attribute for strongly consistent reads and collectibles: #93114
    • Add next internal static-routes-info CLI command: #93399
    • Craigandrews/ensure isr lru is written if requests collapsed: #93766
    • Fix Turbopack worker_threads URL resolution: #93432
    • Patch playwright-core to resolve _finishedPromise on requestFailed: #93802
    • Fix catch-all router.query corruption with basePath + rewrites: #93294
    • 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
    • Surface invalid dynamic usage errors via Flight in dev: #93706
    • Show inner "use cache" as cause of nested-dynamic cache error: #93707
    • fetch: respect HTTP Cache-Control headers with TTL-based invalidation (#91729): #93228
    • [CC] fix: cachedNavigations missing asyncApiPromises in resumes: #93827
    • Fix server action forwarding loop with middleware rewrites: #93792
    • Instant Insights: When unable to complete validation provide a filename for the unvalidated boundary: #93770
    • Fix Date.now() cause shadowing in sync IO error overlay: #93857
    • 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
    • Trace middleware/proxy source files in webpack NFT pipeline: #93871
    • Redesign dev overlay: cleaner shell + instant fix-card guidance: #93755
    • turbo-tasks: prioritize recomputed tasks with Recomputation priority: #93876
    • [Turbopack] Add graph-based CSS chunking algorithm behind experimental.cssChunking: "graph": #93606
    • turbopack: emit assets before duplicate check in emit_assets: #93875
    • 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
    • Use node streams for server inserted HTML: #93934
    • Add nextConfig.instrumentationClientInject: #93785
    • 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
    • Add MCP compile_route tool: #93337
    • [turbopack-trace-server] Add memory samples to the mcp tool results: #93338
    • Stop pinning compiled chunk source on EcmascriptBuildNodeChunkVersion. : #93807
    • [turbopack] Add trace metadata about the persist size: #93339
    • Turbopack: fix subpath imports pointing to external packages: #93308
    • Turbopack: fix error reporting with crashing webpack loaders: #93926
    • 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
    • Turbopack: respect the module-sync export condition: #93970
    • devlow-bench: percentile-based comparison and run retries: #93950
    • Prerender HTTP access fallbacks with Cache Components semantics: #93988
    • Add experimental.appShells feature flag: #93997
    • Make --debug-build-paths work with src/ directory projects: #94016
    • 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
    • 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
    • Revert "Include PPR routes in dynamicRoutes regardless of revalidate time": #94032
    • Prerender static metadata under dynamic segments to canonical pathname: #93873
    • Instant navs devtools revamp: #94027
    • Add Chromium-only Playwright image publisher: #94051
    • Replace next-ppr-optimizer with next-cache-components-optimizer: #94035
    • Fix errors.json merge driver to handle gaps in error codes: #93829
    • Turbopack: make available_modules an OperationVc and simplify merged module bookkeeping: #94055
    • Improve notFound recovery in error pathway: #94037
    • Turbopack: Fix unsound IntoIterator for ReadRef<T>: #94122
    • Fix Firefox refresh loop on initial load of streaming pages in dev mode: #94128
    • Prefetch App Shells on the client: #93999
    • ServerActionsGraph: pass ModuleGraphLayer as OperationVc: #94141
    • Bugfix: Incorrect search params stored in cache: #94144
    • Remove extra word: #94160
    • Fix default regex for require.context in Turbopack analyzer: #94162
    • Fix short circuit evaluation of AND / OR in the Turbopack analyzer for string & nullish-related methods: #94159
    • Turbopack: fix instrumentationClientInject with type:module: #94184
    • Align issue triage guidance with automated behavior: #94189
    • [CC] Streaming prerender: #94044
    • [CC] Avoid unnecessary conversions to a stream: #94192
    • Propagate adapter preferred regions: #94123
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • Avoid bundling HMR refresh reducer in production: #94305
    • Remove the instantNavigationDevToolsToggle flag: #94322
    • 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
    • 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
    • Turbopack: fix pages index normalization for --debug-build-paths: #94341
    • Deprecate undocumented custom server methods: #94348
    • Trace cacheHandler and cacheHandlers when using adapters: #94197
    • fix: build hangs if sync IO aborts before root chunk is flushed: #94365
    • DiskFileSystem: store Effect full_path as Arc<Path>: #94332
    • [CC] add shell stages: #94438
    • [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
    • make TaskInput::is_resolved inlinable everywhere: #94213
    • [App Shells] staged shell rendering in cached navs: #94441
    • [App Shells] staged shell rendering during build: #94442
    • Keep the dev React debug channel on Node streams end to end: #94433
    • 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
    • Allow unstable_retry from TS plugin check in Next.js Error APIs: #94460
    • [turbopack] Treat local const assignments as side-effect free: #94294
    • [turbopack] Remove worker helpers from the default runtime: #94372
    • Extract App Shell from static prefetches: #94095
    • Turbopack: refactor ServerActionManifestAsset to be lazy: #94377
    • Update vendored lodash to 4.18.1: #94473
    • Turbopack: Perform issue filtering without turbo-task functions: #93885
    • Keep Instant DevTools locked when opening error overlay: #94357
    • fix(deps): bump @vercel/[email protected]: #93979
    • Simplify turbo-tasks-backend: collapse single-impl traits and remove redundant Arc layers: #93983
    • Turbopack: refactor to use get_ecma_transform_rule: #94485
    • Turbopack: fixup cache handler tracing: #94477
    • [turbopack] Remove turbotask functions from trait ResolveOrigin: #94324
    • Turbopack: remove EcmascriptParsable::parse_original: #94465
    • Turbopack: Add an experimental option for eviction: #94439
    • Specialize client hook prerender abort reasons: #94494
    • enable eviction on canary: #94451
    • Remove turbopackMemoryLimit it is dead: #94483
    • [turbopack] Enable Effects to be evicted: #94173
    • [turbopack] standardize chunk entry names for webpack and postcss loaders: #94256
    • Add global config to enable Partial Prefetching: #94448
    • Fix: Subtree hints not propagating correctly: #94489
    • Partial Prefetching: Default to App Shell only: #94510
    • Turbopack: refactor into get_next_client_transforms_rules: #94487
    • [cna] Use allowBuilds instead of ignoredBuiltDependencies when using PNPM 11+: #94544
    • Turbopack: content hash polyfill sourcemap file: #94548
    • Remove experimental.useNodeStreams flag as it's enabled: #93938
    • Remove dead cacheComponents web streams path: #93944
    • fix(dev-overlay): Tidy up issues/insight menu and tab overlay: #94549
    • [turbopack] Remove WebAssembly helpers from the default runtime: #94373
    • enable eviction by default: #94452
    • Rename prefetch option force-runtime to allow-runtime: #94568
    • [turbopack] Use an arena for JSValues: #94297
    • Stabilize export const prefetch: #94571
    • Fix node:stream leak in webpack edge bundles: #94585
    • Stream Cache Components dev render instead of restarting on cache miss: #94457
    • Fix Navigation Inspector Continue Rendering with loading.tsx: #94355
    • [turbopack] add an extension to trace files: #94587
    • Make router-act ignore App Shell prefetch requests: #94580
    • Enable experimental.appShells by default with cacheComponents: #94516
    • [turbopack] Lazily allocate the BlockCaches: #94562
    • Stabilize catchError and retry by removing unstable_ prefix: #94610
    • Revert "Stabilize catchError and retry by removing unstable_ prefix": #94617
    • Stabilize unstable_instant: #94578
    • Reapply "Stabilize catchError and retry by removing unstable_ prefix": #94623
    • [turbopack] Enable turbopackFileSystemCacheForBuild by default in non-stable releases: #94616
    • Add a cold cache dev indicator: #94611
    • instant: build fix-card Copy AI prompt dynamically from title + link: #94637
    • Stage short-lived 'use cache' entries correctly in dev: #94645
    • Call register_assignment_scope() in visit_export_default_expr() and visit_export_default_decl(): #94581
    • fix: handle shell errors when resuming Node streams: #94668
    • [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
    • 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
    • [codemod] Write pnpm overrides to pnpm-workspace.yaml on pnpm v11+: #94690
    • [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
    • Allow root params in App Shell (client)
    • fix: this in edge sandbox setTimeout/setInterval: #94754
    • Avoid a premature Suspense fallback flash in the streaming dev render: #94783
    • Format submillisecond durations as milliseconds: #94813
    • 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
    • Turbopack: add experimental React compiler support: #94573
    • pass --locked to cargo binstall: #94834
    • [turbopack] Allocate Effects in an arena: #94614
    • [turbo-tasks] Shrink RawVc to 8 bytes and CellId to 4 bytes: #94792
    • dev-overlay: polish error header layout and instant fix-card chip: #94790
    • Make cacheMaxMemorySize: 0 and custom cache handlers fast in dev: #94784
    • 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
    • trace-server: render read progress in place on a terminal: #94879
    • Turbopack: Add an OrdResolvedVc wrapper type: #94875
    • Turbopack: don't run NFT for output:export or Edge: #94862
    • react-compiler: don't emit diagnostics as issues: #94874
    • Turbopack: fix tracing of [email protected]: #94845
    • Support vary params rewinding: #94809
    • [App Shells] Allow root params in app shells: #94738
    • Rename experimental.useExperimentalReact to blockingSSR: #94869
    • Fix non-RSC router prefetch handling: #94553
    • Log partialPrefetching during startup: #94822
    • Avoid re-logging server-originated errors forwarded from the browser: #94917
    • Scope the Cold cache indicator in dev to shell cache misses: #94911
    • fix(dev-overlay): correct open-in-editor path when using a src directory: #94775
    • Fix repoRoot for adapters: #94478
    • Fix dev overlay hydration error ordering: #94555
    • [turbopack] Retry chunk loading on failure: #94918
    • [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
    • Remove embedded Claude Code plugin marketplace: #94877
    • [otel] Correctly set error code attributes for App API routes: #94979
    • Statically prerender metadata image routes under Cache Components: #94957
    • codemod: cache-components-instant-false + next-cache-components-adoption skill: #94941
    • Remove legacy PPR codepaths: #94955
    • 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
    • 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
    • Serve ISR fallback shells in response to prefetch requests: #94534
    • Insights: drop irrelevant fix cards from instant errors: #94926
    • Navigation inspector UI updates: #94959
    • 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
    • Release the instant navs lock without clearing the whole cookie jar: #94947
    • Compute dev fallback params from the most-specific prerendered route: #95066
    • Consider merging chunks when overlap == 1: #95102
    • [turbopack] Add support for single-entry chunks: #94727
    • Turbopack: add TURBOPACK_DEBUG_CSS_CHUNKING env var: #95080
    • Keep the resolved cache life for cacheMaxMemorySize: 0 caches in dev: #95100
    • Avoid mutating req.headers when stripping internal headers: #95116
    • Revert "Remove legacy PPR codepaths": #95113
    • dev-overlay: wire Link prefetch={true} Partial Prefetching warning into Insights: #94798
    • Add missing switch case: #95127
    • Revert "Add missing switch case": #95129
    • Fix Navigation Inspector styles in dark mode: #95126
    • Fix local fonts in statically prerendered ImageResponse metadata route: #95121
    • Surface an error for blocking routes under the Navigation Inspector: #95139
    • Suppress prefetch={true} warning when route opts out via instant = false: #95099
    • [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
    • [PP] Reveal after ShellRuntime when simulating a Shell Prefetch in dev: #95149
    • Replicate production prefetch shells for instant navigations in dev: #95067
    • [next-dev-loop] Fix some papercuts: #95153
    • Gate the dev Cold cache badge behind an experimental flag: #95169
    • [next-dev-loop] Fix cookies: #95177
    • Revert "[turbopack] Use final_read_hint in top level turbo tasks (#94712)": #95178
    • [dev overlay]: restructure Copy-as-prompt body into a step-by-step checklist: #95186
    • Hard-navigate to app routes shadowed by a pages dynamic route: #95185
    • next-dev-loop: require agent-browser >= 0.31.1: #95209
    • fix: preserve middleware rewrite query in Pages API routes: #94905
    • Don't track modifications to transient data stored in tasks: #95133
    • Record size metrics to our compaction and persistence spans: #94977
    • [turbopack] Support undoable modifications for many field types on TaskStorage: #95180
    • Turbopack: make hash_xxh3_hash128 return u128: #95232
    • Improve typing of decodeReply: #95263
    • fix: preserve repeated search params in client page segment cache keys: #94863
    • fix(turbopack): dedupe filename/exportedName in server-reference-manifest worker entries: #95242
    • Avoid bundling client-nodemodules used by unstable_rethrow in client-browser modules: #95196
    • Turbopack: replace cssChunking graph moduleFactorCost with weightDistribution: #95088
    • Fix: Update the URL when a client navigation redirects to a rewritten route: #95207
    • Enhance ESLint rule no-location-assign-relative-destination: #93057
    • [turbopack] Add an experimental chunkingHeuristics to next.config.js: #95019
    • [turbopack] Thread chunkingHeuristics through to chunk groups: #95020
    • [turbopack] Set chunking_heuristics on each ChunkGroupInfo: #95021
    • [turbopack] Use experimental chunking heuristics: #95026
    • [turbopack] Discover service workers in the Turbopack analyzer: #94923
    • Turbopack: This bool could've been an enum: #95288
    • log config evaluation time: #94811
    • Log content-free diagnostics when a postponed state fails to parse: #95216
    • Turbopack: constant evaluate x in y: #95286
    • Surface empty generateStaticParams as a redbox with a real stack: #95269
    • Render a code frame for build errors thrown collecting page data: #95270
    • fix: params/searchParams in client page crashing dev instant validation: #95289
    • Turbopack: compute code hash per use cache function: #94234
    • Fix workers on thread to not crash with napi-rs: #95281
    • codemod: non-interactive upgrade for agents and CI: #95312
    • [PP] Validate Shell prefetches (except gSP): #95151
    • [PP] Instant validation - error for unguarded static params: #94595
    • codemod: bump eslint alongside eslint-config-next: #95314
    • Rename Copy as prompt to Copy prompt, convert FixOption to FixCard: #95309
    • Fix Navigation Inspector in Safari: #95329
    • Fix early OTel proxy tracers in Cache Components prerenders: #95317
    • Re-query deploy-test build logs until id markers appear: #95243
    • Rename DYNAMIC_EXPIRE and DYNAMIC_STALE to describe what they gate: #95361
    • fix(turbopack): allow #/ prefixed subpath import specifiers: #94461
    • Remove 'silence this warning' from instant validation fix output: #95187
    • Make instant() resilient to a leaked navigation-testing cookie: #95375
    • Await reused in-flight prefetch entries under Instant Navigation lock: #95301
    • Cache short-expire 'use cache' values across dev reloads: #95362
    • Fix metadata title dropped on soft navigation with Cache Components: #95315
    • Prefetch links nearest the top of the document first: #95393
    • fix: handle prototype-colliding segment names in segment explorer trie: #95403
    • Clear a resurrected instant cookie on unlock so a hard reload recovers: #95398
    • Recover from blocking routes under Instant Navigation lock when deployed: #95227
    • fix(config): correctly validate cacheHandlers names: #95358
    • Fix history push getting treated like replace when followed by refresh: #95392
    • Skip saving expire: 0 values in the default cache handler in prod: #95363
    • Fix false-positive nested-cache error for a short default profile: #95373
    • Fix navigation getting reverted when a Server Action is in flight: #95391
    • Ignore-list internal frames whose source maps chain to original sources: #95448
    • fix: work around SWC compress bug: #95457
    • Avoid unnecessary rendering for validation in dev: #95394
    • Add serverComponentsHmrCancellation experimental flag: #95462
    • Also rewrite requires in page templates with Webpack: #95446
    • Fix instrumentation hook awaiting for middleware with adapters: #95357
    • otel: Use correct parent span for Node.js middleware: #95306
    • [turbopack] Add E2E tests for service workers: #94924
    • trace-viewer: Support string span ids in nextjs trace backend: #95515
    • evals: fix false-negative regex checks with the agentic LLM judge: #95440
    • fix(dev-overlay): increase fix card grid row gap to clear floating Copy prompt button: #95526
    • [fragment-scroll] Enable new scroll handler by default: #95378
    • Abort superseded Server Components HMR requests on the client: #95463
    • turbo-persistence: skip directory fsync on Windows: #95497
    • Disable supportsImmutableAssets with config.output: #95521
    • Turbopack: add all keys to dynamic exports before sealing the object: #93334
    • Propagate maxDuration to edge adapter outputs: #95118
    • Run instrumentation for Node.js Middleware without Adapter: #95547
    • Fix/next info experimental analyze with graph css chunking: #95542
    • Cancel a superseded Server Components HMR refresh's server-side work: #95486
    • Turbopack: add more context to persistence file errors: #95318
    • [turbopack] Rename rscEndpoint to rscHmrEndpoint: #95538
    • [PP] Surface URL data during prefetching as an Instant insight with rule page: #95365
    • fix: log "Partial Prefetching enabled" during next build: #95593
    • [turbopack] Don't persist if there is little work to do: #95137
    • align dev and build output: #94916
    • [turbopack] Don't evict when there is little memory to save: #95213
    • Consistently gate navigation-testing-lock API on flag: #95582
    • Turbopack: enable import with {type: 'text'} by default: #95606
    • fix(create-next-app): pin both axes on Tailwind template logos to silence aspect-ratio warning: #95609
    • [turbopack] print Turbopack warnings after SSG: #95430
    • fix(create-next-app): render filenames in Geist Mono so the preloaded font is used: #95471
    • Normalize and validate expire and revalidate values to handle Infinity and surface mistakes early: #95493
    • Make the agent-rules block verifiable and self-upgrading: #95467
    • Convert agent-041's blocking-data check to the agentic LLM judge: #95630
    • Reduce the size of OperationVc from 8 bytes to 4: #95614
    • [turbopack] Output service workers to /_next/static/: #95554
    • [turbopack] Compile service workers registered from pages router pages: #95583
    • [turbopack] Simplify service worker e2e tests: #95672
    • Keep the request body a plain Readable after middleware so Readable.toWeb() doesn't hang: #95607
    • [PPF] Sync IO is only allowed in the dynamic stage: #95384
    • Fix support for custom-media-queries in LightningCSS: #95689
    • Turbopack tests: remove assertions that duplicate webpack results: #95688
    • request insights: record local framework spans (1/5): #93974
    • request insights: derive request history and fetch data (2/5): #93975
    • request insights: expose dev snapshots to tools and HMR (3/5): #93976
    • Fix duplicate static files in adapter: #95681
    • Fix Pages router 404 runtime rendering with Adapter: #95264
    • request insights: add agent diagnosis access (4/5): #93977
    • Fork navigation-testing-lock module: #95611
    • Turbopack: order CSS modules by chunk-group co-occurrence in linearize: #95579
    • Fix termination handling: #95692
    • [turbopack] Switch make_production_chunks to use floats: #95749
    • Improve the NFT error message and ignore comment handling: #95144
    • request insights: add DevTools request panel (5/5): #93978
    • [turbopack] Optimize the implementation of AutoMap/AutoSet : #95694
    • telemetry: add agentName to anonymous metadata: #95586
    • Respect NEXT_HASH_SALT for server side assetsHashes: #95738
    • Support metadata routes in --debug-build-paths: #95788
    • Only track pending imports for real promises: #95789
    • Fix cache warming and static params for metadata images with top-level await: #95790
    • Preserve init errors from async route modules: #95799
    • Fix Request Insights subscription initialization: #95794
    • Add more realistic bench fixtures: #95807
    • [Bench] Extend bench app to have realistic client chunk counts: #95814
    • Replay same-document traversals that happen before hydration: #95682
    • [turbopack] Tell agents not to mention next.config.js options: #95825
    • Exclude stale under 5 minutes from app shells: #95833
    • [turbopack] Generate component chunks for each merged group to increase cache hits: #95261
    • Turbopack: trace externals imported only by server actions: #95824
    • [turbopack] Create a shared asset with browser runtime code: #94586
    • [turbopack] Create a chunk_group_bootstrap_params() function: #94631
    • [turbopack] Add inline_chunk_group_bootstrap to BrowserChunkingContext and chunk_group_bootstrap_params to ChunkGroupResult: #94661
    • [turbopack] Add registerEntry() to handle inline bootstrapping: #94664
    • [turbopack] Add chunk_group_bootstrap_params and the chunk-loading global to the build manifest: #94663
    • [turbopack] Inline the chunk group bootstrap in Next.js to drop the per-route runtime: #94666
    • [turbopack] Only ship pages-router routes in the client chunk-group bootstrap manifest: #94671
    • Revert "Replay same-document traversals that happen before hydration": #95853
    • Fix Request Insights span collection: #95818
    • Unify appShells flag with Partial Prefetching: #95415
    • Fix repeated navigations while the Instant Navigation lock is held: #95864
    • fix(agent-rules): pad managed AGENTS.md block with blank lines: #95892
    • [turbopack] Don't SSR on pages only navigated to through a soft nav: #95539
    • [turbopack] Clean up server_chunking_context: #95908
    • Fix Rust doctest failures: #95909
    • [instant] Let dev-server requests bypass the fetch lock: #95761
    • Move immutable static assets config option out of experimental: #95351
    • Move outputHashSalt out of experimental: #95840
    • fix(cms-contentful): await draftMode() and use Promise<> params type: #95631
    • Turbopack: Simplify parent directory creation retry loop logic: #95835
    • [turbopack] Drop unused exports from a CJS module: #95716
    • [turbopack] Skip redundant top-level root updates: #95903
    • cna: use LayoutProps helper in TS layout templates: #95675
    • [turbopack] Rename turbopackTreeShaking to turbopackModuleFragments: #95978
    • Fix instant validation blocking navigations: #95939
    • Prevent unhandled rejections when a "use cache" cache handler errors: #95985
    • Insights: use a single Learn more link in console errors: #95967
    • Preserve basePath in redirect destinations: #95608
    • fix(next/image): improve performance of detectContentType() : #96006
    • Validate server reference IDs during manifest lookup: #96007
    • fix(incremental-cache): byte-exact fetch cache key for binary bodies: #96008
    • fix(fetch-cache): key fetch(Request, init) by the effective request: #96009
    • Ensure exotic rewrite param values are properly encoded: #96010
    • Set correct origin for internal redirects in custom server: #96011
    • Enforce serverActions.bodySizeLimit for Server Actions in Edge runtime: #96012
    • Improve performance of validating MPA form submissions: #96013
    • Fix Turbopack middleware matcher with i18n single locale: #96014
    • [turbopack] Tree-shake CJS exports that use the Object.defineProperty syntax: #95994
    • Turbopack: Use Arc<PathBuf> for keys in turbo-task-fs's per-path MutexMap: #95951
    • Revert "[turbopack] Don't SSR on pages only navigated to through a soft nav (#95539)": #96028
    • Turbopack: Fix missing canonicalization of paths and always use verbatim paths internally for Windows: #95668
    • Turbopack: Remove chunk group id from value of chunk groups map: #95142
    • Fix basePath fallback parameter parsing: #95966
    • Emit the static paths HMR update after updating the cache: #96019
    • Add a dedicated HMR message for static params changes: #96020
    • Fix stale dev 'use cache' for cookieless requests and route handlers: #96022
    • fix: cache miss in App Shell for cached pages with gSP: #95665
    • Turbopack: stop copying sourcesContent into every serialized source map: #95934
    • [turbopack] Fix deployment skew protection for component chunks: #96079
    • Gate partialFallback behavior behind partialPrefetching flag: #96074
    • [Cache Components] Exclude dynamic params from prerenders when no generateStaticParams values is provided: #95872
    • Turbopack: Use swc_core::ecma::utils::prop_name_eq for a couple of the next-custom-transforms: #96035
    • Turbopack: Use Arc<PathMap> and Box<Path> to make InvalidatorMap slightly more efficient: #95987
    • Turbopack: Split up turbo-tasks-fs/src/lib.rs into smaller modules: #96030
    • [Bench] Add client-trace attribution pass and document metrics to render-pipeline: #95828
    • Rewrite edge server source map sources in Rust, drop JS fallback: #95980
    • fix(next/font/google): bound Google Fonts fetch timeout on Turbopack: #95981
    • Restore partial fallback shell upgrade coverage: #96096
    • Remove inert experimental.viewTransition flag: #96098
    • Turbopack: Refactor watcher event handling and batching logic: #96087
    • Turbopack: Very minor improvements for watcher loop: #96103
    • [turbopack] Track re-exports in import_usage inside of compute_import_usage: #95989
    • [RSC HMR] Fix a flurry of refetches when a editing component imported from many routes: #96102
    • Return plain text 404 for non-document requests to unknown paths: #95930
    • [turbopack] Track usage of modules imported with require(): #95717
    • [turbopack] Drop dead require() calls: #95718
    • [turbopack] Import Webpack's tests for tree-shaking: #95811
    • [ts-plugin] Preserve TypeScript quick info metadata: #95863
    • Optimize app page entry analysis: #96058
    • Include additional prerender metadata about build-time routes: #96080
    • Keep VaryPath monomorphic by making isRootParam required: #96122
    • Make reifyRouteTree object literals match the canonical RouteTree key order: #96162
    • Keep optimistic-route param handling monomorphic: #96169
    • [sourcemaps] Use file: sourcemaps for Turbopack to improve dev performance: #95946
    • Avoid quadratic HMR queue shifts: #96137
    • Optimize implicit cache tag derivation: #96120
    • Forward dev invalid dynamic usage errors from the render, not validation: #96148
    • [refactor] Model dev validation render outputs as a discriminated union: #96149
    • Add the experimental.devValidationWorker config flag: #96150
    • [refactor] Prepare dev validation for running on a worker thread: #96151
    • Run Cache Components dev validation on a worker thread: #96153
    • fix: release compression stream when client disconnects mid-response: #96173
    • [sourcemaps] Reuse source map payloads and consumers across stack frames: #96198
    • Pass fallback params to the dev validation worker as maps: #96210
    • Retry the source map lookup with a plain path: #96215
    • Read chunk source maps from disk in the dev validation worker: #96218
    • Run dev validation in process when using Webpack: #96219
    • Fix dev overlay symbolication for project paths needing percent-encoding: #96221
    • fix(sandbox): release one-shot timeout ids after they run: #96161
    • Turbopack: support import.meta.glob caseSensitive option: #96226
    • Add shell offset to static segment prefetches: #95963
    • [turbopack] Fix de-opt in getChunkRelativeUrl(): #96183
    • [turbopack] Tree-shake module.exports = {...} (CJS): #95996
    • Add Instant Insights request timing: #95958
    • Track whether runtime data is accessed during prefetch: #95964
    • Update vendored @mswjs/interceptors to 0.41.9: #96059
    • Replace vendored http-proxy with httpxy: #96060
    • Turbopack: Store watcher batch state with bitflags instead of 4 different sets: #96114
    • Turbopack: Only extend the watcher's batch window for unfiltered events: #96186
    • Serve cached misses from the filesystem route cache: #96230
    • Use a safe clock for Request Insights bookkeeping: #96274
    • Block prefetch task until sufficient response is received: #96017
    • Attempt static prefetch before resorting to runtime: #96095
    • Unify allow-runtime with Partial Prefetching: #96106
    • Add option to control dev memory threshold restarts: #96144
    • feat(turbopack): support import.meta.env: #96225
    • fix(next/image): improve test coverage for unsupported image types: #96301
    • Add local Request Insights span tracing: #96275
    • Add Instant Insights pipeline spans: #95961
    • Persist Request Insights display settings: #96277
    • [turbopack] Treat Object.defineProperty(exports, …, { value: … }) as side-effect free: #96273
    • Fix Turbopack worker URL context lookup: #96307
    • Return 200 for client-handled Server Action redirects: #96310
    • Revert "[turbopack] Track re-exports in import_usage inside of compute_import_usage": #96311
    • Improve root detection to handle worktrees, more workspaces & stray lockfiles: #96159
    • Turbopack: aggregate server HMR into one subscription: #94948
    • Turbopack: extract chunk list version/update into turbopack-ecmascript: #95661
    • Turbopack HMR: extract deferring build messages and use it in server hmr: #95795
    • Turbopack server hmr: avoid complete clear on graph changes: #95546
    • [turbopack] Remove loader calls for dropped dynamic imports: #96284
    • Revert "Revert "[turbopack] Track re-exports in import_usage inside of compute_import_usage"": #96315
    • Restore comments dropped during a refactor: #96324
    • [turbopack] Tree shake w/ bar['foo'] syntax for star imports: #96319
    • Cache immutable current task IDs outside the task-state lock: #96180
    • Gate partial fallback shell upgrades behind partialPrefetching for next start: #96297
    • Make retry stop when the time it was given is up: #96354
    • Share Ecmascript HMR chunk versioning, diffing, and merging between browser and node: #96325
    • Ensure unique resolved headers() value between render passes: #96085
    • Fix PPR rendering for configured HTML bots: #96364
    • [fragment-scroll] Stop blurring on navigations: #96113
    • [Instant] Point to first blocking await in validation: #96343
    • Skip reader task locking for immutable Turbo Tasks reads: #96179
    • Fix empty Fragment scroll ownership: #96342
    • fix(create-next-app): make AGENTS.md blue: #95432
    • fix: respect htmlLimitedBots in cache components without buffering the full response: #96367
    • Remove obsolete shouldWaitOnAllReady render option: #96401
    • Update Rust toolchain to nightly-2026-07-29: #96365
    • [turbopack] Keep track of components of the remainder chunk: #96409
    • [turbopack] Respect sideEffects in a package.json file with optimizePackageImports: #96383
    • Fix isHeadPartial when hydrating from a static fallback shell: #96400
    • [turbopack] add experimental.turbopackChunking config: #96398
    • Update @types/react and @types/react-dom to latest: #96419
    • Fix adapter outputs for not-found routes when used with cache components: #96390
    • Consolidate unhandled rejection logging into a single listener: #95999
    • Enable turbopackFileSystemCacheForBuild by default: #96395
    • [turbopack] Fix component chunks for workers: #96432
    • Fix hybrid Pages/App Router not-found rendering with adapters: #96392
    • Warn that experimental.useCache is deprecated: #96448
    • Enable Turbopack build filesystem cache by default: #96493
    • [Cache] Make caches error if called after prerender aborts: #96426
    • Fix App Router scroll padding visibility: #96308
    • Enable TypeScript CLI by default: #96497
    • fix: double fragment on navigation: #93132
    • Remove implicit Partial Prefetching opt-in from instant: #96539

    Documentation Changes

    • docs: fix broken Activity Patterns demo link in preserving UI state guide: #91698
    • docs: post release amends: #91715
    • docs: use ErrorInfo type consistently in catchError docs: #91744
    • docs: add catchError benefits over userspace error boundaries: #91745
    • docs: platform portability and infrastructure documentation: #91237
    • docs: add verified adapters section: #91849
    • docs: document CSS decimal precision difference between Turbopack and webpack: #91909
    • [Docs] Rewrite agent rules to match bundled doc wording: #91995
    • docs: opengraph-image papercuts: #92018
    • Update revalidateTag examples to use the new two-argument signature: #92065
    • docs: clarify that use cache requires async functions: #92101
    • Move expanded adapters docs to API reference: #92115
    • docs: add middleware bypass note to CDN caching guide: #92132
    • docs: document revalidateTag's required second argument in upgrade guide: #92134
    • docs: local images referenced by remote source: #92178
    • docs: clarify id, filePath, and pathname in STATIC_FILE adapter output: #92227
    • Docs/adapters review: #92223
    • docs: vt demo guide: #92249
    • docs: Ask AI agents to self-identify themselves in PR descriptions: #92235
    • docs: add deploy tests documentation to contributing guide: #92388
    • docs: clarify that proxy/middleware matches static assets by default: #92441
    • docs: clarify serverless runtime behavior for use cache: #92232
    • docs: add note on React canary version to View transitions guide: #92315
    • docs: note PPR default in cacheComponents reference: #92378
    • 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
    • docs: add note on installing server-only in data security guide: #92445
    • fix: replace docs/canary links with stable docs paths in error messages: #92528
    • docs: update details about unstable_retry() behavior: #91827
    • docs: link updateTag from cacheTag reference: #92379
    • Docs: Instant docs updates: #92515
    • docs: native db drivers with sync queries: #92572
    • docs: add Link transitionTypes version history: #92624
    • docs(cli): clarify that --debug-build-paths requires route group folders in paths: #92618
    • docs: fix broken bun.sh Nextjs documentation link: #92698
    • docs: add migration note for experimental cache flags to cacheComponents: #92318
    • docs: draftMode alignment: #92794
    • docs: restructure instant nav guide for clarity: #92684
    • docs: add documentation for no-typos ESLint rule: #92809
    • docs: amends to preserving-ui-state guide: #92270
    • 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
    • Docs: add signed commit guidance: #93155
    • Turbopack: import.meta.glob docs + edge case support: #92729
    • docs: remove broken error-handling overlay screenshot: #93279
    • docs: clarify rendering flow in Server/Client interleaving example: #93381
    • docs: clarify proxy runtime history: #93467
    • Update unstable_prefetch and unstable_instant docs to reflect current API shape: #93514
    • docs: remove unreachable forms and mutations: #93509
    • docs: broken link from usePathname compat call out: #93528
    • docs: escape literal triple-backticks in contribution guide: #93584
    • docs: clarify cacheTag limit - it is per call: #93768
    • docs: devIndicators with usage example: #93784
    • 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
    • docs: update agent test guidance: #93924
    • docs: instrumentationClientInject: #93913
    • docs: vocabulary-bridge rule for api-ref and guide skills: #94127
    • docs: rework dynamic segments intro section: #94126
    • docs: add next/root-params API reference: #93764
    • docs: ISR w/ Cache Components - experimental.partialFallbacks: #93299
    • docs: transpilePackages usage: #93602
    • docs: move isr cacheHandler callout to next steps: #94167
    • docs: fix code examples in getting-started guides: #93273
    • [feat] updated the documentation for deployment to point to new next.js Docker official guide.: #94185
    • docs: correct custom server optimization guidance: #94229
    • docs: bodySizeLimit measures raw HTTP body: #94137
    • docs: accuracy and pappercuts: #94299
    • doc: clarify rewrites execution order: #93765
    • docs: update draftMode guide: #94155
    • docs: cached functions from the client: #94301
    • docs: add GitHub SSH authentication guidance: #94360
    • docs: document Cache Components behavior for navigation hooks: #94387
    • instant: prompts on all fix cards, [group]-tagged CLI bullets, new docs slugs: #94017
    • docs: fix typos in testing.md: #94446
    • docs: fix typos in contribution guide: #94375
    • docs: correct wording and casing in turbopack tracing guide: #94469
    • docs: typos and errors outside docs, error, examples folders: #94472
    • docs: clarify next-env.d.ts regeneration: #94232
    • docs: add updateTag example to cacheTag page: #94508
    • docs: clarify use cache persistence across deploys: #93554
    • docs: fix onRequestError error type example: #94518
    • docs: move insight error pages from vercel/front to canary: #94564
    • [Docs] Remove unstable_instant agent hints; insights validate by default: #94577
    • docs: fix 'time zone' spelling in FOUC guide: #93244
    • docs: add pnpm installation step to module-not-found error page: #93773
    • instant: polish client-hook overlay wording, cards, and docs links: #94496
    • docs: root-params highligth fixes: #94620
    • docs: remove unstable_disableValidation recommendations: #94608
    • doc: instant navs runtime story: #93204
    • docs: next/root-params references on i18n guide: #94629
    • docs: expand the Cache Components migration guide: #94649
    • docs: document non-streamed bot rendering and Cache Components: #94605
    • docs: Route Handlers to be supported later on: #94705
    • [agents-md] Index bundled docs instead of downloading into .next-docs: #94719
    • docs: add prefetchInlining config reference: #94650
    • docs: tighten Partial Prefetching API references and adoption guide: #94818
    • docs: server actions guide: #93553
    • 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
    • docs: clarify sequential data fetching example: #94930
    • docs: GtK, caching with fetch is opt-in - extended to any method or header included: #94899
    • docs: fix typo in slot-missing-default.mdx: #94531
    • docs: Cache components requires Node.js runtime: #94897
    • docs(authentication): add Auth and streaming, fix code fences and imports: #95056
    • docs: add Interactive Apps guide: #94020
    • docs(caching): clarify generateStaticParams prebuild and recommend max for CMS: #95081
    • docs(cache-components): clarify allow-runtime, sync-IO and instant=false, CLS fallback: #94997
    • Docs/partial prefetching: #94855
    • docs(root-params): generateStaticParams section and CC requirement: #95073
    • docs: server actions guide x-refs: #95143
    • docs: clarify /_not-found failures and <html> attribute reads under Cache Components: #95163
    • docs: expand io reference: #95147
    • docs: update instant navs guide: #95173
    • docs: fix preview message typo: #95050
    • docs(insights): restructure error pages and link to preview docs: #95193
    • docs(errors): reorder blocking-prerender-dynamic fixes to Stream, Cache, Block: #95198
    • Add docs for experimental.turbopackRustReactCompiler: #95280
    • docs: remove unnecessary async from rewrites/headers/redirects examples: #95148
    • docs: Activity bfcacheId and :has caveats: #95275
    • Instant Navs guide: Highlights fixes and Client Component Page option: #95313
    • docs: recommend explicit cacheLife and clarify overriding built-in cache profiles: #95311
    • docs: Update FormEvent to SubmitEvent in form handling example (deprecated in React 19.2.10+): #95453
    • docs: remove incorrect statement that force-cache is the default for …: #95235
    • docs: updates to Cache Components Caching: #95452
    • docs: Fix testing-adapters variable name: #95575
    • docs: update MCP guides for the thin next-devtools-mcp: #94859
    • docs(opengraph-image): load assets at module scope to keep route static under Cache Components: #95246
    • [docs] Update progressive web apps documentation for new service worker syntax: #95431
    • [docs] Update "Handling a Custom Service Worker" in the CRA migration docs: #95434
    • docs: Immutable static assets: #95348
    • docs: note default error/not-found UI follows OS color scheme, not app theme: #95673
    • docs: add incremental adoption path to Cache Components migration guide: #95325
    • docs: add Building guide: #94999
    • docs: runtime prefetching update: #95564
    • docs: useSearchParams example stray link: #95759
    • docs: Improve immutable static docs: #95752
    • docs: revalidateTag with expire zero, for route handlers: #95760
    • docs: add route-side URL data audit to the Partial Prefetching adoption guide: #95389
    • docs: cssChunking graph option: #95693
    • docs: remove experimental @next/routing note: #94903
    • docs: add 'Set up your editor' to the installation guide: #95928
    • docs: clarify layout.js nesting behavior in route groups: #95720
    • docs: note the :has() scaling limit in the Interactive apps guide: #95925
    • Include examples of static export tools & GitHub Pages template: #95929
    • docs: fix unstable_cache syntax error: #96002
    • docs: add upgrade section to installation and expand AI agents guide: #95861
    • docs: attribute App Shell prefetch to Partial Prefetching: #96003
    • docs: view transitions guide — skill section, source-audit fixes, flag-removal docs: #96097
    • docs(view-transitions): fix the skill install command: #96142
    • docs: reframe prefetching around automatic vs. controllable behavior: #95896
    • docs: navigation interrupts after streaming has started (notFound, forbidden, unauthorized): #95851
    • docs: expand and modernize the Single-Page Applications guide: #95860
    • docs(ai-agents): restructure as steps and close 16.2/16.3 coverage gaps: #96247
    • docs: document query-only href resolution and fix with-vercel-blob : #96280
    • doc: typegen for typedRoutes: #96296
    • docs: clarify instrumentation-client polyfill loading and hydration timing: #95988
    • docs(interactive-apps): update prefetching for unified runtime prefetching: #96302
    • docs: add guide and references for experimental.useOffline: #93218
    • docs: remove PPR adapter page from Pages Router: #96316
    • docs: Parallel routes, conditional rendering and auth: #96351
    • docs(preventing-flash): cover reconciling state : #96146
    • docs: modernize Next 16 upgrade AI guidance: #96314
    • Update PWA guide with enhanced offline support details and example links for serwist: #96360
    • docs: document the App Shell stale time threshold for cached content: #96312
    • [turbopack] Introduce documentation on experimental.turbopackChunking: #96437
    • docs: ISR with Cache Components and Partial Prefetching: #96526
    • docs: clarify first-party Skills workflows: #96495
    • docs: cover direct visits and client navigations in the instant() e2e example: #95803

    Example Changes

    • chore(examples): remove with-styletron example: #81842
    • ci: remove deploy examples workflow from build-and-deploy: #92324
    • example: remove with-supertokens: #93212
    • [examples] migrate cloudinary to vercel-blob: #93762
    • examples/with-ably: update to App Router + Ably v2: #94600
    • fix: error handling and loading states in with-apollo-and-redux example: #91457
    • fix: remove deprecated url.parse() from custom-server example: #96105

    Misc Changes

    • Add .claude/skills symlink: #91616
    • Update tokio from 1.43.0 to 1.47.3: #90945
    • Restructure pr-status-triage skill: merge command into skill files: #91514
    • [test] Unflake "infinite streaming fetch" test: #91645
    • [test] Unflake deterministic build - changing deployment id test: #91646
    • Skip CI for agent/editor config directory changes: #91622
    • refactor: extract build infra and alias changes: #90422
    • ci: add node-stream test coverage workflow: #89861
    • Update Rspack production test manifest: #91635
    • [test] Increase retry timeouts for two flaky app-action tests: #91647
    • Revert "ci: add node-stream test coverage workflow (#89861)"
    • [test] Fix flaky url-hash tests: #91649
    • Add instant validation tests for parallel slot config attribution: #91656
    • [test] Unflake rendering indicator test & skip building indicator tests: #91650
    • [test] Fix edge-async-local-storage deploy test timeout & race condition: #91643
    • Update Rspack development test manifest: #91695
    • [test] Unflake use-node-streams-env-precedence test: #91733
    • Update Rspack production test manifest: #91694
    • [test] Unflake app prefetch test: #91734
    • Upgrade React from 3f0b9e61-20260317 to 8b2e903a-20260320: #91731
    • [ci] Allow "rerun failed jobs" to work up until 5 days: #91825
    • ci: upload adapter deploy test results: #91846
    • test: scope css data-url typing to fixture: #91877
    • ci: only upload adapter results for canary runs: #91881
    • Perf: Skip turning Set into Array: #91383
    • Perf: Move chunkloading instrumentation to separate function: #91382
    • Perf: Use headers object directly in checkIsOnDemandRevalidate: #91381
    • [test] Deflake instant-navs-devtools: #91912
    • test(typed-routes): fix flaky tests by increasing retry timeout: #91923
    • test(app-basepath): increase waitForElementByCss timeout for hard-nav test: #91920
    • test(interoperability): increase waitForElementByCss timeout for cross-router navigations: #91918
    • Upgrade React from 8b2e903a-20260320 to 3cb2c420-20260324: #91905
    • Upgrade React from 3cb2c420-20260324 to 9627b5a1-20260327: #92015
    • Upgrade React from 9627b5a1-20260327 to 74568e86-20260328: #92109
    • ci: relax adapter results upload gate: #92127
    • [test] Skip unstable_dynamicStaleTime tests due to flakiness: #92162
    • [test] Skip flaky segment-cache-refresh suite: #92163
    • Add PPR evals and fix env loading for agent-eval 0.9.5: #92063
    • Update Rspack development test manifest: #92142
    • [test] Skip flaky cached-navigations tests: #92199
    • [test] Skip flaky prefetch-layout-sharing suite: #92198
    • Add internal header security guideline to AGENTS.md:

    Note truncated.

    Open source →
  40. 16.3.0-preview.1028 Jul 2026pre-release
    Release notes

    Misc Changes

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

    Credits

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

    Open source →
  41. 16.3.0-preview.923 Jul 2026pre-release
    Release notes

    Misc Changes

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

    Credits

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

    Open source →
  42. 16.3.0-preview.822 Jul 2026pre-release
    Release notes

    Misc Changes

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

    Credits

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

    Open source →
  43. 16.3.0-preview.721 Jul 2026pre-release
    Release notes

    Example Changes

    • fix: error handling and loading states in with-apollo-and-redux example: #91457

    Misc Changes

    • Upgrade React from 172742b4-20260716 to 81e442ea-20260721: #96016
    • Fix Turbopack middleware matcher with i18n single locale: #96014
    • Improve performance of validating MPA form submissions: #96013
    • Enforce serverActions.bodySizeLimit for Server Actions in Edge runtime: #96012
    • Set correct origin for internal redirects in custom server: #96011
    • Ensure exotic rewrite param values are properly encoded: #96010
    • fix(fetch-cache): key fetch(Request, init) by the effective request: #96009
    • fix(incremental-cache): byte-exact fetch cache key for binary bodies: #96008
    • Validate server reference IDs during manifest lookup: #96007
    • fix(next/image): improve performance of detectContentType() : #96006
    • Preserve basePath in redirect destinations: #95608
    • [ci] Skip passed-tests cache steps for jobs that never run tests: #96001
    • docs: add upgrade section to installation and expand AI agents guide: #95861
    • docs: fix unstable_cache syntax error: #96002
    • Insights: use a single Learn more link in console errors: #95967
    • Refine development validation signal handling: #95998
    • Include examples of static export tools & GitHub Pages template: #95929
    • docs: note the :has() scaling limit in the Interactive apps guide: #95925
    • Prevent unhandled rejections when a "use cache" cache handler errors: #95985
    • [test] Add coverage for throwing custom "use cache" cache handler: #95984
    • docs: clarify layout.js nesting behavior in route groups: #95720
    • Fix instant validation blocking navigations: #95939
    • [ci] Share a single browser instance across all test suites in a single job: #95589
    • [turbopack] Rename turbopackTreeShaking to turbopackModuleFragments: #95978
    • cna: use LayoutProps helper in TS layout templates: #95675
    • [turbopack] Skip redundant top-level root updates: #95903
    • [turbopack] Drop unused exports from a CJS module: #95716
    • Turbopack: Simplify parent directory creation retry loop logic: #95835
    • Run Rust doctests in CI: #95911
    • docs: add 'Set up your editor' to the installation guide: #95928
    • fix(cms-contentful): await draftMode() and use Promise<> params type: #95631
    • Move outputHashSalt out of experimental: #95840
    • Move immutable static assets config option out of experimental: #95351
    • [instant] Let dev-server requests bypass the fetch lock: #95761
    • Upgrade React from 7023f501-20260714 to 172742b4-20260716: #95901
    • Fix Rust doctest failures: #95909
    • [turbopack] Clean up server_chunking_context: #95908
    • [turbopack] Don't SSR on pages only navigated to through a soft nav: #95539
    • Package skills/ as a Claude Code plugin: #95907
    • [ci] Avoid apt-get in the next-stats-action Docker image: #95847
    • Back/forward set the Nav Inspector back to pending: #95865
    • fix(agent-rules): pad managed AGENTS.md block with blank lines: #95892
    • Revert "Run more test suites under cacheComponents flag": #95884
    • Fix repeated navigations while the Instant Navigation lock is held: #95864
    • Run more test suites under cacheComponents flag: #95878
    • Unify appShells flag with Partial Prefetching: #95415
    • Fix Request Insights span collection: #95818
    • Revert "Replay same-document traversals that happen before hydration": #95853
    • [ci] Allow running all deploy tests with builds from a private registry: #95784
    • [turbopack] Only ship pages-router routes in the client chunk-group bootstrap manifest: #94671
    • [turbopack] Inline the chunk group bootstrap in Next.js to drop the per-route runtime: #94666
    • [turbopack] Add chunk_group_bootstrap_params and the chunk-loading global to the build manifest: #94663
    • [turbopack] Add registerEntry() to handle inline bootstrapping: #94664
    • [turbopack] Add inline_chunk_group_bootstrap to BrowserChunkingContext and chunk_group_bootstrap_params to ChunkGroupResult: #94661
    • [turbopack] Create a chunk_group_bootstrap_params() function: #94631
    • [turbopack] Create a shared asset with browser runtime code: #94586
    • Turbopack: trace externals imported only by server actions: #95824
    • [turbopack] Generate component chunks for each merged group to increase cache hits: #95261
    • Exclude stale under 5 minutes from app shells: #95833
    • docs: remove experimental @next/routing note: #94903
    • [turbopack] Tell agents not to mention next.config.js options: #95825
    • chore: Remove stale build warning: #95813
    • Replay same-document traversals that happen before hydration: #95682
    • docs: cssChunking graph option: #95693
    • [Bench] Extend bench app to have realistic client chunk counts: #95814
    • Add more realistic bench fixtures: #95807
    • Fix Request Insights subscription initialization: #95794
    • Model async userland loading in app routes as a state machine: #95791
    • Preserve init errors from async route modules: #95799
    • Fix cache warming and static params for metadata images with top-level await: #95790
    • Only track pending imports for real promises: #95789
    • Support metadata routes in --debug-build-paths: #95788
    • Respect NEXT_HASH_SALT for server side assetsHashes: #95738
    • telemetry: add agentName to anonymous metadata: #95586
    • [turbopack] Optimize the implementation of AutoMap/AutoSet : #95694
    • Better support the CLI spinner when running the TSC CLI: #95753
    • Upgrade React from 5123b063-20260708 to 7023f501-20260714: #95782
    • docs: add route-side URL data audit to the Partial Prefetching adoption guide: #95389
    • docs: revalidateTag with expire zero, for route handlers: #95760
    • request insights: add DevTools request panel (5/5): #93978
    • docs: Improve immutable static docs: #95752
    • Add React sync development skill: #95620
    • docs: useSearchParams example stray link: #95759
    • Improve the NFT error message and ignore comment handling: #95144
    • Upgrade to swc 73: #95731
    • [turbopack] Switch make_production_chunks to use floats: #95749
    • Fix termination handling: #95692
    • Restore canary version 16.3.0-canary.84 after v16.3.0-preview.6 preview release

    Credits

    Huge thanks to @vercel-release-bot, @eps1lon, @ZaforAbdullah, @gaojude, @aurorascharff, @icyJoseph, @timneutkens, @WildChargerTV, @ankurdotio, @bgw, @sampoder, @marcoshernanz, @manoraj, @mischnic, @acdlite, @gaearon, @gnoff, @andrewimm, @lukesandberg, and @feedthejim for helping!

    Open source →
  44. 16.3.0-preview.613 Jul 2026pre-release
    Release notes

    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-64 runners to reduce pressure on our currently-limited pool of arm runners (#95332)": #95336
    • refactor: split out validateStaticShell: #95106
    • [ci] Move some test suites back to x86-64 runners to reduce pressure on our currently-limited pool of arm runners: #95332
    • [PP] Validate Shell prefetches (except gSP): #95151
    • Upgrade React from 68631c04-20260626 to 92f4fda3-20260629: #95282
    • codemod: non-interactive upgrade for agents and CI: #95312
    • Fix workers on thread to not crash with napi-rs: #95281
    • [ci] Add support for auth based preview build registries: #95204
    • [ci] Migrate build_and_test and pull_request_stats to use arm64 runners: #94870
    • Turbopack: compute code hash per use cache function: #94234
    • [test] Retry the .next deletion to fix an ENOTEMPTY flake: #95307
    • [test] Make build-output-prerender error ordering deterministic: #95308
    • fix: params/searchParams in client page crashing dev instant validation: #95289
    • [test] Unskip more Turbopack NFT unit tests: #95297
    • [test] Recover from a leftover build process on test retry in build(): #95304
    • [test] Give webpack server-action-period-hash tests a larger timeout: #95303
    • Render a code frame for build errors thrown collecting page data: #95270
    • Surface empty generateStaticParams as a redbox with a real stack: #95269
    • Turbopack: constant evaluate x in y: #95286
    • docs: remove unnecessary async from rewrites/headers/redirects examples: #95148
    • Log content-free diagnostics when a postponed state fails to parse: #95216
    • log config evaluation time: #94811
    • Turbopack: This bool could've been an enum: #95288
    • Increase the code frame width used when logging to a file.: #95283
    • [ci] update relay-compiler to 21.0.1: #95217
    • [turbopack] Discover service workers in the Turbopack analyzer: #94923
    • [turbopack] Use experimental chunking heuristics: #95026
    • [turbopack] Set chunking_heuristics on each ChunkGroupInfo: #95021
    • [turbopack] Thread chunkingHeuristics through to chunk groups: #95020
    • [turbopack] Add an experimental chunkingHeuristics to next.config.js: #95019
    • test: fork select tests on partialPrefetching: #95279
    • Add docs for experimental.turbopackRustReactCompiler: #95280
    • Fix: Update the URL when a client navigation redirects to a rewritten route: #95207
    • Turbopack: replace cssChunking graph moduleFactorCost with weightDistribution: #95088
    • Upgrade React from 247fbb45-20260622 to 68631c04-20260626: #95211
    • skills(cc-adoption): tighten requires, sequencing, terminology: #95225
    • Avoid bundling client-nodemodules used by unstable_rethrow in client-browser modules: #95196
    • fix(turbopack): dedupe filename/exportedName in server-reference-manifest worker entries: #95242
    • [ci] Display correct test commands when Cache Component test fail: #95267
    • fix: preserve repeated search params in client page segment cache keys: #94863
    • Improve typing of decodeReply: #95263
    • Turbopack: make hash_xxh3_hash128 return u128: #95232
    • [turbopack] Support undoable modifications for many field types on TaskStorage: #95180
    • Record size metrics to our compaction and persistence spans: #94977
    • Don't track modifications to transient data stored in tasks: #95133
    • fix: preserve middleware rewrite query in Pages API routes: #94905
    • Return APP_PAGE instead of PAGES for production Instant Navigation tests: #95184
    • [ci] skip Datadog git metadata upload on junit upload: #95210
    • next-dev-loop: require agent-browser >= 0.31.1: #95209
    • Bump Rust toolchain: #95205
    • docs(errors): reorder blocking-prerender-dynamic fixes to Stream, Cache, Block: #95198
    • Hard-navigate to app routes shadowed by a pages dynamic route: #95185
    • [dev overlay]: restructure Copy-as-prompt body into a step-by-step checklist: #95186
    • docs(insights): restructure error pages and link to preview docs: #95193
    • docs: fix preview message typo: #95050
    • Revert "[turbopack] Use final_read_hint in top level turbo tasks (#94712)": #95178
    • docs: update instant navs guide: #95173
    • [next-dev-loop] Fix cookies: #95177
    • Restore canary version 16.3.0-canary.67 after v16.3.0-preview.5 preview release

    Credits

    Huge thanks to @sokra, @eps1lon, @icyJoseph, @feedthejim, @mischnic, @vercel-release-bot, @wbinnssmith, @sampoder, @bgw, @aurorascharff, @lubieowoce, @timneutkens, @lukesandberg, @gaojude, @gaearon, @unstubbable, @Pranav18M, @andrewimm, @chippleh1392, @M4cM4rco, @Partha-Shankar, @acdlite, @sleitor, @devjiwonchoi, @samselikoff, @jimmyhmiller, @thsid, @SukkaW, @TariqulislamTuhin, and @niketchandivade for helping!

    Open source →
  45. 16.3.0-preview.525 Jun 2026pre-release
    Release notes

    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!

    Open source →
  46. 16.3.0-preview.425 Jun 2026pre-release
    Release notes

    Misc Changes

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

    Credits

    Huge thanks to @eps1lon for helping!

    Open source →
  47. 16.3.0-preview.310 Jun 2026pre-release
    Release notes

    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!

    Open source →
  48. 16.3.0-preview.29 Jun 2026pre-release
    Release notes

    Misc Changes

    • [cd] Ensure wasm binaries get tagged properly: #94621

    Credits

    Huge thanks to @eps1lon for helping!

    Open source →
  49. 16.3.0-preview.09 Jun 2026pre-release
    Release notes

    Misc Changes

    • Rename prefetch option force-runtime to allow-runtime: #94568
    • Remove unstable_instant agent hints; insights validate by default: #94577
    • [turbopack] Use an arena for JSValues: #94297
    • Stabilize export const prefetch: #94571
    • Fix node:stream leak in webpack edge bundles: #94585
    • docs: fix 'time zone' spelling in FOUC guide: #93244
    • docs: add pnpm installation step to module-not-found error page: #93773
    • Stream Cache Components dev render instead of restarting on cache miss: #94457
    • instant: polish client-hook overlay wording, cards, and docs links: #94496
    • Fix Navigation Inspector Continue Rendering with loading.tsx: #94355
    • disallow reads from .next-profiles: #94570
    • [turbopack] add an extension to trace files: #94587
    • [16.3.x-preview] Setup release branch: #94594

    Credits

    Huge thanks to @gnoff, @gaojude, @sampoder, @karlhorky, @MikhailStn, @unstubbable, @aurorascharff, @samselikoff, @lukesandberg, and @eps1lon for helping!

    Open source →
  50. 16.3.0-canary.1072 Aug 2026pre-release
    Release notes

    Misc Changes

    • Enable Turbopack build filesystem cache by default: #96493

    Credits

    Huge thanks to @timneutkens for helping!

    Open source →
  51. 16.3.0-canary.1061 Aug 2026pre-release
    Release notes

    Misc Changes

    • Warn that experimental.useCache is deprecated: #96448
    • Fix hybrid Pages/App Router not-found rendering with adapters: #96392

    Credits

    Huge thanks to @unstubbable and @ztanner for helping!

    Open source →
  52. 16.3.0-canary.10531 Jul 2026pre-release
    Release notes

    Misc Changes

    • test: stabilize after() deploy revalidation checks: #96428
    • Add automated code review workflow: #96359
    • [turbopack] Introduce documentation on experimental.turbopackChunking: #96437
    • [react-sync] Enable auto-merge on PRs: #96442
    • [ci] Run new/changed deploy tests asap: #96438
    • Upgrade React from 0f42eac2-20260730 to cbb046ab-20260731: #96434
    • [turbopack] Fix component chunks for workers: #96432
    • Enable turbopackFileSystemCacheForBuild by default: #96395
    • Consolidate unhandled rejection logging into a single listener: #95999
    • Fix adapter outputs for not-found routes when used with cache components: #96390
    • Update @types/react and @types/react-dom to latest: #96419
    • docs: document the App Shell stale time threshold for cached content: #96312
    • [turbopack] add experimental.turbopackChunking config: #96398
    • Fix isHeadPartial when hydrating from a static fallback shell: #96400

    Credits

    Huge thanks to @ztanner, @marcoshernanz, @sampoder, @eps1lon, @vercel-release-bot, @sokra, @icyJoseph, and @acdlite for helping!

    Open source →
  53. 16.3.0-canary.10430 Jul 2026pre-release
    Release notes

    Misc Changes

    • [turbopack] Respect sideEffects in a package.json file with optimizePackageImports: #96383
    • [turbopack] Keep track of components of the remainder chunk: #96409
    • Update Rust toolchain to nightly-2026-07-29: #96365
    • Remove obsolete shouldWaitOnAllReady render option: #96401
    • Upgrade React from 6cb4322d-20260729 to 0f42eac2-20260730: #96402
    • fix: respect htmlLimitedBots in cache components without buffering the full response: #96367
    • test: expand Cache Components metadata streaming coverage: #96366
    • fix(create-next-app): make AGENTS.md blue: #95432
    • [bench skill] Bench Edge builds of React too: #96234
    • Upgrade React from 1724e9ce-20260729 to 6cb4322d-20260729: #96389
    • Fix empty Fragment scroll ownership: #96342
    • Skip reader task locking for immutable Turbo Tasks reads: #96179
    • Upgrade React from 96fcba90-20260728 to 1724e9ce-20260729: #96355
    • test: reproduce empty parallel route scroll regression: #96323
    • [ci] Match the test job summary style to the PR test report comment: #95882
    • [Instant] Point to first blocking await in validation: #96343

    Credits

    Huge thanks to @sampoder, @wbinnssmith, @ztanner, @vercel-release-bot, @styfle, @gaearon, @DavidIlie, @marcoshernanz, @eps1lon, and @lubieowoce for helping!

    Open source →
  54. 16.3.0-canary.10330 Jul 2026pre-release
    Release notes

    Misc Changes

    • Update PWA guide with enhanced offline support details and example links for serwist: #96360
    • [fragment-scroll] Stop blurring on navigations: #96113
    • Fix PPR rendering for configured HTML bots: #96364
    • Bump postcss to 8.5.23: #96107
    • Ensure unique resolved headers() value between render passes: #96085
    • Share Ecmascript HMR chunk versioning, diffing, and merging between browser and node: #96325
    • Make retry stop when the time it was given is up: #96354
    • Gate partial fallback shell upgrades behind partialPrefetching for next start: #96297
    • docs: modernize Next 16 upgrade AI guidance: #96314
    • Cache immutable current task IDs outside the task-state lock: #96180
    • Added cache copying support for worktrees: #95646
    • docs(preventing-flash): cover reconciling state : #96146
    • docs: Parallel routes, conditional rendering and auth: #96351
    • [turbopack] Tree shake w/ bar['foo'] syntax for star imports: #96319
    • Update skills for Partial Prefetching: #96299
    • Restore comments dropped during a refactor: #96324
    • docs: remove PPR adapter page from Pages Router: #96316
    • [ci] Background some steps in build_reusable to reduce setup overhead, remove unneeded lld installation: #96195
    • Bump @types/node to 20.17.7 to fix findSourceMap type: #96321

    Credits

    Huge thanks to @adhamfayrouzamf, @icyJoseph, @ztanner, @eps1lon, @wbinnssmith, @gaearon, @acdlite, @aurorascharff, @marcoshernanz, @jimmyhmiller, @sampoder, and @bgw for helping!

    Open source →
  55. 16.3.0-canary.10228 Jul 2026pre-release
    Release notes

    Misc Changes

    • Revert "Revert "[turbopack] Track re-exports in import_usage inside of compute_import_usage"": #96315
    • [turbopack] Remove loader calls for dropped dynamic imports: #96284
    • docs: add guide and references for experimental.useOffline: #93218

    Credits

    Huge thanks to @sampoder and @icyJoseph for helping!

    Open source →
  56. 16.3.0-canary.10128 Jul 2026pre-release
    Release notes

    Misc Changes

    • Turbopack server hmr: avoid complete clear on graph changes: #95546
    • Turbopack HMR: extract deferring build messages and use it in server hmr: #95795
    • Turbopack: extract chunk list version/update into turbopack-ecmascript: #95661
    • Turbopack: aggregate server HMR into one subscription: #94948

    Credits

    Huge thanks to @wbinnssmith for helping!

    Open source →
  57. 16.3.0-canary.10028 Jul 2026pre-release
    Release notes

    Misc Changes

    • Improve root detection to handle worktrees, more workspaces & stray lockfiles: #96159
    • Revert "[turbopack] Track re-exports in import_usage inside of compute_import_usage": #96311
    • Return 200 for client-handled Server Action redirects: #96310
    • docs(interactive-apps): update prefetching for unified runtime prefetching: #96302
    • docs: clarify instrumentation-client polyfill loading and hydration timing: #95988
    • [cd] Send Slack notification if publish fails: #96304
    • [ci] Install Node.js from the official tarball in the native-builder image: #96298
    • Upgrade React from 756fdd47-20260727 to 96fcba90-20260728: #96306
    • Fix Turbopack worker URL context lookup: #96307
    • [turbopack] Treat Object.defineProperty(exports, …, { value: … }) as side-effect free: #96273
    • Classify Instant Insights as internal in Request Insights: #96147
    • Persist Request Insights display settings: #96277
    • Add Instant Insights pipeline spans: #95961
    • Isolate local Request Insights spans from OpenTelemetry: #96276
    • Add local Request Insights span tracing: #96275
    • fix(next/image): improve test coverage for unsupported image types: #96301
    • doc: typegen for typedRoutes: #96296
    • feat(turbopack): support import.meta.env: #96225
    • Add option to control dev memory threshold restarts: #96144
    • Restore canary version 16.3.0-canary.99 after v16.3.0-preview.10 preview release
    • Unify allow-runtime with Partial Prefetching: #96106
    • Attempt static prefetch before resorting to runtime: #96095

    Credits

    Huge thanks to @sampoder, @ztanner, @aurorascharff, @icyJoseph, @eps1lon, @vercel-release-bot, @DavidIlie, @timneutkens, @styfle, and @acdlite for helping!

    Open source →
  58. 16.3.0-canary.9928 Jul 2026pre-release

    Nothing published for this version

  59. 16.3.0-canary.9725 Jul 2026pre-release
    Release notes

    Misc Changes

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

    Credits

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

    Open source →
  60. 16.3.0-canary.9624 Jul 2026pre-release
    Release notes

    Misc Changes

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

    Credits

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

    Open source →