Releases: vercel/next.js
v16.3.0-canary.5
Core Changes
- Apply sourcemaps by default during prerender in
next build: #93280 - Fix route handler SWR blocking on Node runtime: #93189
- [ci]: fix release script to not strip newlines: #93302
- Forward invalid dynamic usage errors on client-side navigations: #93184
- HMR: debounce status indicator transitions to prevent flicker during bursts of changes: #93229
- ci: Fix caching of test-cargo-unit: #93327
- Turbopack: pull in updated vercel/nft tests: #93321
Misc Changes
- Turbopack: compute exports without full analysis: #92823
- Turbopack: cheaper check in map_next_dynamic: #93283
- [turbo-tasks-backend] Single-item optimization for lost follower operations: #93200
- Fix
export * as X from './self'in scope-hoisted modules: #93192 - [ci]: Use macOS arm runner for intel builds: #93330
- Turbopack: only compute module ids for included modules: #93276
- 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-trace-server] optimize loading: #93264
- [rust-deps] Update tokio: #93195
Credits
Huge thanks to @eps1lon, @mischnic, @unstubbable, @ztanner, @sokra, @wbinnssmith, and @lukesandberg for helping!
v16.3.0-canary.4
Core Changes
- Preserve
__NEXT_ERROR_CODEacross the/_errorpage handoff: #93183
Misc Changes
- Reduce allocations in the next_debug_instant_stack transform: #93222
Credits
Huge thanks to @unstubbable and @lukesandberg for helping!
v16.3.0-canary.3
Core Changes
- New ESLint rule:
no-location-assign-relative-destination: #92900 - Upgrade React from
fef12a01-20260413toda9325b5-20260417: #92945 - Auto-generate AGENTS.md / CLAUDE.md in next dev: #92910
- Strengthen _rsc cache-busting param: #92755
- rage-restart followup: #92591
- fix(use-cache): remove awaiting revalidation: #92636
- Revert "Adopt pnpm catalogs for devDependencies": #93226
- 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
- Turbopack: import.meta.glob docs + edge case support: #92729
Misc Changes
- chore: Prune list of users in labeler json: #92984
- [test] Deflake
shallow-routing: #93006 - Use existing commitId for tarball URL in stats action: #92899
- 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
- [ci]: remove unused workflow: #93064
- [ci]: remove publish token in favor of OIDC: #93065
- Update Rspack development test manifest: #92959
- [ci] Temporary disable of sccache: #93074
- Use OIDC for CodSpeed: #93059
- Restore dev-mode cache-fill timeout for
'use cache': #93055 - [ci]: add environment to publishRelease flow: #93093
- Adopt pnpm catalogs for devDependencies: #93071
- Make
'use cache'fill timeout configurable: #93070 - 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
- Collapse pnpm test scripts into a single helper invocation: #93097
- [tests]: fix cache-components.test.ts type error: #93113
- [ci]: cleanup labeler: #93135
- Docs: add signed commit guidance: #93155
- [ci]: switch to GitHub runners: #93164
- [ci]: pin rust-musl-cross: #93176
- [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
- [rust-deps] Update serde: #93196
- [rust-deps] Update tracing: #93194
- Turbopack: unify ModuleGraph constructors: #93203
- [ci] replace next-labeler-webhook with in-repo GitHub Action: #93080
- example: remove with-supertokens: #93212
- Turbopack: move get_inner_asset into ecmascript module: #93191
- [ci] Fix auto-label workflow: #93215
- [test] Remove dead symlink: #93217
- [ci] Populate GITHUB_TOKEN for auto-labeler: #93219
- [ci]: move stats & CI status comment to workflow: #93220
- [ci] Upload preview builds directly to Vercel Blob: #93207
- [ci]: fix permissions on comment workflow: #93225
- [turbopack] drop TransientState: #92853
- [ci] Handle namespaced packages in preview builds: #93241
- [ci] Create test summary comment if job immediately passes: #93236
- [ci] Automatically start React sync when new
react@experimentalis available: #93235 - [rust-deps] Update bytes, crc32fast, memchr, pin-project-lite, quote, rand, regex, ringmap, roaring: #93197
- Recognize
super(...)messages in Error subclass constructors: #93182 - docs: remove broken error-handling overlay screenshot: #93279
- [ci]: app-based release workflow: #93245
- [turbopack-trace-server] Performance improvements for span event handling: #93179
- [ci]: trigger signed release commit via API: #93285
Credits
Huge thanks to @bgw, @eps1lon, @SukkaW, @nextjs-bot, @devjiwonchoi, @aurorascharff, @feedthejim, @icyJoseph, @ztanner, @vercel-release-bot, @mmastrac, @mischnic, @gaojude, @unstubbable, @lukesandberg, @ijjk, @wbinnssmith, @awo00, @sokra, @acdlite, and @christopherkindl for helping!
v16.3.0-canary.2
v16.3.0-canary.1
Core Changes
- 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
Misc Changes
Credits
Huge thanks to @gnoff, @unstubbable, @ztanner, @aurorascharff, @mmastrac, and @icyJoseph for helping!
v16.3.0-canary.0
Core Changes
- fix(next/image): ensure
images.maximumResponseBodyapplies to local images too: #92920 - Refactor trace server sort to SortMode enum (execution order / value / name): #92873
- Perf: Simplify static metadata handling: #92630
- remove flag guarding
unstable_io: #92923
Misc Changes
- [ci] Cache passing test results so CI retries skip them: #92832
- fix accidental test duplication: #92922
- 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
- [ci]: fix backport sync script: #92942
Credits
Huge thanks to @styfle, @mmastrac, @ztanner, @lukesandberg, @sokra, @timneutkens, and @gnoff for helping!
v16.2.1-canary.46
Core Changes
- Support type cast expressions in page static info extractor: #92837
- 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
- Replace deprecated
moduleResolution: "node": #92654
Misc Changes
- turbo-tasks: add info_span for blocking waits during task restore: #92878
- Turbopack: Use an async lock in the filesystem watcher: #92906
- [ci] Skip Playwright system deps install on subsequent self-hosted runs: #92893
- turbo-tasks: Reduce allocations on cache hits: #92756
- CI: Remove dead yarn support from next-stats-action: #92587
Credits
Huge thanks to @mischnic, @sokra, @unstubbable, @aurorascharff, @acdlite, @bgw, @mmastrac, @eps1lon, and @lukesandberg for helping!
v16.2.1-canary.45
Core Changes
- Allow overriding outputHashSalt in modifyConfig: #92856
Misc Changes
- Turbopack: Use lld again on ARM64 glibc Linux: #92860
- [ci]: add workflow to bump canary after backport: #92801
- turbopack: cache TransformPlugin in narrow-scoped turbo-tasks functions: #92842
Credits
Huge thanks to @bgw, @ztanner, @sokra, and @mischnic for helping!
v16.2.4
Note
This release is backporting bug fixes. It does not include all pending features/changes on canary.
Core Changes
- chore: Bump reqwest to 0.13.2 (Fixes Google Fonts with Turbopack for Windows on ARM64) (#92713)
- Turbopack: fix filesystem watcher config not applying follow_symlinks(false) (#92631)
- Scope Safari ?ts= cache-buster to CSS/font assets only (Pages Router) (#92580)
- Compiler: Support boolean and number primtives in next.config defines (#92731)
- turbo-tasks: Fix recomputation loop by allowing cell cleanup on error during recomputation (#92725)
- Turbopack: shorter error for ChunkGroupInfo::get_index_of (#92814)
- Turbopack: shorter error message for ModuleBatchesGraph::get_entry_index (#92828)
- Adding more system info to the 'initialize project' trace (#92427)
Credits
Huge thanks to @Badbird5907, @lukesandberg, @andrewimm, @sokra, and @mischnic for helping!
v16.2.1-canary.44
Core Changes
- fix(trace-server): default MCP port to --port + 1 to avoid conflicts: #92831
- Revert "Node.js streams: Add forkpoint for prerenderToStream": #92845
- Warn for non-deterministic
"use cache"args during final prerender: #92820
Misc Changes
- Share native binaries via GitHub artifacts: #92758
- Turbopack: shorter error message for ModuleBatchesGraph::get_entry_index: #92828
- Turbopack: refactor export analysis: #92781
- [ci] Skip sccache on Windows runners: #92847
- Turbopack: remove StarImportAnalyzer: #92830
- Turbopack: analyzer improvement followups: #92834
- Update Rspack production test manifest: #92674
- Update Rspack development test manifest: #92673
- Turbopack: move assignment_scopes computation into ImportMap: #92835
- docs: restructure instant nav guide for clarity: #92684
- docs: add documentation for no-typos ESLint rule: #92809
Credits
Huge thanks to @mmastrac, @sokra, @mischnic, @timneutkens, @vercel-release-bot, @unstubbable, @icyJoseph, and @MukundaKatta for helping!