v16.3.0-preview.7
v16.3.0-preview.7
Release Notes
Example Changes
- fix: error handling and loading states in with-apollo-and-redux example: #91457
Misc Changes
- Upgrade React from
172742b4-20260716to81e442ea-20260721: #96016 - Fix Turbopack middleware matcher with i18n single locale: #96014
- Improve performance of validating MPA form submissions: #96013
- Enforce
serverActions.bodySizeLimitfor 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
turbopackTreeShakingtoturbopackModuleFragments: #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-20260714to172742b4-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_paramsand the chunk-loading global to the build manifest: #94663 - [turbopack] Add
registerEntry()to handle inline bootstrapping: #94664 - [turbopack] Add
inline_chunk_group_bootstraptoBrowserChunkingContextandchunk_group_bootstrap_paramstoChunkGroupResult: #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-20260708to7023f501-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_chunksto 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!