ESLint plugin for Next.js.
Last release today
25 Aug 2026
Ships on a steady schedule
a new release about every 8 days
Some releases are documented
notes for 32 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
3137 releases · first in 2020
Release timeline
3137 releases since 2020Releases
- 16.2.0-canary.774 Mar 2026pre-release
Release notes
Open source →Core Changes
- Update default error pages: #90469
Misc Changes
- [turbopack] add a new hasher implementation to eliminate allocations: #89059
- update proxy docs to use NextProxy type: #90647
- Show labeled steps for
instant()test helper in the Playwright UI: #90664
Credits
Huge thanks to @lukesandberg, @clicktodev, @mitul-s, and @unstubbable for helping!
- 16.2.0-canary.764 Mar 2026pre-release
Nothing published for this version
- 16.2.0-canary.753 Mar 2026pre-release
Release notes
Open source →Misc Changes
- Update Rspack development test manifest: #90805
- Avoid using TaskTypes as keys in storage instead use hashes: #88904
- Remove leaf segment force-refetch check: #90836
Credits
Huge thanks to @vercel-release-bot, @lukesandberg, and @acdlite for helping!
- 16.2.0-canary.743 Mar 2026pre-release
Release notes
Open source →Core Changes
- Refactor extractExportedConstValue to return { value } | null instead of throwing: #90510
- Reimplement code frame rendering in native code: #85592
- [devtools] Bundle for same target as Next.js browser runtime: #90762
- Upgrade React from
98ce535f-20260226to4cc5b7a9-20260303: #90827 - Add
transitionTypesprop tonext/link: #90701 - [otel] fix missing http.route attribute: #90832
Misc Changes
- turbo-persistence: add CRC32 block checksums: #90754
- Remove unused turbo-tasks items and add lint check: #90801
- Fix missing const generic parameter in turbo-persistence lookup call: #90817
- Unify caching story across the docs: #90149
- Turbopack: add anyhow::Context to turbo-persistence mmap, file open, and decompress operations: #90769
Credits
Huge thanks to @sokra, @lukesandberg, @delbaoliveira, @eps1lon, and @huozhi for helping!
- 16.2.0-canary.733 Mar 2026pre-release
Release notes
Open source →Core Changes
- Stub adapterPath with experimental.runtimeServerDeploymentId: #90790
- Conditionally load uncommon paths: #90514
Misc Changes
- Add static error when
unstable_instantis used withoutcacheComponents: #90793 - enable server action RDC deploy test: #90796
- turbo-persistence: StreamingSstWriter performance and readability improvements: #90692
- pr-status: add reply-thread and resolve-thread subcommands: #90773
- [turbopack] Don't schedule idle snapshots when we are in a short session: #90804
- Update Rust dependencies for turbo-persistence and turbo-tasks-backend: #90774
- Create next app CLI docs: #90788
- Add support for multi-valued tables: #89728
- pr-status: add --wait flag and background execution for /pr-status command: #90687
- exempt data URL CSS from Pages Router global CSS restriction: #89901
Credits
Huge thanks to @gnoff, @ztanner, @sokra, @lukesandberg, @mischnic, @icyJoseph, @jantimon, and @timneutkens for helping!
- 16.2.0-canary.722 Mar 2026pre-release
Release notes
Open source →Core Changes
- docs: error component
unstable_retry(): #89732
Misc Changes
- Update Rspack development test manifest: #90751
- Update Rspack production test manifest: #90750
- Turbopack: improve cell order lint rule for TraitRef::cell: #90756
- Add determinism test for static shell with asset preload headers: #89826
Credits
Huge thanks to @devjiwonchoi, @vercel-release-bot, and @mischnic for helping!
- docs: error component
- 16.2.0-canary.712 Mar 2026pre-release
Release notes
Open source →Core Changes
- fix(turbopack): use posix.join for client URL manifest paths on Windows: #90700
- Turbopack: improve cell order lint rule for ReadRef::cell: #88500
- Change names of logged times: #90688
- [devtools] Bump React Compiler version to latest experimental: #90763
- Skip writeToBfCache without window: #90771
Example Changes
- with-docker: add new config file formats: #90731
Misc Changes
- Fix ENOBUFS errors in pr-status.js when fetching large CI logs: #90654
- docs: clarify native <script> usage for JSON-LD in docs: #90380
- Publish @next/playwright to npm as part of canary releases: #90738
Credits
Huge thanks to @sokra, @sleitor, @mischnic, @karlhorky, @abhishekmardiya, @acdlite, @timneutkens, and @eps1lon for helping!
- 16.2.0-canary.701 Mar 2026pre-release
Release notes
Open source →Core Changes
- [devtools] Stop blocking overlay on error details copy: #90698
- feat: provide nextVersion to modifyConfig adapter hook: #90735
- experimental.prefetchInlining: bundle segment prefetches into a single response: #90555
- instant(): fix cookie handling for fresh page loads: #90613
Misc Changes
- Use commit-based tarball URL in PR stats comment: #90709
- [ci] Use commit instead of PR number for preview builds in deploy tests: #90722
Credits
Huge thanks to @eps1lon, @devjiwonchoi, @pieh, and @acdlite for helping!
- 16.2.0-canary.6928 Feb 2026pre-release
Release notes
Open source →Core Changes
- Turbopack: Allow turbopack-node backend to be swapped at runtime using an experimental config option: #90671
- Turbopack: Revert default loader runtime backend to child processes: #90675
Misc Changes
- turbo-persistence: streaming SST writer for reduced memory usage: #90617
- Add custom cleanup script support for deploy tests: #90696
Credits
Huge thanks to @lukesandberg, @bgw, and @ijjk for helping!
- 16.2.0-canary.6828 Feb 2026pre-release
Release notes
Open source →Core Changes
- Turbopack: restrict server HMR to app pages: #90663
Misc Changes
- Centralize test timings to fix shard divergence in CI: #90672
- tests: Fix immutableAssetToken extraction: #90668
Credits
Huge thanks to @ijjk, @mischnic, and @wbinnssmith for helping!
- 16.2.0-canary.6727 Feb 2026pre-release
Release notes
Open source →Misc Changes
- Ensure we only run main test mode with custom deploy script: #90665
Credits
Huge thanks to @ijjk for helping!
- 16.2.0-canary.6627 Feb 2026pre-release
Release notes
Open source →Core Changes
- refactor(turbopack-node): support execution by napi and worker_threads: #86266
- [instant] Allow providing user feedback for blocking route errors: #90498
- Allow Node.js' experimental inspector flags in
next devandnext build: #90603 - tests: Assert dpl query string in all tests for Turbopack: #90592
- [instant] Don't add debug stack to random
unstable_instantexports: #90273 - Adapter: STATIC_FILE.immutableHash: #90045
- Turbopack: experimental.immutableAssetToken: #88607
- remove runInContext callbacks from stream-ops: #90609
Example Changes
- example: restore .next handling for with-docker examples: #90651
Misc Changes
- test: Run Adapter e2e tests with Turbopack instead: #90600
- Add MemorySample to Turbopack trace infrastructure: #90597
- docs(deploying): add Hostinger Web Apps Hosting to Node.js deployment options: #90246
- Use
VisitMutinstead ofFoldfor debug_instant_stack transform: #90274 - docs: fix navigationType value and variable name in useReportWebVitals: #90599
- Accept header content negotiation: #90607
Credits
Huge thanks to @xusd320, @mischnic, @eps1lon, @sokra, @agneliutkiene, @Mimori256, @icyJoseph, and @lubieowoce for helping!
- 16.2.0-canary.6527 Feb 2026pre-release
Release notes
Open source →Core Changes
- Turbopack: Panic if a top-level task attempts an eventually consistent read: #89735
- Fix middleware case with adapters: #90624
Misc Changes
- Turbopack server HMR: inline source maps for
evaled modules: #90561
Credits
Huge thanks to @bgw, @wbinnssmith, and @ijjk for helping!
- 16.2.0-canary.6426 Feb 2026pre-release
Release notes
Open source →Core Changes
- Fix edge index page _next/data route: #90611
- Turbopack server hmr: Implement
restartevent: #90550
Misc Changes
- Pre-warm a single NodeJS instance when the next devserver starts: #90174
Credits
Huge thanks to @ijjk, @andrewimm, and @wbinnssmith for helping!
- 16.2.0-canary.6326 Feb 2026pre-release
Release notes
Open source →Core Changes
- [test] Fix jest-haste-map warnings: #82995
- Don't require collect-build-traces with Turbopack: #90586
- Enable
experimental.reactDebugChannelby default: #90310 - Less dynamic pages manifest path: #90581
- Upgrade React from
c0060cf2-20260224to98ce535f-20260226: #90605 - Turbopack: Add Next.js version to "initialize project" trace span: #90545
- [devtools] Stop sending codeframes for ignored frames: #90577
- Allow
reset()from user's global-error: #89684 - Fix per-segment prefetching for initial loads with Cache Components: #90610
- Add
unstable_retry()to error.js: #89685
Example Changes
- docs: add Docker Standalone and Docker Export examples to Deploying page: #90386
Misc Changes
- [test] Remove
getStackFramesContent: #90571 - Replace
testonlytotestheadlessin AGENTS.md: #90578 - [test] Include error code in Redbox snapshot: #90497
- Turbopack: Add TransientEnvMap to avoid persisting env vars in cache: #90526
- Turbopack: add Xxh3Hash128Hasher: #90584
- [test] Fix error code snapshots when testing with React 18: #90593
- feat: Join guides and frame around UI preservation: #90595
- Turbopack: use xxhash3_128 for content hashes: #90583
- test: remove stray TURBOPACK_BUILD=1: #90602
- Update Rspack development test manifest: #90566
- Update Rspack production test manifest: #90565
- [ci] Use
NEXT_TEST_CIinstead ofCIfor e2e test retry guard: #90606 - [test] Skip failing segment-cache deploy test: #90601
- turbo-persistence: drop key compression dictionary from SST files: #90608
Credits
Huge thanks to @eps1lon, @devjiwonchoi, @mischnic, @kristiyan-velkov, @sokra, @icyJoseph, @vercel-release-bot, @unstubbable, and @lukesandberg for helping!
- 16.2.0-canary.6225 Feb 2026pre-release
Release notes
Open source →Core Changes
- fix: sanitize worker args for worker_threads compatibility: #90506
- Fix varyParams tracking for optional catch-all params with no value: #90496
- Don't start worker for Typescript when only doing config validation: #90504
- [Instant] Fix loading.js not being counted as a suspense boundary: #90292
- [ci] Crash if next-swc could not be loaded when
NEXT_TEST_NATIVE_DIRis specified: #90387 - Fix: server-patch retry preserves push/replace intent of suspended transitions: #90533
- Cached Navigations: Serve cached segments instantly on repeat visits: #90223
- Throw when
unstable_instantis used in Client Component: #90396
Misc Changes
- test: Improve test assertions to prepare for dpl query string: #90463
- [test] Fix flaky "delay re-prefetch after revalidation" test: #90503
- Revert "Turbopack: Add line numbers to debug info in release-with-assertions profile (#90474)": #90525
- Bump Turborepo to 2.8.11: #90530
- Turbopack: Move turbopack out of
pnpm buildand into apnpm build-allcommand: #90543
Credits
Huge thanks to @mischnic, @timneutkens, @acdlite, @unstubbable, @bgw, @lubieowoce, @eps1lon, and @devjiwonchoi for helping!
- 16.2.0-canary.6125 Feb 2026pre-release
Release notes
Open source →Core Changes
- Fix params leaking into instant navigation shell in dev: #90455
- Limit build workers to pages+1: #90475
Misc Changes
- Update Rspack production test manifest: #90412
- Update Rspack development test manifest: #90413
- Add @next/playwright package with instant() testing helper: #90470
- [turbopack] Reduce memory usage during compaction: #90229
- [sync-react] Allow syncing from a React commit: #90283
- Turbopack: Add line numbers to debug info in release-with-assertions profile: #90474
- Turbopack: emit env_diff span attribute for update: #90466
- test: unflake lru-disk-eviction on Windows: #90465
Credits
Huge thanks to @vercel-release-bot, @acdlite, @lukesandberg, @eps1lon, @bgw, @mischnic, and @andrewimm for helping!
- 16.2.0-canary.6024 Feb 2026pre-release
Release notes
Open source →Core Changes
- Fix route cache keying for unprefetched navigations: #90400
- Add support for Next.js error telemetry for
AggregateError: #90391 - Fix
config.reactProductionProfilingfor Webpack: #90430 - next-image: fix deployment id handling for unoptimized: #90416
- [ci] Fix input cache keys for tasks referencing
rust-toolchain: #90442 - next-image: fix dpl handling with unicode: #90420
- Upgrade React from
ab18f33d-20260220toc0060cf2-20260224: #90452 - [ci] Stop using Turbopack tests in native binary build cache keys: #90449
- [Instant] Validate blocking head: #89539
- Turbopack: Fix experimental server hmr for pages router: #90398
Misc Changes
- docs: improve form guide consistency and validation examples: #90361
- Add more known folders to is-folder-empty check in create-next-app: #88218
- docs: rework version staleness: #90192
- [ci] Always upload Turborepo summary artifact: #90441
- tests: reenable escheck-output: #90423
- docs: clarify that next upgrade is for 16.1.x+: #90435
- Add not-found.js / notFound() links to Status Codes section: #88332
- [test] Deflake
typed-routes-validatorusingtsc: #90451 - docs: update with more patterns and decision based: #90203
- test: Cleanup and refactoring: #90454
- [turbopack] Make compression in SST files optional: #89309
- [test] Only auto-retry individual e2e tests in CI: #90464
Credits
Huge thanks to @acdlite, @lavanitha, @timneutkens, @eps1lon, @icyJoseph, @mischnic, @karlhorky, @lubieowoce, @wbinnssmith, @lukesandberg, and @unstubbable for helping!
- 16.2.0-canary.5923 Feb 2026pre-release
Release notes
Open source →Core Changes
- refactor(app-render): extract stream-ops and debug-channel modules (5/8): #89858
- [turbopack] Consider
ignoreListof 3rd party sourcemaps in Redbox: #90317 - [turbopack] Remove obsolete is_internal field : #90329
- Fix: Image component ignores images.qualities in Jest environment: #89536
- Revert "keep next-env.d.s unchanged between dev and build": #90384
Misc Changes
- Bump Turborepo to 2.8.9: #90079
- In-Depth Explanation of React Version Handling Doc: #89426
- Update wasm and next-custom-transforms crates to Rust edition 2024: #90350
- Turbopack: refactoring to prepare for name mangling: #89406
- Turbopack: Aggregation update improvements: #90139
- Next.js sticky scroll standards: #90197
- [ci] Stop linting auto-generated next-swc typings: #90390
- docs: fixes typo in manifest.mdx regarding Route Handler note: #90394
Credits
Huge thanks to @mischnic, @abhishekmardiya, @lukesandberg, @feedthejim, @eps1lon, @mmastrac, @sokra, @rishishanbhag, and @tdarthur for helping!
- 16.2.0-canary.5822 Feb 2026pre-release
Release notes
Open source →Core Changes
- Fix route.replace crash with --debug-build-paths: #90312
Misc Changes
- Add PR tarball install note to stats comment: #90316
Credits
Huge thanks to @devjiwonchoi for helping!
- 16.2.0-canary.5721 Feb 2026pre-release
Release notes
Open source →Core Changes
- Turbopack: support Subresource Integrity : #90152
- segment cache: add test for passing unawaited promise to context provider: #89339
Credits
Huge thanks to @mischnic and @ztanner for helping!
- 16.2.0-canary.5621 Feb 2026pre-release
Release notes
Open source →Core Changes
- Fix runtime prefetch
isPartialbyte stripping when deployed: #90272 - Upgrade React from
2ba30655-20260219toab18f33d-20260220: #90279 - validate sync IO in generateMetadata according to Page's prefetchable status: #90164
Example Changes
- Migrate from react-markdown to Streamdown static in EdgeDB example: #86435
Misc Changes
- [sync-react] Allow syncing React with local build: #90277
Credits
Huge thanks to @haydenbleasel, @unstubbable, @gnoff, and @eps1lon for helping!
- Fix runtime prefetch
- 16.2.0-canary.5520 Feb 2026pre-release
Release notes
Open source →Core Changes
- Revert "Handle null history.state in client-side router popstate handler": #90268
- [devtools] Omit empty looking error messages: #90256
Misc Changes
- [test] Improve fetch timeout error stack for
act: #90261 - Turbopack: add Rope.content_hash and SHA hashing: #90235
- [instant] Handle more instant declaration patterns: #90251
Credits
Huge thanks to @unstubbable, @mischnic, @ztanner, and @eps1lon for helping!
- 16.2.0-canary.5420 Feb 2026pre-release
Release notes
Open source →Core Changes
- Turbopack: fix static asset skew protection for edge and prerenders: #90238
- Remove workStore from params/searchParams/pathname function signatures: #90215
- Remove workStore from metadata resolution chain: #90217
- [Instant] export "Instant" config type: #90257
- Replace getDynamicParamFromSegment closure with interpolatedParams in metadata: #90249
- [Instant] Dev Tools toggle for Instant Navigation Mode: #90222
- [instant] Include declaration location of instant config in validation errors: #90169
- Turbopack: rename ServerPaths to AssetPaths: #90234
- feat(next/image): add lru disk cache and
images.maximumDiskCacheSize: #89963
Example Changes
- [feat] Added Docker examples for standalone output and export output following best practices: #87069
Credits
Huge thanks to @kristiyan-velkov, @mischnic, @gnoff, @lubieowoce, @acdlite, @eps1lon, and @styfle for helping!
- 16.2.0-canary.5320 Feb 2026pre-release
Release notes
Open source →Core Changes
- Fix OTEL propagation and add direct entrypoint e2e coverage: #90181
- Use cookie as sole protocol for instant navigation testing: #89871
- Simplify metadata tag rendering to flat imperative style: #90209
- Prevent unhandled rejection filter from being bundled into the server runtime: #90205
- [Instant] speed up test instant-validation suite: #90214
Misc Changes
- [turbopack] Add a simple tool to inspect serialized SST files and report on their contents: #89310
- Upgrade React from
4842fbea-20260217to2ba30655-20260219: #90211
Credits
Huge thanks to @ijjk, @lukesandberg, @eps1lon, @acdlite, @gnoff, and @lubieowoce for helping!
- 16.2.0-canary.5219 Feb 2026pre-release
Release notes
Open source →Core Changes
- [refactor] Replace runtime prefetch sentinel transform stream: #90160
- fix: use Buffer.indexOf in uint8array helpers for faster byte scanning (3/8): #89864
- Automatically build and clear native build when running
pnpm build: #89819 - fix(cache): DCE to avoid pulling server internals into browser bundles (4/8): #89865
- Attach active src route to next global: #90171
Misc Changes
- Turbopack: Update rust toolchain to nightly-2026-02-18: #89974
- Turbopack: Derive
DefaultonPartialProjectOptions, remove sillypartial_project_options_with_debug_build_pathshelper: #90170 - Turbopack: document ModuleSideEffects better: #90132
- [ci]: pin styled-components version in tests: #90194
Credits
Huge thanks to @bgw, @unstubbable, @mischnic, @feedthejim, @sokra, @ztanner, and @ijjk for helping!
- 16.2.0-canary.5118 Feb 2026pre-release
Release notes
Open source →Core Changes
- segment cache: fix segment cache normalizer: #90111
- Handle null history.state in client-side router popstate handler: #90083
- Don't parse default postponedsizelimit: #89906
- Turbopack: handle invalid RSC imports via importmap: #88146
- [create-next-app] Improve AGENTS.md prompt wording: #90118
- ensure maxPostponedStateSize is always respected: #90060
- Upgrade React from
6066c782-20260212to4842fbea-20260217: #90144 - [fragment-scroll] Stop focusing the first focusable host descendant: #89903
- fix: normalize loopback only in hostname: #90158
- Only error for sync IO after runtime in segments that would be runtime prefetched: #89979
Misc Changes
- refactor: fix non-determinism in resolve package: #90058
- Update Rspack development test manifest: #90074
- Update Rspack production test manifest: #90073
- test: extend production-browser-sourcemaps test: #89945
- Turbopack: use file_content.hash() consistently: #90078
- [test] Current behavior of focus after
next/linknavigation: #89959 - Turbopack: Enable tree-shaking for dynamic imports with destructuring: #89683
- test: Don't run integration tests twice for Turbopack : #83335
- Simplify how
jsonimports work by turning it into a source transform: #89631 - Update Rspack production test manifest: #90120
- Update Rspack development test manifest: #90121
Credits
Huge thanks to @lukesandberg, @vercel-release-bot, @ztanner, @timneutkens, @mischnic, @gaojude, @eps1lon, @sokra, and @gnoff for helping!
- 16.2.0-canary.5018 Feb 2026pre-release
Release notes
Open source →Core Changes
- [devtools] Add support for error causes in the dev overlay: #90108
- Unify runInSequentialTasks across all sequential task work: #89978
- Cleanup all stage promises on abort: #89984
Misc Changes
- [turbopack] Fix concurrent task lock panic during error formatting: #90056
- Reland "[turbopack] Fix some modification tracking bugs in TaskStorage": #90098
Credits
Huge thanks to @eps1lon, @lukesandberg, and @gnoff for helping!
- 16.2.0-canary.4917 Feb 2026pre-release
Release notes
Open source →Core Changes
- Improve task pipelining: #90065
- fix(next/legacy/image): add deployment id (dpl) query string support: #89956
- Cache expected missing manifest read: #89908
- Use for...in instead of Object.keys for parallelRouteKey traversal: #89905
- [Instant] allow non-blocking dynamic holes and errors in shared parents: #89875
- Move prefetch hints from CacheNodeSeedData to FlightRouterState: #90066
- [Instant] Don't block on client APIs that wouldn't block in the browser: #89924
Misc Changes
- [turbopack] Fix some modification tracking bugs in TaskStorage: #89708
- bench: render-pipeline benchmarks and stress routes (2/8): #89863
- [turbopack] fix our verify features in turbo-tasks backend: #90013
- Refactor factory not available error message generation: #89897
- [turbopack] Followup for
#[derive(ValueToString)]: #89936 - Revert "[turbopack] Fix some modification tracking bugs in TaskStorage": #90096
- Disable jest cache for CI instead of wiping: #90097
- next-stats-action: avoid pnpm EXDEV during stats installs: #90100
- [turbopack] Run the deployment tests for turbopack and webpack: #84360
- ci: only cancel pull_request_stats on PR updates: #90104
- [Instant] test: remove unnecessary reactDebugChannel permutation: #90103
- [test] Replace flaky webpack snapshots in
cache-components-errors: #90105 - Upgrade to swc 57: #90084
Credits
Huge thanks to @gnoff, @sokra, @lukesandberg, @feedthejim, @timneutkens, @mmastrac, @ijjk, @lubieowoce, @unstubbable, @acdlite, and @mischnic for helping!
- 16.2.0-canary.4817 Feb 2026pre-release
Release notes
Open source →Core Changes
- Ignore
prefetch={true}on Links to routes withinstant: #90061 - Expand deferred entries test suite and fix turbopack build: #90057
- Use StageController for runtime prerendering: #89972
Misc Changes
- test: scope e2e timeouts to startup and per-it: #89929
- Always set adapter deploy env variable: #90064
Credits
Huge thanks to @acdlite, @ijjk, and @gnoff for helping!
- Ignore
- 16.2.0-canary.4716 Feb 2026pre-release
Release notes
Open source →Core Changes
- docs: agent skills, pr-status script, and AGENTS.md updates (1/8): #89857
Misc Changes
- Upgrade Lightning CSS: #88789
- fix(turbopack): --debug-build-paths fails with route groups: #89336
- docs: clarify async instrumentation register request : #90039
- Add AGENTS.md and bundled docs guide: #89973
Credits
Huge thanks to @mischnic, @devjiwonchoi, @swarnava, @feedthejim, and @gaojude for helping!
- 16.2.0-canary.4614 Feb 2026pre-release
Release notes
Open source →Core Changes
- [fragment-scroll] Ensure hoisted elements don't break scroll-to-top on page navigations: #83108
- dx: Include path count in export error message: #89333
- fix(agents-md): use
require.resolve()to get the installednextversion: #89166
Misc Changes
- docs: fix broken blockquote formatting in API Routes page: #89966
- Turbopack: Update trybuild test dependency from 1.0.104 to 1.0.116: #89986
- test: Isolate read-only-source-hmr test: #86721
Credits
Huge thanks to @andrewdamelio, @bgw, @mischnic, @eps1lon, and @devjiwonchoi for helping!
- 16.2.0-canary.4513 Feb 2026pre-release
Release notes
Open source →Misc Changes
- chore: Don't run build-and-deploy CI job on graphite-base branches: #89982
Credits
Huge thanks to @bgw for helping!
- 16.2.0-canary.4313 Feb 2026pre-release
Release notes
Open source →Core Changes
- Fix parallel routes with deferred entries: #89967
Misc Changes
- Turbopack: Add inline loader configuration via import attributes: #89644
- Turbopack: Use
std::any::type_namefor global naming of turbo-task items: #89874
Credits
Huge thanks to @sokra, @ijjk, and @bgw for helping!
- 16.2.0-canary.4213 Feb 2026pre-release
Release notes
Open source →Core Changes
- fix: support multiple icon formats with same base name (icon.png + icon.svg): #89504
- Turbopack: Move turbopackIgnoreIssue from experimental to turbopack.ignoreIssue: #89817
- Build with dev runtimes when
--debug-prerenderis set: #89834 - Append deployment id query string for next-font: #89960
Misc Changes
- Next-api: Check
client_source_mapsbefore generate source map: #89915 - docs: improve next/image localPatterns error page: #89914
- docs: inline-css dev-action oriented: #89064
- Upgrade to swc 56: #89111
- Turbopack: fix CSS dependency locations: #89761
- docs: document cacheLife expire omission behavior and fix default preset value: #89913
- docs: Activity boundary guide: #89126
- Enable backtraces in turbopack integration tests: #89935
Credits
Huge thanks to @FurryR, @icyJoseph, @mischnic, @01-binary, @lukesandberg, @sokra, and @unstubbable for helping!
- 16.2.0-canary.4113 Feb 2026pre-release
Release notes
Open source →Misc Changes
- docs: adapterPath amends: #89930
- [turbopack] Add #[derive(ValueToString)] and convert ~45 manual impls: #89788
- Turbopack hmr: fix missing factories: #89934
Credits
Huge thanks to @icyJoseph, @mmastrac, and @wbinnssmith for helping!
- 16.2.0-canary.4012 Feb 2026pre-release
Release notes
Open source →Core Changes
- Upgrade React from
272441a9-20260209to6066c782-20260212: #89923 - Add a better error message for when turbopack cannot be loaded: #89633
Credits
Huge thanks to @lukesandberg for helping!
- Upgrade React from
- 16.2.0-canary.3912 Feb 2026pre-release
Release notes
Open source →Core Changes
- [Instant] Fix crash with search params: #89922
- Fix memory leak in dev mode caused by fast-set-immediate: #89779
- Trace upload: include experimental flag states: #89845
Misc Changes
- Change UrlBehavior.static_suffix to ResolvedVc<Option<RcStr>>: #89921
Credits
Huge thanks to @lukesandberg, @lubieowoce, @alubbe, and @wbinnssmith for helping!
- 16.2.0-canary.3812 Feb 2026pre-release
Release notes
Open source →Core Changes
- Allow sitemap.ts and sitemap/page.tsx to coexist in Turbopack: #89789
- [fragment-scroll] Cleanup scroll and focus restoration in layout router: #83110
- [fragment-scroll] Add
experimental.appNewScrollHandler: #83107
Misc Changes
- After() docs requests API: #89837
- docs: Move browserToTerminal into logging: #88901
- Update documentation to explain behavior in a Catch-all route: #89742
- test: allow query suffix in related media URL e2e assertions: #89872
- Update Rspack development test manifest: #89811
- Turbopack: Store task error as pointer to the source error: #89293
- docs: add deploymentId config and clarify encryption key for self-hosting: #89795
- Turbopack: Pass asset_suffix_path as Vc: #89899
- [turbopack] Simplify JS
ChunkItemwith a single impl in most cases: #89548
Credits
Huge thanks to @feedthejim, @icyJoseph, @freek-boon-greenberry, @andrewimm, @ijjk, @vercel-release-bot, @sokra, @eps1lon, and @mmastrac for helping!
- 16.2.0-canary.3711 Feb 2026pre-release
Release notes
Open source →Core Changes
- [AI] Ship bundled docs in next and generate AGENTS.md in create-next-app: #89850
- Turbopack: Implement server hmr in nodejs dev runtime: #89130
Misc Changes
- docs: adapt lead to source path patterns: #89392
- docs: Papercuts Feb26: #89484
- [test] Ensure new deploy test builds have the necessary env variables: #89846
- test: allow dpl query suffix in scss url-global expectation: #89856
- test: stabilize app-dir hash navigation RSC assertion: #89867
- Turbopack: Clean up unused register!() macro argument in test: #89869
Credits
Huge thanks to @icyJoseph, @eps1lon, @gaojude, @ijjk, @wbinnssmith, and @bgw for helping!
- 16.2.0-canary.3611 Feb 2026pre-release
Release notes
Open source →Core Changes
- Turbopack: Fix slow filesystem benchmark warning for
next dev: #89798 - Add turbopackIgnoreIssue config to suppress Turbopack warnings: #89682
- Add support for with
type: "text"under a new experimental flag, following what webpack did: #89560 - Remove unused devtools code handling React without
use: #89793 - [devtools] Wrap overlay in Activity: #89818
- Add CSS URL deployment ID suffix support: #89771
- Fix cascading LRU eviction during prefetch batches: #89766
- Refactor prerenderManifest passing: #89765
Misc Changes
- Update flakey E2E deploy tests: #89792
- Update flakey E2E deploy tests no-prefetch: #89799
- Update Rspack production test manifest: #89741
- Fix devlow job timeouts: #89804
- Update Rspack development test manifest: #89740
- Turbopack Persistence: Improve heuristic for compacted database access: #89497
- Turbopack: remove ChunkableModuleReference trait: #89745
- docs: improve Graphite workflow documentation: #89488
- Remove --turbopack and --webpack flags from create-next-app: #89706
- docs: correct use term: #89438
- Turbopack: make routes hashes mainfest more incremental: #87107
- [test] Remove references to removed, internal PPR environment variable: #89832
- [docs] Add
RedirectTypeusage example topermanentRedirect: #89833 - [test] Enable scroll related tests in Cache Component tests: #83245
- Next CLI flags documentation: #89750
- docs: update adapter docs for routing, handlers, and PPR: #89849
Credits
Huge thanks to @ijjk, @bgw, @vercel-release-bot, @sokra, @lukesandberg, @mischnic, @timneutkens, @vvscode, @eps1lon, and @unstubbable for helping!
- Turbopack: Fix slow filesystem benchmark warning for
- 16.2.0-canary.3510 Feb 2026pre-release
Release notes
Open source →Core Changes
- Turbopack: Server HMR infrastructure: #88870
- Turbopack: Reorganize runtime files into shared/runtime directory: #89461
- [Instant] Validation on client navs: #89777
- Turbopack: extract core hmr client logic into shared runtime: #88912
Credits
Huge thanks to @wbinnssmith and @lubieowoce for helping!
- 16.2.0-canary.3410 Feb 2026pre-release
Release notes
Open source →Core Changes
- Pass shouldCache to all manifest loading calls: #89713
- Add 2nd cloned body to FinalizationRegistry. Only used RuntimeStyles component for webpack: #88577
- Tracing: trace render times as render-path: #89763
Misc Changes
- Update Rspack production test manifest: #89701
- Update Rspack development test manifest: #89702
- clarify unstable_cache replacement with use cache: #89435
- [test] Add regression test for segment cache prefetch memory leak: #89756
- Improve not-found-with-pages test: #89538
Credits
Huge thanks to @vercel-release-bot, @mischnic, @abhishekmardiya, @unstubbable, @timneutkens, and @wbinnssmith for helping!
- 16.2.0-canary.339 Feb 2026pre-release
Release notes
Open source →Core Changes
- fix(image): findClosestQuality returns 0 for low quality values: #89621
- Upgrade React from
2dd9b7cf-20260208to272441a9-20260209: #89722 - Avoid using unclosing prefetch streams in the browser: #89610
Example Changes
- Remove more examples: #89709
Misc Changes
- Turbopack: Remove old
Vc::try_resolve_*methods in favor of theResolvedVcalternatives: #89696 - Fix reset-project script for E2E deploy tests: #89693
- feat: move font variables to html in create-next-app: #89632
- reduce the number of shards on small systems: #89731
Credits
Huge thanks to @bgw, @ijjk, @icyJoseph, @shadcn, @sigmachirality, @unstubbable, and @lukesandberg for helping!
- 16.2.0-canary.328 Feb 2026pre-release
Release notes
Open source →Core Changes
- Upgrade React from
95ffd6cd-20260205to2dd9b7cf-20260208: #89681 - Include
AggregateError.errorsin terminal output: #88999
Misc Changes
- Turbopack: remove unneeded benchmarks: #89592
- Turbopack Persistence: Remove amqf cache, store all amqfs in memory: #89562
- Add inline value support for small values (≤8 bytes): #89271
- [turbopack] remove the
_backendfield from TaskGuardImpl: #89015 - [Turbopack] Include CSS URL attributes, including Layer, Media and Supports: #89300
- docs: add task decomposition and verification guidelines: #89640
Credits
Huge thanks to @sokra, @lukesandberg, @robert-j-webb, and @bencmbrook for helping!
- Upgrade React from
- 16.2.0-canary.317 Feb 2026pre-release
Release notes
Open source →Core Changes
- fix: deprecated util._extend: #89614
- Fix missing non-deferred turbopack build items: #89616
- Revert "Ensure _middleware is consistent in adapter for name/id": #89624
- Omit unused arguments for server actions: #89651
Misc Changes
- Update metadata assertions: #89625
- Update vercel CLI version in flakey deployment-id test: #89652
Credits
Huge thanks to @Netail, @ijjk, and @unstubbable for helping!
- 16.2.0-canary.306 Feb 2026pre-release
Release notes
Open source →Core Changes
- Ensure _middleware is consistent in adapter for name/id: #89559
- Ensure Errors with deep causal chains respect inspect depth: #89594
- refactor: extract route discovery into unified
discoverRoutes()API: #88971 - Ensure static metadata are static outputs for adapters: #89574
- Resolve local variable references in error code SWC plugin: #89596
- Turbopack: Add --experimental-server-fast-refresh CLI flag: #89274
- Fix deployment id header when proxying: #89593
Misc Changes
- Turbopack: add turbo-persistence benchmark: #89446
- Fix spelling in robots.mdx documentation: #89565
- Proper e2e test of function determinism - adapter: #89522
- [test] consolidate the browser log test: #89601
- Fix flaky turbo cache pull with retries and graceful fallback: #89575
- Turbopack: Pass globals to node.js workers as well: #89261
- Upgrade rustc to 2026-02-05: #89591
Credits
Huge thanks to @ijjk, @sokra, @Thomas465xd, @mischnic, @eps1lon, @huozhi, @bgub, @unstubbable, @mmastrac, and @wbinnssmith for helping!
- 16.2.0-canary.295 Feb 2026pre-release
Release notes
Open source →Core Changes
- Don't insert build id comment in HTML: #89478
- Clarify type checking error message: #89525
- Require explicit
cacheLifeon outer"use cache"when nesting short-lived caches: #89481 - [Instant] Instant validation in Dev: #89077
- Upgrade React from
3e00319b-20260203to95ffd6cd-20260205: #89550 - Turbpopack: fix is_persistent_caching_enabled: #89533
- Fix a small doc typo: #89553
Misc Changes
- Proper e2e test of function determinism: #88908
- docs: fix ISR guide link to res.revalidate: #89342
Credits
Huge thanks to @mischnic, @unstubbable, @lubieowoce, @pavan-sh, and @lukesandberg for helping!
- 16.2.0-canary.285 Feb 2026pre-release
Release notes
Open source →Core Changes
- Ensure module contexts are always included in adapter traces: #89508
Credits
Huge thanks to @ijjk for helping!
- 16.2.0-canary.274 Feb 2026pre-release
Release notes
Open source →Core Changes
- Add
experimental.reportSystemEnvInliningfor Turbopack: #89304 - fix: use signal-based exit codes to prevent inspector blocking exit: #89351
- Add Instant Navigation Testing API: #89465
- Support MPA navigations in
instant(): #89469 - Handle Pages data route skew with deployment id header, take 2: #89325
- Include owner stack for forwarded errors if available: #89493
- [CC] Rename "unstable_prefetch" to "unstable_instant": #89448
Example Changes
- chore(examples): remove
with-tigrisexample: #81843
Misc Changes
- Update Rspack production test manifest: #89423
- Update Rspack development test manifest: #89424
- Turbopack: improve suggestions for experimental.reportSystemEnvInlining: #89486
- docs: Fix syntax in proxy example code: #89395
- Add experimental flag to expose testing API in production builds: #89499
Credits
Huge thanks to @vercel-release-bot, @mischnic, @timneutkens, @acdlite, @JamBalaya56562, @ericrav, @huozhi, and @lubieowoce for helping!
- Add
- 16.2.0-canary.263 Feb 2026pre-release
Release notes
Open source →Example Changes
- chore(examples): remove
with-recoilexmaple: #81836
Misc Changes
- Don't upload build cache for deployment tests: #89432
- Fix indentation of types of tests in docs: #89409
- Add separate E2E deploy env for turbopack tests: #89458
- Turbopack: Symbol.for and keyFor are sideeffect-free: #89454
Credits
Huge thanks to @mischnic, @JamBalaya56562, @wheresrhys, and @ijjk for helping!
- chore(examples): remove
- 16.2.0-canary.253 Feb 2026pre-release
Release notes
Open source →Core Changes
- Replace flight navigation build id field with header: #88855
- Upgrade React from
da641178-20260129toed4bd540-20260202: #89401 - Upgrade React from
ed4bd540-20260202tob1533b03-20260203: #89444 - Upgrade React from
b1533b03-20260203to3e00319b-20260203: #89449 - Rename CACHE_ONE_YEAR for clarity and fix usage: #89450
- [Codemod] Fix agents-md on Windows: #89319
- Experimental deferred entries handling: #88347
Misc Changes
- Snippet multi package syntax: #89381
- TURBOPACK: support chunk_loading_global method: #88790
Credits
Huge thanks to @icyJoseph, @mischnic, @ijjk, @fireairforce, and @gaojude for helping!
- 16.2.0-canary.242 Feb 2026pre-release
Release notes
Open source →Core Changes
- Turbopack: FreeVarReference::ReportUsage: #89302
- Make Server Function logging opt-in via
logging.serverFunctions: #89321 - Restore default-enabled Server Function logging: #89407
- Re-add build-complete traces for webpack: #89402
- Skip Server Function logging for
'use cache'functions: #89408
Misc Changes
- Turbopack: Move PrettyPrintError to turbo_tasks and add tests: #89280
- Update Rspack production test manifest: #89372
- Update Rspack development test manifest: #89371
- docs: replace 'can not' with 'cannot': #89354
- docs: Fix custom server code snippets: #89400
Credits
Huge thanks to @sokra, @mischnic, @unstubbable, @vercel-release-bot, @pavan-sh, @amannn, and @ijjk for helping!
- 16.2.0-canary.2331 Jan 2026pre-release
Release notes
Open source →Core Changes
- Turbopack: Rename crates/napi to crates/next-napi-bindings and update crate name: #89314
- feat: detect @typescript/native-preview as alternative TypeScript compiler: #89149
- Revert "Fix/zlib mem node": #89322
Credits
Huge thanks to @bgw and @Suhaib3100 for helping!
- 16.2.0-canary.2230 Jan 2026pre-release
Release notes
Open source →Misc Changes
- Apply server actions transform to
node_modulesin route handlers: #89316 - [test] Deflake
browser-log-forwarding verbose leveltest suite: #89324
Credits
Huge thanks to @unstubbable for helping!
- Apply server actions transform to
- 16.2.0-canary.2130 Jan 2026pre-release
Release notes
Open source →Core Changes
- Revert "Replace build id in Pages data routes with deployment id (#88959)": #89323
Misc Changes
- Add failing test to deploy-tests-manifest: #89318
Credits
Huge thanks to @ijjk and @mischnic for helping!
- 16.2.0-canary.2030 Jan 2026pre-release
Release notes
Open source →Core Changes
- Fix/zlib mem node: #89099
Misc Changes
- Update Rspack development test manifest: #89278
- Update Rspack production test manifest: #89277
- Improve consistency of how Flag typed fields are handled in the macro to more structurally prevent bugs like what was fixed in #89228: #89255
Credits
Huge thanks to @naaa760, @vercel-release-bot, and @lukesandberg for helping!
- 16.2.0-canary.1930 Jan 2026pre-release
Release notes
Open source →Core Changes
- Improve lock dir error message: #89119
- Ensures
browserslistdoesn't issue outdated warnings forbaseline-browser-mapping: #89287 - Replace build id in Pages data routes with deployment id: #88959
- Upgrade React from
230772f9-20260128toda641178-20260129: #89301 - Inline handler dependencies instead of tracing: #89269
- Turbopack: add
rules.*.typeconfig to allow changing the type of a module: #88788 - Add experimental.varyParams feature flag: #89307
Misc Changes
- Turbopack: improve print_cache_item_size: #89279
Credits
Huge thanks to @huozhi, @eps1lon, @mischnic, @ijjk, @sokra, and @acdlite for helping!
- 16.2.0-canary.1830 Jan 2026pre-release
Release notes
Open source →Core Changes
- fix: CSRF origin matching should be case-insensitive: #89127
- fix(build): format runAfterProductionCompile duration as human-readable time: #89232
- fix(router): support BigInt in query parameters: #89213
- Update font data: #89200
- Update font data: #89272
- Turbopack: add support for contentType condition for webpack loaders: #89156
- Revert "fix(router): support BigInt in query parameters": #89283
- Track vary params during static prerendering: #89267
Misc Changes
- refactor: Improve templates layout flexibility: #89245
- test: add client-cache.defaults failing deploy test: #89242
- test: add resume-data-cache failing deploy test: #89243
- [turbopack] Make shrinking logic declarative and optimize for immutable tasks: #89222
- Turbopack: Trace task modifications: #89229
- docs: Rename Error component to ErrorPage: #89284
- Turbopack: refactor extend transforms: #89116
Credits
Huge thanks to @alexcarpenter, @devjiwonchoi, @jaffarkeikei, @BradErz, @lukesandberg, @vercel-release-bot, @sokra, @eps1lon, @mintydev789, and @acdlite for helping!
- 16.2.0-canary.1729 Jan 2026pre-release
Release notes
Open source →Core Changes
- add GPTBot to matcher for known bots: #89188
- Ensure
.mdlicenses are included in vendored packages: #89201 - Switch development log item format as JSON: #89168
- IsolatedDevBuild flag removal: #89167
- fix: coerce HEAD to GET for internal images: #84180
- Upgrade React from
10680271-20260126to230772f9-20260128: #89250 - Upgrade
tarused to extract SWC binary : #89158 - Sort prerender manifest routes: #89246
- Track vary params for segments without server-side param access: #88998
- Optimistic routing: client-side route prediction: #88965
- Keep pages/404.js to be able to dynamically render it anyway: #89263
- fix: fully static pages should emit & serve static rsc payloads: #89202
Misc Changes
- Turbopack: change AsyncModulesInfo to use keyed reads: #89216
- Turbopack: selective reads of defined env vars in module analysis: #88759
- Turbopack: add support for turbopackOptional: true: #89227
- Turbopack: fix tracking modifications for transient and data: #89228
- [ci] Clear Jest transform cache: #89247
- Turbopack: Make the globals we pass to workers configurable: #88773
- Accept deploy script and log script as inputs: #89253
- [turbopack] mark persistent_task_type as inline: #89185
- [test] Add test suite name for Tests failures table: #89258
Credits
Huge thanks to @davidgolden, @sokra, @eps1lon, @huozhi, @icyJoseph, @mischnic, @mmastrac, @LucianBuzzo, @ijjk, @lukesandberg, @devjiwonchoi, @acdlite, and @ztanner for helping!