chore(deps): update all dependencies #4

Merged
c merged 1 commit from renovate/all into main 2026-04-29 21:00:22 +03:00
Collaborator

This PR contains the following updates:

Package Type Update Change
@hookform/resolvers (source) dependencies major ^3.9.1^5.0.0
@types/node (source) devDependencies major ^22^25.0.0
lucide-react (source) dependencies major ^0.577.0^1.0.0
next (source) dependencies major 15.5.1516.2.4
node final major 18-alpine25-alpine
react-day-picker (source) dependencies major 8.10.19.14.0
react-resizable-panels (source) dependencies major ^2.1.7^4.0.0
recharts dependencies major 2.15.43.8.1
sonner (source) dependencies major ^1.7.1^2.0.0
tailwind-merge dependencies major ^2.5.5^3.0.0
tailwindcss (source) devDependencies major ^3.4.17^4.0.0
typescript (source) devDependencies major ^5^6.0.0
vaul (source) dependencies major ^0.9.6^1.0.0
zod (source) dependencies major ^3.24.1^4.0.0

Release Notes

react-hook-form/resolvers (@​hookform/resolvers)

v5.2.2

Compare Source

Bug Fixes

v5.2.1

Compare Source

Bug Fixes

v5.2.0

Compare Source

Features

v5.1.1

Compare Source

Bug Fixes

v5.1.0

Compare Source

Features
  • support Zod 4, Zod v4 mini, and retains compatibility with Zod v3. (#​777) (8d083bd)

v5.0.1

Compare Source

Bug Fixes
  • relax version constraint for react-hook-form 7.55.0 → ^7.55.0 (#​758) (6e88393)

v5.0.0

Compare Source

Features
BREAKING CHANGES
  • Requires react-hook-form@​7.55.0 or higher

Before
Prior to V5, some projects used manual types like

useForm<FormValues>();

After
With V5, the correct approach is:

useForm<Input, Context, Output>();
useForm<FormInputValues, Context, FormOutputValues>();

This update enables distinct outputs when utilizing features like transform from validation libraries.

ℹ️ The best approach is to let the types be inferred from your schema, rather than manually defining them.

v4.1.3

Compare Source

Bug Fixes
  • escape square brackets in field name regex pattern (#​752) (50dd4ad)

v4.1.2

Compare Source

Bug Fixes

v4.1.1

Compare Source

Bug Fixes
  • standard-schema: Propertly handle object path segments (#​746) (8ffada0)

v4.1.0

Compare Source

Features

v4.0.0

Compare Source

Bug Fixes
  • add support for names option (#​713) (985c48d)
  • arktypeResolver: resolve type error when schema is defined from an ArkType scope (#​732) (3233667)
  • handle raw: true option to pass form submission values correctly (#​733) (7807f95)
  • validateFieldsNatively: handle undefined object when reading 'refs' (#​734) (3da2054)
Features
  • ajv: Keep original validation type while using errorMessage (#​728) (5030a59)
  • effectResolver: returns either all errors or only the first one based on criteriaMode (#​737) (12d7d8e)
  • standard-schema: add standard-schema resolver (#​738) (b75a95a)
BREAKING CHANGES
  • ajv: The AJV Resolver now unwraps the errorMessage object to return the original error types. This update may introduce breaking changes to your projects.
lucide-icons/lucide (lucide-react)

v1.14.0: Version 1.14.0

Compare Source

What's Changed

Full Changelog: https://github.com/lucide-icons/lucide/compare/1.13.0...1.14.0

v1.13.0: Version 1.13.0

Compare Source

What's Changed

Full Changelog: https://github.com/lucide-icons/lucide/compare/1.12.0...1.13.0

v1.12.0: Version 1.12.0

Compare Source

What's Changed

Full Changelog: https://github.com/lucide-icons/lucide/compare/1.10.0...1.12.0

v1.11.0: Version 1.11.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/1.9.0...1.11.0

v1.10.0: Version 1.10.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/1.9.0...1.10.0

v1.9.0: Version 1.9.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/1.8.0...1.9.0

v1.8.0: Version 1.8.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/1.7.0...1.8.0

v1.7.0: Version 1.7.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/1.6.0...1.7.0

v1.6.0: Version 1.6.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/1.5.0...1.6.0

v1.5.0: Version 1.5.0

Compare Source

What's Changed

Full Changelog: https://github.com/lucide-icons/lucide/compare/1.4.0...1.5.0

v1.4.0: Version 1.4.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/1.3.0...1.4.0

v1.3.0: Version 1.3.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/1.2.0...1.3.0

v1.2.0: Version 1.2.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/1.1.0...1.2.0

v1.1.0: Version 1.1.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/1.0.2...1.1.0

v1.0.1: Lucide V1 🚀

Compare Source

After years of work and dedication, Lucide Version 1 has been officially released!. This milestone marks a significant achievement in our journey to provide a comprehensive and versatile icon library for developers and designers alike.

It's been quite a ride — especially over the past year. Lucide has grown to over 30 million downloads per week and is used by million of projects worldwide. This release is a testament to the hard work of our community and contributors who have helped shape Lucide into what it is today.

Thank you to everyone who has supported us along the way. We couldn't have done this without you!

What's New in Version 1? TLDR;

  • Removed brand icons, see our brand logo statement for more details.
  • Improved documentation, guides per framework.
  • Improved accessibility, aria-hidden is now set by default on icons.
  • Removed UMD build, only ESM and CJS now (exception for the lucide package).
  • Package rename from lucide-vue-next to @lucide/vue.
  • A modern, standalone implementation for Angular, @lucide/angular
  • Support for context providers in React, Vue, Svelte, and Solid.
  • Stable code points for Lucide font.
  • Support for shadow DOM in the lucide package.
  • Many bug fixes and improvements.

See more at Lucide Version 1

v1.0.0: Version 1.0.0

Compare Source

[!WARNING]
This release was published unintentionally. We've corrected this in v1.0.1, which should be used instead.

What's Changed

New Contributors

Full Changelog: https://github.com/lucide-icons/lucide/compare/0.577.0...1.0.0

vercel/next.js (next)

v16.2.4

Compare Source

[!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.3

Compare Source

[!NOTE]
This release is backporting security and bug fixes. For more information about the fixed security vulnerability, please see https://vercel.com/changelog/summary-of-cve-2026-23869. The release does not include all pending features/changes on canary.

Core Changes
  • Ensure app-page reports stale ISR revalidation errors via onRequestError (#​92282)
  • Fix [Bug]: manifest.ts breaks HMR in Next.js 16.2 (#​91981 through #​92273)
  • Deduplicate output assets and detect content conflicts on emit (#​92292)
  • Fix styled-jsx race condition: styles lost due to concurrent rendering (#​92459)
  • turbo-tasks-backend: stability fixes for task cancellation and error handling (#​92254)
Credits

Huge thanks to @​icyJoseph, @​sokra, @​wbinnssmith, @​eps1lon and @​ztanner for helping!

v16.2.2

Compare Source

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

Core Changes
  • backport: Move expanded adapters docs to API reference (#​92115) (#​92129)
  • Backport: TypeScript v6 deprecations for baseUrl and moduleResolution (#​92130)
  • [create-next-app] Skip interactive prompts when CLI flags are provided (#​91840)
  • next.config.js: Accept an option for serverFastRefresh (#​91968)
  • Turbopack: enable server HMR for app route handlers (#​91466)
  • Turbopack: exclude metadata routes from server HMR (#​92034)
  • Fix CI for glibc linux builds
  • Backport: disable bmi2 in qfilter #​92177
  • [backport] Fix CSS HMR on Safari (#​92174)
Credits

Huge thanks to @​nextjs-bot, @​icyJoseph, @​ijjk, @​gaojude, @​wbinnssmith, @​lukesandberg, and @​bgw for helping!

v16.2.1

Compare Source

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

Core Changes
  • docs: post release amends (#​91715)
  • docs: fix broken Activity Patterns demo link in preserving UI state guide (#​91698)
  • Fix adapter outputs for dynamic metadata routes (#​91680)
  • Turbopack: fix webpack loader runner layer (#​91727)
  • Fix server actions in standalone mode with cacheComponents (#​91711)
  • turbo-persistence: remove Unmergeable mmap advice (#​91713)
  • Fix layout segment optimization: move app-page imports to server-utility transition (#​91701)
  • Turbopack: lazy require metadata and handle TLA (#​91705)
  • [turbopack] Respect {eval:true} in worker_threads constructors (#​91666)
Credits

Huge thanks to @​icyJoseph, @​abhishekmardiya, @​ijjk, @​mischnic, @​unstubbable, @​sokra, and @​lukesandberg for helping!

v16.2.0

Compare Source

[!TIP]
Check out our Next v16.2 Blog Post to learn more about this release.

Core Changes
  • Upgrade React from f93b9fd4-20251217 to 65eec428-20251218: #​87323
  • Turbopack: Create junction points instead of symlinks on Windows: #​87606
  • Turbopack: Symlink handling follow-up: #​87637
  • Add experimental routing package for resolving adapter routes: #​86404
  • Ensure outputs are correct with cache components in deployment adapters: #​87018
  • Move off of deprecated url.parse: #​87257
  • [strict-route-types] Add experimental.strictRouteTypes config: #​87378
  • misc: fix type check log for CI envs: #​87838
  • fix: revalidateTag with profile should not trigger client cache invalidation: #​88069
  • chore: warn when running tests against stale build: #​88001
  • Redesign default error pages with cleaner, more user-friendly UI: #​87988
  • dx: avoid next-env.d.ts change in dev: #​88103
  • prevent browser cache from using stale RSC responses from previous builds: #​86554
  • [strict-route-types] Typecheck App Router page props: #​87386
  • [strict-route-types] Enforce common React Component return types in App Router: #​87389
  • [strict-route-types] Switch to satisfies when validating page and route modules: #​87398
  • [strict-route-types] Don't reject number in config.api.bodyParser.sizeLimit when validating route: #​87633
  • Revert "dx: avoid next-env.d.ts change in dev": #​88153
  • [strict-route-types] Typecheck pages router routes in absence of App Router: #​87628
  • [strict-route-types] Ensure cache profiles and routes are type-checked even if .next is excluded: #​87768
  • add compilation error for taint when not enabled: #​88173
  • feat(next/image)!: add images.maximumResponseBody config: #​88183
  • Add maximum size limit for postponed body parsing: #​88175
  • metadata: use fixed segment in dynamic routes with static metadata files: #​88113
  • feat: add --experimental-cpu-prof flag for dev, build, and start: #​87946
  • Add experimental option to use no-cache instead of no-store in dev: #​88182
  • fix overlay frames cannot be opened sometimes: #​88210
  • Handle pnpm-workspace.yaml while searching for monorepo root: #​74818
  • Add more debug logs to 'use cache' wrapper: #​88219
  • Omit unused arguments from 'use cache' function calls: #​86920
  • Only log pending revalidates... debug log if applicable: #​88221
  • fix(next/image): bump sharp@​0.34.5: #​88238
  • Disallow javascript urls in router methods and redirects: #​88185
  • Fix relative same host redirects in node middleware: #​88253
  • Remove loadConfig from main development process, pass value from child process: #​88230
  • Update deploy adapters outputs and handler interfaces for node and edge: #​88247
  • Move Ready in time before handler initialization: #​88235
  • next/image: support custom cache handlers: #​88248
  • feat: add Claude Code plugin marketplace with Cache Components skill: #​87993
  • refactor: consolidate PPR into cacheComponents architecture: #​88243
  • Turbopack: include fewer traced files for standalone: #​88322
  • feat(turbopack): add resolve plugin condition variant of Always and Never: #​88190
  • perf: use length = 0 to clear the logging array: #​88244
  • Time logs: Show full millisecond instead of 1 decimal: #​88313
  • [turbopack] Enable inferring module side effects by default: #​87216
  • Track search string as part of "refresh state": #​87203
  • Pass RouteTree into navigation function: #​87256
  • Read from segment cache unknown routes: #​87293
  • Pass loading boundary as part of RSC data: #​87825
  • Revert "refactor: consolidate PPR into cacheComponents architecture (#​88243)": #​88421
  • fix: support TypeScript noUncheckedSideEffectImports for CSS imports: #​88199
  • Don't import typescript at runtime: #​88321
  • fix: use RDC for server action requests: #​88129
  • Warn when overriding Cache-Control header on /_next/ routes: #​88353
  • [prebuilt-skew-protection] feat: adding in automatic deploymentId: #​88012
  • Revert "[prebuilt-skew-protection] feat: adding in automatic deploymentId": #​88449
  • Turbopack: Update reqwest, remove experimental system TLS feature: #​88290
  • Revert "prevent browser cache from using stale RSC responses from pre…: #​88457
  • Turbopack: retain loader tree order for metadata: #​88487
  • Turbopack: more dead code: #​88505
  • fix(build): prevent route handler manifests from inheriting unrelated client components: #​88419
  • Upgrade React from 65eec428-20251218 to 3e1abcc8-20260113: #​88530
  • Better typesafety for interopDefault: #​88486
  • keep next-env.d.s unchanged between dev and build: #​88428
  • Remove sibling caches from CacheNode tree: #​87991
  • Upgrade React from 3e1abcc8-20260113 to 4a3d993e-20260114: #​88547
  • Finish deleting Mutable from router implementation: #​88046
  • fetch(next/image): reduce maximumResponseBody from 300MB to 50MB: #​88588
  • [CC] Fix dev validation error from server action bound args: #​88600
  • Fix incorrect 'Ready in' time for next start: #​88589
  • feat: server action logging: #​88277
  • Log browser error and warnings in terminal: #​88352
  • Upgrade React from 4a3d993e-20260114 to bef88f7c-20260116: #​88649
  • fix: make RedirectType constant properties literal types: #​88653
  • Turbopack: add support for matching loaders on resource queries: #​88644
  • fix: capture promisified setImmediate separately: #​88346
  • fix: setImmediate[util.promisify.custom] access fails in edge runtime: #​88685
  • Fix --debug-build-paths bracket escaping for glob patterns: #​88660
  • Add negation pattern support to --debug-build-paths: #​88654
  • Only filter next config if experimental flag is enabled: #​88733
  • [Devtool Indicator] Fix cross alignment: #​88664
  • Turbopack: don't use build id for pages router client-side manifests: #​88641
  • Allow inspecting server with next start --inspect: #​88744
  • Turbopack: Add --debug-build-paths support to filter routes: #​88655
  • Upgrade React from bef88f7c-20260116 to 41b3e9a6-20260119: #​88756
  • Use rewritten pathname for implicit cache tags: #​88732
  • Upgrade React from 41b3e9a6-20260119 to d2908752-20260119: #​88774
  • Add experimental_gesturePush to App Router: #​88776
  • Rename rewroteURL to rewrittenPathname in request metadata: #​88751
  • Simplify getImplicitTags to accept pathname instead of url object: #​88753
  • Add NEXT_DEPLOYMENT_ID global: #​86738
  • Turbopack: remove deployment id suffix from client reference manifest chunks: #​88741
  • Inject <html data-dpl-id> and don't inline it into JS anymore: #​88761
  • [metadata] match the Metadata and ResolvedMetadata type: #​88739
  • Reuse bfcache data during Full prefetches: #​88606
  • Embed static sibling info in route tree: #​88692
  • Fix revalidatePath with params and trailing slash when deployed: #​88623
  • fix: preserve cache behavior for PPR fallback shells with root params: #​88556
  • Upgrade React from d2908752-20260119 to b546603b-20260121: #​88860
  • stabilize browser log forward options: #​88857
  • [devtools] Wrap long file names of stack frames in the error overlay: #​88886
  • [devtools] Fix notch coloring of error overlay in forced colors mode: #​88892
  • Remove deploymentId from App Router RenderOptsPartial: #​88866
  • feat: implement LRU cache with invocation ID scoping for minimal mode response cache: #​88509
  • [prebuilt-skew-protection] feat: adding in automatic deploymentId: #​88496
  • [devtool] Add hydration diff indicator for diff lines: #​88919
  • Revert "[prebuilt-skew-protection] feat: adding in automatic deploymentId": #​88942
  • [turbopack] add task type infromation to the print_cache_item_size feature: #​88925
  • Upgrade React from b546603b-20260121 to 24d8716e-20260123: #​88963
  • Turbopack: add ?dpl= to all asset urls returned by Turbopack: #​88828
  • feat(next-codemod): add agents-md command for AI coding agents: #​88961
  • Update font data: #​88975
  • Improve agents-md prompt to force doc retrieval: #​88997
  • [Reapply] Add useEffectEvent to disallowed React APIs in Server Components: #​88985
  • Apply fixes for onBuildComplete and route module: #​88831
  • Rename renderOpts.nextExport to isBuildTimePrerendering: #​88951
  • docs: fix typos in README.mds: #​89022
  • refactor: consume global-error from loader tree: #​88437
  • Fix chunk loading when using __turbopack_load_by_url__ with query: #​88899
  • [mcp] change the mcp endpoint response to JSON: #​88911
  • Reapply "[turbopack] Add bundling support for worker_threads" (#​88725): #​88967
  • fix: ensure LRU cache items have minimum size of 1 to prevent unbounded growth: #​89040
  • Upgrade React from 24d8716e-20260123 to 8c34556c-20260126: #​89066
  • Use null-prototype objects in server actions manifests: #​89069
  • Re-enable types-and-precompiled: #​89070
  • Apply segment changes to adapters outputs: #​89072
  • Improve no response route handler error: #​89036
  • Limit number of server action arguments to 1000: #​89068
  • [prebuilt-skew-protection] feat: adding in automatic deploymentId: #​88958
  • Decouple route stale time from segment-level data: #​88834
  • Decouple route and segment cache lifecycles: #​88989
  • [ci] Silence baseline-browser-mapping warnings: #​89175
  • [Cache Components] Prevent streaming fetch calls from hanging in dev: #​89171
  • React types update: #​89110
  • [nextjs] feat: removing length requirement: #​89173
  • add GPTBot to matcher for known bots: #​89188
  • Ensure .md licenses 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-20260126 to 230772f9-20260128: #​89250
  • Upgrade tar used 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
  • 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
  • Improve lock dir error message: #​89119
  • Ensures browserslist doesn't issue outdated warnings for baseline-browser-mapping: #​89287
  • Replace build id in Pages data routes with deployment id: #​88959
  • Upgrade React from 230772f9-20260128 to da641178-20260129: #​89301
  • Inline handler dependencies instead of tracing: #​89269
  • Turbopack: add rules.*.type config to allow changing the type of a module: #​88788
  • Add experimental.varyParams feature flag: #​89307
  • Fix/zlib mem node: #​89099
  • Revert "Replace build id in Pages data routes with deployment id (#​88959)": #​89323
  • 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
  • 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
  • Replace flight navigation build id field with header: #​88855
  • Upgrade React from da641178-20260129 to ed4bd540-20260202: #​89401
  • Upgrade React from ed4bd540-20260202 to b1533b03-20260203: #​89444
  • Upgrade React from b1533b03-20260203 to 3e00319b-20260203: #​89449
  • Rename CACHE_ONE_YEAR for clarity and fix usage: #​89450
  • [Codemod] Fix agents-md on Windows: #​89319
  • Experimental deferred entries handling: #​88347
  • Add experimental.reportSystemEnvInlining for 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
  • Ensure module contexts are always included in adapter traces: #​89508
  • Don't insert build id comment in HTML: #​89478
  • Clarify type checking error message: #​89525
  • Require explicit cacheLife on outer "use cache" when nesting short-lived caches: #​89481
  • [Instant] Instant validation in Dev: #​89077
  • Upgrade React from 3e00319b-20260203 to 95ffd6cd-20260205: #​89550
  • Turbpopack: fix is_persistent_caching_enabled: #​89533
  • Fix a small doc typo: #​89553
  • 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
  • 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
  • Upgrade React from 95ffd6cd-20260205 to 2dd9b7cf-20260208: #​89681
  • Include AggregateError.errors in terminal output: #​88999
  • fix(image): findClosestQuality returns 0 for low quality values: #​89621
  • Upgrade React from 2dd9b7cf-20260208 to 272441a9-20260209: #​89722
  • Avoid using unclosing prefetch streams in the browser: #​89610
  • 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
  • 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
  • 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
  • [AI] Ship bundled docs in next and generate AGENTS.md in create-next-app: #​89850
  • Turbopack: Implement server hmr in nodejs dev runtime: #​89130
  • 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
  • [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
  • Upgrade React from 272441a9-20260209 to 6066c782-20260212: #​89923
  • Add a better error message for when turbopack cannot be loaded: #​89633
  • 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-prerender is set: #​89834
  • Append deployment id query string for next-font: #​89960
  • Fix parallel routes with deferred entries: #​89967
  • Rename node extension utils for clarity: #​89970
  • Model abandoning by signal: #​89971
  • Fix missing incremental cache in middleware unstable_cache: #​89980
  • Run fast immediates during prerender abort to fix flaky I/O stack traces: #​89969
  • [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 installed next version: #​89166
  • docs: agent skills, pr-status script, and AGENTS.md updates (1/8): #​89857
  • Ignore prefetch={true} on Links to routes with instant: #​90061
  • Expand deferred entries test suite and fix turbopack build: #​90057
  • Use StageController for runtime prerendering: #​89972
  • 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
  • [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
  • 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-20260212 to 4842fbea-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
  • [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
  • 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
  • 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
  • Revert "Handle null history.state in client-side router popstate handler": #​90268
  • [devtools] Omit empty looking error messages: #​90256
  • Fix runtime prefetch isPartial byte stripping when deployed: #​90272
  • Upgrade React from 2ba30655-20260219 to ab18f33d-20260220: #​90279
  • validate sync IO in generateMetadata according to Page's prefetchable status: #​90164
  • Turbopack: support Subresource Integrity
    #​90152
  • segment cache: add test for passing unawaited promise to context provider: #​89339
  • Fix route.replace crash with --debug-build-paths: #​90312
  • refactor(app-render): extract stream-ops and debug-channel modules (5/8): #​89858
  • [turbopack] Consider ignoreList of 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
  • Fix route cache keying for unprefetched navigations: #​90400
  • Add support for Next.js error telemetry for AggregateError: #​90391
  • Fix config.reactProductionProfiling for 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-20260220 to c0060cf2-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
  • Fix params leaking into instant navigation shell in dev: #​90455
  • Limit build workers to pages+1: #​90475
  • 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_DIR is 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_instant is used in Client Component: #​90396
  • [test] Fix jest-haste-map warnings: #​82995
  • Don't require collect-build-traces with Turbopack: #​90586
  • Enable experimental.reactDebugChannel by default: #​90310
  • Less dynamic pages manifest path: #​90581
  • Upgrade React from c0060cf2-20260224 to 98ce535f-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
  • Fix edge index page _next/data route: #​90611
  • Turbopack server hmr: Implement restart event: #​90550
  • Turbopack: Panic if a top-level task attempts an eventually consistent read: #​89735
  • Fix middleware case with adapters: #​90624
  • 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 dev and next build: #​90603
  • tests: Assert dpl query string in all tests for Turbopack: #​90592
  • [instant] Don't add debug stack to random unstable_instant exports: #​90273
  • Adapter: STATIC_FILE.immutableHash: #​90045
  • Turbopack: experimental.immutableAssetToken: #​88607
  • remove runInContext callbacks from stream-ops: #​90609
  • Turbopack: restrict server HMR to app pages: #​90663
  • 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
  • [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
  • 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
  • docs: error component unstable_retry(): #​89732
  • Stub adapterPath with experimental.runtimeServerDeploymentId: #​90790
  • Conditionally load uncommon paths: #​90514
  • 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-20260226 to 4cc5b7a9-20260303: #​90827
  • Add transitionTypes prop to next/link: #​90701
  • [otel] fix missing http.route attribute: #​90832
  • [otel] set parent span name: #​90840
  • Update default error pages: #​90469
  • Replace PPR config helpers with cacheComponents checks: #​90704
  • Cached Navigations: Cache visited fully static pages in the segment cache: #​90306
  • Remove isRoutePPREnabled from render options and delete dead PPR branch: #​90713
  • Use page extensions in next-swc transforms applying to pages: #​90650
  • Cached Navigations: Cache static stage of partially static initial HTML: #​90539
  • Remove PrerenderStorePPR type and all prerender-ppr switch cases: #​90721
  • Clean up legacy PPR references in test fixtures: #​90725
  • Cached Navigations: Cache runtime stage data from navigation requests: #​90666
  • Remove legacy PPR postpone cluster: #​90726
  • partial fallbacks: add adapter flag: #​90395
  • Address review feedback: extract modules, clean up imports: #​90813
  • Add trace spans for turbopack persistence in .next/trace: #​90397
  • Upgrade React from 4cc5b7a9-20260303 to 3bc2d414-20260304: #​90876
  • Fix prefetch inlining build failure with dynamic routes: #​90899
  • Update @vercel/og and satori vendors: #​90933
  • Batch require cache deletion to avoid quadratic scanning: #​90625
  • Revert legacy PPR removal: #​90948
  • Rewrite instant validation to use depth-based URL boundary discovery: #​90905
  • Add experimental.cachedNavigations feature flag: #​90928
  • preserve allowQuery for partial fallback shells: #​90887
  • Cache runtime data for partially static pages on initial load (resume): #​90888
  • re-introduce partial fallback -> route upgrading: #​89063
  • fix: Don't fall through to catch-all when static child subtree doesn't match: #​90957
  • Bump Node heap limit for lint-no-typescript to avoid OOM in CI: #​90996
  • Upgrade React from 3bc2d414-20260304 to 46103596-20260305: #​90989
  • fix: trigger MPA navigation for server action redirects with build ID mismatch: #​89946
  • Improve webpack loader error messages and handling: #​89698
  • Turbopack: implement module.hot.accept(deps, cb) and module.hot.decline(deps): #​90443
  • partial fallbacks: gate behind experimental flag: #​91123
  • fix: app-page URL normalization: #​91121
  • Updates to Instant Navs devtools functionality: #​91005
  • Trace upload: add git and environment info: #​91124
  • fix(css): rewrite MiniCssExtractPlugin insert function to ES5 to support legacy browsers: #​90556
  • Revert "Address review feedback: extract modules, clean up imports": #​91159
  • [turbopack] Render code frames on the turbopack side: #​90534
  • Add experimental.lightningCssFeatures config option: #​90901
  • fix: correct appPaths sort order for parallel routes with route groups: #​91160
  • Tracing: tag spans as failed if their runner fn fails: #​91206
  • Adds a Start button to the Instant Navs panel to initiate inspection …: #​91216
  • Preserve RSC metadata in Proxy request with skipProxyUrlNormalize: #​91213
  • [cna] Bump picocolors to 1.1.1: #​91252
  • [Instant] Build-time validation: #​90964
  • [Instant] fix instant config suggested by editor plugin: #​91262
  • chore(deps): Bump tar from 7.5.7 to 7.5.11 in /packages/next: #​91233
  • Upgrade React from 46103596-20260305 to 5e9eedb5-20260312: #​91272
  • feat(server): expose requestMeta router helpers and merge fallback context: #​91235
  • [Instant] Show owner stack for validation-blocking errors: #​91277
  • Hydrate page loads during instant navigation testing: #​91207
  • perf: use Buffer.from for base64 encoding of binary Flight data: #​91221
  • Skip dimming when --inspect is used: #​91271
  • Respect generateStaticParams in instant navigation shell: #​91316
  • [Prefetch Inlining] Generate size-based hints on server: #​90891
  • Wire cache handlers in edge paths and add e2e regression coverage: #​91236
  • Expose edge runtime fields in build-complete: #​91239
  • [turbopack] Remove turbo_tasks::function from ModuleReference getters: #​91229
  • [Turbopack] write route bundle stats to .next/diagnostics/route-bundle-stats.json: #​90949
  • partial fallbacks: only upgrade shells with remaining prerenderable params: #​91158
  • partial fallbacks: complete generic shells into more specific shells: #​91231
  • Add eval and docs for unstable_instant: #​91334
  • Simplify scroll restoration with shared ScrollRef on CacheNode: #​91348
  • fix: test-cargo-unit CI job timing out since LTO was enabled: #​91424
  • fix(build): don't block SSG on telemetry flush, add persistence spans to trace-build: #​91335
  • Ready in X - prints wrong timing on dev server restart: #​90874
  • Show generated code from loaders in parse error messages: #​89898
  • Remove unused layer from server actions manifest: #​91425
  • Support accessing root params in generateStaticParams: #​91189
  • Avoid undefined outer work unit store in "use cache": #​91190
  • Add unstable_dynamicStaleTime route segment config: #​91437
  • [next-playwright] Use unique cookie values for instant navigation testing lock: #​91250
  • Add unstable_catchError() API for component-level error recovery: #​89688
  • docs(turbopack): Fix all warnings in cargo doc --no-deps --workspace, and run rustdoc as part of our CI checks: #​91339
  • Patch improvements into http-proxy lib: #​91480
  • Disallow Server Action submissions from privacy-sensitive contexts: #​91478
  • Fix startup warmup for empty-shell app route cache: #​91470
  • Fix unstable_catchError type inference for fallback props: #​91485
  • Support accessing root params in "use cache" functions: #​91191
  • Fix inconsistent cache life/tags propagation for cache handler hits: #​91454
  • Upgrade React from 5e9eedb5-20260312 to c80a0750-20260312: #​91324
  • Error when accessing undefined root params in generateStaticParams: #​91519
  • Buffer prefetch response before passing to Flight client: #​91487
  • [Segment Cache] Always upsert on prefetch completion: #​91488
  • Track vary params during runtime prefetches: #​89297
  • [react-sync] Allow locking in manual sync: #​91509
  • Remove devCacheControlNoCache experimental option (hard-code no-cache): #​91503
  • fix allowedDevOrigins for no-cors requests: #​91506
  • Remove webpack stats generation from Turbopack: #​91515
  • Upgrade React from c80a0750-20260312 to 3f0b9e61-20260317: #​91522
  • Move adapterPath from experimental to stable top-level config: #​91535
  • block disallowed dev origins by default: #​91507
  • Turbopack: Merge release-with-assertions-no-lto profile into release-with-assertions: #​91530
  • improve allowedDevOrigins error: #​91521
  • Add group depth tracking to instant validation boundary discovery: #​91208
Documentation Changes
  • docs: next experimental-analyze: #​87272
  • docs: use cache private redo: #​87111
  • docs: fix highlight in 05-server-and-client-components.mdx: #​87347
  • Guide: Update Optimizing Package Bundling to include new Bundle Analyzer: #​87246
  • docs: generateMetadata and generateViewport w/ CC: #​87218
  • docs: tweaks/fixes to papercuts: #​87445
  • docs: fix typos and clarify examples in Cache Components guide: #​87530
  • [docs] add get_routes in mcp available tools: #​88181
  • Update generateMetadata in client component error: #​88172
  • docs: fix CSP example to only include unsafe-eval in development: #​88407
  • docs: add useSearchParams and useParams documentation for Pages Router: #​88429
  • docs: fix Pages Router fonts documentation showing App Router examples: #​88326
  • doc: add details of mcp client integration: #​88543
  • Turbopack: query conditions in rules follow-ups: #​88801
  • Docs: Add Next.js Glossary: #​88811
  • docs: Server functions rename: #​86827
  • docs: Update Partytown URLs and package reference: #​88928
  • docs: improve clarity in cache components and server/client docs: #​88946
  • docs: revalidatePath w/ rewrites and trailing slash: #​88956
  • Cache Component Guide: Building public, mostly static pages: #​87248
  • Turbopack: Add postcss.config.ts support: #​89049
  • CC Guide: Fix filenames, reduce line breaks: #​89065
  • docs: fix code highlight in 07-fetching-data.mdx: #​88727
  • [docs] Always include unsafe-eval in dev Content-Security-Policy: #​89163
  • Turbopack: add support for turbopackOptional: true: #​89227
  • docs: Rename Error component to ErrorPage: #​89284
  • docs: replace 'can not' with 'cannot': #​89354
  • docs: Fix custom server code snippets: #​89400
  • Snippet multi package syntax: #​89381
  • Fix indentation of types of tests in docs: #​89409
  • docs: Fix syntax in proxy example code: #​89395
  • docs: fix ISR guide link to res.revalidate: #​89342
  • Fix spelling in robots.mdx documentation: #​89565
  • Remove more examples: #​89709
  • clarify unstable_cache replacement with use cache: #​89435
  • docs: correct use term: #​89438
  • [docs] Add RedirectType usage example to permanentRedirect: #​89833
  • Next CLI flags documentation: #​89750
  • docs: adapt lead to source path patterns: #​89392
  • docs: Papercuts Feb26: #​89484
  • After() docs requests API: #​89837
  • docs: Move browserToTerminal into logging: #​88901
  • Update documentation to explain behavior in a Catch-all route: #​89742
  • docs: add deploymentId config and clarify encryption key for self-hosting: #​89795
  • docs: adapterPath amends: #​89930
  • docs: improve next/image localPatterns error page: #​89914
  • docs: inline-css dev-action oriented: #​89064
  • docs: document cacheLife expire omission behavior and fix default preset value: #​89913
  • docs: Activity boundary guide: #​89126
  • Turbopack: Add inline loader configuration via import attributes: #​89644
  • docs: fix broken blockquote formatting in API Routes page: #​89966
  • docs: clarify async instrumentation register request : #​90039
  • Add AGENTS.md and bundled docs guide: #​89973
  • In-Depth Explanation of React Version Handling Doc: #​89426
  • Next.js sticky scroll standards: #​90197
  • docs: fixes typo in manifest.mdx regarding Route Handler note: #​90394
  • docs: improve form guide consistency and validation examples: #​90361
  • docs: rework version staleness: #​90192
  • docs: clarify that next upgrade is for 16.1.x+: #​90435
  • Add not-found.js / notFound() links to Status Codes section: #​88332
  • docs: update with more patterns and decision based: #​90203
  • docs: add Docker Standalone and Docker Export examples to Deploying page: #​90386
  • feat: Join guides and frame around UI preservation: #​90595
  • docs(deploying): add Hostinger Web Apps Hosting to Node.js deployment options: #​90246
  • docs: fix navigationType value and variable name in useReportWebVitals: #​90599
  • Accept header content negotiation: #​90607
  • docs: clarify native
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [@hookform/resolvers](https://react-hook-form.com) ([source](https://github.com/react-hook-form/resolvers)) | dependencies | major | [`^3.9.1` → `^5.0.0`](https://renovatebot.com/diffs/npm/@hookform%2fresolvers/3.10.0/5.2.2) | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | devDependencies | major | [`^22` → `^25.0.0`](https://renovatebot.com/diffs/npm/@types%2fnode/22.19.17/25.6.0) | | [lucide-react](https://lucide.dev) ([source](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react)) | dependencies | major | [`^0.577.0` → `^1.0.0`](https://renovatebot.com/diffs/npm/lucide-react/0.577.0/1.14.0) | | [next](https://nextjs.org) ([source](https://github.com/vercel/next.js)) | dependencies | major | [`15.5.15` → `16.2.4`](https://renovatebot.com/diffs/npm/next/15.5.15/16.2.4) | | [node](https://github.com/nodejs/node) | final | major | `18-alpine` → `25-alpine` | | [react-day-picker](https://daypicker.dev) ([source](https://github.com/gpbl/react-day-picker)) | dependencies | major | [`8.10.1` → `9.14.0`](https://renovatebot.com/diffs/npm/react-day-picker/8.10.1/9.14.0) | | [react-resizable-panels](https://react-resizable-panels.vercel.app/) ([source](https://github.com/bvaughn/react-resizable-panels)) | dependencies | major | [`^2.1.7` → `^4.0.0`](https://renovatebot.com/diffs/npm/react-resizable-panels/2.1.9/4.10.0) | | [recharts](https://github.com/recharts/recharts) | dependencies | major | [`2.15.4` → `3.8.1`](https://renovatebot.com/diffs/npm/recharts/2.15.4/3.8.1) | | [sonner](https://sonner.emilkowal.ski/) ([source](https://github.com/emilkowalski/sonner)) | dependencies | major | [`^1.7.1` → `^2.0.0`](https://renovatebot.com/diffs/npm/sonner/1.7.4/2.0.7) | | [tailwind-merge](https://github.com/dcastil/tailwind-merge) | dependencies | major | [`^2.5.5` → `^3.0.0`](https://renovatebot.com/diffs/npm/tailwind-merge/2.6.1/3.5.0) | | [tailwindcss](https://tailwindcss.com) ([source](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss)) | devDependencies | major | [`^3.4.17` → `^4.0.0`](https://renovatebot.com/diffs/npm/tailwindcss/3.4.19/4.2.4) | | [typescript](https://www.typescriptlang.org/) ([source](https://github.com/microsoft/TypeScript)) | devDependencies | major | [`^5` → `^6.0.0`](https://renovatebot.com/diffs/npm/typescript/5.9.3/6.0.3) | | [vaul](https://vaul.emilkowal.ski/) ([source](https://github.com/emilkowalski/vaul)) | dependencies | major | [`^0.9.6` → `^1.0.0`](https://renovatebot.com/diffs/npm/vaul/0.9.9/1.1.2) | | [zod](https://zod.dev) ([source](https://github.com/colinhacks/zod)) | dependencies | major | [`^3.24.1` → `^4.0.0`](https://renovatebot.com/diffs/npm/zod/3.25.76/4.3.6) | --- ### Release Notes <details> <summary>react-hook-form/resolvers (@&#8203;hookform/resolvers)</summary> ### [`v5.2.2`](https://github.com/react-hook-form/resolvers/releases/tag/v5.2.2) [Compare Source](https://github.com/react-hook-form/resolvers/compare/v5.2.1...v5.2.2) ##### Bug Fixes - **zod:** fix output type for Zod 4 resolver ([#&#8203;803](https://github.com/react-hook-form/resolvers/issues/803)) ([e95721d](https://github.com/react-hook-form/resolvers/commit/e95721d3c8c6d6e555508b0e7b21c6ac801360cf)) ### [`v5.2.1`](https://github.com/react-hook-form/resolvers/releases/tag/v5.2.1) [Compare Source](https://github.com/react-hook-form/resolvers/compare/v5.2.0...v5.2.1) ##### Bug Fixes - discriminated union for zod v4 mini ([#&#8203;784](https://github.com/react-hook-form/resolvers/issues/784)) ([49a0d7b](https://github.com/react-hook-form/resolvers/commit/49a0d7ba939f58e04ca2d01a98949fc70f50b53e)) - zod v4 peer deps ([#&#8203;798](https://github.com/react-hook-form/resolvers/issues/798)) ([2d28e6a](https://github.com/react-hook-form/resolvers/commit/2d28e6aca611b042e07da0ae4cf448adbe78e1f3)) - **zod:** fix output type for Zod 4 resolver ([#&#8203;801](https://github.com/react-hook-form/resolvers/issues/801)) ([bc09647](https://github.com/react-hook-form/resolvers/commit/bc09647a5eec21d07097a8ccf89fb52ebf50a1ec)) ### [`v5.2.0`](https://github.com/react-hook-form/resolvers/releases/tag/v5.2.0) [Compare Source](https://github.com/react-hook-form/resolvers/compare/v5.1.1...v5.2.0) ##### Features - **ajv:** add ajv-formats for ajvResolver ([#&#8203;797](https://github.com/react-hook-form/resolvers/issues/797)) ([f040039](https://github.com/react-hook-form/resolvers/commit/f04003972a3cc7875beb073ff88c942deb6a2086)) ### [`v5.1.1`](https://github.com/react-hook-form/resolvers/releases/tag/v5.1.1) [Compare Source](https://github.com/react-hook-form/resolvers/compare/v5.1.0...v5.1.1) ##### Bug Fixes - zod peer dep issue ([#&#8203;780](https://github.com/react-hook-form/resolvers/issues/780)) ([79cd8b2](https://github.com/react-hook-form/resolvers/commit/79cd8b284da29a5a42cd5fdafa2e767747fcfcf7)) ### [`v5.1.0`](https://github.com/react-hook-form/resolvers/releases/tag/v5.1.0) [Compare Source](https://github.com/react-hook-form/resolvers/compare/v5.0.1...v5.1.0) ##### Features - support Zod 4, Zod v4 mini, and retains compatibility with Zod v3. ([#&#8203;777](https://github.com/react-hook-form/resolvers/issues/777)) ([8d083bd](https://github.com/react-hook-form/resolvers/commit/8d083bd5f5c3242afa1d59e10b1f72988e7b7e82)) ### [`v5.0.1`](https://github.com/react-hook-form/resolvers/releases/tag/v5.0.1) [Compare Source](https://github.com/react-hook-form/resolvers/compare/v5.0.0...v5.0.1) ##### Bug Fixes - relax version constraint for react-hook-form 7.55.0 → ^7.55.0 ([#&#8203;758](https://github.com/react-hook-form/resolvers/issues/758)) ([6e88393](https://github.com/react-hook-form/resolvers/commit/6e8839343dcfea0fe9b874772a01f3bc551cbb5c)) ### [`v5.0.0`](https://github.com/react-hook-form/resolvers/releases/tag/v5.0.0) [Compare Source](https://github.com/react-hook-form/resolvers/compare/v4.1.3...v5.0.0) ##### Features - infer input/output types from schema ([#&#8203;753](https://github.com/react-hook-form/resolvers/issues/753)) ([6124c59](https://github.com/react-hook-form/resolvers/commit/6124c59a99e9b05604196f8f0c310879033ed58d)) ##### BREAKING CHANGES - Requires react-hook-form\@&#8203;7.55.0 or higher **Before** Prior to V5, some projects used manual types like ```tsx useForm<FormValues>(); ``` **After** With V5, the correct approach is: ```tsx useForm<Input, Context, Output>(); useForm<FormInputValues, Context, FormOutputValues>(); ``` This update enables distinct outputs when utilizing features like `transform` from validation libraries. ℹ️ The best approach is to let the types be inferred from your schema, rather than manually defining them. ### [`v4.1.3`](https://github.com/react-hook-form/resolvers/releases/tag/v4.1.3) [Compare Source](https://github.com/react-hook-form/resolvers/compare/v4.1.2...v4.1.3) ##### Bug Fixes - escape square brackets in field name regex pattern ([#&#8203;752](https://github.com/react-hook-form/resolvers/issues/752)) ([50dd4ad](https://github.com/react-hook-form/resolvers/commit/50dd4add92d4f9837efa1f147870925672f01c15)) ### [`v4.1.2`](https://github.com/react-hook-form/resolvers/releases/tag/v4.1.2) [Compare Source](https://github.com/react-hook-form/resolvers/compare/v4.1.1...v4.1.2) ##### Bug Fixes - **standard-schema:** move [@&#8203;standard-schema/utils](https://github.com/standard-schema/utils) to dependencies ([#&#8203;748](https://github.com/react-hook-form/resolvers/issues/748)) ([ded1746](https://github.com/react-hook-form/resolvers/commit/ded1746ee88778232cd162cff91f3710e90195de)) ### [`v4.1.1`](https://github.com/react-hook-form/resolvers/releases/tag/v4.1.1) [Compare Source](https://github.com/react-hook-form/resolvers/compare/v4.1.0...v4.1.1) ##### Bug Fixes - **standard-schema:** Propertly handle object path segments ([#&#8203;746](https://github.com/react-hook-form/resolvers/issues/746)) ([8ffada0](https://github.com/react-hook-form/resolvers/commit/8ffada0c7a2026ad4d311ca167f15d5b86d63349)) ### [`v4.1.0`](https://github.com/react-hook-form/resolvers/releases/tag/v4.1.0) [Compare Source](https://github.com/react-hook-form/resolvers/compare/v4.0.0...v4.1.0) ##### Features - automatically infer values from schema ([#&#8203;739](https://github.com/react-hook-form/resolvers/issues/739)) ([caaff8d](https://github.com/react-hook-form/resolvers/commit/caaff8ddbac714c7c4de5a56287bdb9469bd0e9a)) ### [`v4.0.0`](https://github.com/react-hook-form/resolvers/releases/tag/v4.0.0) [Compare Source](https://github.com/react-hook-form/resolvers/compare/v3.10.0...v4.0.0) ##### Bug Fixes - add support for names option ([#&#8203;713](https://github.com/react-hook-form/resolvers/issues/713)) ([985c48d](https://github.com/react-hook-form/resolvers/commit/985c48dab56636759914b41af1d57274ebd7d20a)) - **arktypeResolver:** resolve type error when schema is defined from an ArkType scope ([#&#8203;732](https://github.com/react-hook-form/resolvers/issues/732)) ([3233667](https://github.com/react-hook-form/resolvers/commit/3233667a599537a7228e55c6a8862883991a93ac)) - handle `raw: true` option to pass form submission values correctly ([#&#8203;733](https://github.com/react-hook-form/resolvers/issues/733)) ([7807f95](https://github.com/react-hook-form/resolvers/commit/7807f95d627919fa33b9f07656eaa64d2c980505)) - **validateFieldsNatively:** handle undefined object when reading 'refs' ([#&#8203;734](https://github.com/react-hook-form/resolvers/issues/734)) ([3da2054](https://github.com/react-hook-form/resolvers/commit/3da20544bfccca45913a1c1d5638b6142dadb3b5)) ##### Features - **ajv:** Keep original validation type while using `errorMessage` ([#&#8203;728](https://github.com/react-hook-form/resolvers/issues/728)) ([5030a59](https://github.com/react-hook-form/resolvers/commit/5030a59b4dee8f02d469d2ebeda46822e27b2d88)) - **effectResolver:** returns either all errors or only the first one based on criteriaMode ([#&#8203;737](https://github.com/react-hook-form/resolvers/issues/737)) ([12d7d8e](https://github.com/react-hook-form/resolvers/commit/12d7d8e76c99086cb1ed88c692cf89f12f68beeb)) - **standard-schema:** add standard-schema resolver ([#&#8203;738](https://github.com/react-hook-form/resolvers/issues/738)) ([b75a95a](https://github.com/react-hook-form/resolvers/commit/b75a95a170f1c69f49481a40cf7d81ce7bbe0917)) ##### BREAKING CHANGES - **ajv:** The AJV Resolver now unwraps the `errorMessage` object to return the original error types. This update may introduce breaking changes to your projects. </details> <details> <summary>lucide-icons/lucide (lucide-react)</summary> ### [`v1.14.0`](https://github.com/lucide-icons/lucide/releases/tag/1.14.0): Version 1.14.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/1.13.0...1.14.0) #### What's Changed - feat(icons): added `repeat-off` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3102](https://github.com/lucide-icons/lucide/pull/3102) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/1.13.0...1.14.0> ### [`v1.13.0`](https://github.com/lucide-icons/lucide/releases/tag/1.13.0): Version 1.13.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/1.12.0...1.13.0) #### What's Changed - fix(docs): sync URL params with UI state on categories page by [@&#8203;taimar](https://github.com/taimar) in [#&#8203;4111](https://github.com/lucide-icons/lucide/pull/4111) - feat(icons): add `waves-vertical` icon by [@&#8203;jamiemlaw](https://github.com/jamiemlaw) in [#&#8203;3867](https://github.com/lucide-icons/lucide/pull/3867) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/1.12.0...1.13.0> ### [`v1.12.0`](https://github.com/lucide-icons/lucide/releases/tag/1.12.0): Version 1.12.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/1.11.0...1.12.0) #### What's Changed - feat(icon): add folder-bookmark icon by [@&#8203;swastik7805](https://github.com/swastik7805) in [#&#8203;4262](https://github.com/lucide-icons/lucide/pull/4262) - docs(readme): Update readme files by [@&#8203;ericfennis](https://github.com/ericfennis) in [#&#8203;4320](https://github.com/lucide-icons/lucide/pull/4320) - feat(icons): added `astroid` icon by [@&#8203;whoisBugsbunny](https://github.com/whoisBugsbunny) in [#&#8203;4217](https://github.com/lucide-icons/lucide/pull/4217) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/1.10.0...1.12.0> ### [`v1.11.0`](https://github.com/lucide-icons/lucide/releases/tag/1.11.0): Version 1.11.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/1.10.0...1.11.0) #### What's Changed - docs: add missing period to TypeScript Support description by [@&#8203;jglu](https://github.com/jglu) in [#&#8203;4309](https://github.com/lucide-icons/lucide/pull/4309) - fix([@&#8203;lucide/svelte](https://github.com/lucide/svelte)): proper doc comments for svelte components by [@&#8203;blt-r](https://github.com/blt-r) in [#&#8203;4267](https://github.com/lucide-icons/lucide/pull/4267) - chore(deps): bump svgo from 3.3.2 to 3.3.3 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;4119](https://github.com/lucide-icons/lucide/pull/4119) - chore(deps-dev): bump astro from 6.0.8 to 6.1.6 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;4310](https://github.com/lucide-icons/lucide/pull/4310) - feat(icons): add power and quick tags to zap and zap-off by [@&#8203;swastik7805](https://github.com/swastik7805) in [#&#8203;4268](https://github.com/lucide-icons/lucide/pull/4268) - test(build-font): added comprehensive unit tests on build-font tool by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;4315](https://github.com/lucide-icons/lucide/pull/4315) - feat(docs): blur background of framework-select by [@&#8203;Spleefies](https://github.com/Spleefies) in [#&#8203;4238](https://github.com/lucide-icons/lucide/pull/4238) - feat(icon): add heart-x icon by [@&#8203;swastik7805](https://github.com/swastik7805) in [#&#8203;4264](https://github.com/lucide-icons/lucide/pull/4264) - fix(icons): optimised `rotate-3d` icon by [@&#8203;jamiemlaw](https://github.com/jamiemlaw) in [#&#8203;4299](https://github.com/lucide-icons/lucide/pull/4299) - feat(icons): added `layers-minus` icon by [@&#8203;Spleefies](https://github.com/Spleefies) in [#&#8203;4005](https://github.com/lucide-icons/lucide/pull/4005) - feat(icons): added `bell-check` icon by [@&#8203;pettelau](https://github.com/pettelau) in [#&#8203;4152](https://github.com/lucide-icons/lucide/pull/4152) #### New Contributors - [@&#8203;jglu](https://github.com/jglu) made their first contribution in [#&#8203;4309](https://github.com/lucide-icons/lucide/pull/4309) - [@&#8203;pettelau](https://github.com/pettelau) made their first contribution in [#&#8203;4152](https://github.com/lucide-icons/lucide/pull/4152) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/1.9.0...1.11.0> ### [`v1.10.0`](https://github.com/lucide-icons/lucide/releases/tag/1.10.0): Version 1.10.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/1.9.0...1.10.0) #### What's Changed - docs: add missing period to TypeScript Support description by [@&#8203;jglu](https://github.com/jglu) in [#&#8203;4309](https://github.com/lucide-icons/lucide/pull/4309) - fix([@&#8203;lucide/svelte](https://github.com/lucide/svelte)): proper doc comments for svelte components by [@&#8203;blt-r](https://github.com/blt-r) in [#&#8203;4267](https://github.com/lucide-icons/lucide/pull/4267) - chore(deps): bump svgo from 3.3.2 to 3.3.3 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;4119](https://github.com/lucide-icons/lucide/pull/4119) - chore(deps-dev): bump astro from 6.0.8 to 6.1.6 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;4310](https://github.com/lucide-icons/lucide/pull/4310) - feat(icons): add power and quick tags to zap and zap-off by [@&#8203;swastik7805](https://github.com/swastik7805) in [#&#8203;4268](https://github.com/lucide-icons/lucide/pull/4268) - test(build-font): added comprehensive unit tests on build-font tool by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;4315](https://github.com/lucide-icons/lucide/pull/4315) - feat(docs): blur background of framework-select by [@&#8203;Spleefies](https://github.com/Spleefies) in [#&#8203;4238](https://github.com/lucide-icons/lucide/pull/4238) - feat(icon): add heart-x icon by [@&#8203;swastik7805](https://github.com/swastik7805) in [#&#8203;4264](https://github.com/lucide-icons/lucide/pull/4264) - fix(icons): optimised `rotate-3d` icon by [@&#8203;jamiemlaw](https://github.com/jamiemlaw) in [#&#8203;4299](https://github.com/lucide-icons/lucide/pull/4299) - feat(icons): added `layers-minus` icon by [@&#8203;Spleefies](https://github.com/Spleefies) in [#&#8203;4005](https://github.com/lucide-icons/lucide/pull/4005) - feat(icons): added `bell-check` icon by [@&#8203;pettelau](https://github.com/pettelau) in [#&#8203;4152](https://github.com/lucide-icons/lucide/pull/4152) #### New Contributors - [@&#8203;jglu](https://github.com/jglu) made their first contribution in [#&#8203;4309](https://github.com/lucide-icons/lucide/pull/4309) - [@&#8203;pettelau](https://github.com/pettelau) made their first contribution in [#&#8203;4152](https://github.com/lucide-icons/lucide/pull/4152) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/1.9.0...1.10.0> ### [`v1.9.0`](https://github.com/lucide-icons/lucide/releases/tag/1.9.0): Version 1.9.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/1.8.0...1.9.0) #### What's Changed - fix(packages/angular): allow string inputs for size by [@&#8203;swastik7805](https://github.com/swastik7805) in [#&#8203;4253](https://github.com/lucide-icons/lucide/pull/4253) - fix(gh-icon): update colors for ColoredPath component by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;4233](https://github.com/lucide-icons/lucide/pull/4233) - feat(packages): use .mjs for ESM bundles by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;4285](https://github.com/lucide-icons/lucide/pull/4285) - fix(build-font): add collision detection to font codepoints by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;4300](https://github.com/lucide-icons/lucide/pull/4300) - feat(icons): added `timeline` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;4270](https://github.com/lucide-icons/lucide/pull/4270) #### New Contributors - [@&#8203;swastik7805](https://github.com/swastik7805) made their first contribution in [#&#8203;4253](https://github.com/lucide-icons/lucide/pull/4253) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/1.8.0...1.9.0> ### [`v1.8.0`](https://github.com/lucide-icons/lucide/releases/tag/1.8.0): Version 1.8.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/1.7.0...1.8.0) #### What's Changed - docs(packages/angular): add packageDirname for [@&#8203;lucide/angular](https://github.com/lucide/angular) by [@&#8203;rhutchison](https://github.com/rhutchison) in [#&#8203;4211](https://github.com/lucide-icons/lucide/pull/4211) - chore(icons): Username change knarlix to RajnishKMehta by [@&#8203;RajnishKMehta](https://github.com/RajnishKMehta) in [#&#8203;4208](https://github.com/lucide-icons/lucide/pull/4208) - ci([@&#8203;lucide/angular](https://github.com/lucide/angular)): Fix publishing problem by [@&#8203;ericfennis](https://github.com/ericfennis) in [#&#8203;4213](https://github.com/lucide-icons/lucide/pull/4213) - docs: fix broken links in pull\_request\_template.md (got 404 page) by [@&#8203;whoisBugsbunny](https://github.com/whoisBugsbunny) in [#&#8203;4224](https://github.com/lucide-icons/lucide/pull/4224) - fix(lucide-static): add viewBox to sprite symbol elements by [@&#8203;TomaTV](https://github.com/TomaTV) in [#&#8203;4223](https://github.com/lucide-icons/lucide/pull/4223) - docs: Fix link to icon design principles in statement by [@&#8203;whoisBugsbunny](https://github.com/whoisBugsbunny) in [#&#8203;4225](https://github.com/lucide-icons/lucide/pull/4225) - feat(docs): add Zephyr Cloud to Hero Backers tier by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;4226](https://github.com/lucide-icons/lucide/pull/4226) - fix(icons): fixes gap issues in radio-off.svg by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;4227](https://github.com/lucide-icons/lucide/pull/4227) - fix(icons): renamed `text-select` to `square-dashed-text` by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3943](https://github.com/lucide-icons/lucide/pull/3943) - fix(docs): improve mobile layout of v1 banner by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;4254](https://github.com/lucide-icons/lucide/pull/4254) - fix([@&#8203;lucide/svelte](https://github.com/lucide/svelte)): aria-hidden="true" was never set by [@&#8203;blt-r](https://github.com/blt-r) in [#&#8203;4234](https://github.com/lucide-icons/lucide/pull/4234) - fix(icons): remove ui/ux tag from heart-minus, add delete instead by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;4266](https://github.com/lucide-icons/lucide/pull/4266) - chore(deps-dev): bump vite from 7.3.1 to 7.3.2 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;4276](https://github.com/lucide-icons/lucide/pull/4276) - chore(deps): bump lodash-es from 4.17.23 to 4.18.1 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;4251](https://github.com/lucide-icons/lucide/pull/4251) - chore(deps): bump vite from 5.4.21 to 6.4.2 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;4286](https://github.com/lucide-icons/lucide/pull/4286) - feat(docs): use `initOnMounted: true` for `useSessionStorage` in `CarbonAdOverlay` by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;4275](https://github.com/lucide-icons/lucide/pull/4275) - feat(icons): added `bookmark-off` icon by [@&#8203;ZeenatLawal](https://github.com/ZeenatLawal) in [#&#8203;4283](https://github.com/lucide-icons/lucide/pull/4283) #### New Contributors - [@&#8203;rhutchison](https://github.com/rhutchison) made their first contribution in [#&#8203;4211](https://github.com/lucide-icons/lucide/pull/4211) - [@&#8203;whoisBugsbunny](https://github.com/whoisBugsbunny) made their first contribution in [#&#8203;4224](https://github.com/lucide-icons/lucide/pull/4224) - [@&#8203;TomaTV](https://github.com/TomaTV) made their first contribution in [#&#8203;4223](https://github.com/lucide-icons/lucide/pull/4223) - [@&#8203;blt-r](https://github.com/blt-r) made their first contribution in [#&#8203;4234](https://github.com/lucide-icons/lucide/pull/4234) - [@&#8203;ZeenatLawal](https://github.com/ZeenatLawal) made their first contribution in [#&#8203;4283](https://github.com/lucide-icons/lucide/pull/4283) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/1.7.0...1.8.0> ### [`v1.7.0`](https://github.com/lucide-icons/lucide/releases/tag/1.7.0): Version 1.7.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/1.6.0...1.7.0) #### What's Changed - fix(lucide-react): Fix dynamic imports by [@&#8203;ericfennis](https://github.com/ericfennis) in [#&#8203;4210](https://github.com/lucide-icons/lucide/pull/4210) - feat(icons): added `map-pin-search` icon by [@&#8203;TonySullivan](https://github.com/TonySullivan) in [#&#8203;4125](https://github.com/lucide-icons/lucide/pull/4125) #### New Contributors - [@&#8203;TonySullivan](https://github.com/TonySullivan) made their first contribution in [#&#8203;4125](https://github.com/lucide-icons/lucide/pull/4125) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/1.6.0...1.7.0> ### [`v1.6.0`](https://github.com/lucide-icons/lucide/releases/tag/1.6.0): Version 1.6.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/1.5.0...1.6.0) #### What's Changed - feat(icons): added `radio-off` icon by [@&#8203;kongsgard](https://github.com/kongsgard) in [#&#8203;4138](https://github.com/lucide-icons/lucide/pull/4138) #### New Contributors - [@&#8203;kongsgard](https://github.com/kongsgard) made their first contribution in [#&#8203;4138](https://github.com/lucide-icons/lucide/pull/4138) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/1.5.0...1.6.0> ### [`v1.5.0`](https://github.com/lucide-icons/lucide/releases/tag/1.5.0): Version 1.5.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/1.4.0...1.5.0) #### What's Changed - feat(icons): added `beef-off` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3816](https://github.com/lucide-icons/lucide/pull/3816) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/1.4.0...1.5.0> ### [`v1.4.0`](https://github.com/lucide-icons/lucide/releases/tag/1.4.0): Version 1.4.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/1.3.0...1.4.0) #### What's Changed - feat(icons): added `sport-shoe` icon by [@&#8203;Youya-ui](https://github.com/Youya-ui) in [#&#8203;3953](https://github.com/lucide-icons/lucide/pull/3953) #### New Contributors - [@&#8203;Youya-ui](https://github.com/Youya-ui) made their first contribution in [#&#8203;3953](https://github.com/lucide-icons/lucide/pull/3953) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/1.3.0...1.4.0> ### [`v1.3.0`](https://github.com/lucide-icons/lucide/releases/tag/1.3.0): Version 1.3.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/1.2.0...1.3.0) #### What's Changed - feat(icons): added `shield-cog` icon by [@&#8203;KnarliX](https://github.com/KnarliX) in [#&#8203;3902](https://github.com/lucide-icons/lucide/pull/3902) #### New Contributors - [@&#8203;KnarliX](https://github.com/KnarliX) made their first contribution in [#&#8203;3902](https://github.com/lucide-icons/lucide/pull/3902) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/1.2.0...1.3.0> ### [`v1.2.0`](https://github.com/lucide-icons/lucide/releases/tag/1.2.0): Version 1.2.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/1.1.0...1.2.0) #### What's Changed - feat(icons): added `line-style` icon by [@&#8203;dg-ac](https://github.com/dg-ac) in [#&#8203;4030](https://github.com/lucide-icons/lucide/pull/4030) #### New Contributors - [@&#8203;dg-ac](https://github.com/dg-ac) made their first contribution in [#&#8203;4030](https://github.com/lucide-icons/lucide/pull/4030) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/1.1.0...1.2.0> ### [`v1.1.0`](https://github.com/lucide-icons/lucide/releases/tag/1.1.0): Version 1.1.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/1.0.1...1.1.0) #### What's Changed - fix(astro): add Astro v6 compatibility by [@&#8203;iseraph-dev](https://github.com/iseraph-dev) in [#&#8203;4135](https://github.com/lucide-icons/lucide/pull/4135) - fix(packages/lucide-react-native): add preserveModulesRoot to `lucide-react-native` by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;4199](https://github.com/lucide-icons/lucide/pull/4199) - fix(lucide-preact): add conditional exports map for ESM/CJS resolution by [@&#8203;coloneljade](https://github.com/coloneljade) in [#&#8203;4198](https://github.com/lucide-icons/lucide/pull/4198) - fix(scripts): correct import extension in optimizeStagedSvgs.mts by [@&#8203;jerv](https://github.com/jerv) in [#&#8203;4185](https://github.com/lucide-icons/lucide/pull/4185) - ci(ci.yml): Fix release flow by [@&#8203;ericfennis](https://github.com/ericfennis) in [#&#8203;4193](https://github.com/lucide-icons/lucide/pull/4193) - fix(icons): changed `arrow-big-*` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3527](https://github.com/lucide-icons/lucide/pull/3527) - fix(icons): changed `signpost` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3531](https://github.com/lucide-icons/lucide/pull/3531) - fix(github/workflows): revert release workflow & add --fail-if-no-match by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;4201](https://github.com/lucide-icons/lucide/pull/4201) - fix(icons): changed `circle-user-round` icon by [@&#8203;karsa-mistmere](https://github.com/karsa-mistmere) in [#&#8203;4165](https://github.com/lucide-icons/lucide/pull/4165) - feat(icons): added `road` icon by [@&#8203;uibalint](https://github.com/uibalint) in [#&#8203;3014](https://github.com/lucide-icons/lucide/pull/3014) #### New Contributors - [@&#8203;iseraph-dev](https://github.com/iseraph-dev) made their first contribution in [#&#8203;4135](https://github.com/lucide-icons/lucide/pull/4135) - [@&#8203;coloneljade](https://github.com/coloneljade) made their first contribution in [#&#8203;4198](https://github.com/lucide-icons/lucide/pull/4198) - [@&#8203;jerv](https://github.com/jerv) made their first contribution in [#&#8203;4185](https://github.com/lucide-icons/lucide/pull/4185) - [@&#8203;uibalint](https://github.com/uibalint) made their first contribution in [#&#8203;3014](https://github.com/lucide-icons/lucide/pull/3014) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/1.0.2...1.1.0> ### [`v1.0.1`](https://github.com/lucide-icons/lucide/releases/tag/1.0.1): Lucide V1 🚀 [Compare Source](https://github.com/lucide-icons/lucide/compare/1.0.0...1.0.1) After years of work and dedication, Lucide Version 1 has been officially **released**!. This milestone marks a significant achievement in our journey to provide a comprehensive and versatile icon library for developers and designers alike. It's been quite a ride — especially over the past year. Lucide has grown to over 30 million downloads per week and is used by million of projects worldwide. This release is a testament to the hard work of our community and contributors who have helped shape Lucide into what it is today. Thank you to everyone who has supported us along the way. We couldn't have done this without you! #### What's New in Version 1? TLDR; - Removed brand icons, see our [brand logo statement](/brand-logo-statement) for more details. - Improved documentation, guides per framework. - Improved accessibility, `aria-hidden` is now set by default on icons. - Removed UMD build, only ESM and CJS now (exception for the [`lucide`](../guide/lucide/index.md) package). - Package rename from `lucide-vue-next` to `@lucide/vue`. - A modern, standalone implementation for Angular, `@lucide/angular` - Support for context providers in React, Vue, Svelte, and Solid. - Stable code points for Lucide font. - Support for shadow DOM in the `lucide` package. - Many bug fixes and improvements. See more at [Lucide Version 1](https://lucide.dev/guide/version-1) ### [`v1.0.0`](https://github.com/lucide-icons/lucide/releases/tag/1.0.0): Version 1.0.0 [Compare Source](https://github.com/lucide-icons/lucide/compare/0.577.0...1.0.0) > \[!WARNING] > This release was published unintentionally. We've corrected this in [v1.0.1](https://github.com/lucide-icons/lucide/releases/tag/1.0.1), which should be used instead. #### What's Changed - docs(api): Update nitro to latest version by [@&#8203;ericfennis](https://github.com/ericfennis) in [#&#8203;4102](https://github.com/lucide-icons/lucide/pull/4102) - chore(icons): Add 'crypto' tag to bitcoin.json by [@&#8203;cwlowder](https://github.com/cwlowder) in [#&#8203;4120](https://github.com/lucide-icons/lucide/pull/4120) - fix(docs): fix incorrect Angular integration example for lucide-lab by [@&#8203;bhavberi](https://github.com/bhavberi) in [#&#8203;4101](https://github.com/lucide-icons/lucide/pull/4101) - fix(redirects): Fixes icon alias redirects on site by [@&#8203;ericfennis](https://github.com/ericfennis) in [#&#8203;4122](https://github.com/lucide-icons/lucide/pull/4122) - fix(icons): changed `school` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;4124](https://github.com/lucide-icons/lucide/pull/4124) - chore(deps): bump simple-git from 3.30.0 to 3.32.3 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;4133](https://github.com/lucide-icons/lucide/pull/4133) - docs(svelte): clarify Svelte 4 vs Svelte 5 Lucide packages by [@&#8203;bhavberi](https://github.com/bhavberi) in [#&#8203;4107](https://github.com/lucide-icons/lucide/pull/4107) - docs(site): add strapi lucide icons package by [@&#8203;shx08](https://github.com/shx08) in [#&#8203;4112](https://github.com/lucide-icons/lucide/pull/4112) - docs: add rule about consistent use of shapes by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;3975](https://github.com/lucide-icons/lucide/pull/3975) - fix(icons): changed `gpu` icon by [@&#8203;jguddas](https://github.com/jguddas) in [#&#8203;4147](https://github.com/lucide-icons/lucide/pull/4147) - chore(deps-dev): bump h3 from 1.15.4 to 1.15.6 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;4163](https://github.com/lucide-icons/lucide/pull/4163) - fix(lucide-fonts): correct icon mappings in index.html and unicode.html by [@&#8203;buyuan-dev](https://github.com/buyuan-dev) in [#&#8203;4160](https://github.com/lucide-icons/lucide/pull/4160) - style(icons): fix formatting of `<svg>` element in two icons that were inconsistent by [@&#8203;LukasKalbertodt](https://github.com/LukasKalbertodt) in [#&#8203;4166](https://github.com/lucide-icons/lucide/pull/4166) - Update ICON\_GUIDELINES link in CONTRIBUTING.md by [@&#8203;AntoninKadrmas](https://github.com/AntoninKadrmas) in [#&#8203;4187](https://github.com/lucide-icons/lucide/pull/4187) - feat(icons): added `cctv-off` icon by [@&#8203;rrod497](https://github.com/rrod497) in [#&#8203;4162](https://github.com/lucide-icons/lucide/pull/4162) #### New Contributors - [@&#8203;cwlowder](https://github.com/cwlowder) made their first contribution in [#&#8203;4120](https://github.com/lucide-icons/lucide/pull/4120) - [@&#8203;shx08](https://github.com/shx08) made their first contribution in [#&#8203;4112](https://github.com/lucide-icons/lucide/pull/4112) - [@&#8203;buyuan-dev](https://github.com/buyuan-dev) made their first contribution in [#&#8203;4160](https://github.com/lucide-icons/lucide/pull/4160) - [@&#8203;LukasKalbertodt](https://github.com/LukasKalbertodt) made their first contribution in [#&#8203;4166](https://github.com/lucide-icons/lucide/pull/4166) - [@&#8203;AntoninKadrmas](https://github.com/AntoninKadrmas) made their first contribution in [#&#8203;4187](https://github.com/lucide-icons/lucide/pull/4187) - [@&#8203;rrod497](https://github.com/rrod497) made their first contribution in [#&#8203;4162](https://github.com/lucide-icons/lucide/pull/4162) **Full Changelog**: <https://github.com/lucide-icons/lucide/compare/0.577.0...1.0.0> </details> <details> <summary>vercel/next.js (next)</summary> ### [`v16.2.4`](https://github.com/vercel/next.js/releases/tag/v16.2.4) [Compare Source](https://github.com/vercel/next.js/compare/v16.2.3...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) ([#&#8203;92713](https://github.com/vercel/next.js/issues/92713)) - Turbopack: fix filesystem watcher config not applying follow\_symlinks(false) ([#&#8203;92631](https://github.com/vercel/next.js/issues/92631)) - Scope Safari ?ts= cache-buster to CSS/font assets only (Pages Router) ([#&#8203;92580](https://github.com/vercel/next.js/issues/92580)) - Compiler: Support boolean and number primtives in next.config defines ([#&#8203;92731](https://github.com/vercel/next.js/issues/92731)) - turbo-tasks: Fix recomputation loop by allowing cell cleanup on error during recomputation ([#&#8203;92725](https://github.com/vercel/next.js/issues/92725)) - Turbopack: shorter error for ChunkGroupInfo::get\_index\_of ([#&#8203;92814](https://github.com/vercel/next.js/issues/92814)) - Turbopack: shorter error message for ModuleBatchesGraph::get\_entry\_index ([#&#8203;92828](https://github.com/vercel/next.js/issues/92828)) - Adding more system info to the 'initialize project' trace ([#&#8203;92427](https://github.com/vercel/next.js/issues/92427)) ##### Credits Huge thanks to [@&#8203;Badbird5907](https://github.com/Badbird5907), [@&#8203;lukesandberg](https://github.com/lukesandberg), [@&#8203;andrewimm](https://github.com/andrewimm), [@&#8203;sokra](https://github.com/sokra), and [@&#8203;mischnic](https://github.com/mischnic) for helping! ### [`v16.2.3`](https://github.com/vercel/next.js/releases/tag/v16.2.3) [Compare Source](https://github.com/vercel/next.js/compare/v16.2.2...v16.2.3) > \[!NOTE] > This release is backporting security and bug fixes. For more information about the fixed security vulnerability, please see <https://vercel.com/changelog/summary-of-cve-2026-23869>. The release does **not** include all pending features/changes on canary. ##### Core Changes - Ensure app-page reports stale ISR revalidation errors via onRequestError ([#&#8203;92282](https://github.com/vercel/next.js/issues/92282)) - Fix \[Bug]: manifest.ts breaks HMR in Next.js 16.2 ([#&#8203;91981](https://github.com/vercel/next.js/issues/91981) through [#&#8203;92273](https://github.com/vercel/next.js/issues/92273)) - Deduplicate output assets and detect content conflicts on emit ([#&#8203;92292](https://github.com/vercel/next.js/issues/92292)) - Fix styled-jsx race condition: styles lost due to concurrent rendering ([#&#8203;92459](https://github.com/vercel/next.js/issues/92459)) - turbo-tasks-backend: stability fixes for task cancellation and error handling ([#&#8203;92254](https://github.com/vercel/next.js/issues/92254)) ##### Credits Huge thanks to [@&#8203;icyJoseph](https://github.com/icyJoseph), [@&#8203;sokra](https://github.com/sokra), [@&#8203;wbinnssmith](https://github.com/wbinnssmith), [@&#8203;eps1lon](https://github.com/eps1lon) and [@&#8203;ztanner](https://github.com/ztanner) for helping! ### [`v16.2.2`](https://github.com/vercel/next.js/releases/tag/v16.2.2) [Compare Source](https://github.com/vercel/next.js/compare/v16.2.1...v16.2.2) > \[!NOTE] > This release is backporting bug fixes. It does **not** include all pending features/changes on canary. ##### Core Changes - backport: Move expanded adapters docs to API reference ([#&#8203;92115](https://github.com/vercel/next.js/issues/92115)) ([#&#8203;92129](https://github.com/vercel/next.js/issues/92129)) - Backport: TypeScript v6 deprecations for baseUrl and moduleResolution ([#&#8203;92130](https://github.com/vercel/next.js/issues/92130)) - \[create-next-app] Skip interactive prompts when CLI flags are provided ([#&#8203;91840](https://github.com/vercel/next.js/issues/91840)) - next.config.js: Accept an option for serverFastRefresh ([#&#8203;91968](https://github.com/vercel/next.js/issues/91968)) - Turbopack: enable server HMR for app route handlers ([#&#8203;91466](https://github.com/vercel/next.js/issues/91466)) - Turbopack: exclude metadata routes from server HMR ([#&#8203;92034](https://github.com/vercel/next.js/issues/92034)) - Fix CI for glibc linux builds - Backport: disable bmi2 in qfilter [#&#8203;92177](https://github.com/vercel/next.js/issues/92177) - \[backport] Fix CSS HMR on Safari ([#&#8203;92174](https://github.com/vercel/next.js/issues/92174)) ##### Credits Huge thanks to [@&#8203;nextjs-bot](https://github.com/nextjs-bot), [@&#8203;icyJoseph](https://github.com/icyJoseph), [@&#8203;ijjk](https://github.com/ijjk), [@&#8203;gaojude](https://github.com/gaojude), [@&#8203;wbinnssmith](https://github.com/wbinnssmith), [@&#8203;lukesandberg](https://github.com/lukesandberg), and [@&#8203;bgw](https://github.com/bgw) for helping! ### [`v16.2.1`](https://github.com/vercel/next.js/releases/tag/v16.2.1) [Compare Source](https://github.com/vercel/next.js/compare/v16.2.0...v16.2.1) > \[!NOTE] > This release is backporting bug fixes. It does **not** include all pending features/changes on canary. ##### Core Changes - docs: post release amends ([#&#8203;91715](https://github.com/vercel/next.js/issues/91715)) - docs: fix broken Activity Patterns demo link in preserving UI state guide ([#&#8203;91698](https://github.com/vercel/next.js/issues/91698)) - Fix adapter outputs for dynamic metadata routes ([#&#8203;91680](https://github.com/vercel/next.js/issues/91680)) - Turbopack: fix webpack loader runner layer ([#&#8203;91727](https://github.com/vercel/next.js/issues/91727)) - Fix server actions in standalone mode with `cacheComponents` ([#&#8203;91711](https://github.com/vercel/next.js/issues/91711)) - turbo-persistence: remove Unmergeable mmap advice ([#&#8203;91713](https://github.com/vercel/next.js/issues/91713)) - Fix layout segment optimization: move app-page imports to server-utility transition ([#&#8203;91701](https://github.com/vercel/next.js/issues/91701)) - Turbopack: lazy require metadata and handle TLA ([#&#8203;91705](https://github.com/vercel/next.js/issues/91705)) - \[turbopack] Respect `{eval:true}` in worker\_threads constructors ([#&#8203;91666](https://github.com/vercel/next.js/issues/91666)) ##### Credits Huge thanks to [@&#8203;icyJoseph](https://github.com/icyJoseph), [@&#8203;abhishekmardiya](https://github.com/abhishekmardiya), [@&#8203;ijjk](https://github.com/ijjk), [@&#8203;mischnic](https://github.com/mischnic), [@&#8203;unstubbable](https://github.com/unstubbable), [@&#8203;sokra](https://github.com/sokra), and [@&#8203;lukesandberg](https://github.com/lukesandberg) for helping! ### [`v16.2.0`](https://github.com/vercel/next.js/releases/tag/v16.2.0) [Compare Source](https://github.com/vercel/next.js/compare/v16.1.7...v16.2.0) > \[!TIP]\ > **Check out our Next v16.2 [Blog Post](https://nextjs.org/blog/next-16-2) to learn more about this release.** ##### Core Changes - Upgrade React from `f93b9fd4-20251217` to `65eec428-20251218`: [#&#8203;87323](https://github.com/vercel/next.js/issues/87323) - Turbopack: Create junction points instead of symlinks on Windows: [#&#8203;87606](https://github.com/vercel/next.js/issues/87606) - Turbopack: Symlink handling follow-up: [#&#8203;87637](https://github.com/vercel/next.js/issues/87637) - Add experimental routing package for resolving adapter routes: [#&#8203;86404](https://github.com/vercel/next.js/issues/86404) - Ensure outputs are correct with cache components in deployment adapters: [#&#8203;87018](https://github.com/vercel/next.js/issues/87018) - Move off of deprecated url.parse: [#&#8203;87257](https://github.com/vercel/next.js/issues/87257) - \[strict-route-types] Add `experimental.strictRouteTypes` config: [#&#8203;87378](https://github.com/vercel/next.js/issues/87378) - misc: fix type check log for CI envs: [#&#8203;87838](https://github.com/vercel/next.js/issues/87838) - fix: revalidateTag with profile should not trigger client cache invalidation: [#&#8203;88069](https://github.com/vercel/next.js/issues/88069) - chore: warn when running tests against stale build: [#&#8203;88001](https://github.com/vercel/next.js/issues/88001) - Redesign default error pages with cleaner, more user-friendly UI: [#&#8203;87988](https://github.com/vercel/next.js/issues/87988) - dx: avoid next-env.d.ts change in dev: [#&#8203;88103](https://github.com/vercel/next.js/issues/88103) - prevent browser cache from using stale RSC responses from previous builds: [#&#8203;86554](https://github.com/vercel/next.js/issues/86554) - \[strict-route-types] Typecheck App Router page props: [#&#8203;87386](https://github.com/vercel/next.js/issues/87386) - \[strict-route-types] Enforce common React Component return types in App Router: [#&#8203;87389](https://github.com/vercel/next.js/issues/87389) - \[strict-route-types] Switch to `satisfies` when validating page and route modules: [#&#8203;87398](https://github.com/vercel/next.js/issues/87398) - \[strict-route-types] Don't reject `number` in `config.api.bodyParser.sizeLimit` when validating route: [#&#8203;87633](https://github.com/vercel/next.js/issues/87633) - Revert "dx: avoid next-env.d.ts change in dev": [#&#8203;88153](https://github.com/vercel/next.js/issues/88153) - \[strict-route-types] Typecheck pages router routes in absence of App Router: [#&#8203;87628](https://github.com/vercel/next.js/issues/87628) - \[strict-route-types] Ensure cache profiles and routes are type-checked even if .next is excluded: [#&#8203;87768](https://github.com/vercel/next.js/issues/87768) - add compilation error for taint when not enabled: [#&#8203;88173](https://github.com/vercel/next.js/issues/88173) - feat(next/image)!: add `images.maximumResponseBody` config: [#&#8203;88183](https://github.com/vercel/next.js/issues/88183) - Add maximum size limit for postponed body parsing: [#&#8203;88175](https://github.com/vercel/next.js/issues/88175) - metadata: use fixed segment in dynamic routes with static metadata files: [#&#8203;88113](https://github.com/vercel/next.js/issues/88113) - feat: add --experimental-cpu-prof flag for dev, build, and start: [#&#8203;87946](https://github.com/vercel/next.js/issues/87946) - Add experimental option to use no-cache instead of no-store in dev: [#&#8203;88182](https://github.com/vercel/next.js/issues/88182) - fix overlay frames cannot be opened sometimes: [#&#8203;88210](https://github.com/vercel/next.js/issues/88210) - Handle pnpm-workspace.yaml while searching for monorepo root: [#&#8203;74818](https://github.com/vercel/next.js/issues/74818) - Add more debug logs to `'use cache'` wrapper: [#&#8203;88219](https://github.com/vercel/next.js/issues/88219) - Omit unused arguments from `'use cache'` function calls: [#&#8203;86920](https://github.com/vercel/next.js/issues/86920) - Only log `pending revalidates...` debug log if applicable: [#&#8203;88221](https://github.com/vercel/next.js/issues/88221) - fix(next/image): bump sharp\@&#8203;0.34.5: [#&#8203;88238](https://github.com/vercel/next.js/issues/88238) - Disallow javascript urls in router methods and redirects: [#&#8203;88185](https://github.com/vercel/next.js/issues/88185) - Fix relative same host redirects in node middleware: [#&#8203;88253](https://github.com/vercel/next.js/issues/88253) - Remove loadConfig from main development process, pass value from child process: [#&#8203;88230](https://github.com/vercel/next.js/issues/88230) - Update deploy adapters outputs and handler interfaces for node and edge: [#&#8203;88247](https://github.com/vercel/next.js/issues/88247) - Move Ready in time before handler initialization: [#&#8203;88235](https://github.com/vercel/next.js/issues/88235) - next/image: support custom cache handlers: [#&#8203;88248](https://github.com/vercel/next.js/issues/88248) - feat: add Claude Code plugin marketplace with Cache Components skill: [#&#8203;87993](https://github.com/vercel/next.js/issues/87993) - refactor: consolidate PPR into cacheComponents architecture: [#&#8203;88243](https://github.com/vercel/next.js/issues/88243) - Turbopack: include fewer traced files for standalone: [#&#8203;88322](https://github.com/vercel/next.js/issues/88322) - feat(turbopack): add resolve plugin condition variant of Always and Never: [#&#8203;88190](https://github.com/vercel/next.js/issues/88190) - perf: use length = 0 to clear the logging array: [#&#8203;88244](https://github.com/vercel/next.js/issues/88244) - Time logs: Show full millisecond instead of 1 decimal: [#&#8203;88313](https://github.com/vercel/next.js/issues/88313) - \[turbopack] Enable inferring module side effects by default: [#&#8203;87216](https://github.com/vercel/next.js/issues/87216) - Track search string as part of "refresh state": [#&#8203;87203](https://github.com/vercel/next.js/issues/87203) - Pass RouteTree into navigation function: [#&#8203;87256](https://github.com/vercel/next.js/issues/87256) - Read from segment cache unknown routes: [#&#8203;87293](https://github.com/vercel/next.js/issues/87293) - Pass loading boundary as part of RSC data: [#&#8203;87825](https://github.com/vercel/next.js/issues/87825) - Revert "refactor: consolidate PPR into cacheComponents architecture ([#&#8203;88243](https://github.com/vercel/next.js/issues/88243))": [#&#8203;88421](https://github.com/vercel/next.js/issues/88421) - fix: support TypeScript `noUncheckedSideEffectImports` for CSS imports: [#&#8203;88199](https://github.com/vercel/next.js/issues/88199) - Don't import typescript at runtime: [#&#8203;88321](https://github.com/vercel/next.js/issues/88321) - fix: use RDC for server action requests: [#&#8203;88129](https://github.com/vercel/next.js/issues/88129) - Warn when overriding Cache-Control header on `/_next/` routes: [#&#8203;88353](https://github.com/vercel/next.js/issues/88353) - \[prebuilt-skew-protection] feat: adding in automatic deploymentId: [#&#8203;88012](https://github.com/vercel/next.js/issues/88012) - Revert "\[prebuilt-skew-protection] feat: adding in automatic deploymentId": [#&#8203;88449](https://github.com/vercel/next.js/issues/88449) - Turbopack: Update reqwest, remove experimental system TLS feature: [#&#8203;88290](https://github.com/vercel/next.js/issues/88290) - Revert "prevent browser cache from using stale RSC responses from pre…: [#&#8203;88457](https://github.com/vercel/next.js/issues/88457) - Turbopack: retain loader tree order for metadata: [#&#8203;88487](https://github.com/vercel/next.js/issues/88487) - Turbopack: more dead code: [#&#8203;88505](https://github.com/vercel/next.js/issues/88505) - fix(build): prevent route handler manifests from inheriting unrelated client components: [#&#8203;88419](https://github.com/vercel/next.js/issues/88419) - Upgrade React from `65eec428-20251218` to `3e1abcc8-20260113`: [#&#8203;88530](https://github.com/vercel/next.js/issues/88530) - Better typesafety for `interopDefault`: [#&#8203;88486](https://github.com/vercel/next.js/issues/88486) - keep next-env.d.s unchanged between dev and build: [#&#8203;88428](https://github.com/vercel/next.js/issues/88428) - Remove sibling caches from CacheNode tree: [#&#8203;87991](https://github.com/vercel/next.js/issues/87991) - Upgrade React from `3e1abcc8-20260113` to `4a3d993e-20260114`: [#&#8203;88547](https://github.com/vercel/next.js/issues/88547) - Finish deleting Mutable from router implementation: [#&#8203;88046](https://github.com/vercel/next.js/issues/88046) - fetch(next/image): reduce maximumResponseBody from 300MB to 50MB: [#&#8203;88588](https://github.com/vercel/next.js/issues/88588) - \[CC] Fix dev validation error from server action bound args: [#&#8203;88600](https://github.com/vercel/next.js/issues/88600) - Fix incorrect 'Ready in' time for next start: [#&#8203;88589](https://github.com/vercel/next.js/issues/88589) - feat: server action logging: [#&#8203;88277](https://github.com/vercel/next.js/issues/88277) - Log browser error and warnings in terminal: [#&#8203;88352](https://github.com/vercel/next.js/issues/88352) - Upgrade React from `4a3d993e-20260114` to `bef88f7c-20260116`: [#&#8203;88649](https://github.com/vercel/next.js/issues/88649) - fix: make RedirectType constant properties literal types: [#&#8203;88653](https://github.com/vercel/next.js/issues/88653) - Turbopack: add support for matching loaders on resource queries: [#&#8203;88644](https://github.com/vercel/next.js/issues/88644) - fix: capture promisified setImmediate separately: [#&#8203;88346](https://github.com/vercel/next.js/issues/88346) - fix: setImmediate\[util.promisify.custom] access fails in edge runtime: [#&#8203;88685](https://github.com/vercel/next.js/issues/88685) - Fix `--debug-build-paths` bracket escaping for glob patterns: [#&#8203;88660](https://github.com/vercel/next.js/issues/88660) - Add negation pattern support to `--debug-build-paths`: [#&#8203;88654](https://github.com/vercel/next.js/issues/88654) - Only filter next config if experimental flag is enabled: [#&#8203;88733](https://github.com/vercel/next.js/issues/88733) - \[Devtool Indicator] Fix cross alignment: [#&#8203;88664](https://github.com/vercel/next.js/issues/88664) - Turbopack: don't use build id for pages router client-side manifests: [#&#8203;88641](https://github.com/vercel/next.js/issues/88641) - Allow inspecting server with `next start --inspect`: [#&#8203;88744](https://github.com/vercel/next.js/issues/88744) - Turbopack: Add `--debug-build-paths` support to filter routes: [#&#8203;88655](https://github.com/vercel/next.js/issues/88655) - Upgrade React from `bef88f7c-20260116` to `41b3e9a6-20260119`: [#&#8203;88756](https://github.com/vercel/next.js/issues/88756) - Use rewritten pathname for implicit cache tags: [#&#8203;88732](https://github.com/vercel/next.js/issues/88732) - Upgrade React from `41b3e9a6-20260119` to `d2908752-20260119`: [#&#8203;88774](https://github.com/vercel/next.js/issues/88774) - Add experimental\_gesturePush to App Router: [#&#8203;88776](https://github.com/vercel/next.js/issues/88776) - Rename `rewroteURL` to `rewrittenPathname` in request metadata: [#&#8203;88751](https://github.com/vercel/next.js/issues/88751) - Simplify `getImplicitTags` to accept pathname instead of url object: [#&#8203;88753](https://github.com/vercel/next.js/issues/88753) - Add `NEXT_DEPLOYMENT_ID` global: [#&#8203;86738](https://github.com/vercel/next.js/issues/86738) - Turbopack: remove deployment id suffix from client reference manifest chunks: [#&#8203;88741](https://github.com/vercel/next.js/issues/88741) - Inject `<html data-dpl-id>` and don't inline it into JS anymore: [#&#8203;88761](https://github.com/vercel/next.js/issues/88761) - \[metadata] match the Metadata and ResolvedMetadata type: [#&#8203;88739](https://github.com/vercel/next.js/issues/88739) - Reuse bfcache data during Full prefetches: [#&#8203;88606](https://github.com/vercel/next.js/issues/88606) - Embed static sibling info in route tree: [#&#8203;88692](https://github.com/vercel/next.js/issues/88692) - Fix `revalidatePath` with params and trailing slash when deployed: [#&#8203;88623](https://github.com/vercel/next.js/issues/88623) - fix: preserve cache behavior for PPR fallback shells with root params: [#&#8203;88556](https://github.com/vercel/next.js/issues/88556) - Upgrade React from `d2908752-20260119` to `b546603b-20260121`: [#&#8203;88860](https://github.com/vercel/next.js/issues/88860) - stabilize browser log forward options: [#&#8203;88857](https://github.com/vercel/next.js/issues/88857) - \[devtools] Wrap long file names of stack frames in the error overlay: [#&#8203;88886](https://github.com/vercel/next.js/issues/88886) - \[devtools] Fix notch coloring of error overlay in forced colors mode: [#&#8203;88892](https://github.com/vercel/next.js/issues/88892) - Remove `deploymentId` from App Router `RenderOptsPartial`: [#&#8203;88866](https://github.com/vercel/next.js/issues/88866) - feat: implement LRU cache with invocation ID scoping for minimal mode response cache: [#&#8203;88509](https://github.com/vercel/next.js/issues/88509) - \[prebuilt-skew-protection] feat: adding in automatic deploymentId: [#&#8203;88496](https://github.com/vercel/next.js/issues/88496) - \[devtool] Add hydration diff indicator for diff lines: [#&#8203;88919](https://github.com/vercel/next.js/issues/88919) - Revert "\[prebuilt-skew-protection] feat: adding in automatic deploymentId": [#&#8203;88942](https://github.com/vercel/next.js/issues/88942) - \[turbopack] add task type infromation to the print\_cache\_item\_size feature: [#&#8203;88925](https://github.com/vercel/next.js/issues/88925) - Upgrade React from `b546603b-20260121` to `24d8716e-20260123`: [#&#8203;88963](https://github.com/vercel/next.js/issues/88963) - Turbopack: add `?dpl=` to all asset urls returned by Turbopack: [#&#8203;88828](https://github.com/vercel/next.js/issues/88828) - feat(next-codemod): add agents-md command for AI coding agents: [#&#8203;88961](https://github.com/vercel/next.js/issues/88961) - Update font data: [#&#8203;88975](https://github.com/vercel/next.js/issues/88975) - Improve agents-md prompt to force doc retrieval: [#&#8203;88997](https://github.com/vercel/next.js/issues/88997) - \[Reapply] Add `useEffectEvent` to disallowed React APIs in Server Components: [#&#8203;88985](https://github.com/vercel/next.js/issues/88985) - Apply fixes for onBuildComplete and route module: [#&#8203;88831](https://github.com/vercel/next.js/issues/88831) - Rename `renderOpts.nextExport` to `isBuildTimePrerendering`: [#&#8203;88951](https://github.com/vercel/next.js/issues/88951) - docs: fix typos in `README.md`s: [#&#8203;89022](https://github.com/vercel/next.js/issues/89022) - refactor: consume global-error from loader tree: [#&#8203;88437](https://github.com/vercel/next.js/issues/88437) - Fix chunk loading when using `__turbopack_load_by_url__` with query: [#&#8203;88899](https://github.com/vercel/next.js/issues/88899) - \[mcp] change the mcp endpoint response to JSON: [#&#8203;88911](https://github.com/vercel/next.js/issues/88911) - Reapply "\[turbopack] Add bundling support for worker\_threads" ([#&#8203;88725](https://github.com/vercel/next.js/issues/88725)): [#&#8203;88967](https://github.com/vercel/next.js/issues/88967) - fix: ensure LRU cache items have minimum size of 1 to prevent unbounded growth: [#&#8203;89040](https://github.com/vercel/next.js/issues/89040) - Upgrade React from `24d8716e-20260123` to `8c34556c-20260126`: [#&#8203;89066](https://github.com/vercel/next.js/issues/89066) - Use null-prototype objects in server actions manifests: [#&#8203;89069](https://github.com/vercel/next.js/issues/89069) - Re-enable types-and-precompiled: [#&#8203;89070](https://github.com/vercel/next.js/issues/89070) - Apply segment changes to adapters outputs: [#&#8203;89072](https://github.com/vercel/next.js/issues/89072) - Improve no response route handler error: [#&#8203;89036](https://github.com/vercel/next.js/issues/89036) - Limit number of server action arguments to 1000: [#&#8203;89068](https://github.com/vercel/next.js/issues/89068) - \[prebuilt-skew-protection] feat: adding in automatic deploymentId: [#&#8203;88958](https://github.com/vercel/next.js/issues/88958) - Decouple route stale time from segment-level data: [#&#8203;88834](https://github.com/vercel/next.js/issues/88834) - Decouple route and segment cache lifecycles: [#&#8203;88989](https://github.com/vercel/next.js/issues/88989) - \[ci] Silence `baseline-browser-mapping` warnings: [#&#8203;89175](https://github.com/vercel/next.js/issues/89175) - \[Cache Components] Prevent streaming fetch calls from hanging in dev: [#&#8203;89171](https://github.com/vercel/next.js/issues/89171) - React types update: [#&#8203;89110](https://github.com/vercel/next.js/issues/89110) - \[nextjs] feat: removing length requirement: [#&#8203;89173](https://github.com/vercel/next.js/issues/89173) - add GPTBot to matcher for known bots: [#&#8203;89188](https://github.com/vercel/next.js/issues/89188) - Ensure `.md` licenses are included in vendored packages: [#&#8203;89201](https://github.com/vercel/next.js/issues/89201) - Switch development log item format as JSON: [#&#8203;89168](https://github.com/vercel/next.js/issues/89168) - IsolatedDevBuild flag removal: [#&#8203;89167](https://github.com/vercel/next.js/issues/89167) - fix: coerce HEAD to GET for internal images: [#&#8203;84180](https://github.com/vercel/next.js/issues/84180) - Upgrade React from `10680271-20260126` to `230772f9-20260128`: [#&#8203;89250](https://github.com/vercel/next.js/issues/89250) - Upgrade `tar` used to extract SWC binary : [#&#8203;89158](https://github.com/vercel/next.js/issues/89158) - Sort prerender manifest routes: [#&#8203;89246](https://github.com/vercel/next.js/issues/89246) - Track vary params for segments without server-side param access: [#&#8203;88998](https://github.com/vercel/next.js/issues/88998) - Optimistic routing: client-side route prediction: [#&#8203;88965](https://github.com/vercel/next.js/issues/88965) - Keep pages/404.js to be able to dynamically render it anyway: [#&#8203;89263](https://github.com/vercel/next.js/issues/89263) - fix: fully static pages should emit & serve static rsc payloads: [#&#8203;89202](https://github.com/vercel/next.js/issues/89202) - fix: CSRF origin matching should be case-insensitive: [#&#8203;89127](https://github.com/vercel/next.js/issues/89127) - fix(build): format runAfterProductionCompile duration as human-readable time: [#&#8203;89232](https://github.com/vercel/next.js/issues/89232) - fix(router): support BigInt in query parameters: [#&#8203;89213](https://github.com/vercel/next.js/issues/89213) - Update font data: [#&#8203;89200](https://github.com/vercel/next.js/issues/89200) - Update font data: [#&#8203;89272](https://github.com/vercel/next.js/issues/89272) - Turbopack: add support for contentType condition for webpack loaders: [#&#8203;89156](https://github.com/vercel/next.js/issues/89156) - Revert "fix(router): support BigInt in query parameters": [#&#8203;89283](https://github.com/vercel/next.js/issues/89283) - Track vary params during static prerendering: [#&#8203;89267](https://github.com/vercel/next.js/issues/89267) - Improve lock dir error message: [#&#8203;89119](https://github.com/vercel/next.js/issues/89119) - Ensures `browserslist` doesn't issue outdated warnings for `baseline-browser-mapping`: [#&#8203;89287](https://github.com/vercel/next.js/issues/89287) - Replace build id in Pages data routes with deployment id: [#&#8203;88959](https://github.com/vercel/next.js/issues/88959) - Upgrade React from `230772f9-20260128` to `da641178-20260129`: [#&#8203;89301](https://github.com/vercel/next.js/issues/89301) - Inline handler dependencies instead of tracing: [#&#8203;89269](https://github.com/vercel/next.js/issues/89269) - Turbopack: add `rules.*.type` config to allow changing the type of a module: [#&#8203;88788](https://github.com/vercel/next.js/issues/88788) - Add experimental.varyParams feature flag: [#&#8203;89307](https://github.com/vercel/next.js/issues/89307) - Fix/zlib mem node: [#&#8203;89099](https://github.com/vercel/next.js/issues/89099) - Revert "Replace build id in Pages data routes with deployment id ([#&#8203;88959](https://github.com/vercel/next.js/issues/88959))": [#&#8203;89323](https://github.com/vercel/next.js/issues/89323) - Turbopack: Rename crates/napi to crates/next-napi-bindings and update crate name: [#&#8203;89314](https://github.com/vercel/next.js/issues/89314) - feat: detect [@&#8203;typescript/native-preview](https://github.com/typescript/native-preview) as alternative TypeScript compiler: [#&#8203;89149](https://github.com/vercel/next.js/issues/89149) - Revert "Fix/zlib mem node": [#&#8203;89322](https://github.com/vercel/next.js/issues/89322) - Turbopack: FreeVarReference::ReportUsage: [#&#8203;89302](https://github.com/vercel/next.js/issues/89302) - Make Server Function logging opt-in via `logging.serverFunctions`: [#&#8203;89321](https://github.com/vercel/next.js/issues/89321) - Restore default-enabled Server Function logging: [#&#8203;89407](https://github.com/vercel/next.js/issues/89407) - Re-add build-complete traces for webpack: [#&#8203;89402](https://github.com/vercel/next.js/issues/89402) - Skip Server Function logging for `'use cache'` functions: [#&#8203;89408](https://github.com/vercel/next.js/issues/89408) - Replace flight navigation build id field with header: [#&#8203;88855](https://github.com/vercel/next.js/issues/88855) - Upgrade React from `da641178-20260129` to `ed4bd540-20260202`: [#&#8203;89401](https://github.com/vercel/next.js/issues/89401) - Upgrade React from `ed4bd540-20260202` to `b1533b03-20260203`: [#&#8203;89444](https://github.com/vercel/next.js/issues/89444) - Upgrade React from `b1533b03-20260203` to `3e00319b-20260203`: [#&#8203;89449](https://github.com/vercel/next.js/issues/89449) - Rename CACHE\_ONE\_YEAR for clarity and fix usage: [#&#8203;89450](https://github.com/vercel/next.js/issues/89450) - \[Codemod] Fix agents-md on Windows: [#&#8203;89319](https://github.com/vercel/next.js/issues/89319) - Experimental deferred entries handling: [#&#8203;88347](https://github.com/vercel/next.js/issues/88347) - Add `experimental.reportSystemEnvInlining` for Turbopack: [#&#8203;89304](https://github.com/vercel/next.js/issues/89304) - fix: use signal-based exit codes to prevent inspector blocking exit: [#&#8203;89351](https://github.com/vercel/next.js/issues/89351) - Add Instant Navigation Testing API: [#&#8203;89465](https://github.com/vercel/next.js/issues/89465) - Support MPA navigations in `instant()`: [#&#8203;89469](https://github.com/vercel/next.js/issues/89469) - Handle Pages data route skew with deployment id header, take 2: [#&#8203;89325](https://github.com/vercel/next.js/issues/89325) - Include owner stack for forwarded errors if available: [#&#8203;89493](https://github.com/vercel/next.js/issues/89493) - \[CC] Rename "unstable\_prefetch" to "unstable\_instant": [#&#8203;89448](https://github.com/vercel/next.js/issues/89448) - Ensure module contexts are always included in adapter traces: [#&#8203;89508](https://github.com/vercel/next.js/issues/89508) - Don't insert build id comment in HTML: [#&#8203;89478](https://github.com/vercel/next.js/issues/89478) - Clarify type checking error message: [#&#8203;89525](https://github.com/vercel/next.js/issues/89525) - Require explicit `cacheLife` on outer `"use cache"` when nesting short-lived caches: [#&#8203;89481](https://github.com/vercel/next.js/issues/89481) - \[Instant] Instant validation in Dev: [#&#8203;89077](https://github.com/vercel/next.js/issues/89077) - Upgrade React from `3e00319b-20260203` to `95ffd6cd-20260205`: [#&#8203;89550](https://github.com/vercel/next.js/issues/89550) - Turbpopack: fix is\_persistent\_caching\_enabled: [#&#8203;89533](https://github.com/vercel/next.js/issues/89533) - Fix a small doc typo: [#&#8203;89553](https://github.com/vercel/next.js/issues/89553) - Ensure \_middleware is consistent in adapter for name/id: [#&#8203;89559](https://github.com/vercel/next.js/issues/89559) - Ensure Errors with deep causal chains respect inspect depth: [#&#8203;89594](https://github.com/vercel/next.js/issues/89594) - refactor: extract route discovery into unified `discoverRoutes()` API: [#&#8203;88971](https://github.com/vercel/next.js/issues/88971) - Ensure static metadata are static outputs for adapters: [#&#8203;89574](https://github.com/vercel/next.js/issues/89574) - Resolve local variable references in error code SWC plugin: [#&#8203;89596](https://github.com/vercel/next.js/issues/89596) - Turbopack: Add --experimental-server-fast-refresh CLI flag: [#&#8203;89274](https://github.com/vercel/next.js/issues/89274) - Fix deployment id header when proxying: [#&#8203;89593](https://github.com/vercel/next.js/issues/89593) - fix: deprecated util.\_extend: [#&#8203;89614](https://github.com/vercel/next.js/issues/89614) - Fix missing non-deferred turbopack build items: [#&#8203;89616](https://github.com/vercel/next.js/issues/89616) - Revert "Ensure \_middleware is consistent in adapter for name/id": [#&#8203;89624](https://github.com/vercel/next.js/issues/89624) - Omit unused arguments for server actions: [#&#8203;89651](https://github.com/vercel/next.js/issues/89651) - Upgrade React from `95ffd6cd-20260205` to `2dd9b7cf-20260208`: [#&#8203;89681](https://github.com/vercel/next.js/issues/89681) - Include `AggregateError.errors` in terminal output: [#&#8203;88999](https://github.com/vercel/next.js/issues/88999) - fix(image): findClosestQuality returns 0 for low quality values: [#&#8203;89621](https://github.com/vercel/next.js/issues/89621) - Upgrade React from `2dd9b7cf-20260208` to `272441a9-20260209`: [#&#8203;89722](https://github.com/vercel/next.js/issues/89722) - Avoid using unclosing prefetch streams in the browser: [#&#8203;89610](https://github.com/vercel/next.js/issues/89610) - Pass shouldCache to all manifest loading calls: [#&#8203;89713](https://github.com/vercel/next.js/issues/89713) - Add 2nd cloned body to FinalizationRegistry. Only used RuntimeStyles component for webpack: [#&#8203;88577](https://github.com/vercel/next.js/issues/88577) - Tracing: trace render times as render-path: [#&#8203;89763](https://github.com/vercel/next.js/issues/89763) - Turbopack: Server HMR infrastructure: [#&#8203;88870](https://github.com/vercel/next.js/issues/88870) - Turbopack: Reorganize runtime files into shared/runtime directory: [#&#8203;89461](https://github.com/vercel/next.js/issues/89461) - \[Instant] Validation on client navs: [#&#8203;89777](https://github.com/vercel/next.js/issues/89777) - Turbopack: extract core hmr client logic into shared runtime: [#&#8203;88912](https://github.com/vercel/next.js/issues/88912) - Turbopack: Fix slow filesystem benchmark warning for `next dev`: [#&#8203;89798](https://github.com/vercel/next.js/issues/89798) - Add turbopackIgnoreIssue config to suppress Turbopack warnings: [#&#8203;89682](https://github.com/vercel/next.js/issues/89682) - Add support for with `type: "text"` under a new experimental flag, following what webpack did: [#&#8203;89560](https://github.com/vercel/next.js/issues/89560) - Remove unused devtools code handling React without `use`: [#&#8203;89793](https://github.com/vercel/next.js/issues/89793) - \[devtools] Wrap overlay in Activity: [#&#8203;89818](https://github.com/vercel/next.js/issues/89818) - Add CSS URL deployment ID suffix support: [#&#8203;89771](https://github.com/vercel/next.js/issues/89771) - Fix cascading LRU eviction during prefetch batches: [#&#8203;89766](https://github.com/vercel/next.js/issues/89766) - Refactor prerenderManifest passing: [#&#8203;89765](https://github.com/vercel/next.js/issues/89765) - \[AI] Ship bundled docs in next and generate AGENTS.md in create-next-app: [#&#8203;89850](https://github.com/vercel/next.js/issues/89850) - Turbopack: Implement server hmr in nodejs dev runtime: [#&#8203;89130](https://github.com/vercel/next.js/issues/89130) - Allow sitemap.ts and sitemap/page.tsx to coexist in Turbopack: [#&#8203;89789](https://github.com/vercel/next.js/issues/89789) - \[fragment-scroll] Cleanup scroll and focus restoration in layout router: [#&#8203;83110](https://github.com/vercel/next.js/issues/83110) - \[fragment-scroll] Add `experimental.appNewScrollHandler`: [#&#8203;83107](https://github.com/vercel/next.js/issues/83107) - \[Instant] Fix crash with search params: [#&#8203;89922](https://github.com/vercel/next.js/issues/89922) - Fix memory leak in dev mode caused by fast-set-immediate: [#&#8203;89779](https://github.com/vercel/next.js/issues/89779) - Trace upload: include experimental flag states: [#&#8203;89845](https://github.com/vercel/next.js/issues/89845) - Upgrade React from `272441a9-20260209` to `6066c782-20260212`: [#&#8203;89923](https://github.com/vercel/next.js/issues/89923) - Add a better error message for when turbopack cannot be loaded: [#&#8203;89633](https://github.com/vercel/next.js/issues/89633) - fix: support multiple icon formats with same base name (icon.png + icon.svg): [#&#8203;89504](https://github.com/vercel/next.js/issues/89504) - Turbopack: Move turbopackIgnoreIssue from experimental to turbopack.ignoreIssue: [#&#8203;89817](https://github.com/vercel/next.js/issues/89817) - Build with dev runtimes when `--debug-prerender` is set: [#&#8203;89834](https://github.com/vercel/next.js/issues/89834) - Append deployment id query string for next-font: [#&#8203;89960](https://github.com/vercel/next.js/issues/89960) - Fix parallel routes with deferred entries: [#&#8203;89967](https://github.com/vercel/next.js/issues/89967) - Rename node extension utils for clarity: [#&#8203;89970](https://github.com/vercel/next.js/issues/89970) - Model abandoning by signal: [#&#8203;89971](https://github.com/vercel/next.js/issues/89971) - Fix missing incremental cache in middleware unstable\_cache: [#&#8203;89980](https://github.com/vercel/next.js/issues/89980) - Run fast immediates during prerender abort to fix flaky I/O stack traces: [#&#8203;89969](https://github.com/vercel/next.js/issues/89969) - \[fragment-scroll] Ensure hoisted elements don't break scroll-to-top on page navigations: [#&#8203;83108](https://github.com/vercel/next.js/issues/83108) - dx: Include path count in export error message: [#&#8203;89333](https://github.com/vercel/next.js/issues/89333) - fix(agents-md): use `require.resolve()` to get the installed `next` version: [#&#8203;89166](https://github.com/vercel/next.js/issues/89166) - docs: agent skills, pr-status script, and AGENTS.md updates (1/8): [#&#8203;89857](https://github.com/vercel/next.js/issues/89857) - Ignore `prefetch={true}` on Links to routes with `instant`: [#&#8203;90061](https://github.com/vercel/next.js/issues/90061) - Expand deferred entries test suite and fix turbopack build: [#&#8203;90057](https://github.com/vercel/next.js/issues/90057) - Use StageController for runtime prerendering: [#&#8203;89972](https://github.com/vercel/next.js/issues/89972) - Improve task pipelining: [#&#8203;90065](https://github.com/vercel/next.js/issues/90065) - fix(next/legacy/image): add deployment id (dpl) query string support: [#&#8203;89956](https://github.com/vercel/next.js/issues/89956) - Cache expected missing manifest read: [#&#8203;89908](https://github.com/vercel/next.js/issues/89908) - Use for...in instead of Object.keys for parallelRouteKey traversal: [#&#8203;89905](https://github.com/vercel/next.js/issues/89905) - \[Instant] allow non-blocking dynamic holes and errors in shared parents: [#&#8203;89875](https://github.com/vercel/next.js/issues/89875) - Move prefetch hints from CacheNodeSeedData to FlightRouterState: [#&#8203;90066](https://github.com/vercel/next.js/issues/90066) - \[Instant] Don't block on client APIs that wouldn't block in the browser: [#&#8203;89924](https://github.com/vercel/next.js/issues/89924) - \[devtools] Add support for error causes in the dev overlay: [#&#8203;90108](https://github.com/vercel/next.js/issues/90108) - Unify runInSequentialTasks across all sequential task work: [#&#8203;89978](https://github.com/vercel/next.js/issues/89978) - Cleanup all stage promises on abort: [#&#8203;89984](https://github.com/vercel/next.js/issues/89984) - segment cache: fix segment cache normalizer: [#&#8203;90111](https://github.com/vercel/next.js/issues/90111) - Handle null history.state in client-side router popstate handler: [#&#8203;90083](https://github.com/vercel/next.js/issues/90083) - Don't parse default postponedsizelimit: [#&#8203;89906](https://github.com/vercel/next.js/issues/89906) - Turbopack: handle invalid RSC imports via importmap: [#&#8203;88146](https://github.com/vercel/next.js/issues/88146) - \[create-next-app] Improve AGENTS.md prompt wording: [#&#8203;90118](https://github.com/vercel/next.js/issues/90118) - ensure maxPostponedStateSize is always respected: [#&#8203;90060](https://github.com/vercel/next.js/issues/90060) - Upgrade React from `6066c782-20260212` to `4842fbea-20260217`: [#&#8203;90144](https://github.com/vercel/next.js/issues/90144) - \[fragment-scroll] Stop focusing the first focusable host descendant: [#&#8203;89903](https://github.com/vercel/next.js/issues/89903) - fix: normalize loopback only in hostname: [#&#8203;90158](https://github.com/vercel/next.js/issues/90158) - Only error for sync IO after runtime in segments that would be runtime prefetched: [#&#8203;89979](https://github.com/vercel/next.js/issues/89979) - \[refactor] Replace runtime prefetch sentinel transform stream: [#&#8203;90160](https://github.com/vercel/next.js/issues/90160) - fix: use Buffer.indexOf in uint8array helpers for faster byte scanning (3/8): [#&#8203;89864](https://github.com/vercel/next.js/issues/89864) - Automatically build and clear native build when running `pnpm build`: [#&#8203;89819](https://github.com/vercel/next.js/issues/89819) - fix(cache): DCE to avoid pulling server internals into browser bundles (4/8): [#&#8203;89865](https://github.com/vercel/next.js/issues/89865) - Attach active src route to next global: [#&#8203;90171](https://github.com/vercel/next.js/issues/90171) - Fix OTEL propagation and add direct entrypoint e2e coverage: [#&#8203;90181](https://github.com/vercel/next.js/issues/90181) - Use cookie as sole protocol for instant navigation testing: [#&#8203;89871](https://github.com/vercel/next.js/issues/89871) - Simplify metadata tag rendering to flat imperative style: [#&#8203;90209](https://github.com/vercel/next.js/issues/90209) - Prevent unhandled rejection filter from being bundled into the server runtime: [#&#8203;90205](https://github.com/vercel/next.js/issues/90205) - \[Instant] speed up test instant-validation suite: [#&#8203;90214](https://github.com/vercel/next.js/issues/90214) - Turbopack: fix static asset skew protection for edge and prerenders: [#&#8203;90238](https://github.com/vercel/next.js/issues/90238) - Remove workStore from params/searchParams/pathname function signatures: [#&#8203;90215](https://github.com/vercel/next.js/issues/90215) - Remove workStore from metadata resolution chain: [#&#8203;90217](https://github.com/vercel/next.js/issues/90217) - \[Instant] export "Instant" config type: [#&#8203;90257](https://github.com/vercel/next.js/issues/90257) - Replace getDynamicParamFromSegment closure with interpolatedParams in metadata: [#&#8203;90249](https://github.com/vercel/next.js/issues/90249) - \[Instant] Dev Tools toggle for Instant Navigation Mode: [#&#8203;90222](https://github.com/vercel/next.js/issues/90222) - \[instant] Include declaration location of instant config in validation errors: [#&#8203;90169](https://github.com/vercel/next.js/issues/90169) - Turbopack: rename ServerPaths to AssetPaths: [#&#8203;90234](https://github.com/vercel/next.js/issues/90234) - feat(next/image): add lru disk cache and `images.maximumDiskCacheSize`: [#&#8203;89963](https://github.com/vercel/next.js/issues/89963) - Revert "Handle null history.state in client-side router popstate handler": [#&#8203;90268](https://github.com/vercel/next.js/issues/90268) - \[devtools] Omit empty looking error messages: [#&#8203;90256](https://github.com/vercel/next.js/issues/90256) - Fix runtime prefetch `isPartial` byte stripping when deployed: [#&#8203;90272](https://github.com/vercel/next.js/issues/90272) - Upgrade React from `2ba30655-20260219` to `ab18f33d-20260220`: [#&#8203;90279](https://github.com/vercel/next.js/issues/90279) - validate sync IO in generateMetadata according to Page's prefetchable status: [#&#8203;90164](https://github.com/vercel/next.js/issues/90164) - Turbopack: support Subresource Integrity : [#&#8203;90152](https://github.com/vercel/next.js/issues/90152) - segment cache: add test for passing unawaited promise to context provider: [#&#8203;89339](https://github.com/vercel/next.js/issues/89339) - Fix route.replace crash with --debug-build-paths: [#&#8203;90312](https://github.com/vercel/next.js/issues/90312) - refactor(app-render): extract stream-ops and debug-channel modules (5/8): [#&#8203;89858](https://github.com/vercel/next.js/issues/89858) - \[turbopack] Consider `ignoreList` of 3rd party sourcemaps in Redbox: [#&#8203;90317](https://github.com/vercel/next.js/issues/90317) - \[turbopack] Remove obsolete is\_internal field : [#&#8203;90329](https://github.com/vercel/next.js/issues/90329) - Fix: Image component ignores images.qualities in Jest environment: [#&#8203;89536](https://github.com/vercel/next.js/issues/89536) - Revert "keep next-env.d.s unchanged between dev and build": [#&#8203;90384](https://github.com/vercel/next.js/issues/90384) - Fix route cache keying for unprefetched navigations: [#&#8203;90400](https://github.com/vercel/next.js/issues/90400) - Add support for Next.js error telemetry for `AggregateError`: [#&#8203;90391](https://github.com/vercel/next.js/issues/90391) - Fix `config.reactProductionProfiling` for Webpack: [#&#8203;90430](https://github.com/vercel/next.js/issues/90430) - next-image: fix deployment id handling for unoptimized: [#&#8203;90416](https://github.com/vercel/next.js/issues/90416) - \[ci] Fix input cache keys for tasks referencing `rust-toolchain`: [#&#8203;90442](https://github.com/vercel/next.js/issues/90442) - next-image: fix dpl handling with unicode: [#&#8203;90420](https://github.com/vercel/next.js/issues/90420) - Upgrade React from `ab18f33d-20260220` to `c0060cf2-20260224`: [#&#8203;90452](https://github.com/vercel/next.js/issues/90452) - \[ci] Stop using Turbopack tests in native binary build cache keys: [#&#8203;90449](https://github.com/vercel/next.js/issues/90449) - \[Instant] Validate blocking head: [#&#8203;89539](https://github.com/vercel/next.js/issues/89539) - Turbopack: Fix experimental server hmr for pages router: [#&#8203;90398](https://github.com/vercel/next.js/issues/90398) - Fix params leaking into instant navigation shell in dev: [#&#8203;90455](https://github.com/vercel/next.js/issues/90455) - Limit build workers to pages+1: [#&#8203;90475](https://github.com/vercel/next.js/issues/90475) - fix: sanitize worker args for worker\_threads compatibility: [#&#8203;90506](https://github.com/vercel/next.js/issues/90506) - Fix varyParams tracking for optional catch-all params with no value: [#&#8203;90496](https://github.com/vercel/next.js/issues/90496) - Don't start worker for Typescript when only doing config validation: [#&#8203;90504](https://github.com/vercel/next.js/issues/90504) - \[Instant] Fix loading.js not being counted as a suspense boundary: [#&#8203;90292](https://github.com/vercel/next.js/issues/90292) - \[ci] Crash if next-swc could not be loaded when `NEXT_TEST_NATIVE_DIR` is specified: [#&#8203;90387](https://github.com/vercel/next.js/issues/90387) - Fix: server-patch retry preserves push/replace intent of suspended transitions: [#&#8203;90533](https://github.com/vercel/next.js/issues/90533) - Cached Navigations: Serve cached segments instantly on repeat visits: [#&#8203;90223](https://github.com/vercel/next.js/issues/90223) - Throw when `unstable_instant` is used in Client Component: [#&#8203;90396](https://github.com/vercel/next.js/issues/90396) - \[test] Fix jest-haste-map warnings: [#&#8203;82995](https://github.com/vercel/next.js/issues/82995) - Don't require collect-build-traces with Turbopack: [#&#8203;90586](https://github.com/vercel/next.js/issues/90586) - Enable `experimental.reactDebugChannel` by default: [#&#8203;90310](https://github.com/vercel/next.js/issues/90310) - Less dynamic pages manifest path: [#&#8203;90581](https://github.com/vercel/next.js/issues/90581) - Upgrade React from `c0060cf2-20260224` to `98ce535f-20260226`: [#&#8203;90605](https://github.com/vercel/next.js/issues/90605) - Turbopack: Add Next.js version to "initialize project" trace span: [#&#8203;90545](https://github.com/vercel/next.js/issues/90545) - \[devtools] Stop sending codeframes for ignored frames: [#&#8203;90577](https://github.com/vercel/next.js/issues/90577) - Allow `reset()` from user's global-error: [#&#8203;89684](https://github.com/vercel/next.js/issues/89684) - Fix per-segment prefetching for initial loads with Cache Components: [#&#8203;90610](https://github.com/vercel/next.js/issues/90610) - Add `unstable_retry()` to error.js: [#&#8203;89685](https://github.com/vercel/next.js/issues/89685) - Fix edge index page \_next/data route: [#&#8203;90611](https://github.com/vercel/next.js/issues/90611) - Turbopack server hmr: Implement `restart` event: [#&#8203;90550](https://github.com/vercel/next.js/issues/90550) - Turbopack: Panic if a top-level task attempts an eventually consistent read: [#&#8203;89735](https://github.com/vercel/next.js/issues/89735) - Fix middleware case with adapters: [#&#8203;90624](https://github.com/vercel/next.js/issues/90624) - refactor(turbopack-node): support execution by napi and worker\_threads: [#&#8203;86266](https://github.com/vercel/next.js/issues/86266) - \[instant] Allow providing user feedback for blocking route errors: [#&#8203;90498](https://github.com/vercel/next.js/issues/90498) - Allow Node.js' experimental inspector flags in `next dev` and `next build`: [#&#8203;90603](https://github.com/vercel/next.js/issues/90603) - tests: Assert dpl query string in all tests for Turbopack: [#&#8203;90592](https://github.com/vercel/next.js/issues/90592) - \[instant] Don't add debug stack to random `unstable_instant` exports: [#&#8203;90273](https://github.com/vercel/next.js/issues/90273) - Adapter: STATIC\_FILE.immutableHash: [#&#8203;90045](https://github.com/vercel/next.js/issues/90045) - Turbopack: experimental.immutableAssetToken: [#&#8203;88607](https://github.com/vercel/next.js/issues/88607) - remove runInContext callbacks from stream-ops: [#&#8203;90609](https://github.com/vercel/next.js/issues/90609) - Turbopack: restrict server HMR to app pages: [#&#8203;90663](https://github.com/vercel/next.js/issues/90663) - Turbopack: Allow turbopack-node backend to be swapped at runtime using an experimental config option: [#&#8203;90671](https://github.com/vercel/next.js/issues/90671) - Turbopack: Revert default loader runtime backend to child processes: [#&#8203;90675](https://github.com/vercel/next.js/issues/90675) - \[devtools] Stop blocking overlay on error details copy: [#&#8203;90698](https://github.com/vercel/next.js/issues/90698) - feat: provide nextVersion to modifyConfig adapter hook: [#&#8203;90735](https://github.com/vercel/next.js/issues/90735) - experimental.prefetchInlining: bundle segment prefetches into a single response: [#&#8203;90555](https://github.com/vercel/next.js/issues/90555) - instant(): fix cookie handling for fresh page loads: [#&#8203;90613](https://github.com/vercel/next.js/issues/90613) - fix(turbopack): use posix.join for client URL manifest paths on Windows: [#&#8203;90700](https://github.com/vercel/next.js/issues/90700) - Turbopack: improve cell order lint rule for ReadRef::cell: [#&#8203;88500](https://github.com/vercel/next.js/issues/88500) - Change names of logged times: [#&#8203;90688](https://github.com/vercel/next.js/issues/90688) - \[devtools] Bump React Compiler version to latest experimental: [#&#8203;90763](https://github.com/vercel/next.js/issues/90763) - Skip writeToBfCache without window: [#&#8203;90771](https://github.com/vercel/next.js/issues/90771) - docs: error component `unstable_retry()`: [#&#8203;89732](https://github.com/vercel/next.js/issues/89732) - Stub adapterPath with experimental.runtimeServerDeploymentId: [#&#8203;90790](https://github.com/vercel/next.js/issues/90790) - Conditionally load uncommon paths: [#&#8203;90514](https://github.com/vercel/next.js/issues/90514) - Refactor extractExportedConstValue to return { value } | null instead of throwing: [#&#8203;90510](https://github.com/vercel/next.js/issues/90510) - Reimplement code frame rendering in native code: [#&#8203;85592](https://github.com/vercel/next.js/issues/85592) - \[devtools] Bundle for same target as Next.js browser runtime: [#&#8203;90762](https://github.com/vercel/next.js/issues/90762) - Upgrade React from `98ce535f-20260226` to `4cc5b7a9-20260303`: [#&#8203;90827](https://github.com/vercel/next.js/issues/90827) - Add `transitionTypes` prop to `next/link`: [#&#8203;90701](https://github.com/vercel/next.js/issues/90701) - \[otel] fix missing http.route attribute: [#&#8203;90832](https://github.com/vercel/next.js/issues/90832) - \[otel] set parent span name: [#&#8203;90840](https://github.com/vercel/next.js/issues/90840) - Update default error pages: [#&#8203;90469](https://github.com/vercel/next.js/issues/90469) - Replace PPR config helpers with cacheComponents checks: [#&#8203;90704](https://github.com/vercel/next.js/issues/90704) - Cached Navigations: Cache visited fully static pages in the segment cache: [#&#8203;90306](https://github.com/vercel/next.js/issues/90306) - Remove `isRoutePPREnabled` from render options and delete dead PPR branch: [#&#8203;90713](https://github.com/vercel/next.js/issues/90713) - Use page extensions in next-swc transforms applying to pages: [#&#8203;90650](https://github.com/vercel/next.js/issues/90650) - Cached Navigations: Cache static stage of partially static initial HTML: [#&#8203;90539](https://github.com/vercel/next.js/issues/90539) - Remove `PrerenderStorePPR` type and all `prerender-ppr` switch cases: [#&#8203;90721](https://github.com/vercel/next.js/issues/90721) - Clean up legacy PPR references in test fixtures: [#&#8203;90725](https://github.com/vercel/next.js/issues/90725) - Cached Navigations: Cache runtime stage data from navigation requests: [#&#8203;90666](https://github.com/vercel/next.js/issues/90666) - Remove legacy PPR postpone cluster: [#&#8203;90726](https://github.com/vercel/next.js/issues/90726) - partial fallbacks: add adapter flag: [#&#8203;90395](https://github.com/vercel/next.js/issues/90395) - Address review feedback: extract modules, clean up imports: [#&#8203;90813](https://github.com/vercel/next.js/issues/90813) - Add trace spans for turbopack persistence in .next/trace: [#&#8203;90397](https://github.com/vercel/next.js/issues/90397) - Upgrade React from `4cc5b7a9-20260303` to `3bc2d414-20260304`: [#&#8203;90876](https://github.com/vercel/next.js/issues/90876) - Fix prefetch inlining build failure with dynamic routes: [#&#8203;90899](https://github.com/vercel/next.js/issues/90899) - Update `@vercel/og` and `satori` vendors: [#&#8203;90933](https://github.com/vercel/next.js/issues/90933) - Batch require cache deletion to avoid quadratic scanning: [#&#8203;90625](https://github.com/vercel/next.js/issues/90625) - Revert legacy PPR removal: [#&#8203;90948](https://github.com/vercel/next.js/issues/90948) - Rewrite instant validation to use depth-based URL boundary discovery: [#&#8203;90905](https://github.com/vercel/next.js/issues/90905) - Add `experimental.cachedNavigations` feature flag: [#&#8203;90928](https://github.com/vercel/next.js/issues/90928) - preserve allowQuery for partial fallback shells: [#&#8203;90887](https://github.com/vercel/next.js/issues/90887) - Cache runtime data for partially static pages on initial load (resume): [#&#8203;90888](https://github.com/vercel/next.js/issues/90888) - re-introduce partial fallback -> route upgrading: [#&#8203;89063](https://github.com/vercel/next.js/issues/89063) - fix: Don't fall through to catch-all when static child subtree doesn't match: [#&#8203;90957](https://github.com/vercel/next.js/issues/90957) - Bump Node heap limit for lint-no-typescript to avoid OOM in CI: [#&#8203;90996](https://github.com/vercel/next.js/issues/90996) - Upgrade React from `3bc2d414-20260304` to `46103596-20260305`: [#&#8203;90989](https://github.com/vercel/next.js/issues/90989) - fix: trigger MPA navigation for server action redirects with build ID mismatch: [#&#8203;89946](https://github.com/vercel/next.js/issues/89946) - Improve webpack loader error messages and handling: [#&#8203;89698](https://github.com/vercel/next.js/issues/89698) - Turbopack: implement module.hot.accept(deps, cb) and module.hot.decline(deps): [#&#8203;90443](https://github.com/vercel/next.js/issues/90443) - partial fallbacks: gate behind experimental flag: [#&#8203;91123](https://github.com/vercel/next.js/issues/91123) - fix: app-page URL normalization: [#&#8203;91121](https://github.com/vercel/next.js/issues/91121) - Updates to Instant Navs devtools functionality: [#&#8203;91005](https://github.com/vercel/next.js/issues/91005) - Trace upload: add git and environment info: [#&#8203;91124](https://github.com/vercel/next.js/issues/91124) - fix(css): rewrite MiniCssExtractPlugin insert function to ES5 to support legacy browsers: [#&#8203;90556](https://github.com/vercel/next.js/issues/90556) - Revert "Address review feedback: extract modules, clean up imports": [#&#8203;91159](https://github.com/vercel/next.js/issues/91159) - \[turbopack] Render code frames on the turbopack side: [#&#8203;90534](https://github.com/vercel/next.js/issues/90534) - Add experimental.lightningCssFeatures config option: [#&#8203;90901](https://github.com/vercel/next.js/issues/90901) - fix: correct appPaths sort order for parallel routes with route groups: [#&#8203;91160](https://github.com/vercel/next.js/issues/91160) - Tracing: tag spans as failed if their runner fn fails: [#&#8203;91206](https://github.com/vercel/next.js/issues/91206) - Adds a Start button to the Instant Navs panel to initiate inspection …: [#&#8203;91216](https://github.com/vercel/next.js/issues/91216) - Preserve RSC metadata in Proxy request with skipProxyUrlNormalize: [#&#8203;91213](https://github.com/vercel/next.js/issues/91213) - \[cna] Bump `picocolors` to 1.1.1: [#&#8203;91252](https://github.com/vercel/next.js/issues/91252) - \[Instant] Build-time validation: [#&#8203;90964](https://github.com/vercel/next.js/issues/90964) - \[Instant] fix instant config suggested by editor plugin: [#&#8203;91262](https://github.com/vercel/next.js/issues/91262) - chore(deps): Bump tar from 7.5.7 to 7.5.11 in /packages/next: [#&#8203;91233](https://github.com/vercel/next.js/issues/91233) - Upgrade React from `46103596-20260305` to `5e9eedb5-20260312`: [#&#8203;91272](https://github.com/vercel/next.js/issues/91272) - feat(server): expose requestMeta router helpers and merge fallback context: [#&#8203;91235](https://github.com/vercel/next.js/issues/91235) - \[Instant] Show owner stack for validation-blocking errors: [#&#8203;91277](https://github.com/vercel/next.js/issues/91277) - Hydrate page loads during instant navigation testing: [#&#8203;91207](https://github.com/vercel/next.js/issues/91207) - perf: use Buffer.from for base64 encoding of binary Flight data: [#&#8203;91221](https://github.com/vercel/next.js/issues/91221) - Skip dimming when `--inspect` is used: [#&#8203;91271](https://github.com/vercel/next.js/issues/91271) - Respect `generateStaticParams` in instant navigation shell: [#&#8203;91316](https://github.com/vercel/next.js/issues/91316) - \[Prefetch Inlining] Generate size-based hints on server: [#&#8203;90891](https://github.com/vercel/next.js/issues/90891) - Wire cache handlers in edge paths and add e2e regression coverage: [#&#8203;91236](https://github.com/vercel/next.js/issues/91236) - Expose edge runtime fields in build-complete: [#&#8203;91239](https://github.com/vercel/next.js/issues/91239) - \[turbopack] Remove `turbo_tasks::function` from ModuleReference getters: [#&#8203;91229](https://github.com/vercel/next.js/issues/91229) - \[Turbopack] write route bundle stats to .next/diagnostics/route-bundle-stats.json: [#&#8203;90949](https://github.com/vercel/next.js/issues/90949) - partial fallbacks: only upgrade shells with remaining prerenderable params: [#&#8203;91158](https://github.com/vercel/next.js/issues/91158) - partial fallbacks: complete generic shells into more specific shells: [#&#8203;91231](https://github.com/vercel/next.js/issues/91231) - Add eval and docs for unstable\_instant: [#&#8203;91334](https://github.com/vercel/next.js/issues/91334) - Simplify scroll restoration with shared ScrollRef on CacheNode: [#&#8203;91348](https://github.com/vercel/next.js/issues/91348) - fix: test-cargo-unit CI job timing out since LTO was enabled: [#&#8203;91424](https://github.com/vercel/next.js/issues/91424) - fix(build): don't block SSG on telemetry flush, add persistence spans to trace-build: [#&#8203;91335](https://github.com/vercel/next.js/issues/91335) - Ready in X - prints wrong timing on dev server restart: [#&#8203;90874](https://github.com/vercel/next.js/issues/90874) - Show generated code from loaders in parse error messages: [#&#8203;89898](https://github.com/vercel/next.js/issues/89898) - Remove unused layer from server actions manifest: [#&#8203;91425](https://github.com/vercel/next.js/issues/91425) - Support accessing root params in `generateStaticParams`: [#&#8203;91189](https://github.com/vercel/next.js/issues/91189) - Avoid `undefined` outer work unit store in `"use cache"`: [#&#8203;91190](https://github.com/vercel/next.js/issues/91190) - Add `unstable_dynamicStaleTime` route segment config: [#&#8203;91437](https://github.com/vercel/next.js/issues/91437) - \[next-playwright] Use unique cookie values for instant navigation testing lock: [#&#8203;91250](https://github.com/vercel/next.js/issues/91250) - Add `unstable_catchError()` API for component-level error recovery: [#&#8203;89688](https://github.com/vercel/next.js/issues/89688) - docs(turbopack): Fix all warnings in `cargo doc --no-deps --workspace`, and run rustdoc as part of our CI checks: [#&#8203;91339](https://github.com/vercel/next.js/issues/91339) - Patch improvements into `http-proxy` lib: [#&#8203;91480](https://github.com/vercel/next.js/issues/91480) - Disallow Server Action submissions from privacy-sensitive contexts: [#&#8203;91478](https://github.com/vercel/next.js/issues/91478) - Fix startup warmup for empty-shell app route cache: [#&#8203;91470](https://github.com/vercel/next.js/issues/91470) - Fix `unstable_catchError` type inference for fallback props: [#&#8203;91485](https://github.com/vercel/next.js/issues/91485) - Support accessing root params in `"use cache"` functions: [#&#8203;91191](https://github.com/vercel/next.js/issues/91191) - Fix inconsistent cache life/tags propagation for cache handler hits: [#&#8203;91454](https://github.com/vercel/next.js/issues/91454) - Upgrade React from `5e9eedb5-20260312` to `c80a0750-20260312`: [#&#8203;91324](https://github.com/vercel/next.js/issues/91324) - Error when accessing undefined root params in `generateStaticParams`: [#&#8203;91519](https://github.com/vercel/next.js/issues/91519) - Buffer prefetch response before passing to Flight client: [#&#8203;91487](https://github.com/vercel/next.js/issues/91487) - \[Segment Cache] Always upsert on prefetch completion: [#&#8203;91488](https://github.com/vercel/next.js/issues/91488) - Track vary params during runtime prefetches: [#&#8203;89297](https://github.com/vercel/next.js/issues/89297) - \[react-sync] Allow locking in manual sync: [#&#8203;91509](https://github.com/vercel/next.js/issues/91509) - Remove devCacheControlNoCache experimental option (hard-code no-cache): [#&#8203;91503](https://github.com/vercel/next.js/issues/91503) - fix allowedDevOrigins for no-cors requests: [#&#8203;91506](https://github.com/vercel/next.js/issues/91506) - Remove webpack stats generation from Turbopack: [#&#8203;91515](https://github.com/vercel/next.js/issues/91515) - Upgrade React from `c80a0750-20260312` to `3f0b9e61-20260317`: [#&#8203;91522](https://github.com/vercel/next.js/issues/91522) - Move adapterPath from experimental to stable top-level config: [#&#8203;91535](https://github.com/vercel/next.js/issues/91535) - block disallowed dev origins by default: [#&#8203;91507](https://github.com/vercel/next.js/issues/91507) - Turbopack: Merge release-with-assertions-no-lto profile into release-with-assertions: [#&#8203;91530](https://github.com/vercel/next.js/issues/91530) - improve allowedDevOrigins error: [#&#8203;91521](https://github.com/vercel/next.js/issues/91521) - Add group depth tracking to instant validation boundary discovery: [#&#8203;91208](https://github.com/vercel/next.js/issues/91208) ##### Documentation Changes - docs: next experimental-analyze: [#&#8203;87272](https://github.com/vercel/next.js/issues/87272) - docs: use cache private redo: [#&#8203;87111](https://github.com/vercel/next.js/issues/87111) - docs: fix highlight in 05-server-and-client-components.mdx: [#&#8203;87347](https://github.com/vercel/next.js/issues/87347) - Guide: Update `Optimizing Package Bundling` to include new Bundle Analyzer: [#&#8203;87246](https://github.com/vercel/next.js/issues/87246) - docs: generateMetadata and generateViewport w/ CC: [#&#8203;87218](https://github.com/vercel/next.js/issues/87218) - docs: tweaks/fixes to papercuts: [#&#8203;87445](https://github.com/vercel/next.js/issues/87445) - docs: fix typos and clarify examples in Cache Components guide: [#&#8203;87530](https://github.com/vercel/next.js/issues/87530) - \[docs] add get\_routes in mcp available tools: [#&#8203;88181](https://github.com/vercel/next.js/issues/88181) - Update generateMetadata in client component error: [#&#8203;88172](https://github.com/vercel/next.js/issues/88172) - docs: fix CSP example to only include unsafe-eval in development: [#&#8203;88407](https://github.com/vercel/next.js/issues/88407) - docs: add useSearchParams and useParams documentation for Pages Router: [#&#8203;88429](https://github.com/vercel/next.js/issues/88429) - docs: fix Pages Router fonts documentation showing App Router examples: [#&#8203;88326](https://github.com/vercel/next.js/issues/88326) - doc: add details of mcp client integration: [#&#8203;88543](https://github.com/vercel/next.js/issues/88543) - Turbopack: query conditions in rules follow-ups: [#&#8203;88801](https://github.com/vercel/next.js/issues/88801) - Docs: Add Next.js Glossary: [#&#8203;88811](https://github.com/vercel/next.js/issues/88811) - docs: Server functions rename: [#&#8203;86827](https://github.com/vercel/next.js/issues/86827) - docs: Update Partytown URLs and package reference: [#&#8203;88928](https://github.com/vercel/next.js/issues/88928) - docs: improve clarity in cache components and server/client docs: [#&#8203;88946](https://github.com/vercel/next.js/issues/88946) - docs: revalidatePath w/ rewrites and trailing slash: [#&#8203;88956](https://github.com/vercel/next.js/issues/88956) - Cache Component Guide: Building public, *mostly* static pages: [#&#8203;87248](https://github.com/vercel/next.js/issues/87248) - Turbopack: Add postcss.config.ts support: [#&#8203;89049](https://github.com/vercel/next.js/issues/89049) - CC Guide: Fix filenames, reduce line breaks: [#&#8203;89065](https://github.com/vercel/next.js/issues/89065) - docs: fix code highlight in 07-fetching-data.mdx: [#&#8203;88727](https://github.com/vercel/next.js/issues/88727) - \[docs] Always include `unsafe-eval` in dev `Content-Security-Policy`: [#&#8203;89163](https://github.com/vercel/next.js/issues/89163) - Turbopack: add support for turbopackOptional: true: [#&#8203;89227](https://github.com/vercel/next.js/issues/89227) - docs: Rename Error component to ErrorPage: [#&#8203;89284](https://github.com/vercel/next.js/issues/89284) - docs: replace 'can not' with 'cannot': [#&#8203;89354](https://github.com/vercel/next.js/issues/89354) - docs: Fix custom server code snippets: [#&#8203;89400](https://github.com/vercel/next.js/issues/89400) - Snippet multi package syntax: [#&#8203;89381](https://github.com/vercel/next.js/issues/89381) - Fix indentation of types of tests in docs: [#&#8203;89409](https://github.com/vercel/next.js/issues/89409) - docs: Fix syntax in proxy example code: [#&#8203;89395](https://github.com/vercel/next.js/issues/89395) - docs: fix ISR guide link to res.revalidate: [#&#8203;89342](https://github.com/vercel/next.js/issues/89342) - Fix spelling in robots.mdx documentation: [#&#8203;89565](https://github.com/vercel/next.js/issues/89565) - Remove more examples: [#&#8203;89709](https://github.com/vercel/next.js/issues/89709) - clarify unstable\_cache replacement with use cache: [#&#8203;89435](https://github.com/vercel/next.js/issues/89435) - docs: correct use term: [#&#8203;89438](https://github.com/vercel/next.js/issues/89438) - \[docs] Add `RedirectType` usage example to `permanentRedirect`: [#&#8203;89833](https://github.com/vercel/next.js/issues/89833) - Next CLI flags documentation: [#&#8203;89750](https://github.com/vercel/next.js/issues/89750) - docs: adapt lead to source path patterns: [#&#8203;89392](https://github.com/vercel/next.js/issues/89392) - docs: Papercuts Feb26: [#&#8203;89484](https://github.com/vercel/next.js/issues/89484) - After() docs requests API: [#&#8203;89837](https://github.com/vercel/next.js/issues/89837) - docs: Move browserToTerminal into logging: [#&#8203;88901](https://github.com/vercel/next.js/issues/88901) - Update documentation to explain behavior in a Catch-all route: [#&#8203;89742](https://github.com/vercel/next.js/issues/89742) - docs: add deploymentId config and clarify encryption key for self-hosting: [#&#8203;89795](https://github.com/vercel/next.js/issues/89795) - docs: adapterPath amends: [#&#8203;89930](https://github.com/vercel/next.js/issues/89930) - docs: improve next/image localPatterns error page: [#&#8203;89914](https://github.com/vercel/next.js/issues/89914) - docs: inline-css dev-action oriented: [#&#8203;89064](https://github.com/vercel/next.js/issues/89064) - docs: document cacheLife expire omission behavior and fix default preset value: [#&#8203;89913](https://github.com/vercel/next.js/issues/89913) - docs: Activity boundary guide: [#&#8203;89126](https://github.com/vercel/next.js/issues/89126) - Turbopack: Add inline loader configuration via import attributes: [#&#8203;89644](https://github.com/vercel/next.js/issues/89644) - docs: fix broken blockquote formatting in API Routes page: [#&#8203;89966](https://github.com/vercel/next.js/issues/89966) - docs: clarify async instrumentation register request : [#&#8203;90039](https://github.com/vercel/next.js/issues/90039) - Add AGENTS.md and bundled docs guide: [#&#8203;89973](https://github.com/vercel/next.js/issues/89973) - In-Depth Explanation of React Version Handling Doc: [#&#8203;89426](https://github.com/vercel/next.js/issues/89426) - Next.js sticky scroll standards: [#&#8203;90197](https://github.com/vercel/next.js/issues/90197) - docs: fixes typo in manifest.mdx regarding Route Handler note: [#&#8203;90394](https://github.com/vercel/next.js/issues/90394) - docs: improve form guide consistency and validation examples: [#&#8203;90361](https://github.com/vercel/next.js/issues/90361) - docs: rework version staleness: [#&#8203;90192](https://github.com/vercel/next.js/issues/90192) - docs: clarify that next upgrade is for 16.1.x+: [#&#8203;90435](https://github.com/vercel/next.js/issues/90435) - Add not-found.js / notFound() links to Status Codes section: [#&#8203;88332](https://github.com/vercel/next.js/issues/88332) - docs: update with more patterns and decision based: [#&#8203;90203](https://github.com/vercel/next.js/issues/90203) - docs: add Docker Standalone and Docker Export examples to Deploying page: [#&#8203;90386](https://github.com/vercel/next.js/issues/90386) - feat: Join guides and frame around UI preservation: [#&#8203;90595](https://github.com/vercel/next.js/issues/90595) - docs(deploying): add Hostinger Web Apps Hosting to Node.js deployment options: [#&#8203;90246](https://github.com/vercel/next.js/issues/90246) - docs: fix navigationType value and variable name in useReportWebVitals: [#&#8203;90599](https://github.com/vercel/next.js/issues/90599) - Accept header content negotiation: [#&#8203;90607](https://github.com/vercel/next.js/issues/90607) - docs: clarify native <script> usage for JSON-LD in docs: [#&#8203;90380](https://github.com/vercel/next.js/issues/90380) - Create next app CLI docs: [#&#8203;90788](https://github.com/vercel/next.js/issues/90788) - Unify caching story across the docs: [#&#8203;90149](https://github.com/vercel/next.js/issues/90149) - update proxy docs to use NextProxy type: [#&#8203;90647](https://github.com/vercel/next.js/issues/90647) - Loading layout docs update: [#&#8203;90787](https://github.com/vercel/next.js/issues/90787) - Uncached data suspense issue: [#&#8203;90450](https://github.com/vercel/next.js/issues/90450) - docs: explain deploy test custom scripts: [#&#8203;90966](https://github.com/vercel/next.js/issues/90966) - Update adapters documentation: [#&#8203;90986](https://github.com/vercel/next.js/issues/90986) - docs: large page data error: [#&#8203;90920](https://github.com/vercel/next.js/issues/90920) - docs(localFont): enhance details about using the localFont function: [#&#8203;88189](https://github.com/vercel/next.js/issues/88189) - chore(docs): mention behavior of redirects and remotePatterns: [#&#8203;91151](https://github.com/vercel/next.js/issues/91151) - docs: More Server Actions security guidance across docs: [#&#8203;90878](https://github.com/vercel/next.js/issues/90878) - docs: Streaming guide: [#&#8203;90779](https://github.com/vercel/next.js/issues/90779) - Docs: Split route segment config options into their own files: [#&#8203;90991](https://github.com/vercel/next.js/issues/90991) - Expose resolved invocation targets in next-routing: [#&#8203;91242](https://github.com/vercel/next.js/issues/91242) - docs: remove incorrect \_document.tsx font example: [#&#8203;91346](https://github.com/vercel/next.js/issues/91346) - docs: `unstable_catchError()`: [#&#8203;89847](https://github.com/vercel/next.js/issues/89847) - SRI turbopack documentation: [#&#8203;90477](https://github.com/vercel/next.js/issues/90477) - docs: Clarify ignoreBuildErrors behavior: [#&#8203;91367](https://github.com/vercel/next.js/issues/91367) ##### Example Changes - fix: Change Dockerfile.bun to use group/useradd instead of addgroup/user: [#&#8203;87443](https://github.com/vercel/next.js/issues/87443) - fix(examples): resolve hydration mismatch in blog-starter: [#&#8203;87703](https://github.com/vercel/next.js/issues/87703) - Update with-mysql example to Next.js 15, Tailwind 4, Prisma 7: [#&#8203;88475](https://github.com/vercel/next.js/issues/88475) - chore(examples): remove `with-recoil` exmaple: [#&#8203;81836](https://github.com/vercel/next.js/issues/81836) - chore(examples): remove `with-tigris` example: [#&#8203;81843](https://github.com/vercel/next.js/issues/81843) - \[feat] Added Docker examples for standalone output and export output following best practices: [#&#8203;87069](https://github.com/vercel/next.js/issues/87069) - Migrate from react-markdown to Streamdown static in EdgeDB example: [#&#8203;86435](https://github.com/vercel/next.js/issues/86435) - example: restore .next handling for with-docker examples: [#&#8203;90651](https://github.com/vercel/next.js/issues/90651) - with-docker: add new config file formats: [#&#8203;90731](https://github.com/vercel/next.js/issues/90731) - example: remove duplicate items in .dockerignore: [#&#8203;91079](https://github.com/vercel/next.js/issues/91079) ##### Misc Changes - Turbopack: refactor graph traveral and fix module graph determinism: [#&#8203;87312](https://github.com/vercel/next.js/issues/87312) - bundle analyzer: remove uncompressed toggle, stabilize top bar ui: [#&#8203;87325](https://github.com/vercel/next.js/issues/87325) - test: de-flake client-cache deployment tests: [#&#8203;87412](https://github.com/vercel/next.js/issues/87412) - Revert "Revert "\[turbopack] Set `liveness` of exports based on assignment analysis ([#&#8203;82802](https://github.com/vercel/next.js/issues/82802))"": [#&#8203;87214](https://github.com/vercel/next.js/issues/87214) - ci: track runner name on datadog test reports: [#&#8203;87440](https://github.com/vercel/next.js/issues/87440) - Turbopack: In CI only persist at the end: [#&#8203;87316](https://github.com/vercel/next.js/issues/87316) - fix: correct quotes in dev script filter in package.json: [#&#8203;87638](https://github.com/vercel/next.js/issues/87638) - chore: add a missing period to rspack description: [#&#8203;86526](https://github.com/vercel/next.js/issues/86526) - \[test] Move off of as much `url.parse` as possible: [#&#8203;87286](https://github.com/vercel/next.js/issues/87286) - Update Rspack production test manifest: [#&#8203;87889](https://github.com/vercel/next.js/issues/87889) - Update Rspack development test manifest: [#&#8203;87888](https://github.com/vercel/next.js/issues/87888) - chore(turbo-tasks-malloc): replace mimalloc-rspack to mimalloc: [#&#8203;87815](https://github.com/vercel/next.js/issues/87815) - fix: normalize CRLF line endings in jscodeshift tests on Windows: [#&#8203;88008](https://github.com/vercel/next.js/issues/88008) - chore: add Claude Code configuration: [#&#8203;87943](https://github.com/vercel/next.js/issues/87943) - test: reduce flakiness in opentelemetry test for prod mode: [#&#8203;88102](https://github.com/vercel/next.js/issues/88102) - Rename CLAUDE.md to AGENTS.md with symlink: [#&#8203;88105](https://github.com/vercel/next.js/issues/88105) - \[turbopack] Populate the `names` field of sourcemaps: [#&#8203;87911](https://github.com/vercel/next.js/issues/87911) - Turbopack: fix order of breadth first edges: [#&#8203;88117](https://github.com/vercel/next.js/issues/88117) - Turbopack: transpile CHUNK\_SUFFIX: [#&#8203;88128](https://github.com/vercel/next.js/issues/88128) - chore: add dev boot profiling and benchmark scripts: [#&#8203;87940](https://github.com/vercel/next.js/issues/87940) - perf: improve stats action reliability and reduce CI noise: [#&#8203;87945](https://github.com/vercel/next.js/issues/87945) - Update Rspack production test manifest: [#&#8203;88137](https://github.com/vercel/next.js/issues/88137) - Update Rspack development test manifest: [#&#8203;88138](https://github.com/vercel/next.js/issues/88138) - Fix compile error when running next-custom-transform tests: [#&#8203;83715](https://github.com/vercel/next.js/issues/83715) - chore: add Conductor configuration for parallel development: [#&#8203;88116](https://github.com/vercel/next.js/issues/88116) - fix: move conductor.json to repo root for proper detection: [#&#8203;88184](https://github.com/vercel/next.js/issues/88184) - Turbopack: Update to swc\_core v50.2.3: [#&#8203;87841](https://github.com/vercel/next.js/issues/87841) - ci: run stats on canary pushes for historical trend tracking: [#&#8203;88157](https://github.com/vercel/next.js/issues/88157) - perf: improve stats thresholds to reduce CI noise: [#&#8203;88158](https://github.com/vercel/next.js/issues/88158) - Turbopack: Use batch get request to read more efficient from database: [#&#8203;87106](https://github.com/vercel/next.js/issues/87106) - Turbopack: improve aggregation update performance: [#&#8203;87317](https://github.com/vercel/next.js/issues/87317) - Add test creation instructions to agents.md: [#&#8203;88215](https://github.com/vercel/next.js/issues/88215) - Turbopack: report changed env vars in tracing: [#&#8203;88195](https://github.com/vercel/next.js/issues/88195) - Turbopack: get rid of some manual self.await-s: [#&#8203;88236](https://github.com/vercel/next.js/issues/88236) - Guard against Object/Array shadowing in 'use cache' transform: [#&#8203;88229](https://github.com/vercel/next.js/issues/88229) - feat(turbo-tasks-fs): support multi denied\_paths: [#&#8203;88186](https://github.com/vercel/next.js/issues/88186) - Upgrade to swc 54: [#&#8203;88207](https://github.com/vercel/next.js/issues/88207) - ci: fix javascript-urls test to account for React 18: [#&#8203;88249](https://github.com/vercel/next.js/issues/88249) - Turbopack: Remove tokio and turbo-task handles from Invalidator: [#&#8203;88242](https://github.com/vercel/next.js/issues/88242) - Turbopack: remove Stateful flag: [#&#8203;88196](https://github.com/vercel/next.js/issues/88196) - Upgrade to rustc 2026-01-04: [#&#8203;88095](https://github.com/vercel/next.js/issues/88095) - Turbopack: include children count in "task execution completed" span: [#&#8203;87318](https://github.com/vercel/next.js/issues/87318) - Turbopack: avoid blocking tasks for I/O work: [#&#8203;87661](https://github.com/vercel/next.js/issues/87661) - Turbopack: flatten trace when it reaches cut off depth: [#&#8203;88118](https://github.com/vercel/next.js/issues/88118) - Turbopack: remove unused code: [#&#8203;88274](https://github.com/vercel/next.js/issues/88274) - Turbopack: escape colon in output names: [#&#8203;88273](https://github.com/vercel/next.js/issues/88273) - \[test] Add a failing test for cycle serialization in segment prefetches: [#&#8203;88287](https://github.com/vercel/next.js/issues/88287) - Turbopack: scope hoisting bug with reexport-self-star: [#&#8203;86131](https://github.com/vercel/next.js/issues/86131) - Turbopack: Add #\[automatically\_derived] to proc macros: [#&#8203;88281](https://github.com/vercel/next.js/issues/88281) - Update Rspack development test manifest: [#&#8203;88260](https://github.com/vercel/next.js/issues/88260) - Turbopack: Use `format!` instead of `anyhow!` inside of `anyhow::Context::with_context` calls: [#&#8203;88293](https://github.com/vercel/next.js/issues/88293) - Turbopack: pull in updated vercel/nft tests: [#&#8203;88162](https://github.com/vercel/next.js/issues/88162) - Fix pack-next script for next-swc: [#&#8203;88126](https://github.com/vercel/next.js/issues/88126) - Turbopack: use correct flags in tests: [#&#8203;88307](https://github.com/vercel/next.js/issues/88307) - Turbopack: fix task category on reading cells: [#&#8203;88309](https://github.com/vercel/next.js/issues/88309) - agent.md: Explain where the Next.js core code lives: [#&#8203;88314](https://github.com/vercel/next.js/issues/88314) - Turbopack: improve next-server.nft.json tests: [#&#8203;88320](https://github.com/vercel/next.js/issues/88320) - Turbopack: add family to database read span: [#&#8203;88323](https://github.com/vercel/next.js/issues/88323) - Tests: Reduce loglines from apply patch delay: [#&#8203;88224](https://github.com/vercel/next.js/issues/88224) - Turbopack: prefetch children too: [#&#8203;88324](https://github.com/vercel/next.js/issues/88324) - Turbopack: more stale details for tracing: [#&#8203;88306](https://github.com/vercel/next.js/issues/88306) - Turbopack: make GraphTraversal deterministically calling all nodes before erroring: [#&#8203;88119](https://github.com/vercel/next.js/issues/88119) - Turbopack: improve error message for incompatible swc plugins: [#&#8203;86346](https://github.com/vercel/next.js/issues/86346) - Update Rspack development test manifest: [#&#8203;88301](https://github.com/vercel/next.js/issues/88301) - Update Rspack production test manifest: [#&#8203;88300](https://github.com/vercel/next.js/issues/88300) - Stats Action: Add ready in time: [#&#8203;88283](https://github.com/vercel/next.js/issues/88283) - fix: skip stats-aggregate job for docs-only changes: [#&#8203;88330](https://github.com/vercel/next.js/issues/88330) - docs: add PR description guidance to AGENTS.md: [#&#8203;88408](https://github.com/vercel/next.js/issues/88408) - ci: Fix retry comments in workflow files: [#&#8203;88412](https://github.com/vercel/next.js/issues/88412) - \[test] Deflake `test/integration/invalid-custom-routes/test/index.test.ts`: [#&#8203;88416](https://github.com/vercel/next.js/issues/88416) - \[test] Remove rogue debug log: [#&#8203;88423](https://github.com/vercel/next.js/issues/88423) - Update AGENTS.md with PR template and test generation requirements: [#&#8203;88417](https://github.com/vercel/next.js/issues/88417) - Add .cursor/worktrees.json configuration: [#&#8203;88415](https://github.com/vercel/next.js/issues/88415) - docs: add guidance for code block highlight line numbers to AGENTS.md: [#&#8203;88430](https://github.com/vercel/next.js/issues/88430) - \[turbopack] Compute transitive side effects and use them to trim imports: [#&#8203;86675](https://github.com/vercel/next.js/issues/86675) - fix(turbo-tasks-backend): use correct TaskDataCategory for is\_immutable check: [#&#8203;88331](https://github.com/vercel/next.js/issues/88331) - perf(turbo-tasks-backend): use DefaultStorage for AggregationNumber to save memory: [#&#8203;88336](https://github.com/vercel/next.js/issues/88336) - \[Turbopack] Move DirList to its own module: [#&#8203;88256](https://github.com/vercel/next.js/issues/88256) - docs: add rebuild guidance and ICE troubleshooting to AGENTS.md: [#&#8203;88337](https://github.com/vercel/next.js/issues/88337) - Type-check `run-tests.js` and remove unused `related` flag: [#&#8203;88433](https://github.com/vercel/next.js/issues/88433) - \[test] Remove obsolete reference to `NEXT_TEST_SKIP_RETRY_MANIFEST`: [#&#8203;88434](https://github.com/vercel/next.js/issues/88434) - Revert "\[Turbopack] Move DirList to its own module": [#&#8203;88441](https://github.com/vercel/next.js/issues/88441) - \[scripts] Avoid conflicting type for `pack-next --compress`: [#&#8203;88439](https://github.com/vercel/next.js/issues/88439) - Update Rspack production test manifest: [#&#8203;88403](https://github.com/vercel/next.js/issues/88403) - Update Rspack development test manifest: [#&#8203;88404](https://github.com/vercel/next.js/issues/88404) - \[test] Always run all tests without aborting on failure: [#&#8203;88435](https://github.com/vercel/next.js/issues/88435) - Turbopack: remove sourcemapping comments: [#&#8203;88217](https://github.com/vercel/next.js/issues/88217) - Turbopack: use mimalloc on Linux musl: [#&#8203;88426](https://github.com/vercel/next.js/issues/88426) - Turbopack: add support for selective reads of keyed cell values: [#&#8203;88303](https://github.com/vercel/next.js/issues/88303) - Turbopack: Reduce usage of parse\_quote in turbo-tasks-macros: [#&#8203;88454](https://github.com/vercel/next.js/issues/88454) - Turbopack: don't cell in async map: [#&#8203;88473](https://github.com/vercel/next.js/issues/88473) - Turbopack: replace is\_reference\_used with unused\_references set: [#&#8203;88304](https://github.com/vercel/next.js/issues/88304) - Turbopack: add lint rule to not cell in async map: [#&#8203;88474](https://github.com/vercel/next.js/issues/88474) - Turbopack: Remove dead generic\_type\_macro code: [#&#8203;88455](https://github.com/vercel/next.js/issues/88455) - Turbopack: remove unused code: [#&#8203;88497](https://github.com/vercel/next.js/issues/88497) - Turbopack: improve cell order lint rule: [#&#8203;88498](https://github.com/vercel/next.js/issues/88498) - Turbopack: parallelize making dependent tasks dirty: [#&#8203;86755](https://github.com/vercel/next.js/issues/86755) - Turbopack: fix bad performance edge case in production chunking: [#&#8203;88508](https://github.com/vercel/next.js/issues/88508) - Remove `lerna bootstrap` from the `clean` script in package.json: [#&#8203;88527](https://github.com/vercel/next.js/issues/88527) - Turbopack: Clean up `VcRead::Repr` associated type: [#&#8203;88456](https://github.com/vercel/next.js/issues/88456) - \[cna] Avoid error with out-of-box Netlify config: [#&#8203;88546](https://github.com/vercel/next.js/issues/88546) - \[turbopack] Move some of the logic for issue filtering into the rust layer: [#&#8203;88511](https://github.com/vercel/next.js/issues/88511) - Update Rspack production test manifest: [#&#8203;88469](https://github.com/vercel/next.js/issues/88469) - Update Rspack development test manifest: [#&#8203;88470](https://github.com/vercel/next.js/issues/88470) - feat: add TaskStorage derive macro and schema infrastructure: [#&#8203;88338](https://github.com/vercel/next.js/issues/88338) - \[ci] Don't retry/notify for failed deploy tests with custom tarball URLs: [#&#8203;88576](https://github.com/vercel/next.js/issues/88576) - fix(turbopack): Collect `declare global {}` in `VarDeclWithTsDeclareCollector`: [#&#8203;88568](https://github.com/vercel/next.js/issues/88568) - Update labeler.json: [#&#8203;88591](https://github.com/vercel/next.js/issues/88591) - Fix optional `parent_task_id` compile failure w/`tokio_tracing` enabled: [#&#8203;88598](https://github.com/vercel/next.js/issues/88598) - Turbopack: support disabling tsconfig lookup: [#&#8203;88529](https://github.com/vercel/next.js/issues/88529) - Turbopack: run tasks with priority based on distance to leaf: [#&#8203;87662](https://github.com/vercel/next.js/issues/87662) - Turbopack: avoid removing cells for erroring tasks: [#&#8203;88305](https://github.com/vercel/next.js/issues/88305) - \[ci] Use native `concurrency` feature in build-and-test: [#&#8203;87287](https://github.com/vercel/next.js/issues/87287) - Turbopack: unflake unit test: [#&#8203;88620](https://github.com/vercel/next.js/issues/88620) - Turbopack: snapshot the ModuleGraph to avoid (eventual) inconsistent graphs: [#&#8203;88340](https://github.com/vercel/next.js/issues/88340) - Turbopack: Consistency for compute\_async\_module\_info: [#&#8203;88409](https://github.com/vercel/next.js/issues/88409) - Turbopack: follow tracing spans through aggregation update queue: [#&#8203;88410](https://github.com/vercel/next.js/issues/88410) - Turbopack: avoid chunk\_item\_id task and use selective cell access instead: [#&#8203;88411](https://github.com/vercel/next.js/issues/88411) - Turbopack: MappedReadRef should be Send and Sync: [#&#8203;88558](https://github.com/vercel/next.js/issues/88558) - Turbopack: selective read for module\_chunk\_groups in ChunkGroupInfo: [#&#8203;88559](https://github.com/vercel/next.js/issues/88559) - Turbopack: use selective reads for merged modules: [#&#8203;88560](https://github.com/vercel/next.js/issues/88560) - Turbopack: add caching to chunking: [#&#8203;88561](https://github.com/vercel/next.js/issues/88561) - Turbopack: use bugs.nextjs.org for Turbopack panic error reports: [#&#8203;88356](https://github.com/vercel/next.js/issues/88356) - Turbopack: docs: condition.query will ship in 16.2.0, not 16.1.1: [#&#8203;88663](https://github.com/vercel/next.js/issues/88663) - \[turbopack] Add bundling support for worker\_threads: [#&#8203;87746](https://github.com/vercel/next.js/issues/87746) - \[cna] Ensure created app is not considered the workspace root in pnpm: [#&#8203;88647](https://github.com/vercel/next.js/issues/88647) - Revert "\[turbopack] Add bundling support for worker\_threads": [#&#8203;88725](https://github.com/vercel/next.js/issues/88725) - \[ci] Enable Turborepo remote caching in e2e release deploy tests: [#&#8203;88746](https://github.com/vercel/next.js/issues/88746) - \[test] Deflake `test/development/app-dir/browser-log-forwarding/fixtures/verbose-level/verbose-level.test.ts`: [#&#8203;88754](https://github.com/vercel/next.js/issues/88754) - Fix `Build Commands` section in AGENTS.md: [#&#8203;88757](https://github.com/vercel/next.js/issues/88757) - \[test] Deflake `test/development/app-dir/hydration-error-count/hydration-error-count.test.ts`: [#&#8203;88749](https://github.com/vercel/next.js/issues/88749) - \[ci] Exclude `test/production` from deploy tests: [#&#8203;88763](https://github.com/vercel/next.js/issues/88763) - Apply `buildArgs` also for deploy tests (via `package.json`): [#&#8203;88731](https://github.com/vercel/next.js/issues/88731) - \[ci] Ensure Turbo Remote Cache can be written to: [#&#8203;88794](https://github.com/vercel/next.js/issues/88794) - perf(turbopack): optimize resolve plugin handling: [#&#8203;88639](https://github.com/vercel/next.js/issues/88639) - Fix buildManifest.js deployment tests: [#&#8203;88806](https://github.com/vercel/next.js/issues/88806) - \[ci] Merge Cache Components and deploy tests manifests when running CC deploy tests: [#&#8203;88824](https://github.com/vercel/next.js/issues/88824) - Turbopack: Extend filesystem watcher fuzzing to cover symlinks and junction points: [#&#8203;88192](https://github.com/vercel/next.js/issues/88192) - \[test]: add ability to run test-deploy with pre-existing deployment: [#&#8203;88829](https://github.com/vercel/next.js/issues/88829) - Update deterministic-build assertion: [#&#8203;88820](https://github.com/vercel/next.js/issues/88820) - Turbopack: shrink amortized: [#&#8203;88619](https://github.com/vercel/next.js/issues/88619) - Fix deployment test due to data-dpl-id attribute: [#&#8203;88846](https://github.com/vercel/next.js/issues/88846) - \[ci] Fix Rspack/Turbopack test manifest generation: [#&#8203;88845](https://github.com/vercel/next.js/issues/88845) - Turbopack: show compressed size for print\_cache\_item\_size: [#&#8203;88850](https://github.com/vercel/next.js/issues/88850) - \[test] Fix deploy test of `cache-components.server-action.test.ts`: [#&#8203;88854](https://github.com/vercel/next.js/issues/88854) - Turbopack: Use a real file entrypoint for Workers (and SharedWorkers): [#&#8203;88602](https://github.com/vercel/next.js/issues/88602) - Turbopack: Add file write invalidation tracking to filesystem watcher fuzzing: [#&#8203;88665](https://github.com/vercel/next.js/issues/88665) - Turbopack: Move fuzzer for fs watcher into a separate file/module: [#&#8203;88666](https://github.com/vercel/next.js/issues/88666) - Turbopack: Add a stress test / fuzzer that tries creating many symlinks in a tight loop: [#&#8203;88667](https://github.com/vercel/next.js/issues/88667) - Turbopack: Make the priority\_runner testcase deterministic: [#&#8203;88651](https://github.com/vercel/next.js/issues/88651) - Turbopack: Various cleanup for turbo-tasks-fs, mostly retry logic and string formatting: [#&#8203;88668](https://github.com/vercel/next.js/issues/88668) - Turbopack: Tweak retry loop for link creation to try to fix os error 80 on Windows: [#&#8203;88669](https://github.com/vercel/next.js/issues/88669) - feat: Replace InnerStorage with the generated TaskStorage struct: [#&#8203;88355](https://github.com/vercel/next.js/issues/88355) - Turbopack: Use webpki-root-certs in addition to rustls-platform-verifier on Linux for bare-bones Linux images without root CA stores: [#&#8203;88869](https://github.com/vercel/next.js/issues/88869) - refactor: migrate to typed accessors and remove CachedDataItem adapter: [#&#8203;88397](https://github.com/vercel/next.js/issues/88397) - docs: add skill for updating Next.js documentation: [#&#8203;88656](https://github.com/vercel/next.js/issues/88656) - Turbopack: \[chore] Fix Rust check warnings: [#&#8203;88871](https://github.com/vercel/next.js/issues/88871) - Create-next-app update message: [#&#8203;88706](https://github.com/vercel/next.js/issues/88706) - Turbopack: Fix next/font preloading for page.mdx: [#&#8203;88848](https://github.com/vercel/next.js/issues/88848) - Update Rspack production test manifest: [#&#8203;88882](https://github.com/vercel/next.js/issues/88882) - \[test] Skip failing deploy test in `searchparams-reuse-loading.test.ts`: [#&#8203;88821](https://github.com/vercel/next.js/issues/88821) - \[test] Skip flaky `prefetch-runtime` tests for deploy tests: [#&#8203;88826](https://github.com/vercel/next.js/issues/88826) - remove gt workflow from agents.md: [#&#8203;88918](https://github.com/vercel/next.js/issues/88918) - Turbopack: refactor data storage to avoid reverse task cache: [#&#8203;88492](https://github.com/vercel/next.js/issues/88492) - Turbopack: change invalidator and immutable to data category: [#&#8203;88889](https://github.com/vercel/next.js/issues/88889) - Turbopack: reduce cache size: [#&#8203;88929](https://github.com/vercel/next.js/issues/88929) - fix typo: [#&#8203;88934](https://github.com/vercel/next.js/issues/88934) - Turbopack: improve module type error message: [#&#8203;88815](https://github.com/vercel/next.js/issues/88815) - Turbopack: improve selective read support to allow `Equivalent` keys: [#&#8203;88760](https://github.com/vercel/next.js/issues/88760) - Turbopack: add indirection layer for better caching during resolving: [#&#8203;80062](https://github.com/vercel/next.js/issues/80062) - Add Graphite workflow Cursor command: [#&#8203;88939](https://github.com/vercel/next.js/issues/88939) - Update Rspack production test manifest: [#&#8203;88930](https://github.com/vercel/next.js/issues/88930) - Update Rspack development test manifest: [#&#8203;88931](https://github.com/vercel/next.js/issues/88931) - Improve performance and token usage of `/ci-failures` command: [#&#8203;88960](https://github.com/vercel/next.js/issues/88960) - \[Turbopack] Use a presized scratch buffer for task encoding: [#&#8203;88924](https://github.com/vercel/next.js/issues/88924) - Update Rspack development test manifest: [#&#8203;89004](https://github.com/vercel/next.js/issues/89004) - Update Rspack production test manifest: [#&#8203;89003](https://github.com/vercel/next.js/issues/89003) - Turbopack: remove Asset supertrait from Module trait. Modules don't have content: [#&#8203;86416](https://github.com/vercel/next.js/issues/86416) - \[test] Improve deployment skew test for Pages Router data routes: [#&#8203;89038](https://github.com/vercel/next.js/issues/89038) - Fix react-loadable-manifest chunk hash mismatch by preserving async loader mapping: [#&#8203;88775](https://github.com/vercel/next.js/issues/88775) - Fix reset deploy project script: [#&#8203;89001](https://github.com/vercel/next.js/issues/89001) - Revert "Fix react-loadable-manifest chunk hash mismatch by preserving async loader mapping": [#&#8203;89073](https://github.com/vercel/next.js/issues/89073) - /pr-status (former /ci-failures): fetch PR reviews too: [#&#8203;89082](https://github.com/vercel/next.js/issues/89082) - Improve /pr-status: comments, argument, avoid full log: [#&#8203;89092](https://github.com/vercel/next.js/issues/89092) - chore(ci): rename 'new tests' jobs to 'new and changed tests': [#&#8203;89054](https://github.com/vercel/next.js/issues/89054) - \[ci] Exclude tests by filename when merging manifests: [#&#8203;89093](https://github.com/vercel/next.js/issues/89093) - Turbopack: import with type should be handled via condition: [#&#8203;89035](https://github.com/vercel/next.js/issues/89035) - Enable pnpm dependency caching in e2e deploy tests: [#&#8203;88953](https://github.com/vercel/next.js/issues/88953) - \[ci] Make `gh auth status` optional when triggering a release: [#&#8203;89098](https://github.com/vercel/next.js/issues/89098) - Update Rspack development test manifest: [#&#8203;89084](https://github.com/vercel/next.js/issues/89084) - tweak LRU sentinel cache key: [#&#8203;89123](https://github.com/vercel/next.js/issues/89123) - Turbopack: allow key block without hash in SST files: [#&#8203;88938](https://github.com/vercel/next.js/issues/88938) - Turbopack: Remove unused argument: [#&#8203;80235](https://github.com/vercel/next.js/issues/80235) - Prettier-ignore changes in `next-env.d.ts` files in all top-level apps: [#&#8203;89176](https://github.com/vercel/next.js/issues/89176) - Turbopack: warn when tracing the whole project: [#&#8203;89157](https://github.com/vercel/next.js/issues/89157) - Add full adapters E2E tests to workflow: [#&#8203;89125](https://github.com/vercel/next.js/issues/89125) - Update Rspack production test manifest: [#&#8203;89147](https://github.com/vercel/next.js/issues/89147) - Fix [@&#8203;next/routing](https://github.com/next/routing) for i18n api and dynamic routes: [#&#8203;89197](https://github.com/vercel/next.js/issues/89197) - Remove Vercel specific assertions from E2E deploy: [#&#8203;89198](https://github.com/vercel/next.js/issues/89198) - Add custom deploy and logs env for next-deploy: [#&#8203;89206](https://github.com/vercel/next.js/issues/89206) - Turbopack: change AsyncModulesInfo to use keyed reads: [#&#8203;89216](https://github.com/vercel/next.js/issues/89216) - Turbopack: selective reads of defined env vars in module analysis: [#&#8203;88759](https://github.com/vercel/next.js/issues/88759) - Turbopack: fix tracking modifications for transient and data: [#&#8203;89228](https://github.com/vercel/next.js/issues/89228) - \[ci] Clear Jest transform cache: [#&#8203;89247](https://github.com/vercel/next.js/issues/89247) - Turbopack: Make the globals we pass to workers configurable: [#&#8203;88773](https://github.com/vercel/next.js/issues/88773) - Accept deploy script and log script as inputs: [#&#8203;89253](https://github.com/vercel/next.js/issues/89253) - \[turbopack] mark persistent\_task\_type as inline: [#&#8203;89185](https://github.com/vercel/next.js/issues/89185) - \[test] Add test suite name for Tests failures table: [#&#8203;89258](https://github.com/vercel/next.js/issues/89258) - refactor: Improve templates layout flexibility: [#&#8203;89245](https://github.com/vercel/next.js/issues/89245) - test: add client-cache.defaults failing deploy test: [#&#8203;89242](https://github.com/vercel/next.js/issues/89242) - test: add resume-data-cache failing deploy test: [#&#8203;89243](https://github.com/vercel/next.js/issues/89243) - \[turbopack] Make shrinking logic declarative and optimize for immutable tasks: [#&#8203;89222](https://github.com/vercel/next.js/issues/89222) - Turbopack: Trace task modifications: [#&#8203;89229](https://github.com/vercel/next.js/issues/89229) - Turbopack: refactor extend transforms: [#&#8203;89116](https://github.com/vercel/next.js/issues/89116) - Turbopack: improve print\_cache\_item\_size: [#&#8203;89279](https://github.com/vercel/next.js/issues/89279) - Update Rspack development test manifest: [#&#8203;89278](https://github.com/vercel/next.js/issues/89278) - Update Rspack production test manifest: [#&#8203;89277](https://github.com/vercel/next.js/issues/89277) - Improve consistency of how Flag typed fields are handled in the macro to more structurally prevent bugs like what was fixed in [#&#8203;89228](https://github.com/vercel/next.js/issues/89228): [#&#8203;89255](https://github.com/vercel/next.js/issues/89255) - Add failing test to deploy-tests-manifest: [#&#8203;89318](https://github.com/vercel/next.js/issues/89318) - Apply server actions transform to `node_modules` in route handlers: [#&#8203;89316](https://github.com/vercel/next.js/issues/89316) - \[test] Deflake `browser-log-forwarding verbose level` test suite: [#&#8203;89324](https://github.com/vercel/next.js/issues/89324) - Turbopack: Move PrettyPrintError to turbo\_tasks and add tests: [#&#8203;89280](https://github.com/vercel/next.js/issues/89280) - Update Rspack production test manifest: [#&#8203;89372](https://github.com/vercel/next.js/issues/89372) - Update Rspack development test manifest: [#&#8203;89371](https://github.com/vercel/next.js/issues/89371) - TURBOPACK: support chunk\_loading\_global method: [#&#8203;88790](https://github.com/vercel/next.js/issues/88790) - Don't upload build cache for deployment tests: [#&#8203;89432](https://github.com/vercel/next.js/issues/89432) - Add separate E2E deploy env for turbopack tests: [#&#8203;89458](https://github.com/vercel/next.js/issues/89458) - Turbopack: Symbol.for and keyFor are sideeffect-free: [#&#8203;89454](https://github.com/vercel/next.js/issues/89454) - Update Rspack production test manifest: [#&#8203;89423](https://github.com/vercel/next.js/issues/89423) - Update Rspack development test manifest: [#&#8203;89424](https://github.com/vercel/next.js/issues/89424) - Turbopack: improve suggestions for experimental.reportSystemEnvInlining: [#&#8203;89486](https://github.com/vercel/next.js/issues/89486) - Add experimental flag to expose testing API in production builds: [#&#8203;89499](https://github.com/vercel/next.js/issues/89499) - Proper e2e test of function determinism: [#&#8203;88908](https://github.com/vercel/next.js/issues/88908) - Turbopack: add turbo-persistence benchmark: [#&#8203;89446](https://github.com/vercel/next.js/issues/89446) - Proper e2e test of function determinism - adapter: [#&#8203;89522](https://github.com/vercel/next.js/issues/89522) - \[test] consolidate the browser log test: [#&#8203;89601](https://github.com/vercel/next.js/issues/89601) - Fix flaky turbo cache pull with retries and graceful fallback: [#&#8203;89575](https://github.com/vercel/next.js/issues/89575) - Turbopack: Pass globals to node.js workers as well: [#&#8203;89261](https://github.com/vercel/next.js/issues/89261) - Upgrade rustc to 2026-02-05: [#&#8203;89591](https://github.com/vercel/next.js/issues/89591) - Update metadata assertions: [#&#8203;89625](https://github.com/vercel/next.js/issues/89625) - Update vercel CLI version in flakey deployment-id test: [#&#8203;89652](https://github.com/vercel/next.js/issues/89652) - Turbopack: remove unneeded benchmarks: [#&#8203;89592](https://github.com/vercel/next.js/issues/89592) - Turbopack Persistence: Remove amqf cache, store all amqfs in memory: [#&#8203;89562](https://github.com/vercel/next.js/issues/89562) - Add inline value support for small values (≤8 bytes): [#&#8203;89271](https://github.com/vercel/next.js/issues/89271) - \[turbopack] remove the `_backend` field from TaskGuardImpl: [#&#8203;89015](https://github.com/vercel/next.js/issues/89015) - \[Turbopack] Include CSS URL attributes, including Layer, Media and Supports: [#&#8203;89300](https://github.com/vercel/next.js/issues/89300) - docs: add task decomposition and verification guidelines: [#&#8203;89640](https://github.com/vercel/next.js/issues/89640) - Turbopack: Remove old `Vc::try_resolve_*` methods in favor of the `ResolvedVc` alternatives: [#&#8203;89696](https://github.com/vercel/next.js/issues/89696) - Fix reset-project script for E2E deploy tests: [#&#8203;89693](https://github.com/vercel/next.js/issues/89693) - feat: move font variables to html in create-next-app: [#&#8203;89632](https://github.com/vercel/next.js/issues/89632) - reduce the number of shards on small systems: [#&#8203;89731](https://github.com/vercel/next.js/issues/89731) - Update Rspack production test manifest: [#&#8203;89701](https://github.com/vercel/next.js/issues/89701) - Update Rspack development test manifest: [#&#8203;89702](https://github.com/vercel/next.js/issues/89702) - \[test] Add regression test for segment cache prefetch memory leak: [#&#8203;89756](https://github.com/vercel/next.js/issues/89756) - Improve not-found-with-pages test: [#&#8203;89538](https://github.com/vercel/next.js/issues/89538) - Update flakey E2E deploy tests: [#&#8203;89792](https://github.com/vercel/next.js/issues/89792) - Update flakey E2E deploy tests no-prefetch: [#&#8203;89799](https://github.com/vercel/next.js/issues/89799) - Update Rspack production test manifest: [#&#8203;89741](https://github.com/vercel/next.js/issues/89741) - Fix devlow job timeouts: [#&#8203;89804](https://github.com/vercel/next.js/issues/89804) - Update Rspack development test manifest: [#&#8203;89740](https://github.com/vercel/next.js/issues/89740) - Turbopack Persistence: Improve heuristic for compacted database access: [#&#8203;89497](https://github.com/vercel/next.js/issues/89497) - Turbopack: remove ChunkableModuleReference trait: [#&#8203;89745](https://github.com/vercel/next.js/issues/89745) - docs: improve Graphite workflow documentation: [#&#8203;89488](https://github.com/vercel/next.js/issues/89488) - Remove --turbopack and --webpack flags from create-next-app: [#&#8203;89706](https://github.com/vercel/next.js/issues/89706) - Turbopack: make routes hashes mainfest more incremental: [#&#8203;87107](https://github.com/vercel/next.js/issues/87107) - \[test] Remove references to removed, internal PPR environment variable: [#&#8203;89832](https://github.com/vercel/next.js/issues/89832) - \[test] Enable scroll related tests in Cache Component tests: [#&#8203;83245](https://github.com/vercel/next.js/issues/83245) - docs: update adapter docs for routing, handlers, and PPR: [#&#8203;89849](https://github.com/vercel/next.js/issues/89849) - \[test] Ensure new deploy test builds have the necessary env variables: [#&#8203;89846](https://github.com/vercel/next.js/issues/89846) - test: allow dpl query suffix in scss url-global expectation: [#&#8203;89856](https://github.com/vercel/next.js/issues/89856) - test: stabilize app-dir hash navigation RSC assertion: [#&#8203;89867](https://github.com/vercel/next.js/issues/89867) - Turbopack: Clean up unused register!() macro argument in test: [#&#8203;89869](https://github.com/vercel/next.js/issues/89869) - test: allow query suffix in related media URL e2e assertions: [#&#8203;89872](https://github.com/vercel/next.js/issues/89872) - Update Rspack development test manifest: [#&#8203;89811](https://github.com/vercel/next.js/issues/89811) - Turbopack: Store task error as pointer to the source error: [#&#8203;89293](https://github.com/vercel/next.js/issues/89293) - Turbopack: Pass asset\_suffix\_path as Vc: [#&#8203;89899](https://github.com/vercel/next.js/issues/89899) - \[turbopack] Simplify JS `ChunkItem` with a single impl in most cases: [#&#8203;89548](https://github.com/vercel/next.js/issues/89548) - Change UrlBehavior.static\_suffix to ResolvedVc\<Option<RcStr>>: [#&#8203;89921](https://github.com/vercel/next.js/issues/89921) - \[turbopack] Add #\[derive(ValueToString)] and convert \~45 manual impls: [#&#8203;89788](https://github.com/vercel/next.js/issues/89788) - Turbopack hmr: fix missing factories: [#&#8203;89934](https://github.com/vercel/next.js/issues/89934) - Next-api: Check `client_source_maps` before generate source map: [#&#8203;89915](https://github.com/vercel/next.js/issues/89915) - Upgrade to swc 56: [#&#8203;89111](https://github.com/vercel/next.js/issues/89111) - Turbopack: fix CSS dependency locations: [#&#8203;89761](https://github.com/vercel/next.js/issues/89761) - Enable backtraces in turbopack integration tests: [#&#8203;89935](https://github.com/vercel/next.js/issues/89935) - Turbopack: Use `std::any::type_name` for global naming of turbo-task items: [#&#8203;89874](https://github.com/vercel/next.js/issues/89874) - \[turbopack] use type\_ids to register turbo task traits on value types: [#&#8203;89964](https://github.com/vercel/next.js/issues/89964) - Turbopack: Fix flake in task\_statistics unit test: [#&#8203;89981](https://github.com/vercel/next.js/issues/89981) - Turbopack hmr: preserve group factory consistency for compressed modules: [#&#8203;89976](https://github.com/vercel/next.js/issues/89976) - chore: Don't run build-and-deploy CI job on graphite-base branches: [#&#8203;89982](https://github.com/vercel/next.js/issues/89982) - Turbopack: Update trybuild test dependency from 1.0.104 to 1.0.116: [#&#8203;89986](https://github.com/vercel/next.js/issues/89986) - test: Isolate read-only-source-hmr test: [#&#8203;86721](https://github.com/vercel/next.js/issues/86721) - Upgrade Lightning CSS: [#&#8203;88789](https://github.com/vercel/next.js/issues/88789) - fix(turbopack): --debug-build-paths fails with route groups: [#&#8203;89336](https://github.com/vercel/next.js/issues/89336) - test: scope e2e timeouts to startup and per-it: [#&#8203;89929](https://github.com/vercel/next.js/issues/89929) - Always set adapter deploy env variable: [#&#8203;90064](https://github.com/vercel/next.js/issues/90064) - \[turbopack] Fix some modification tracking bugs in TaskStorage: [#&#8203;89708](https://github.com/vercel/next.js/issues/89708) - bench: render-pipeline benchmarks and stress routes (2/8): [#&#8203;89863](https://github.com/vercel/next.js/issues/89863) - \[turbopack] fix our verify features in turbo-tasks backend: [#&#8203;90013](https://github.com/vercel/next.js/issues/90013) - Refactor factory not available error message generation: [#&#8203;89897](https://github.com/vercel/next.js/issues/89897) - \[turbopack] Followup for `#[derive(ValueToString)]`: [#&#8203;89936](https://github.com/vercel/next.js/issues/89936) - Revert "\[turbopack] Fix some modification tracking bugs in TaskStorage": [#&#8203;90096](https://github.com/vercel/next.js/issues/90096) - Disable jest cache for CI instead of wiping: [#&#8203;90097](https://github.com/vercel/next.js/issues/90097) - next-stats-action: avoid pnpm EXDEV during stats installs: [#&#8203;90100](https://github.com/vercel/next.js/issues/90100) - \[turbopack] Run the deployment tests for turbopack and webpack: [#&#8203;84360](https://github.com/vercel/next.js/issues/84360) - ci: only cancel pull\_request\_stats on PR updates: [#&#8203;90104](https://github.com/vercel/next.js/issues/90104) - \[Instant] test: remove unnecessary reactDebugChannel permutation: [#&#8203;90103](https://github.com/vercel/next.js/issues/90103) - \[test] Replace flaky webpack snapshots in `cache-components-errors`: [#&#8203;90105](https://github.com/vercel/next.js/issues/90105) - Upgrade to swc 57: [#&#8203;90084](https://github.com/vercel/next.js/issues/90084) - \[turbopack] Fix concurrent task lock panic during error formatting: [#&#8203;90056](https://github.com/vercel/next.js/issues/90056) - Reland "\[turbopack] Fix some modification tracking bugs in TaskStorage": [#&#8203;90098](https://github.com/vercel/next.js/issues/90098) - refactor: fix non-determinism in resolve package: [#&#8203;90058](https://github.com/vercel/next.js/issues/90058) - Update Rspack development test manifest: [#&#8203;90074](https://github.com/vercel/next.js/issues/90074) - Update Rspack production test manifest: [#&#8203;90073](https://github.com/vercel/next.js/issues/90073) - test: extend production-browser-sourcemaps test: [#&#8203;89945](https://github.com/vercel/next.js/issues/89945) - Turbopack: use file\_content.hash() consistently: [#&#8203;90078](https://github.com/vercel/next.js/issues/90078) - \[test] Current behavior of focus after `next/link` navigation: [#&#8203;89959](https://github.com/vercel/next.js/issues/89959) - Turbopack: Enable tree-shaking for dynamic imports with destructuring: [#&#8203;89683](https://github.com/vercel/next.js/issues/89683) - test: Don't run integration tests twice for Turbopack : [#&#8203;83335](https://github.com/vercel/next.js/issues/83335) - Simplify how `json` imports work by turning it into a source transform: [#&#8203;89631](https://github.com/vercel/next.js/issues/89631) - Update Rspack production test manifest: [#&#8203;90120](https://github.com/vercel/next.js/issues/90120) - Update Rspack development test manifest: [#&#8203;90121](https://github.com/vercel/next.js/issues/90121) - Turbopack: Update rust toolchain to nightly-2026-02-18: [#&#8203;89974](https://github.com/vercel/next.js/issues/89974) - Turbopack: Derive `Default` on `PartialProjectOptions`, remove silly `partial_project_options_with_debug_build_paths` helper: [#&#8203;90170](https://github.com/vercel/next.js/issues/90170) - Turbopack: document ModuleSideEffects better: [#&#8203;90132](https://github.com/vercel/next.js/issues/90132) - \[ci]: pin styled-components version in tests: [#&#8203;90194](https://github.com/vercel/next.js/issues/90194) - \[turbopack] Add a simple tool to inspect serialized SST files and report on their contents: [#&#8203;89310](https://github.com/vercel/next.js/issues/89310) - Upgrade React from `4842fbea-20260217` to `2ba30655-20260219`: [#&#8203;90211](https://github.com/vercel/next.js/issues/90211) - \[test] Improve fetch timeout error stack for `act`: [#&#8203;90261](https://github.com/vercel/next.js/issues/90261) - Turbopack: add Rope.content\_hash and SHA hashing: [#&#8203;90235](https://github.com/vercel/next.js/issues/90235) - \[instant] Handle more instant declaration patterns: [#&#8203;90251](https://github.com/vercel/next.js/issues/90251) - \[sync-react] Allow syncing React with local build: [#&#8203;90277](https://github.com/vercel/next.js/issues/90277) - Add PR tarball install note to stats comment: [#&#8203;90316](https://github.com/vercel/next.js/issues/90316) - Bump Turborepo to 2.8.9: [#&#8203;90079](https://github.com/vercel/next.js/issues/90079) - Update wasm and next-custom-transforms crates to Rust edition 2024: [#&#8203;90350](https://github.com/vercel/next.js/issues/90350) - Turbopack: refactoring to prepare for name mangling: [#&#8203;89406](https://github.com/vercel/next.js/issues/89406) - Turbopack: Aggregation update improvements: [#&#8203;90139](https://github.com/vercel/next.js/issues/90139) - \[ci] Stop linting auto-generated next-swc typings: [#&#8203;90390](https://github.com/vercel/next.js/issues/90390) - Add more known folders to is-folder-empty check in create-next-app: [#&#8203;88218](https://github.com/vercel/next.js/issues/88218) - \[ci] Always upload Turborepo summary artifact: [#&#8203;90441](https://github.com/vercel/next.js/issues/90441) - tests: reenable escheck-output: [#&#8203;90423](https://github.com/vercel/next.js/issues/90423) - \[test] Deflake `typed-routes-validator` using `tsc`: [#&#8203;90451](https://github.com/vercel/next.js/issues/90451) - test: Cleanup and refactoring: [#&#8203;90454](https://github.com/vercel/next.js/issues/90454) - \[turbopack] Make compression in SST files optional: [#&#8203;89309](https://github.com/vercel/next.js/issues/89309) - \[test] Only auto-retry individual e2e tests in CI: [#&#8203;90464](https://github.com/vercel/next.js/issues/90464) - Update Rspack production test manifest: [#&#8203;90412](https://github.com/vercel/next.js/issues/90412) - Update Rspack development test manifest: [#&#8203;90413](https://github.com/vercel/next.js/issues/90413) - Add [@&#8203;next/playwright](https://github.com/next/playwright) package with instant() testing helper: [#&#8203;90470](https://github.com/vercel/next.js/issues/90470) - \[turbopack] Reduce memory usage during compaction: [#&#8203;90229](https://github.com/vercel/next.js/issues/90229) - \[sync-react] Allow syncing from a React commit: [#&#8203;90283](https://github.com/vercel/next.js/issues/90283) - Turbopack: Add line numbers to debug info in release-with-assertions profile: [#&#8203;90474](https://github.com/vercel/next.js/issues/90474) - Turbopack: emit env\_diff span attribute for update: [#&#8203;90466](https://github.com/vercel/next.js/issues/90466) - test: unflake lru-disk-eviction on Windows: [#&#8203;90465](https://github.com/vercel/next.js/issues/90465) - test: Improve test assertions to prepare for dpl query string: [#&#8203;90463](https://github.com/vercel/next.js/issues/90463) - \[test] Fix flaky "delay re-prefetch after revalidation" test: [#&#8203;90503](https://github.com/vercel/next.js/issues/90503) - Revert "Turbopack: Add line numbers to debug info in release-with-assertions profile ([#&#8203;90474](https://github.com/vercel/next.js/issues/90474))": [#&#8203;90525](https://github.com/vercel/next.js/issues/90525) - Bump Turborepo to 2.8.11: [#&#8203;90530](https://github.com/vercel/next.js/issues/90530) - Turbopack: Move turbopack out of `pnpm build` and into a `pnpm build-all` command: [#&#8203;90543](https://github.com/vercel/next.js/issues/90543) - Remove revalidation settling period from router-act: [#&#8203;90531](https://github.com/vercel/next.js/issues/90531) - Turbopack: add webpack loader names to traces: [#&#8203;87230](https://github.com/vercel/next.js/issues/87230) - Replace mark\_root() with #\[turbo\_tasks::function(root)] flag: [#&#8203;90512](https://github.com/vercel/next.js/issues/90512) - \[test] Deflake `typed-routes-validator`: [#&#8203;90562](https://github.com/vercel/next.js/issues/90562) - \[test] Remove `getStackFramesContent`: [#&#8203;90571](https://github.com/vercel/next.js/issues/90571) - Replace `testonly` to `testheadless` in AGENTS.md: [#&#8203;90578](https://github.com/vercel/next.js/issues/90578) - \[test] Include error code in Redbox snapshot: [#&#8203;90497](https://github.com/vercel/next.js/issues/90497) - Turbopack: Add TransientEnvMap to avoid persisting env vars in cache: [#&#8203;90526](https://github.com/vercel/next.js/issues/90526) - Turbopack: add Xxh3Hash128Hasher: [#&#8203;90584](https://github.com/vercel/next.js/issues/90584) - \[test] Fix error code snapshots when testing with React 18: [#&#8203;90593](https://github.com/vercel/next.js/issues/90593) - Turbopack: use xxhash3\_128 for content hashes: [#&#8203;90583](https://github.com/vercel/next.js/issues/90583) - test: remove stray TURBOPACK\_BUILD=1: [#&#8203;90602](https://github.com/vercel/next.js/issues/90602) - Update Rspack development test manifest: [#&#8203;90566](https://github.com/vercel/next.js/issues/90566) - Update Rspack production test manifest: [#&#8203;90565](https://github.com/vercel/next.js/issues/90565) - \[ci] Use `NEXT_TEST_CI` instead of `CI` for e2e test retry guard: [#&#8203;90606](https://github.com/vercel/next.js/issues/90606) - \[test] Skip failing segment-cache deploy test: [#&#8203;90601](https://github.com/vercel/next.js/issues/90601) - turbo-persistence: drop key compression dictionary from SST files: [#&#8203;90608](https://github.com/vercel/next.js/issues/90608) - Pre-warm a single NodeJS instance when the next devserver starts: [#&#8203;90174](https://github.com/vercel/next.js/issues/90174) - Turbopack server HMR: inline source maps for `eval`ed modules: [#&#8203;90561](https://github.com/vercel/next.js/issues/90561) - test: Run Adapter e2e tests with Turbopack instead: [#&#8203;90600](https://github.com/vercel/next.js/issues/90600) - Add MemorySample to Turbopack trace infrastructure: [#&#8203;90597](https://github.com/vercel/next.js/issues/90597) - Use `VisitMut` instead of `Fold` for debug\_instant\_stack transform: [#&#8203;90274](https://github.com/vercel/next.js/issues/90274) - Ensure we only run main test mode with custom deploy script: [#&#8203;90665](https://github.com/vercel/next.js/issues/90665) - Centralize test timings to fix shard divergence in CI: [#&#8203;90672](https://github.com/vercel/next.js/issues/90672) - tests: Fix immutableAssetToken extraction: [#&#8203;90668](https://github.com/vercel/next.js/issues/90668) - turbo-persistence: streaming SST writer for reduced memory usage: [#&#8203;90617](https://github.com/vercel/next.js/issues/90617) - Add custom cleanup script support for deploy tests: [#&#8203;90696](https://github.com/vercel/next.js/issues/90696) - Use commit-based tarball URL in PR stats comment: [#&#8203;90709](https://github.com/vercel/next.js/issues/90709) - \[ci] Use commit instead of PR number for preview builds in deploy tests: [#&#8203;90722](https://github.com/vercel/next.js/issues/90722) - Fix ENOBUFS errors in pr-status.js when fetching large CI logs: [#&#8203;90654](https://github.com/vercel/next.js/issues/90654) - Publish [@&#8203;next/playwright](https://github.com/next/playwright) to npm as part of canary releases: [#&#8203;90738](https://github.com/vercel/next.js/issues/90738) - Update Rspack development test manifest: [#&#8203;90751](https://github.com/vercel/next.js/issues/90751) - Update Rspack production test manifest: [#&#8203;90750](https://github.com/vercel/next.js/issues/90750) - Turbopack: improve cell order lint rule for TraitRef::cell: [#&#8203;90756](https://github.com/vercel/next.js/issues/90756) - Add determinism test for static shell with asset preload headers: [#&#8203;89826](https://github.com/vercel/next.js/issues/89826) - Add static error when `unstable_instant` is used without `cacheComponents`: [#&#8203;90793](https://github.com/vercel/next.js/issues/90793) - enable server action RDC deploy test: [#&#8203;90796](https://github.com/vercel/next.js/issues/90796) - turbo-persistence: StreamingSstWriter performance and readability improvements: [#&#8203;90692](https://github.com/vercel/next.js/issues/90692) - pr-status: add reply-thread and resolve-thread subcommands: [#&#8203;90773](https://github.com/vercel/next.js/issues/90773) - \[turbopack] Don't schedule idle snapshots when we are in a short session: [#&#8203;90804](https://github.com/vercel/next.js/issues/90804) - Update Rust dependencies for turbo-persistence and turbo-tasks-backend: [#&#8203;90774](https://github.com/vercel/next.js/issues/90774) - Add support for multi-valued tables: [#&#8203;89728](https://github.com/vercel/next.js/issues/89728) - pr-status: add --wait flag and background execution for /pr-status command: [#&#8203;90687](https://github.com/vercel/next.js/issues/90687) - exempt data URL CSS from Pages Router global CSS restriction: [#&#8203;89901](https://github.com/vercel/next.js/issues/89901) - turbo-persistence: add CRC32 block checksums: [#&#8203;90754](https://github.com/vercel/next.js/issues/90754) - Remove unused turbo-tasks items and add lint check: [#&#8203;90801](https://github.com/vercel/next.js/issues/90801) - Fix missing const generic parameter in turbo-persistence lookup call: [#&#8203;90817](https://github.com/vercel/next.js/issues/90817) - Turbopack: add anyhow::Context to turbo-persistence mmap, file open, and decompress operations: [#&#8203;90769](https://github.com/vercel/next.js/issues/90769) - Update Rspack development test manifest: [#&#8203;90805](https://github.com/vercel/next.js/issues/90805) - Avoid using TaskTypes as keys in storage instead use hashes: [#&#8203;88904](https://github.com/vercel/next.js/issues/88904) - Remove leaf segment force-refetch check: [#&#8203;90836](https://github.com/vercel/next.js/issues/90836) - \[turbopack] add a new hasher implementation to eliminate allocations: [#&#8203;89059](https://github.com/vercel/next.js/issues/89059) - Show labeled steps for `instant()` test helper in the Playwright UI: [#&#8203;90664](https://github.com/vercel/next.js/issues/90664) - \[turbotask] Make turbotask function registration const: [#&#8203;90797](https://github.com/vercel/next.js/issues/90797) - Turbopack: turbofmt/turbobail macros: [#&#8203;90092](https://github.com/vercel/next.js/issues/90092) - Add Err(anyhow(... ast-grep rule: [#&#8203;90869](https://github.com/vercel/next.js/issues/90869) - Turbopack: allow resolving TS files in tailwind config: [#&#8203;90046](https://github.com/vercel/next.js/issues/90046) - Unify Node and Edge externals list: [#&#8203;90819](https://github.com/vercel/next.js/issues/90819) - chore: add aurorascharff to devex team labeler config: [#&#8203;90866](https://github.com/vercel/next.js/issues/90866) - Update Rspack production test manifest: [#&#8203;90857](https://github.com/vercel/next.js/issues/90857) - Update Rspack development test manifest: [#&#8203;90858](https://github.com/vercel/next.js/issues/90858) - \[ci]: continue-on-error for more gh auth status checks: [#&#8203;90890](https://github.com/vercel/next.js/issues/90890) - Cleanup non-generic assertions in our deploy test suite: [#&#8203;90894](https://github.com/vercel/next.js/issues/90894) - Turbopack: Tree shaking fixes and code organization: [#&#8203;89295](https://github.com/vercel/next.js/issues/89295) - tests: Use pnpm dlx to install latest CLI version: [#&#8203;90923](https://github.com/vercel/next.js/issues/90923) - Turbopack: Fix some eventually consistent reads at the top level in dev-server and snapshot tests: [#&#8203;90792](https://github.com/vercel/next.js/issues/90792) - Turbopack: Annotate ReadVcFuture as must\_use instead of annotating functions that return it: [#&#8203;90839](https://github.com/vercel/next.js/issues/90839) - Prefix pr-status replies with :robot: emoji: [#&#8203;90943](https://github.com/vercel/next.js/issues/90943) - Set DontFork and Unmergeable on all mmap sites in turbo-persistence: [#&#8203;90941](https://github.com/vercel/next.js/issues/90941) - Turbopack: CompileTimeDefineValue numbers and regex: [#&#8203;90934](https://github.com/vercel/next.js/issues/90934) - Turbopack: pass reference type to CustomModuleType: [#&#8203;90814](https://github.com/vercel/next.js/issues/90814) - Fix preview version in `window.next.version` for PR builds: [#&#8203;90937](https://github.com/vercel/next.js/issues/90937) - \[Evals] Standardize Evals in Next.js: [#&#8203;90883](https://github.com/vercel/next.js/issues/90883) - TURBOPACK: alias resolve lost query param: [#&#8203;88891](https://github.com/vercel/next.js/issues/88891) - Update Rspack development test manifest: [#&#8203;90969](https://github.com/vercel/next.js/issues/90969) - Turbopack: Make `ReadVcFuture::strongly_consistent` private: [#&#8203;90843](https://github.com/vercel/next.js/issues/90843) - Fix next-routing header interpolation: [#&#8203;91010](https://github.com/vercel/next.js/issues/91010) - Turbopack: accept ChunkGroup in entry\_chunk\_group: [#&#8203;90821](https://github.com/vercel/next.js/issues/90821) - Turbopack: show specific SWC error messages as error titles: [#&#8203;91022](https://github.com/vercel/next.js/issues/91022) - Turbopack: correctly use ChunkGroup::Shared: [#&#8203;90978](https://github.com/vercel/next.js/issues/90978) - Add script to patch project with preview tarball URLs: [#&#8203;91057](https://github.com/vercel/next.js/issues/91057) - Fix pr-status script missing failed jobs on page 2+ of API results: [#&#8203;91087](https://github.com/vercel/next.js/issues/91087) - Turbopack: don't panic due to eventual consistency in module merging: [#&#8203;91088](https://github.com/vercel/next.js/issues/91088) - fix: run lerna on a branch: [#&#8203;91092](https://github.com/vercel/next.js/issues/91092) - Fix preview tarball script to include [@&#8203;next/swc-linux-x64-gnu](https://github.com/next/swc-linux-x64-gnu): [#&#8203;91099](https://github.com/vercel/next.js/issues/91099) - Improve unsafe code safety documentation in turbo-tasks-backend: [#&#8203;90755](https://github.com/vercel/next.js/issues/90755) - docs(contributing): Update setup in contributing/core/developing.md: [#&#8203;91018](https://github.com/vercel/next.js/issues/91018) - Turbopack: Pass hmr\_enabled to ImportMetaBinding: [#&#8203;91118](https://github.com/vercel/next.js/issues/91118) - docs(turbopack): Copy over turbopack-trace-server docs: [#&#8203;91111](https://github.com/vercel/next.js/issues/91111) - Turbopack: introduce `ReferenceTypeCondition`: [#&#8203;91101](https://github.com/vercel/next.js/issues/91101) - fix: Use a pnpm preinstall script to fix catch-22 in next binary creation: [#&#8203;91016](https://github.com/vercel/next.js/issues/91016) - Exclude partial fallback for deploy mode: [#&#8203;91163](https://github.com/vercel/next.js/issues/91163) - \[turbopack] Add support for fixed key blocks: [#&#8203;90844](https://github.com/vercel/next.js/issues/90844) - \[turbopack] Encode task storage directly during persistence (skip clone): [#&#8203;89412](https://github.com/vercel/next.js/issues/89412) - \[turbopack] hashing improvements to turbo-persistence: [#&#8203;90936](https://github.com/vercel/next.js/issues/90936) - \[turbopack] Move empty snapshot filtering into take\_snapshot: [#&#8203;90166](https://github.com/vercel/next.js/issues/90166) - docs(turbopack): Merge old turbo-tasks concept mdbook page with crate's top-level rustdoc: [#&#8203;91120](https://github.com/vercel/next.js/issues/91120) - Add RDC action test to deploy manifest and update PR test trigger: [#&#8203;91173](https://github.com/vercel/next.js/issues/91173) - \[Turbopack] Don't attempt to compress key blocks containing small keys: [#&#8203;90881](https://github.com/vercel/next.js/issues/90881) - Lint against `.context(format!(...))`: [#&#8203;91122](https://github.com/vercel/next.js/issues/91122) - fix(turbopack): unref ThreadsafeFunctions to allow Node.js exit after build: [#&#8203;91107](https://github.com/vercel/next.js/issues/91107) - remove worktrees accidentally committed in [#&#8203;90166](https://github.com/vercel/next.js/issues/90166): [#&#8203;91215](https://github.com/vercel/next.js/issues/91215) - Fix syntax contexts in server action transform: [#&#8203;91210](https://github.com/vercel/next.js/issues/91210) - docs(turbopack): Merge the contents of the "cells" page in the mdbook with our rustdocs: [#&#8203;91126](https://github.com/vercel/next.js/issues/91126) - TURBOPACK: typescript transform support verbatimModuleSyntax: [#&#8203;90907](https://github.com/vercel/next.js/issues/90907) - \[ci] Disable test-level retries during flakiness detection: [#&#8203;91261](https://github.com/vercel/next.js/issues/91261) - \[cna] Bump vendored `json-schema-types`: [#&#8203;91255](https://github.com/vercel/next.js/issues/91255) - Remove sequential madvise for compressed blocks in StaticSortedFile: [#&#8203;91263](https://github.com/vercel/next.js/issues/91263) - docs(turbopack): Move mdbook "tasks" docs over to `turbo_tasks::function` rustdoc: [#&#8203;91132](https://github.com/vercel/next.js/issues/91132) - test-new-tests: enable adapter in deploy flow: [#&#8203;91269](https://github.com/vercel/next.js/issues/91269) - Revert "Exclude partial fallback for deploy mode": [#&#8203;91172](https://github.com/vercel/next.js/issues/91172) - \[test] Properly log `framereceived` payload: [#&#8203;91266](https://github.com/vercel/next.js/issues/91266) - docs(turbopack): Merge task input docs from mdbook into rustdocs: [#&#8203;91136](https://github.com/vercel/next.js/issues/91136) - bundle-analyzer: merge \_app route modules into current route visualization: [#&#8203;90841](https://github.com/vercel/next.js/issues/90841) - docs(turbopack): Migrate docs about traits from mdbook to rustdocs: [#&#8203;91170](https://github.com/vercel/next.js/issues/91170) - Remove LMDB backend and ReadTransaction abstractions from turbo-tasks-backend: [#&#8203;91284](https://github.com/vercel/next.js/issues/91284) - docs(turbopack): Move singleton pattern documentation from mdbook to rustdoc: [#&#8203;91175](https://github.com/vercel/next.js/issues/91175) - Turbopack: rename CSS module structs for clarity: [#&#8203;91304](https://github.com/vercel/next.js/issues/91304) - \[test] Deflake `instant-navs-devtools`: [#&#8203;91256](https://github.com/vercel/next.js/issues/91256) - Delete blob files during compaction when entries are superseded: [#&#8203;91314](https://github.com/vercel/next.js/issues/91314) - \[test] Resolve stale merge issues: [#&#8203;91329](https://github.com/vercel/next.js/issues/91329) - Turbopack: Remove the IntoTraitRef trait, make it an inherent method on Vc: [#&#8203;91223](https://github.com/vercel/next.js/issues/91223) - re-enable RDC deployment tests: [#&#8203;91327](https://github.com/vercel/next.js/issues/91327) - Use keyed cells for used\_exports and export\_circuit\_breakers in BindingUsageInfo: [#&#8203;91306](https://github.com/vercel/next.js/issues/91306) - \[test] Show decoded binary WebSocket messages in traces: [#&#8203;91308](https://github.com/vercel/next.js/issues/91308) - Docs skills: guide and api-reference: [#&#8203;90992](https://github.com/vercel/next.js/issues/90992) - Turbopack: switch chunk/asset hashes from hex to base40 encoding: [#&#8203;91137](https://github.com/vercel/next.js/issues/91137) - Turbopack: don't emit polyfill chunk for API routes: [#&#8203;91331](https://github.com/vercel/next.js/issues/91331) - \[test] Current behavior for request APIs in `generateStaticParams`: [#&#8203;91188](https://github.com/vercel/next.js/issues/91188) - Update Rspack production test manifest: [#&#8203;91301](https://github.com/vercel/next.js/issues/91301) - Update Rspack development test manifest: [#&#8203;91300](https://github.com/vercel/next.js/issues/91300) - Turbopack: Remove old macos-compress script: [#&#8203;90967](https://github.com/vercel/next.js/issues/90967) - disable sub shell generation test outside of adapter: [#&#8203;91353](https://github.com/vercel/next.js/issues/91353) - Turboopack: put import attributes behind a pointer, 23% faster analyze: [#&#8203;91347](https://github.com/vercel/next.js/issues/91347) - Turbopack: `require(/* turbopackChunkingType: parallel */`: [#&#8203;91278](https://github.com/vercel/next.js/issues/91278) - Turbopack: use keyed cell access for AsyncModulesInfo: [#&#8203;91305](https://github.com/vercel/next.js/issues/91305) - Enable thin LTO for release builds: [#&#8203;91343](https://github.com/vercel/next.js/issues/91343) - \[turbopack] const-ify most of the registration code: [#&#8203;90868](https://github.com/vercel/next.js/issues/90868) - \[test] Improve actions-tree-shaking tests: [#&#8203;91326](https://github.com/vercel/next.js/issues/91326) - Move database compaction from write batch commit to backend idle loop: [#&#8203;91258](https://github.com/vercel/next.js/issues/91258) - Turbopack: use ChunkGroupEntry::Shared, part 2: [#&#8203;91279](https://github.com/vercel/next.js/issues/91279) - \[test] More `instant-navs-devtools` deflaking: [#&#8203;91345](https://github.com/vercel/next.js/issues/91345) - Turbopack: Enable server HMR by default for app pages: [#&#8203;91476](https://github.com/vercel/next.js/issues/91476) - Allow blocking cross-site dev-only websocket connections from privacy sensitive origins: [#&#8203;91479](https://github.com/vercel/next.js/issues/91479) - Fix DataUriSource description to include "data:" prefix: [#&#8203;91455](https://github.com/vercel/next.js/issues/91455) - Deflake per-page dynamic stale time test: [#&#8203;91492](https://github.com/vercel/next.js/issues/91492) - Improve RSC error messages: [#&#8203;90702](https://github.com/vercel/next.js/issues/90702) - Improve CSS parse error recovery and reporting: [#&#8203;90025](https://github.com/vercel/next.js/issues/90025) - perf(turbopack-node): zero-copy Buffer transfer from node to rust: [#&#8203;91376](https://github.com/vercel/next.js/issues/91376) - docs(turbopack-core): Copy "layers" documentation from mdbook to rustdoc: [#&#8203;91350](https://github.com/vercel/next.js/issues/91350) - Turbopack: correctly apply effects for issue snapshots: [#&#8203;91511](https://github.com/vercel/next.js/issues/91511) - Turbopack: treat unknown CSS selectors as warnings: [#&#8203;91513](https://github.com/vercel/next.js/issues/91513) - docs(turbopack): Migrate chunking docs from mdbook, with proof-reading and minor updates from claude: [#&#8203;91472](https://github.com/vercel/next.js/issues/91472) - Skip catch-error-react-compiler test to unblock CI: [#&#8203;91528](https://github.com/vercel/next.js/issues/91528) - \[turbopack] update qfilter to 0.3.0-alpha: [#&#8203;91467](https://github.com/vercel/next.js/issues/91467) - Unflake two `"use cache"` tests: [#&#8203;91529](https://github.com/vercel/next.js/issues/91529) - docs(turbopack): Remove old `architecture.md` file from turbopack crate: [#&#8203;91473](https://github.com/vercel/next.js/issues/91473) - \[turbopack] Share scratch buffer across shards using thread local: [#&#8203;90167](https://github.com/vercel/next.js/issues/90167) - Turbopack: Use `debug = "line-tables-only"` for dev builds: [#&#8203;91539](https://github.com/vercel/next.js/issues/91539) - Unflake router events deploy test: [#&#8203;91589](https://github.com/vercel/next.js/issues/91589) ##### Credits Huge thanks to [@&#8203;icyJoseph](https://github.com/icyJoseph), [@&#8203;nextjs-bot](https://github.com/nextjs-bot), [@&#8203;sokra](https://github.com/sokra), [@&#8203;Juneezee](https://github.com/Juneezee), [@&#8203;delbaoliveira](https://github.com/delbaoliveira), [@&#8203;wbinnssmith](https://github.com/wbinnssmith), [@&#8203;ztanner](https://github.com/ztanner), [@&#8203;lukesandberg](https://github.com/lukesandberg), [@&#8203;bgw](https://github.com/bgw), [@&#8203;naveenkarmegam](https://github.com/naveenkarmegam), [@&#8203;Marukome0743](https://github.com/Marukome0743), [@&#8203;pji2918](https://github.com/pji2918), [@&#8203;nathannewyen](https://github.com/nathannewyen), [@&#8203;eps1lon](https://github.com/eps1lon), [@&#8203;ijjk](https://github.com/ijjk), [@&#8203;feedthejim](https://github.com/feedthejim), [@&#8203;vercel-release-bot](https://github.com/vercel-release-bot), [@&#8203;xusd320](https://github.com/xusd320), [@&#8203;huozhi](https://github.com/huozhi), [@&#8203;mischnic](https://github.com/mischnic), [@&#8203;wyattjoh](https://github.com/wyattjoh), [@&#8203;styfle](https://github.com/styfle), [@&#8203;timneutkens](https://github.com/timneutkens), [@&#8203;unstubbable](https://github.com/unstubbable), [@&#8203;lubieowoce](https://github.com/lubieowoce), [@&#8203;gnoff](https://github.com/gnoff), [@&#8203;acdlite](https://github.com/acdlite), [@&#8203;Rani367](https://github.com/Rani367), [@&#8203;andrewimm](https://github.com/andrewimm), [@&#8203;brookemosby](https://github.com/brookemosby), [@&#8203;karlhorky](https://github.com/karlhorky), [@&#8203;kdy1](https://github.com/kdy1), [@&#8203;mmastrac](https://github.com/mmastrac), [@&#8203;naaa760](https://github.com/naaa760), [@&#8203;jgeschwendt](https://github.com/jgeschwendt), [@&#8203;williambout](https://github.com/williambout), [@&#8203;SimeonGriggs](https://github.com/SimeonGriggs), [@&#8203;gaojude](https://github.com/gaojude), [@&#8203;hanzala-sohrab](https://github.com/hanzala-sohrab), [@&#8203;dango0812](https://github.com/dango0812), [@&#8203;msmx-mnakagawa](https://github.com/msmx-mnakagawa), [@&#8203;davidgolden](https://github.com/davidgolden), [@&#8203;LucianBuzzo](https://github.com/LucianBuzzo), [@&#8203;devjiwonchoi](https://github.com/devjiwonchoi), [@&#8203;alexcarpenter](https://github.com/alexcarpenter), [@&#8203;jaffarkeikei](https://github.com/jaffarkeikei), [@&#8203;BradErz](https://github.com/BradErz), [@&#8203;mintydev789](https://github.com/mintydev789), [@&#8203;Suhaib3100](https://github.com/Suhaib3100), [@&#8203;pavan-sh](https://github.com/pavan-sh), [@&#8203;amannn](https://github.com/amannn), [@&#8203;fireairforce](https://github.com/fireairforce), [@&#8203;JamBalaya56562](https://github.com/JamBalaya56562), [@&#8203;wheresrhys](https://github.com/wheresrhys), [@&#8203;ericrav](https://github.com/ericrav), [@&#8203;Thomas465xd](https://github.com/Thomas465xd), [@&#8203;bgub](https://github.com/bgub), [@&#8203;Netail](https://github.com/Netail), [@&#8203;robert-j-webb](https://github.com/robert-j-webb), [@&#8203;bencmbrook](https://github.com/bencmbrook), [@&#8203;shadcn](https://github.com/shadcn), [@&#8203;sigmachirality](https://github.com/sigmachirality), [@&#8203;abhishekmardiya](https://github.com/abhishekmardiya), [@&#8203;vvscode](https://github.com/vvscode), [@&#8203;freek-boon-greenberry](https://github.com/freek-boon-greenberry), [@&#8203;alubbe](https://github.com/alubbe), [@&#8203;FurryR](https://github.com/FurryR), [@&#8203;01-binary](https://github.com/01-binary), [@&#8203;andrewdamelio](https://github.com/andrewdamelio), [@&#8203;swarnava](https://github.com/swarnava), [@&#8203;kristiyan-velkov](https://github.com/kristiyan-velkov), [@&#8203;haydenbleasel](https://github.com/haydenbleasel), [@&#8203;rishishanbhag](https://github.com/rishishanbhag), [@&#8203;tdarthur](https://github.com/tdarthur), [@&#8203;lavanitha](https://github.com/lavanitha), [@&#8203;agneliutkiene](https://github.com/agneliutkiene), [@&#8203;Mimori256](https://github.com/Mimori256), [@&#8203;pieh](https://github.com/pieh), [@&#8203;sleitor](https://github.com/sleitor), [@&#8203;jantimon](https://github.com/jantimon), [@&#8203;clicktodev](https://github.com/clicktodev), [@&#8203;mitul-s](https://github.com/mitul-s), [@&#8203;aurorascharff](https://github.com/aurorascharff), [@&#8203;shuding](https://github.com/shuding), [@&#8203;jonasherr](https://github.com/jonasherr), [@&#8203;thdxg](https://github.com/thdxg), [@&#8203;kowyo](https://github.com/kowyo), [@&#8203;samselikoff](https://github.com/samselikoff), [@&#8203;dependabot](https://github.com/dependabot), [@&#8203;benfavre](https://github.com/benfavre), [@&#8203;zamadye](https://github.com/zamadye), [@&#8203;cursor](https://github.com/cursor), and [@&#8203;richardjzhang](https://github.com/richardjzhang) for helping! ### [`v16.1.7`](https://github.com/vercel/next.js/releases/tag/v16.1.7) [Compare Source](https://github.com/vercel/next.js/compare/v16.1.6...v16.1.7) > \[!NOTE] > This release is backporting bug fixes. It does **not** include all pending features/changes on canary. ##### Core Changes - \[Cache Components] Prevent streaming fetch calls from hanging in dev ([#&#8203;89194](https://github.com/vercel/next.js/issues/89194)) - Apply server actions transform to node\_modules in route handlers ([#&#8203;89380](https://github.com/vercel/next.js/issues/89380)) - ensure `maxPostponedStateSize` is always respected (See: [CVE-2026-27979](https://github.com/vercel/next.js/security/advisories/GHSA-h27x-g6w4-24gq)) - feat(next/image): add lru disk cache and `images.maximumDiskCacheSize` (See: [CVE-2026-27980](https://github.com/vercel/next.js/security/advisories/GHSA-3x4c-7xq6-9pq8)) - Allow blocking cross-site dev-only websocket connections from privacy-sensitive origins (See: [CVE-2026-27977](https://github.com/vercel/next.js/security/advisories/GHSA-jcc7-9wpm-mj36)) - Disallow Server Action submissions from privacy-sensitive contexts by default (See: [CVE-2026-27978](https://github.com/vercel/next.js/security/advisories/GHSA-mq59-m269-xvcx)) - fix: patch http-proxy to prevent request smuggling in rewrites (See: [CVE-2026-29057](https://github.com/vercel/next.js/security/advisories/GHSA-ggv3-7p47-pfv8)) ##### Credits Huge thanks to [@&#8203;unstubbable](https://github.com/unstubbable), [@&#8203;styfle](https://github.com/styfle), [@&#8203;eps1lon](https://github.com/eps1lon), and [@&#8203;ztanner](https://github.com/ztanner) for helping! ### [`v16.1.6`](https://github.com/vercel/next.js/releases/tag/v16.1.6) [Compare Source](https://github.com/vercel/next.js/compare/v16.1.5...v16.1.6) > \[!NOTE] > This release is backporting bug fixes. It does **not** include all pending features/changes on canary. ##### Core Changes - Upgrade to swc 54 ([#&#8203;88207](https://github.com/vercel/next.js/issues/88207)) - implement LRU cache with invocation ID scoping for minimal mode response cache ([#&#8203;88509](https://github.com/vercel/next.js/issues/88509)) - tweak LRU sentinel key ([#&#8203;89123](https://github.com/vercel/next.js/issues/89123)) ##### Credits Huge thanks to [@&#8203;mischnic](https://github.com/mischnic), [@&#8203;wyattjoh](https://github.com/wyattjoh), and [@&#8203;ztanner](https://github.com/ztanner) for helping! ### [`v16.1.5`](https://github.com/vercel/next.js/releases/tag/v16.1.5) [Compare Source](https://github.com/vercel/next.js/compare/v16.1.4...v16.1.5) Please refer the following changelogs for more information about this security release: <https://vercel.com/changelog/summaries-of-cve-2025-59471-and-cve-2025-59472> <https://vercel.com/changelog/summary-of-cve-2026-23864> ### [`v16.1.4`](https://github.com/vercel/next.js/releases/tag/v16.1.4) [Compare Source](https://github.com/vercel/next.js/compare/v16.1.3...v16.1.4) > \[!NOTE] > This release is backporting bug fixes. It does **not** include all pending features/changes on canary. ##### Core Changes - Only filter next config if experimental flag is enabled ([#&#8203;88733](https://github.com/vercel/next.js/issues/88733)) ##### Credits Huge thanks to [@&#8203;mischnic](https://github.com/mischnic) for helping! ### [`v16.1.3`](https://github.com/vercel/next.js/releases/tag/v16.1.3) [Compare Source](https://github.com/vercel/next.js/compare/v16.1.2...v16.1.3) > \[!NOTE] > This release is backporting bug fixes. It does **not** include all pending features/changes on canary. ##### Core Changes - Fix linked list bug in LRU deleteFromLru ([#&#8203;88652](https://github.com/vercel/next.js/issues/88652)) - Fix relative same host redirects in node middleware ([#&#8203;88253](https://github.com/vercel/next.js/issues/88253)) ##### Credits Huge thanks to [@&#8203;acdlite](https://github.com/acdlite) and [@&#8203;ijjk](https://github.com/ijjk) for helping! ### [`v16.1.2`](https://github.com/vercel/next.js/releases/tag/v16.1.2) [Compare Source](https://github.com/vercel/next.js/compare/v16.1.1...v16.1.2) > \[!NOTE] > This release is backporting bug fixes. It does **not** include all pending features/changes on canary. ##### Core Changes - Turbopack: Update to swc\_core v50.2.3 ([#&#8203;87841](https://github.com/vercel/next.js/issues/87841)) ([#&#8203;88296](https://github.com/vercel/next.js/issues/88296)) - Fixes a crash when processing mdx files with multibyte characters. ([#&#8203;87713](https://github.com/vercel/next.js/issues/87713)) - Turbopack: [mimalloc](https://microsoft.github.io/mimalloc/) upgrade and enabling it on musl ([#&#8203;88503](https://github.com/vercel/next.js/issues/88503)) ([#&#8203;87815](https://github.com/vercel/next.js/issues/87815)) ([#&#8203;88426](https://github.com/vercel/next.js/issues/88426)) - Fixes [a significant performance issue](https://github.com/vercel/next.js/pull/88426) on musl-based Linux distributions (e.g. Alpine in Docker) related to musl's allocator. - Other platforms have always used mimalloc, but we previously did not use mimalloc on musl because of compilation issues that have since been resolved. ##### Credits Huge thanks to [@&#8203;mischnic](https://github.com/mischnic) for helping! ### [`v16.1.1`](https://github.com/vercel/next.js/releases/tag/v16.1.1) [Compare Source](https://github.com/vercel/next.js/compare/v16.1.0...v16.1.1) > \[!NOTE] > This release is backporting bug fixes. It does **not** include all pending features/changes on canary. ##### Core Changes - Turbopack: Create junction points instead of symlinks on Windows ([#&#8203;87606](https://github.com/vercel/next.js/issues/87606)) ##### Credits Huge thanks to [@&#8203;sokra](https://github.com/sokra) and [@&#8203;ztanner](https://github.com/ztanner) for helping! ### [`v16.1.0`](https://github.com/vercel/next.js/releases/tag/v16.1.0) [Compare Source](https://github.com/vercel/next.js/compare/v16.0.11...v16.1.0) > \[!TIP]\ > **Check out our Next v16.1 [Blog Post](https://nextjs.org/blog/next-16-1) to learn more about this release.** ##### Core Changes - fix: Rspack throw error when using ForceCompleteRuntimePlugin: [#&#8203;85221](https://github.com/vercel/next.js/issues/85221) - fix: build CLI output not displaying Proxy (Middleware) when nodejs runtime: [#&#8203;85403](https://github.com/vercel/next.js/issues/85403) - fix: staleTimes.static should consistently enforce a 30s minimum: [#&#8203;85479](https://github.com/vercel/next.js/issues/85479) - \[turbopack] fix build of empty entries of pages: [#&#8203;84873](https://github.com/vercel/next.js/issues/84873) - Cache the head separately from the route tree: [#&#8203;84724](https://github.com/vercel/next.js/issues/84724) - Allow inspecting dev server on default port with `next dev --inspect`: [#&#8203;85037](https://github.com/vercel/next.js/issues/85037) - Avoid proxying React modules through workUnitStore: [#&#8203;85486](https://github.com/vercel/next.js/issues/85486) - fix: redirect should always return updated router state: [#&#8203;85533](https://github.com/vercel/next.js/issues/85533) - Upgrade React from `b4455a6e-20251027` to `4f931700-20251029`: [#&#8203;85518](https://github.com/vercel/next.js/issues/85518) - \[turbopack] Move generation of `cacheLife` types out of the webpack plugin and into the dev bundler directly: [#&#8203;85539](https://github.com/vercel/next.js/issues/85539) - Ensure user-space stack frame for `'use cache'` in page/layout component: [#&#8203;85519](https://github.com/vercel/next.js/issues/85519) - Update parallel routes in build-complete: [#&#8203;85546](https://github.com/vercel/next.js/issues/85546) - fully remove clientSegmentCache flag: [#&#8203;85541](https://github.com/vercel/next.js/issues/85541) - \[turbopack] Support relative paths in turbopack source maps.: [#&#8203;85146](https://github.com/vercel/next.js/issues/85146) - Release unnecessary memory on hydration finish: [#&#8203;84967](https://github.com/vercel/next.js/issues/84967) - Preserve interception markers in parameter types: [#&#8203;85526](https://github.com/vercel/next.js/issues/85526) - move segment cache entries to top level segment-cache dir: [#&#8203;85542](https://github.com/vercel/next.js/issues/85542) - Upgrade React from `4f931700-20251029` to `561ee24d-20251101`: [#&#8203;85670](https://github.com/vercel/next.js/issues/85670) - \[devtools] Remove title from preferences: [#&#8203;85698](https://github.com/vercel/next.js/issues/85698) - Update font data: [#&#8203;85708](https://github.com/vercel/next.js/issues/85708) - Don't invalidate hot reloader excessively during dev server boot: [#&#8203;85732](https://github.com/vercel/next.js/issues/85732) - \[codemod] fix: next-lint-to-eslint-cli did not handle `'next'` plugin: [#&#8203;85749](https://github.com/vercel/next.js/issues/85749) - Upgrade React from `561ee24d-20251101` to `67f7d47a-20251103`: [#&#8203;85762](https://github.com/vercel/next.js/issues/85762) - Tracing: Fix memory leak in span map: [#&#8203;85529](https://github.com/vercel/next.js/issues/85529) - Fix documentation typo in refresh function: [#&#8203;85696](https://github.com/vercel/next.js/issues/85696) - fix: eslint-config-next types was exporting to dist/src: [#&#8203;85768](https://github.com/vercel/next.js/issues/85768) - Upgrade React from `67f7d47a-20251103` to `f646e8ff-20251104`: [#&#8203;85772](https://github.com/vercel/next.js/issues/85772) - remove unused RSC payload property: [#&#8203;85746](https://github.com/vercel/next.js/issues/85746) - \[runtime prefetching]: fix runtime prefetching when deployed: [#&#8203;85595](https://github.com/vercel/next.js/issues/85595) - Turbopack: next build --analyze: [#&#8203;85197](https://github.com/vercel/next.js/issues/85197) - Build: Log amount of workers during static generation: [#&#8203;85706](https://github.com/vercel/next.js/issues/85706) - Upgrade React from `f646e8ff-20251104` to `dd048c3b-20251105`: [#&#8203;85819](https://github.com/vercel/next.js/issues/85819) - Sync devFallbackParams when generateStaticParams change: [#&#8203;85741](https://github.com/vercel/next.js/issues/85741) - chore: upgrade rspack 1.6.0: [#&#8203;84210](https://github.com/vercel/next.js/issues/84210) - \[mcp] get\_routes mcp tool: [#&#8203;85773](https://github.com/vercel/next.js/issues/85773) - Split each path param into a separate cache key : [#&#8203;85758](https://github.com/vercel/next.js/issues/85758) - \[turbopack] change server source maps in production to use relative paths: [#&#8203;85576](https://github.com/vercel/next.js/issues/85576) - fix: skip collecting metadata for app-error in webpack: [#&#8203;85892](https://github.com/vercel/next.js/issues/85892) - fix: support root span attributes with a custom server: [#&#8203;85521](https://github.com/vercel/next.js/issues/85521) - fix isDynamicRSC condition when deployed: [#&#8203;85919](https://github.com/vercel/next.js/issues/85919) - \[turbopack] Make it possible to synchronously access native bindings: [#&#8203;85787](https://github.com/vercel/next.js/issues/85787) - Upgrade React from `dd048c3b-20251105` to `fa50caf5-20251107`: [#&#8203;85906](https://github.com/vercel/next.js/issues/85906) - Fix telemetry event loss on build failures and server shutdown: [#&#8203;85867](https://github.com/vercel/next.js/issues/85867) - Remove one stack frame from `'use cache'` call stacks: [#&#8203;85966](https://github.com/vercel/next.js/issues/85966) - Upgrade React from `fa50caf5-20251107` to `52684925-20251110`: [#&#8203;85980](https://github.com/vercel/next.js/issues/85980) - Deployment adapter: fix metadata for "/" route: [#&#8203;85820](https://github.com/vercel/next.js/issues/85820) - Enable React's default Transition indicator behind a flag: [#&#8203;86000](https://github.com/vercel/next.js/issues/86000) - update routes-manifest to include whether app has pages routes: [#&#8203;86051](https://github.com/vercel/next.js/issues/86051) - Fix 404 responses for interception routes with missing children slots: [#&#8203;85779](https://github.com/vercel/next.js/issues/85779) - Build: Share StaticWorker between static check and static generation: [#&#8203;85860](https://github.com/vercel/next.js/issues/85860) - \[devtool] highlight all link in error message: [#&#8203;86084](https://github.com/vercel/next.js/issues/86084) - fix(nodejs-middleware): await for body cloning to be properly finalized: [#&#8203;85418](https://github.com/vercel/next.js/issues/85418) - Add build-time validation to detect ambiguous app routes: [#&#8203;85834](https://github.com/vercel/next.js/issues/85834) - Don't use inspector frontend URLs from other processes: [#&#8203;86082](https://github.com/vercel/next.js/issues/86082) - Upgrade React from `52684925-20251110` to `93fc5740-20251113`: [#&#8203;86103](https://github.com/vercel/next.js/issues/86103) - \[next-upgrade] Force install of dev dependencies: [#&#8203;86119](https://github.com/vercel/next.js/issues/86119) - Fix telemetry event race condition in webpack worker for [@&#8203;vercel/og](https://github.com/vercel/og) detection: [#&#8203;86145](https://github.com/vercel/next.js/issues/86145) - Turbopack: Add bundle analyzer UI to next build --experimental-analyze: [#&#8203;85788](https://github.com/vercel/next.js/issues/85788) - Upgrade React from `93fc5740-20251113` to `fb2177c1-20251114`: [#&#8203;86155](https://github.com/vercel/next.js/issues/86155) - fix: cacheMaxMemorySize should not disable dev HMR cache: [#&#8203;86164](https://github.com/vercel/next.js/issues/86164) - Fix streaming server actions: [#&#8203;86148](https://github.com/vercel/next.js/issues/86148) - Allow attaching a debugger when `next dev` is already running: [#&#8203;86083](https://github.com/vercel/next.js/issues/86083) - Introduce `next analyze`: a built-in bundle analyzer for Turbopack: [#&#8203;85915](https://github.com/vercel/next.js/issues/85915) - Turbopack: add `experimental.turbopackClient/ServerSideNestedAsyncChunking`: [#&#8203;85827](https://github.com/vercel/next.js/issues/85827) - next analyze: annotate polyfill modules in UI: [#&#8203;86062](https://github.com/vercel/next.js/issues/86062) - Stop adding additional padding to Next.js logs: [#&#8203;86139](https://github.com/vercel/next.js/issues/86139) - \[next-upgrade] Add `next upgrade`: [#&#8203;86120](https://github.com/vercel/next.js/issues/86120) - Fix prerendering of interception routes with generateStaticParams: [#&#8203;85835](https://github.com/vercel/next.js/issues/85835) - \[Segment Cache] Re-implement refresh reducer: [#&#8203;84426](https://github.com/vercel/next.js/issues/84426) - Upgrade React from `fb2177c1-20251114` to `0972e239-20251118`: [#&#8203;86263](https://github.com/vercel/next.js/issues/86263) - `next analyze`: Make ipv6 server links valid and normalize localhost: [#&#8203;86219](https://github.com/vercel/next.js/issues/86219) - fix: prevent fetch abort errors propagating to user error boundaries: [#&#8203;86277](https://github.com/vercel/next.js/issues/86277) - chore(turbopack-node): remove some outdated codes: [#&#8203;86111](https://github.com/vercel/next.js/issues/86111) - \[devtools] Ensure Chrome DevTools workspace can connect with proxy rewrites: [#&#8203;86289](https://github.com/vercel/next.js/issues/86289) - Fix log log alignment in spinners: [#&#8203;86298](https://github.com/vercel/next.js/issues/86298) - fix: Rename proxy.js to middleware.js in NFT file: [#&#8203;86214](https://github.com/vercel/next.js/issues/86214) - Turbopack: allow trace level tracing: [#&#8203;86255](https://github.com/vercel/next.js/issues/86255) - Allow SSR to finish microtasky work before flushing: [#&#8203;86311](https://github.com/vercel/next.js/issues/86311) - Turbopack: fix passing project options from napi: [#&#8203;86256](https://github.com/vercel/next.js/issues/86256) - \[Cache Components] Atomic setTimeouts: [#&#8203;86093](https://github.com/vercel/next.js/issues/86093) - Turbopack: add experimental.turbopackInputSourceMaps and respect serverSourceMaps: [#&#8203;86340](https://github.com/vercel/next.js/issues/86340) - \[Cache Components] Discriminate static shell validation errors by type: [#&#8203;85747](https://github.com/vercel/next.js/issues/85747) - Turbopack: add NEXT\_TURBOPACK\_WRITE\_ROUTES\_HASHES\_MANIFEST to write hashes into manifest: [#&#8203;86257](https://github.com/vercel/next.js/issues/86257) - Add reasons for some server-external-packages: [#&#8203;86254](https://github.com/vercel/next.js/issues/86254) - Send dynamic validation errors to browser via WebSocket: [#&#8203;85818](https://github.com/vercel/next.js/issues/85818) - Delete un-used prefetch outputs with PPR: [#&#8203;86100](https://github.com/vercel/next.js/issues/86100) - Revert "Turbopack: add bundle-analyzer to versioning and add dependen…: [#&#8203;86394](https://github.com/vercel/next.js/issues/86394) - Turbopack: add bundle-analyzer to versioning and add dependency: [#&#8203;86355](https://github.com/vercel/next.js/issues/86355) - fix issue - [#&#8203;86365](https://github.com/vercel/next.js/issues/86365): [#&#8203;86366](https://github.com/vercel/next.js/issues/86366) - Turbopack: fix import chain by determining depth locally per route: [#&#8203;86350](https://github.com/vercel/next.js/issues/86350) - Use JSONC for default server-external-packages: [#&#8203;86252](https://github.com/vercel/next.js/issues/86252) - add debug logs to onSegmentPrerenderError: [#&#8203;86358](https://github.com/vercel/next.js/issues/86358) - Skip request if "full" prefetch is already pending: [#&#8203;86405](https://github.com/vercel/next.js/issues/86405) - fix: Rename proxy.js to middleware.js in NFT file ([#&#8203;86214](https://github.com/vercel/next.js/issues/86214)) - fix: prevent fetch abort errors propagating to user error boundaries ([#&#8203;86277](https://github.com/vercel/next.js/issues/86277)) - Turbopack: fix passing project options from napi ([#&#8203;86256](https://github.com/vercel/next.js/issues/86256)) - Eslint: Improve Google Tag manager third parties message: [#&#8203;51903](https://github.com/vercel/next.js/issues/51903) - \[ts-plugin] keep showing the types in the function body: [#&#8203;86273](https://github.com/vercel/next.js/issues/86273) - \[turbopack] Enable the filesystem cache for dev in canary builds: [#&#8203;85940](https://github.com/vercel/next.js/issues/85940) - docs: fix typos in packages: [#&#8203;82508](https://github.com/vercel/next.js/issues/82508) - Turbopack: Expose an environment variable for exposing the `detail` field of issues: [#&#8203;86518](https://github.com/vercel/next.js/issues/86518) - Turbopack: inner graph tree shaking: [#&#8203;85973](https://github.com/vercel/next.js/issues/85973) - \[next-upgrade] Fall back to `npx` if `yarn dlx` is not available: [#&#8203;86384](https://github.com/vercel/next.js/issues/86384) - Update font data: [#&#8203;86521](https://github.com/vercel/next.js/issues/86521) - Convert any export from a `'use cache'` module to a cache function: [#&#8203;86014](https://github.com/vercel/next.js/issues/86014) - fix(nodejs-middleware): await for body cloning to be properly finalized ([#&#8203;85418](https://github.com/vercel/next.js/issues/85418)) - Fix stale dev types causing build failure after route deletion: [#&#8203;86489](https://github.com/vercel/next.js/issues/86489) - bump the browserslist version to silence a warning in CI ([#&#8203;86625](https://github.com/vercel/next.js/issues/86625)) - add bundle analyzer as dev dependency to next: [#&#8203;86497](https://github.com/vercel/next.js/issues/86497) - Remove obsolete `setReferenceManifestsSingleton` call: [#&#8203;86574](https://github.com/vercel/next.js/issues/86574) - Add flag to show ignore listed frames: [#&#8203;86285](https://github.com/vercel/next.js/issues/86285) - Add alinea to server-external-packages.json: [#&#8203;55006](https://github.com/vercel/next.js/issues/55006) - Fix error logging for `'use cache'` runtime errors in production: [#&#8203;86500](https://github.com/vercel/next.js/issues/86500) - Upgrade React from `8ac5f4eb-20251119` to `fd524fe0-20251121`: [#&#8203;86473](https://github.com/vercel/next.js/issues/86473) - Add "[@&#8203;zenstackhq/runtime](https://github.com/zenstackhq/runtime)" to server-external-packages.json: [#&#8203;54829](https://github.com/vercel/next.js/issues/54829) - \[Cache Components] Ensure cache misses always cause a restart in dev: [#&#8203;86583](https://github.com/vercel/next.js/issues/86583) - bump the browserslist version to silence a warning in CI: [#&#8203;86625](https://github.com/vercel/next.js/issues/86625) - Turbopack: import to `char` not replaced: [#&#8203;86573](https://github.com/vercel/next.js/issues/86573) - Revert "add bundle analyzer as dev dependency to next ([#&#8203;86497](https://github.com/vercel/next.js/issues/86497))": [#&#8203;86672](https://github.com/vercel/next.js/issues/86672) - Handle cross-page client reference contamination in development: [#&#8203;86591](https://github.com/vercel/next.js/issues/86591) - Match behavior of baseline-browser-mapping with caniuse-lite: [#&#8203;86653](https://github.com/vercel/next.js/issues/86653) - Turbopack: don't generateBuildId in dev: [#&#8203;86581](https://github.com/vercel/next.js/issues/86581) - \[devtool] unify the bundler field: [#&#8203;86514](https://github.com/vercel/next.js/issues/86514) - Turbopack: normalize distDir separators: [#&#8203;86697](https://github.com/vercel/next.js/issues/86697) - Cover org package external in externals-transitive test: [#&#8203;86691](https://github.com/vercel/next.js/issues/86691) - \[turbopack] Enable filesystem cache by default for development: [#&#8203;85975](https://github.com/vercel/next.js/issues/85975) - Log generate params duration in dev: [#&#8203;86726](https://github.com/vercel/next.js/issues/86726) - \[CC] Fix hanging dynamic promise when abandoning render: [#&#8203;86690](https://github.com/vercel/next.js/issues/86690) - Convert Windows paths as well when reading sourcemap: [#&#8203;86723](https://github.com/vercel/next.js/issues/86723) - Deterministic functions-config-manifest.json: [#&#8203;86736](https://github.com/vercel/next.js/issues/86736) - Abstract deployment id access into module: [#&#8203;86727](https://github.com/vercel/next.js/issues/86727) - Deterministically order pages in the `MappedPages` structure: [#&#8203;86744](https://github.com/vercel/next.js/issues/86744) - \[turbopack] move edge entry wrapper to build template: [#&#8203;86699](https://github.com/vercel/next.js/issues/86699) - Properly type ComponentMod: [#&#8203;86765](https://github.com/vercel/next.js/issues/86765) - Properly type edge handler fn: [#&#8203;86766](https://github.com/vercel/next.js/issues/86766) - Remove unused Server.responseCache: [#&#8203;86768](https://github.com/vercel/next.js/issues/86768) - \[Cache Components] Fast setImmediate: [#&#8203;86018](https://github.com/vercel/next.js/issues/86018) - \[devtool] make the draggable content selective: [#&#8203;86816](https://github.com/vercel/next.js/issues/86816) - Create server module map proxy only once: [#&#8203;86750](https://github.com/vercel/next.js/issues/86750) - fix(next/image): add `?dpl` query string for local images (without static import): [#&#8203;86485](https://github.com/vercel/next.js/issues/86485) - fix(next/image): handle `?dpl` for src without protocol: [#&#8203;86836](https://github.com/vercel/next.js/issues/86836) - Upgrade React from `7dc903cd-20251203` to `66ae640b-20251204`: [#&#8203;86843](https://github.com/vercel/next.js/issues/86843) - Upgrade React from `66ae640b-20251204` to `378973b3-20251205`: [#&#8203;86852](https://github.com/vercel/next.js/issues/86852) - Turbopack: remove pages router double template: [#&#8203;86842](https://github.com/vercel/next.js/issues/86842) - Introduce NextConfigRuntime: [#&#8203;86812](https://github.com/vercel/next.js/issues/86812) - Generate required-server-files before prerendering: [#&#8203;86830](https://github.com/vercel/next.js/issues/86830) - Update react version in cna templates ([#&#8203;86950](https://github.com/vercel/next.js/issues/86950)) - Include nextConfig in edge runtime via separate manifest: [#&#8203;86769](https://github.com/vercel/next.js/issues/86769) - Fix required-server-files: [#&#8203;86875](https://github.com/vercel/next.js/issues/86875) - Add pino-related packages to server-external-packages: [#&#8203;86884](https://github.com/vercel/next.js/issues/86884) - Fix validateTurboNextConfig running for next start: [#&#8203;86886](https://github.com/vercel/next.js/issues/86886) - Add experimental.runtimeServerDeploymentId: [#&#8203;86865](https://github.com/vercel/next.js/issues/86865) - \[turbopack] Mark packages as side effect free when local analysis determines that they are.: [#&#8203;86398](https://github.com/vercel/next.js/issues/86398) - Fix: Missing null check in LRU cleanup: [#&#8203;87124](https://github.com/vercel/next.js/issues/87124) - improve segment cache lru typesafety: [#&#8203;87129](https://github.com/vercel/next.js/issues/87129) - \[Segment Cache] Detect third-party redirect + static export w/ HEAD request: [#&#8203;85910](https://github.com/vercel/next.js/issues/85910) - Fix: External redirect swallowed by Next.js: [#&#8203;87121](https://github.com/vercel/next.js/issues/87121) - Fix error propagation and teardown in Server Action request decoding: [#&#8203;87193](https://github.com/vercel/next.js/issues/87193) - Fix interception routes with trailing slash configuration: [#&#8203;86787](https://github.com/vercel/next.js/issues/86787) - \[ci] Stop building when creating release: [#&#8203;87178](https://github.com/vercel/next.js/issues/87178) - fix: otel error spans from streamed responses: [#&#8203;86955](https://github.com/vercel/next.js/issues/86955) - Refactor: Unify history traversal with other nav types: [#&#8203;87128](https://github.com/vercel/next.js/issues/87128) - Create initial tree using same function as navigations: [#&#8203;87147](https://github.com/vercel/next.js/issues/87147) - Re-implement hmr-refresh in terms of refresh: [#&#8203;87135](https://github.com/vercel/next.js/issues/87135) - Delete old navigation response handling implementation: [#&#8203;87149](https://github.com/vercel/next.js/issues/87149) - Reflect runtime type of `resHeaders` in static types: [#&#8203;87145](https://github.com/vercel/next.js/issues/87145) - \[turbopack] Flag `turbopackInferModuleSideEffects` so it is only enabled in canary builds: [#&#8203;87215](https://github.com/vercel/next.js/issues/87215) - \[turbopack] update warning message in the bundle analyzer: [#&#8203;87255](https://github.com/vercel/next.js/issues/87255) - chore: update rspack 1.6.5: [#&#8203;86853](https://github.com/vercel/next.js/issues/86853) - Update font data: [#&#8203;87259](https://github.com/vercel/next.js/issues/87259) - bundle-analyzer: make running the web server default: [#&#8203;87258](https://github.com/vercel/next.js/issues/87258) - bundle analyzer: remove custom output option: [#&#8203;87267](https://github.com/vercel/next.js/issues/87267) - Ensure constructor for `useSearchParams` can be imported for `instanceof` checks: [#&#8203;87269](https://github.com/vercel/next.js/issues/87269) - Upgrade React from `b45bb335-20251211` to `f93b9fd4-20251217`: [#&#8203;87281](https://github.com/vercel/next.js/issues/87281) - feat: use Rspack persistent cache by default: [#&#8203;81399](https://github.com/vercel/next.js/issues/81399) - Move next-env.d.ts to dist dir: [#&#8203;86752](https://github.com/vercel/next.js/issues/86752) - Revert "Move next-env.d.ts to dist dir": [#&#8203;87311](https://github.com/vercel/next.js/issues/87311) ##### Example Changes - Chore: Update with-supabase example to Next.js 16: [#&#8203;86105](https://github.com/vercel/next.js/issues/86105) - docs: add example for enabling both AVIF and WebP image formats for better image optimization: [#&#8203;86191](https://github.com/vercel/next.js/issues/86191) - examples: fix typos: [#&#8203;82506](https://github.com/vercel/next.js/issues/82506) - chore(examples): remove `with-windicss` example: [#&#8203;81846](https://github.com/vercel/next.js/issues/81846) - examples: fix typos in cms-agilitycms: [#&#8203;82504](https://github.com/vercel/next.js/issues/82504) - Turbopack: Improve the description on InvalidLoaderRuleConditionIssue: [#&#8203;87008](https://github.com/vercel/next.js/issues/87008) ##### Misc Changes - chore: Add `opt-level = s` for not frequently used crates: [#&#8203;85426](https://github.com/vercel/next.js/issues/85426) - \[test] Deflake cache-components-allow-otel-spans: [#&#8203;85466](https://github.com/vercel/next.js/issues/85466) - \[test] Move remaining `experimental.cacheLife`: [#&#8203;85467](https://github.com/vercel/next.js/issues/85467) - Turbopack: chore: Remove mopa dependency in turbo-tasks (2nd attempt): [#&#8203;85286](https://github.com/vercel/next.js/issues/85286) - Update Proxy docs: [#&#8203;85439](https://github.com/vercel/next.js/issues/85439) - \[CNA] Do not prompt for Turbopack: [#&#8203;85404](https://github.com/vercel/next.js/issues/85404) - Clean up new release process: [#&#8203;85458](https://github.com/vercel/next.js/issues/85458) - Update E2E tests workflow: [#&#8203;85485](https://github.com/vercel/next.js/issues/85485) - Update E2E deploy tests manifest: [#&#8203;85483](https://github.com/vercel/next.js/issues/85483) - docs: example are incorrect async function exports only: [#&#8203;85453](https://github.com/vercel/next.js/issues/85453) - \[test] Handle CLI assertions where no "Compiling..." log is present: [#&#8203;85499](https://github.com/vercel/next.js/issues/85499) - \[test] Speed up refresh test: [#&#8203;85505](https://github.com/vercel/next.js/issues/85505) - \[test] Add test cases for dynamic caches without suspense boundaries: [#&#8203;85500](https://github.com/vercel/next.js/issues/85500) - docs: Routes are wrapped w/ Activity in Cache Components: [#&#8203;85309](https://github.com/vercel/next.js/issues/85309) - docs: GET handler behavior under cache components: [#&#8203;85389](https://github.com/vercel/next.js/issues/85389) - \[test] Avoid needless start/stop from using `createSandbox`: [#&#8203;85507](https://github.com/vercel/next.js/issues/85507) - \[test] Use `--debug-build-paths` instead of `NEXT_PRIVATE_APP_PATHS`: [#&#8203;85504](https://github.com/vercel/next.js/issues/85504) - docs: revalidateTag requires second argument: [#&#8203;85284](https://github.com/vercel/next.js/issues/85284) - Refactor GTM implementation to support google tag gateway: [#&#8203;81011](https://github.com/vercel/next.js/issues/81011) - Update Rspack production test manifest: [#&#8203;85494](https://github.com/vercel/next.js/issues/85494) - Update Rspack development test manifest: [#&#8203;85495](https://github.com/vercel/next.js/issues/85495) - \[docs] Fix a typo: [#&#8203;85492](https://github.com/vercel/next.js/issues/85492) - \[test] Regenerate tsconfig.json files: [#&#8203;85515](https://github.com/vercel/next.js/issues/85515) - \[Turbopack] clean up `completion.rs` a bit: [#&#8203;84863](https://github.com/vercel/next.js/issues/84863) - \[test] Remove `maxRetries` and `hardError` parameters: [#&#8203;85536](https://github.com/vercel/next.js/issues/85536) - Turbopack: remove the .into() alias to .cell(): [#&#8203;85516](https://github.com/vercel/next.js/issues/85516) - \[test] Consolidate identical snapshots across different bundlers: [#&#8203;85532](https://github.com/vercel/next.js/issues/85532) - \[turbopack] Change where `cell`s are created in `resolve_raw` to make cell allocation order deterministic.: [#&#8203;85525](https://github.com/vercel/next.js/issues/85525) - Turbopack: Make tasks deterministic: [#&#8203;85524](https://github.com/vercel/next.js/issues/85524) - \[test] Separate act and assertions: [#&#8203;85508](https://github.com/vercel/next.js/issues/85508) - \[test] `assert*` -> `waitFor*` when the util is not instant: [#&#8203;85450](https://github.com/vercel/next.js/issues/85450) - Turbopack: move whole\_app\_module\_graphs to top level: [#&#8203;84897](https://github.com/vercel/next.js/issues/84897) - \[test] Bail on sending requests to Next.js instance if it's no longer available: [#&#8203;85557](https://github.com/vercel/next.js/issues/85557) - \[test] Deflake tests comparing two random numbers: [#&#8203;85571](https://github.com/vercel/next.js/issues/85571) - \[test] Disallow custom `RegExp`-like implementations in `check`: [#&#8203;85537](https://github.com/vercel/next.js/issues/85537) - \[test] Deflake prerender suite: [#&#8203;85563](https://github.com/vercel/next.js/issues/85563) - Turbopack: chore: Remove some dead MagicAny serialization code from turbo\_tasks::value: [#&#8203;85577](https://github.com/vercel/next.js/issues/85577) - \[test]: fix broken scroll restoration test: [#&#8203;85599](https://github.com/vercel/next.js/issues/85599) - \[test] Deflake nested `after()` tests: [#&#8203;85566](https://github.com/vercel/next.js/issues/85566) - \[test] Stop installing unused dependencies: [#&#8203;85569](https://github.com/vercel/next.js/issues/85569) - \[test] Consider `test/integration/` in flake detection tests: [#&#8203;85590](https://github.com/vercel/next.js/issues/85590) - Turbopack: more checks on verify\_serialization: [#&#8203;84952](https://github.com/vercel/next.js/issues/84952) - Turbopack: add track\_caller to improve panics: [#&#8203;85565](https://github.com/vercel/next.js/issues/85565) - Turbopack: add verify\_determinism feature to check if tasks are deterministic: [#&#8203;85559](https://github.com/vercel/next.js/issues/85559) - docs: cache life rework: [#&#8203;85224](https://github.com/vercel/next.js/issues/85224) - Turbopack: fix hanging dev server and builds with fs cache: [#&#8203;85606](https://github.com/vercel/next.js/issues/85606) - Turbopack: Fix compound assignment expression evaluation ([#&#8203;85478](https://github.com/vercel/next.js/issues/85478)): [#&#8203;85593](https://github.com/vercel/next.js/issues/85593) - Turbopack: fix Scope holding Arc too long: [#&#8203;85611](https://github.com/vercel/next.js/issues/85611) - \[ci] Improve change detection logic in `run-for-change` script: [#&#8203;85619](https://github.com/vercel/next.js/issues/85619) - \[test] Ignore in deploy tests if a child process isn't available: [#&#8203;85636](https://github.com/vercel/next.js/issues/85636) - Turbopack: add size\_hint and len for Chunk iterator: [#&#8203;85622](https://github.com/vercel/next.js/issues/85622) - \[test]: move resume-data-cache to e2e test: [#&#8203;85647](https://github.com/vercel/next.js/issues/85647) - Update Rspack development test manifest: [#&#8203;85662](https://github.com/vercel/next.js/issues/85662) - Update Rspack production test manifest: [#&#8203;85661](https://github.com/vercel/next.js/issues/85661) - Update Rspack production test manifest: [#&#8203;85688](https://github.com/vercel/next.js/issues/85688) - Update Rspack development test manifest: [#&#8203;85689](https://github.com/vercel/next.js/issues/85689) - \[test] Deflake root-optional-revalidate: [#&#8203;85584](https://github.com/vercel/next.js/issues/85584) - docs: fix generateImageMetadata example to use normal params object: [#&#8203;85658](https://github.com/vercel/next.js/issues/85658) - Turbopack: Upgrade image crate: [#&#8203;85084](https://github.com/vercel/next.js/issues/85084) - docs: update multi sitemap argumenmt type: [#&#8203;85701](https://github.com/vercel/next.js/issues/85701) - \[test] Move all files to .ts (6/6): [#&#8203;85641](https://github.com/vercel/next.js/issues/85641) - Turbopack: add a batch add method to the storage: [#&#8203;84270](https://github.com/vercel/next.js/issues/84270) - docs: recommend reverse-proxy when self-hosting: [#&#8203;85650](https://github.com/vercel/next.js/issues/85650) - \[test] Deflake prefetching.stale-times: [#&#8203;85733](https://github.com/vercel/next.js/issues/85733) - \[test] Deflake custom cache handler test: [#&#8203;85610](https://github.com/vercel/next.js/issues/85610) - \[test] Allow CLI integration test to be retryable: [#&#8203;85586](https://github.com/vercel/next.js/issues/85586) - docs: update docs to mention ESLint as default: [#&#8203;85740](https://github.com/vercel/next.js/issues/85740) - docs(next.config): this docs should remove ".mts" is not supported.: [#&#8203;85716](https://github.com/vercel/next.js/issues/85716) - Turbopack: cleanup StyleSheetLike: [#&#8203;85718](https://github.com/vercel/next.js/issues/85718) - Turbopack: disable tree shaking for tracing: [#&#8203;85722](https://github.com/vercel/next.js/issues/85722) - \[test] Move all files to .ts (3/6): [#&#8203;85638](https://github.com/vercel/next.js/issues/85638) - \[test] Move all files to .ts (2/6): [#&#8203;85637](https://github.com/vercel/next.js/issues/85637) - \[test] Move all files to .ts (1/6): [#&#8203;85634](https://github.com/vercel/next.js/issues/85634) - docs: generateSitemap passes id as promise: [#&#8203;85767](https://github.com/vercel/next.js/issues/85767) - \[test] Move all files to .ts (4/6): [#&#8203;85639](https://github.com/vercel/next.js/issues/85639) - docs: disclosure on path-to-regexp: [#&#8203;85629](https://github.com/vercel/next.js/issues/85629) - chore: update rspack binding to 1.6.0: [#&#8203;85717](https://github.com/vercel/next.js/issues/85717) - Turbopack: trace worker\_threads worker entry: [#&#8203;85734](https://github.com/vercel/next.js/issues/85734) - Update Rspack development test manifest: [#&#8203;85761](https://github.com/vercel/next.js/issues/85761) - Turbopack: chore: Remove `extern crate` and `macro_use` syntax: [#&#8203;85778](https://github.com/vercel/next.js/issues/85778) - \[turbopack] Drop duration and allocation tracking from CaptureFuture: [#&#8203;85534](https://github.com/vercel/next.js/issues/85534) - Turbopack: chore: Remove dead RouteMatcher stuff: [#&#8203;85784](https://github.com/vercel/next.js/issues/85784) - docs: fresh up getting started 00: [#&#8203;85736](https://github.com/vercel/next.js/issues/85736) - Turbopack: chore: Remove the serde\_regex dependency, which wasn't very heavily used: [#&#8203;85578](https://github.com/vercel/next.js/issues/85578) - Turbopack: use batch add in connect children: [#&#8203;85623](https://github.com/vercel/next.js/issues/85623) - \[test] Move all files to .ts (5/6): [#&#8203;85640](https://github.com/vercel/next.js/issues/85640) - \[test] Deflake legacy-link-behavior: [#&#8203;85805](https://github.com/vercel/next.js/issues/85805) - Resolve request ID confusion: [#&#8203;85809](https://github.com/vercel/next.js/issues/85809) - Turbopack: use batch add to add initial followers: [#&#8203;85624](https://github.com/vercel/next.js/issues/85624) - Turbopack: chore: Remove dead experimental.ppr struct field: [#&#8203;85792](https://github.com/vercel/next.js/issues/85792) - Turbopack: chore: Avoid string clones in Glob::parse by using RcStr: [#&#8203;85579](https://github.com/vercel/next.js/issues/85579) - Update Rspack production test manifest: [#&#8203;85795](https://github.com/vercel/next.js/issues/85795) - docs: getting started updates 01: [#&#8203;85750](https://github.com/vercel/next.js/issues/85750) - chore: Update patricia\_tree dependency, remove manual serde impls: [#&#8203;85785](https://github.com/vercel/next.js/issues/85785) - docs: keywords in system reqs and add browserslist: [#&#8203;85838](https://github.com/vercel/next.js/issues/85838) - Honour `NEXT_TEST_PREFER_OFFLINE` in `install-native.mjs`: [#&#8203;85850](https://github.com/vercel/next.js/issues/85850) - Turbopack: chore: Update anyhow, remove old backtrace feature: [#&#8203;85844](https://github.com/vercel/next.js/issues/85844) - Turbopack: Remove some dead (or useless) code from `next-core/src/next_client_reference/visit_client_reference.rs`: [#&#8203;85843](https://github.com/vercel/next.js/issues/85843) - sort dependencies for smaller diffs: [#&#8203;82291](https://github.com/vercel/next.js/issues/82291) - Update Rspack development test manifest: [#&#8203;85846](https://github.com/vercel/next.js/issues/85846) - Turbopack: Remove `non_operation_vc_strongly_consistent` feature usage from next-api: [#&#8203;85874](https://github.com/vercel/next.js/issues/85874) - Turbopack: remove the streaming hack for improved stability: [#&#8203;85858](https://github.com/vercel/next.js/issues/85858) - test: Port clean-distdir integration test to the modern e2e test framework: [#&#8203;85828](https://github.com/vercel/next.js/issues/85828) - Update font data: [#&#8203;85920](https://github.com/vercel/next.js/issues/85920) - Update deploy manifest: [#&#8203;85924](https://github.com/vercel/next.js/issues/85924) - Turbopack: chore: Merge `turbo-tasks-macros-shared` crate into `turbo-tasks-macros`: [#&#8203;85917](https://github.com/vercel/next.js/issues/85917) - Turbopack: Fix IO concurrency for MacOS: [#&#8203;85861](https://github.com/vercel/next.js/issues/85861) - Add Appwrite Sites to supported adapters: [#&#8203;85830](https://github.com/vercel/next.js/issues/85830) - \[turbopack] Remove LocalTaskType::Native, it is dead: [#&#8203;85480](https://github.com/vercel/next.js/issues/85480) - \[test] Increase response timeout in `next.browserWithResponse()`: [#&#8203;85911](https://github.com/vercel/next.js/issues/85911) - Hoist inner `'use cache'` functions to reduce function allocations: [#&#8203;85904](https://github.com/vercel/next.js/issues/85904) - docs: eslint config update: [#&#8203;85969](https://github.com/vercel/next.js/issues/85969) - Fix Turbopack local font `font-family` declaration: [#&#8203;85913](https://github.com/vercel/next.js/issues/85913) - switch to slice in createRuntimePrefetchTransformStream: [#&#8203;85822](https://github.com/vercel/next.js/issues/85822) - Update authentication.mdx: Fix `Auth0` Link: [#&#8203;85953](https://github.com/vercel/next.js/issues/85953) - Turbopack: remove unused function: [#&#8203;85974](https://github.com/vercel/next.js/issues/85974) - docs: cacheHandlers: [#&#8203;85311](https://github.com/vercel/next.js/issues/85311) - docs: Feedback item on proxy default: [#&#8203;86004](https://github.com/vercel/next.js/issues/86004) - \[test] Add missing test fixtures for `cacheLife` & `cacheTag` in client: [#&#8203;85872](https://github.com/vercel/next.js/issues/85872) - Fix false-positive build error for `cacheLife` & `cacheTag`: [#&#8203;85875](https://github.com/vercel/next.js/issues/85875) - \[cna] For pnpm ignore postinstall from `sharp` and `unrs-resolver`: [#&#8203;83168](https://github.com/vercel/next.js/issues/83168) - Turbopack: refactor `evaluate` to take module\_graph: [#&#8203;85971](https://github.com/vercel/next.js/issues/85971) - Turbopack: remove duplicate traversal implementations: [#&#8203;85853](https://github.com/vercel/next.js/issues/85853) - Omit unused `encryptActionBoundArgs`/`decryptActionBoundArgs` imports: [#&#8203;86015](https://github.com/vercel/next.js/issues/86015) - Turbopack: cleanup db log and add verbose option: [#&#8203;85965](https://github.com/vercel/next.js/issues/85965) - \[ci]: fix retry\_deploy\_test workflow: [#&#8203;85981](https://github.com/vercel/next.js/issues/85981) - Fix typo in documentation: [#&#8203;86054](https://github.com/vercel/next.js/issues/86054) - perf: revert to use the light safe stringify for is-error: [#&#8203;86053](https://github.com/vercel/next.js/issues/86053) - Turbopack: expose used export info in tests: [#&#8203;86037](https://github.com/vercel/next.js/issues/86037) - Docs: Mention npm link with Turbopack root: [#&#8203;86075](https://github.com/vercel/next.js/issues/86075) - script: align the commits group logic with the origin script: [#&#8203;86079](https://github.com/vercel/next.js/issues/86079) - Update cookies.mdx: [#&#8203;86094](https://github.com/vercel/next.js/issues/86094) - Remove redundant example code for cacheLife docs: [#&#8203;86043](https://github.com/vercel/next.js/issues/86043) - test: improve router prefetch test reliability: [#&#8203;86098](https://github.com/vercel/next.js/issues/86098) - Add postpone handling in app-page handler: [#&#8203;86101](https://github.com/vercel/next.js/issues/86101) - Turbopack: remove global\_information struct: [#&#8203;86089](https://github.com/vercel/next.js/issues/86089) - Turbopack: add task\_id\_details feature: [#&#8203;84970](https://github.com/vercel/next.js/issues/84970) - Turbopack: Refactor output assets to allow to lazy compute output assets: [#&#8203;85753](https://github.com/vercel/next.js/issues/85753) - Un-skip tests in prefetch-runtime.test.ts: [#&#8203;86097](https://github.com/vercel/next.js/issues/86097) - Turbopack: add flags to AvailabilityInfo: [#&#8203;85771](https://github.com/vercel/next.js/issues/85771) - Turbopack: apply side effects false removal on all module types: [#&#8203;86133](https://github.com/vercel/next.js/issues/86133) - \[build] Remove `layers` experiment flag from next-runtime webpack config: [#&#8203;86126](https://github.com/vercel/next.js/issues/86126) - Turbopack: only enable nested async availability in production: [#&#8203;85728](https://github.com/vercel/next.js/issues/85728) - \[turbopack] Remove `Clone` from `Effect`: [#&#8203;86110](https://github.com/vercel/next.js/issues/86110) - Turbopack: mark more modules as side effect free: [#&#8203;86136](https://github.com/vercel/next.js/issues/86136) - \[test] Use `next-data-api-endpoint` for Middleware HTTP method tests: [#&#8203;86157](https://github.com/vercel/next.js/issues/86157) - fix broken extend implementation on DynamicStorage: [#&#8203;86204](https://github.com/vercel/next.js/issues/86204) - Turbopack: avoid creating another async chunk loader where there is already one available: [#&#8203;85817](https://github.com/vercel/next.js/issues/85817) - Fix typo on 03-layouts-and-pages.mdx: [#&#8203;86186](https://github.com/vercel/next.js/issues/86186) - Update 14-metadata-and-og-images.mdx: [#&#8203;86198](https://github.com/vercel/next.js/issues/86198) - \[turbopack] Model `||`, `&&`, and `??` as control flow operators: [#&#8203;85837](https://github.com/vercel/next.js/issues/85837) - chore: remove empty docs folder: [#&#8203;86216](https://github.com/vercel/next.js/issues/86216) - docs: cacheHandlers use object instead of class: [#&#8203;86022](https://github.com/vercel/next.js/issues/86022) - docs: follow up to getting started CC and use-cache API ref: [#&#8203;85582](https://github.com/vercel/next.js/issues/85582) - Turbopack: use batch insert to make dependencies outdated: [#&#8203;85625](https://github.com/vercel/next.js/issues/85625) - Update Rspack production test manifest: [#&#8203;86233](https://github.com/vercel/next.js/issues/86233) - \[test] Update snapshots: [#&#8203;86288](https://github.com/vercel/next.js/issues/86288) - \[test] Add failing test for `useActionState` with `'use cache'`: [#&#8203;86292](https://github.com/vercel/next.js/issues/86292) - \[test] Disable flaky prefetching.stale-times test: [#&#8203;86299](https://github.com/vercel/next.js/issues/86299) - Update Rspack production test manifest: [#&#8203;86283](https://github.com/vercel/next.js/issues/86283) - Replace tuples with better suited data structures for server references: [#&#8203;86294](https://github.com/vercel/next.js/issues/86294) - create-next-app: Add `ignoreScripts` for `unrs-resolver` on bun: [#&#8203;86324](https://github.com/vercel/next.js/issues/86324) - Turbopack: bundle-analyzer need to avoid using the local next.js build: [#&#8203;86258](https://github.com/vercel/next.js/issues/86258) - Turbopack: remove unused method: [#&#8203;86259](https://github.com/vercel/next.js/issues/86259) - Turbopack: disable input source maps for analyze: [#&#8203;86341](https://github.com/vercel/next.js/issues/86341) - Turbopack: perf: Fix unused argument filtering optimization in turbo-tasks for `self` arguments: [#&#8203;86231](https://github.com/vercel/next.js/issues/86231) - Turbopack: Remove dead `turbo_tasks::persisted_graph` module: [#&#8203;86329](https://github.com/vercel/next.js/issues/86329) - \[turbopack] Refactor the analyzer to fix a few issues and prepare to split it up: [#&#8203;86265](https://github.com/vercel/next.js/issues/86265) - next-analyze: improve network error visuals: [#&#8203;86222](https://github.com/vercel/next.js/issues/86222) - Turbopack: test if unused self arguments are filtered: [#&#8203;86353](https://github.com/vercel/next.js/issues/86353) - Upgrade React from `0972e239-20251118` to `8ac5f4eb-20251119`: [#&#8203;86351](https://github.com/vercel/next.js/issues/86351) - Update Rspack development test manifest: [#&#8203;86332](https://github.com/vercel/next.js/issues/86332) - Turbopack: refactor tuple variant into struct: [#&#8203;86374](https://github.com/vercel/next.js/issues/86374) - Migrate to VisitMut: [#&#8203;86347](https://github.com/vercel/next.js/issues/86347) - Turbopack: decode url encoding and relative paths in source maps: [#&#8203;86342](https://github.com/vercel/next.js/issues/86342) - Turbopack: remove Asset supertrait from Module trait. Modules don't have content: [#&#8203;86339](https://github.com/vercel/next.js/issues/86339) - docs: csr-bailout debugging: [#&#8203;86359](https://github.com/vercel/next.js/issues/86359) - docs: serverless deploy feedback: [#&#8203;86357](https://github.com/vercel/next.js/issues/86357) - Bump swc to 48: [#&#8203;86240](https://github.com/vercel/next.js/issues/86240) - docs: cacheLife feedback: [#&#8203;86128](https://github.com/vercel/next.js/issues/86128) - Update Next.js auth docs examples: [#&#8203;86361](https://github.com/vercel/next.js/issues/86361) - Update Rspack production test manifest: [#&#8203;86369](https://github.com/vercel/next.js/issues/86369) - Revert "Turbopack: remove Asset supertrait from Module trait. Modules don't have content": [#&#8203;86415](https://github.com/vercel/next.js/issues/86415) - Revert "\[turbopack] Model `||`, `&&`, and `??` as control flow operators ([#&#8203;85837](https://github.com/vercel/next.js/issues/85837))": [#&#8203;86432](https://github.com/vercel/next.js/issues/86432) - Turbopack: avoid embedding deployment ID into the turbopack runtime: [#&#8203;86370](https://github.com/vercel/next.js/issues/86370) - Revert "Turbopack: JsAnalyzer parse AssignExpr ([#&#8203;83962](https://github.com/vercel/next.js/issues/83962))": [#&#8203;86420](https://github.com/vercel/next.js/issues/86420) - \[test] Let pending test finish on abort: [#&#8203;86307](https://github.com/vercel/next.js/issues/86307) - Fix compilation of exported server functions: [#&#8203;86296](https://github.com/vercel/next.js/issues/86296) - docs: fix getInitialProps execution behavior during navigation: [#&#8203;86387](https://github.com/vercel/next.js/issues/86387) - Turbopack: bail instead of panic: [#&#8203;86470](https://github.com/vercel/next.js/issues/86470) - Update Rspack production test manifest: [#&#8203;86457](https://github.com/vercel/next.js/issues/86457) - Fix typed routes test expectations: [#&#8203;86487](https://github.com/vercel/next.js/issues/86487) - Add test for external middleware rewrite with changed headers: [#&#8203;49606](https://github.com/vercel/next.js/issues/49606) - Fix grammar and typos in typescript doc: [#&#8203;86513](https://github.com/vercel/next.js/issues/86513) - Skip filesystem-cache.test.ts test with Webpack: [#&#8203;86506](https://github.com/vercel/next.js/issues/86506) - Migrate required-server-files-ssr-404 to be isolated: [#&#8203;86515](https://github.com/vercel/next.js/issues/86515) - Turbopack: fixup route hashes generation: [#&#8203;86502](https://github.com/vercel/next.js/issues/86502) - Bump swc: [#&#8203;86496](https://github.com/vercel/next.js/issues/86496) - Try to improve typed-routes test flakyness: [#&#8203;86512](https://github.com/vercel/next.js/issues/86512) - Use retry in tests instead of requesting page: [#&#8203;86535](https://github.com/vercel/next.js/issues/86535) - Turbopack: Use `Debug` instead of `Display` for `ValueDebugFormat` impl on `RcStr`: [#&#8203;86522](https://github.com/vercel/next.js/issues/86522) - \[test] Add test fixture for runtime error in `'use cache'`: [#&#8203;86499](https://github.com/vercel/next.js/issues/86499) - Migrate app-dir-export test to be isolated: [#&#8203;86534](https://github.com/vercel/next.js/issues/86534) - Turbopack: write symlinks to access transitive `serverExternalPackages` - Fix no-double-tailwind-execution flake: [#&#8203;86549](https://github.com/vercel/next.js/issues/86549) - Update Rspack development test manifest: [#&#8203;86531](https://github.com/vercel/next.js/issues/86531) - Turbopack: slightly fewer turbo tasks calls during resolving: [#&#8203;86542](https://github.com/vercel/next.js/issues/86542) - Turbopack: remove OptionStringifiedSourceMap: [#&#8203;86547](https://github.com/vercel/next.js/issues/86547) - Turbopack: Simplify the return type of `FileSystemPath::try_join`: [#&#8203;86523](https://github.com/vercel/next.js/issues/86523) - Turbopack: remove into() which cells internally: [#&#8203;86548](https://github.com/vercel/next.js/issues/86548) - docs: fix cache component doc grammar: [#&#8203;86563](https://github.com/vercel/next.js/issues/86563) - fix(turbopack): Disable ES3 transforms from preset-env: [#&#8203;86532](https://github.com/vercel/next.js/issues/86532) - Don't run bundle-analyzer dev script with turborepo: [#&#8203;86586](https://github.com/vercel/next.js/issues/86586) - \[turbopack] Support traversing the graph in reverse order: [#&#8203;86427](https://github.com/vercel/next.js/issues/86427) - Update Rspack development test manifest: [#&#8203;86657](https://github.com/vercel/next.js/issues/86657) - Update Rspack production test manifest: [#&#8203;86658](https://github.com/vercel/next.js/issues/86658) - \[test] Deflake `use-cache-router-handler-only` in deploy tests: [#&#8203;86678](https://github.com/vercel/next.js/issues/86678) - Allow exporting object and array literals in `'use cache'` files again: [#&#8203;86655](https://github.com/vercel/next.js/issues/86655) - Turbopack: use tracing context for config watching: [#&#8203;86576](https://github.com/vercel/next.js/issues/86576) - Turbopack: align chunk loading error name: [#&#8203;86593](https://github.com/vercel/next.js/issues/86593) - docs: update prefix two-digit number in routing section: [#&#8203;77758](https://github.com/vercel/next.js/issues/77758) - \[bundle-analyzer] Disable revalidateOnFocus and revalidateOnReconnect: [#&#8203;86688](https://github.com/vercel/next.js/issues/86688) - Turbopack: improve eventual consistency: [#&#8203;86682](https://github.com/vercel/next.js/issues/86682) - \[test] Enable Playwright traces in deploy tests: [#&#8203;86683](https://github.com/vercel/next.js/issues/86683) - \[test] Deflake `app-dir-prevent-304-caching`: [#&#8203;86693](https://github.com/vercel/next.js/issues/86693) - Bump to swc 49: [#&#8203;86689](https://github.com/vercel/next.js/issues/86689) - Turbopack: process.env.TURBOPACK should be a string: [#&#8203;86680](https://github.com/vercel/next.js/issues/86680) - Turbopack: arrange empty space in trace viewer correctly: [#&#8203;86612](https://github.com/vercel/next.js/issues/86612) - \[turbopack] Remove the docs on the bundle size gap: [#&#8203;86707](https://github.com/vercel/next.js/issues/86707) - \[test] Improve app-basepath assertion error: [#&#8203;86725](https://github.com/vercel/next.js/issues/86725) - fix(next-custom-transforms): preserve all declarators in multi-declarator export statements: [#&#8203;86552](https://github.com/vercel/next.js/issues/86552) - Turbopack: avoid snapshotting while continuously idle, fix spans : [#&#8203;86611](https://github.com/vercel/next.js/issues/86611) - Turbopack: fix fuzz command: [#&#8203;86732](https://github.com/vercel/next.js/issues/86732) - \[test] Ensure CI uses configured Node.js version: [#&#8203;86720](https://github.com/vercel/next.js/issues/86720) - Turbopack: improve eventual consistency: [#&#8203;86724](https://github.com/vercel/next.js/issues/86724) - Update Rspack development test manifest: [#&#8203;86715](https://github.com/vercel/next.js/issues/86715) - Update Rspack production test manifest: [#&#8203;86716](https://github.com/vercel/next.js/issues/86716) - Turbopack: don't read binding\_usage in dev: [#&#8203;86722](https://github.com/vercel/next.js/issues/86722) - \[test] app-basepath less agressive request reading: [#&#8203;86740](https://github.com/vercel/next.js/issues/86740) - Stop apps/bundle-analyzer/next-env.d.ts from changing: [#&#8203;86743](https://github.com/vercel/next.js/issues/86743) - \[turbopack] Move turbo-tasks-testing to dev-dependencies: [#&#8203;86745](https://github.com/vercel/next.js/issues/86745) - Turbopack: chore: Remove re-exports from turbopack crate: [#&#8203;85791](https://github.com/vercel/next.js/issues/85791) - Turbopack: Split Dirty into Dirtyness and CleanInSession: [#&#8203;86070](https://github.com/vercel/next.js/issues/86070) - Turbopack: remove DirtyContainerCount from dirty\_container\_update: [#&#8203;86071](https://github.com/vercel/next.js/issues/86071) - Turbopack: fix double deployment id in web workers: [#&#8203;86754](https://github.com/vercel/next.js/issues/86754) - Turbopack: Split AggregatedDirtyContainer: [#&#8203;86606](https://github.com/vercel/next.js/issues/86606) - Turbopack: Split AggregatedDirtyContainerCount: [#&#8203;86072](https://github.com/vercel/next.js/issues/86072) - Turbopack: Avoid that session-dependent tasks write to DB on every build: [#&#8203;86068](https://github.com/vercel/next.js/issues/86068) - Turbopack: Use TransientCellData for non-serializable cells: [#&#8203;86069](https://github.com/vercel/next.js/issues/86069) - Fix typo in fetching data documentation: [#&#8203;86758](https://github.com/vercel/next.js/issues/86758) - Upgrade React from `fd524fe0-20251121` to `7dc903cd-20251203`: [#&#8203;86771](https://github.com/vercel/next.js/issues/86771) - Turbopack: use match consistently in macro: [#&#8203;86767](https://github.com/vercel/next.js/issues/86767) - setup release branch - Revert "feat(breaking): Hard Deprecate PPR Configuration ([#&#8203;84280](https://github.com/vercel/next.js/issues/84280))" - Update React Version - update tag - update version script - docs: cookie clear and has alignment: [#&#8203;86788](https://github.com/vercel/next.js/issues/86788) - \[test] fix missing nft file: [#&#8203;86817](https://github.com/vercel/next.js/issues/86817) - Remove unused `vitest` from dependency tree: [#&#8203;86821](https://github.com/vercel/next.js/issues/86821) - Update installed Next.js: [#&#8203;86822](https://github.com/vercel/next.js/issues/86822) - Remove Vercel mention from Next.js docs: [#&#8203;86801](https://github.com/vercel/next.js/issues/86801) - Remove unused `vite` from dependency tree: [#&#8203;86824](https://github.com/vercel/next.js/issues/86824) - Update Rspack development test manifest: [#&#8203;86802](https://github.com/vercel/next.js/issues/86802) - Turbopack: bincode: Add crate with bincode serialization helpers: [#&#8203;85878](https://github.com/vercel/next.js/issues/85878) - Turbopack: perf: Avoid clones in RopeReader: [#&#8203;86708](https://github.com/vercel/next.js/issues/86708) - Add Firebase App Hosting to the deployment guide: [#&#8203;86832](https://github.com/vercel/next.js/issues/86832) - Turbopack: bincode: Add custom bincode reader/writer implementations: [#&#8203;86632](https://github.com/vercel/next.js/issues/86632) - Turbopack: bincode: Add traits for types that require `TurboBincodeEncoder` or `TurboBincodeDecoder`: [#&#8203;86633](https://github.com/vercel/next.js/issues/86633) - Turbopack: bincode: Implement bincode Encode/Decode traits on all turbo task values: [#&#8203;85580](https://github.com/vercel/next.js/issues/85580) - Turbopack: bincode: Add bincode encode/decode wrappers for `serde_json::Value` when stored in a cell: [#&#8203;86749](https://github.com/vercel/next.js/issues/86749) - Turbopack: bincode: Use bincode to store the contents of value cells: [#&#8203;86338](https://github.com/vercel/next.js/issues/86338) - \[test] Fix external rewrite target URL origin: [#&#8203;86863](https://github.com/vercel/next.js/issues/86863) - Turbopack: correctly overwrite existing symlinks: [#&#8203;86808](https://github.com/vercel/next.js/issues/86808) - Turbopack: fix race condition when invalidating: [#&#8203;86859](https://github.com/vercel/next.js/issues/86859) - Turbopack: handle non-serializable cell content for cell update operation: [#&#8203;86861](https://github.com/vercel/next.js/issues/86861) - Turbopack: bincode: Migrate TaskInput serialization to bincode: [#&#8203;86631](https://github.com/vercel/next.js/issues/86631) - Add gitignore note for next-env.d.ts: [#&#8203;86809](https://github.com/vercel/next.js/issues/86809) - docs: fix broken examples link: [#&#8203;86916](https://github.com/vercel/next.js/issues/86916) - chore: update rspack binding to 1.6.7: [#&#8203;87058](https://github.com/vercel/next.js/issues/87058) - Update Rspack production test manifest: [#&#8203;87051](https://github.com/vercel/next.js/issues/87051) - docs: dynamic routes w/ gsP: [#&#8203;86402](https://github.com/vercel/next.js/issues/86402) - Update self-hosting.mdx: [#&#8203;87109](https://github.com/vercel/next.js/issues/87109) - Turbopack: Add a custom serde\_self\_describing Serializer/Deserializer: [#&#8203;86885](https://github.com/vercel/next.js/issues/86885) - Turbopack: bincode: Remove automatic serde derives from `#[turbo_tasks::value]` macro: [#&#8203;86634](https://github.com/vercel/next.js/issues/86634) - Turbopack: Add `turbo-frozenmap` crate with `FrozenMap` and `FrozenSet` implementations: [#&#8203;87042](https://github.com/vercel/next.js/issues/87042) - \[turbopack] Rename is\_marked\_as\_side\_effect\_free to side\_effects and return ModuleSideEffects enum: [#&#8203;87102](https://github.com/vercel/next.js/issues/87102) - Turbopack: Switch RequestKey's `conditions` field from BTreeMap to FrozenMap: [#&#8203;87099](https://github.com/vercel/next.js/issues/87099) - Turbopack: Remove remaining dead implementations of serde traits: [#&#8203;86910](https://github.com/vercel/next.js/issues/86910) - \[turbopack\[ Use a frozenset in ImportUsage: [#&#8203;87118](https://github.com/vercel/next.js/issues/87118) - \[turbopack] Rename graph traversal algorithms: [#&#8203;87119](https://github.com/vercel/next.js/issues/87119) - Turbopack: Inline uses of the SliceMap type alias: [#&#8203;87122](https://github.com/vercel/next.js/issues/87122) - \[ci] Bump Lerna to 5.x: [#&#8203;87180](https://github.com/vercel/next.js/issues/87180) - \[ci] Downgrade Lerna to 4.0.0: [#&#8203;87187](https://github.com/vercel/next.js/issues/87187) - \[ci] Bump Lerna to latest: [#&#8203;87188](https://github.com/vercel/next.js/issues/87188) - \[ci] Ensure build-and-deploy runs on pushes: [#&#8203;87207](https://github.com/vercel/next.js/issues/87207) - \[ci] Fix build-and-deploy - \[ci] Stop running build\_and\_deploy on tag pushes: [#&#8203;87176](https://github.com/vercel/next.js/issues/87176) - \[ci] Ensure build-and-deploy run on path-like branches - \[ci] Cancel in-progress pull\_request\_stats with native concurrency features: [#&#8203;87190](https://github.com/vercel/next.js/issues/87190) - \[ci] Cancel in-progress build\_and\_deploy for PRs: [#&#8203;87191](https://github.com/vercel/next.js/issues/87191) - \[ci] Ensure runners use configured Node.js version: [#&#8203;87183](https://github.com/vercel/next.js/issues/87183) - chore: update next-rspack rust toolchain: [#&#8203;87220](https://github.com/vercel/next.js/issues/87220) - bundle-analyzer: Show compressed sizes: [#&#8203;87093](https://github.com/vercel/next.js/issues/87093) - chore: update [@&#8203;next/rspack-binding](https://github.com/next/rspack-binding) version: [#&#8203;87223](https://github.com/vercel/next.js/issues/87223) - \[ci] Stop running explicit build when creating release: [#&#8203;87212](https://github.com/vercel/next.js/issues/87212) - \[ci] Stop using restore-keys for package manager stores: [#&#8203;87209](https://github.com/vercel/next.js/issues/87209) - chore(turbo-tasks-fs): remove duplicated value\_to\_string of FileSystemPath: [#&#8203;87227](https://github.com/vercel/next.js/issues/87227) - \[ci] Fix releaseStats in build-and-deploy: [#&#8203;87235](https://github.com/vercel/next.js/issues/87235) - Update turbopack team members: [#&#8203;87231](https://github.com/vercel/next.js/issues/87231) - \[ci] Only install Playwright dependencies for used browser: [#&#8203;87002](https://github.com/vercel/next.js/issues/87002) - \[turbopack] Break ties using a counter instead of node index: [#&#8203;87252](https://github.com/vercel/next.js/issues/87252) - bundle-analyzer: use <Select> and multiselect for top bar: [#&#8203;87254](https://github.com/vercel/next.js/issues/87254) - \[test] Don't use `request.allHeaders()` in sync `page.on()` callbacks: [#&#8203;86751](https://github.com/vercel/next.js/issues/86751) - test: fix actions deployment tests: [#&#8203;87279](https://github.com/vercel/next.js/issues/87279) - bundle analyzer: prevent flashes and stuck empty canvases on resize: [#&#8203;87289](https://github.com/vercel/next.js/issues/87289) - Cross link to the demo from the bundle analyzer: [#&#8203;87290](https://github.com/vercel/next.js/issues/87290) - bundle analyzer: remove geist font in favor of system ui fonts: [#&#8203;87292](https://github.com/vercel/next.js/issues/87292) ##### Credits Huge thanks to [@&#8203;kdy1](https://github.com/kdy1), [@&#8203;eps1lon](https://github.com/eps1lon), [@&#8203;SyMind](https://github.com/SyMind), [@&#8203;bgw](https://github.com/bgw), [@&#8203;swarnava](https://github.com/swarnava), [@&#8203;devjiwonchoi](https://github.com/devjiwonchoi), [@&#8203;ztanner](https://github.com/ztanner), [@&#8203;ijjk](https://github.com/ijjk), [@&#8203;huozhi](https://github.com/huozhi), [@&#8203;icyJoseph](https://github.com/icyJoseph), [@&#8203;acdlite](https://github.com/acdlite), [@&#8203;unstubbable](https://github.com/unstubbable), [@&#8203;gnoff](https://github.com/gnoff), [@&#8203;gusfune](https://github.com/gusfune), [@&#8203;vercel-release-bot](https://github.com/vercel-release-bot), [@&#8203;lukesandberg](https://github.com/lukesandberg), [@&#8203;sokra](https://github.com/sokra), [@&#8203;hayes](https://github.com/hayes), [@&#8203;shuding](https://github.com/shuding), [@&#8203;wyattjoh](https://github.com/wyattjoh), [@&#8203;marjan-ahmed](https://github.com/marjan-ahmed), [@&#8203;timneutkens](https://github.com/timneutkens), [@&#8203;ajstrongdev](https://github.com/ajstrongdev), [@&#8203;zigang93](https://github.com/zigang93), [@&#8203;mischnic](https://github.com/mischnic), [@&#8203;Nayeem-XTREME](https://github.com/Nayeem-XTREME), [@&#8203;hamirmahal](https://github.com/hamirmahal), [@&#8203;eli0shin](https://github.com/eli0shin), [@&#8203;tessamero](https://github.com/tessamero), [@&#8203;gaojude](https://github.com/gaojude), [@&#8203;jamesdaniels](https://github.com/jamesdaniels), [@&#8203;georgesfarah](https://github.com/georgesfarah), [@&#8203;timeyoutakeit](https://github.com/timeyoutakeit), [@&#8203;sequencerr](https://github.com/sequencerr), [@&#8203;Strernd](https://github.com/Strernd), [@&#8203;lucasadrianof](https://github.com/lucasadrianof), [@&#8203;wbinnssmith](https://github.com/wbinnssmith), [@&#8203;hamidreza-nateghi](https://github.com/hamidreza-nateghi), [@&#8203;jokokoloko](https://github.com/jokokoloko), [@&#8203;dijonmusters](https://github.com/dijonmusters), [@&#8203;H01001000](https://github.com/H01001000), [@&#8203;xusd320](https://github.com/xusd320), [@&#8203;lubieowoce](https://github.com/lubieowoce), [@&#8203;KaziMahbuburRahman](https://github.com/KaziMahbuburRahman), [@&#8203;zhiyanzhaijie](https://github.com/zhiyanzhaijie), [@&#8203;feedthejim](https://github.com/feedthejim), [@&#8203;that-one-arab](https://github.com/that-one-arab), [@&#8203;JamBalaya56562](https://github.com/JamBalaya56562), [@&#8203;shrink](https://github.com/shrink), [@&#8203;florianliebig](https://github.com/florianliebig), [@&#8203;allenzhou101](https://github.com/allenzhou101), [@&#8203;benmerckx](https://github.com/benmerckx), [@&#8203;ymc9](https://github.com/ymc9), [@&#8203;Marukome0743](https://github.com/Marukome0743), [@&#8203;pyrytakala](https://github.com/pyrytakala), [@&#8203;danpeleg4](https://github.com/danpeleg4), [@&#8203;gaearon](https://github.com/gaearon), [@&#8203;styfle](https://github.com/styfle), [@&#8203;jhuleatt](https://github.com/jhuleatt), [@&#8203;muhammadsyaddad](https://github.com/muhammadsyaddad), [@&#8203;roelvan](https://github.com/roelvan), and [@&#8203;SukkaW](https://github.com/SukkaW) for helping! ### [`v16.0.11`](https://github.com/vercel/next.js/releases/tag/v16.0.11) [Compare Source](https://github.com/vercel/next.js/compare/v16.0.10...v16.0.11) Please see this [changelog](https://vercel.com/changelog/summary-of-cve-2026-23864) for more information about this security patch. ### [`v16.0.10`](https://github.com/vercel/next.js/releases/tag/v16.0.10) [Compare Source](https://github.com/vercel/next.js/compare/v16.0.9...v16.0.10) Please see the [Next.js Security Update](https://nextjs.org/blog/security-update-2025-12-11) for information about this security patch. ### [`v16.0.9`](https://github.com/vercel/next.js/compare/v16.0.8...v16.0.9) [Compare Source](https://github.com/vercel/next.js/compare/v16.0.8...v16.0.9) ### [`v16.0.8`](https://github.com/vercel/next.js/releases/tag/v16.0.8) [Compare Source](https://github.com/vercel/next.js/compare/v16.0.7...v16.0.8) > \[!NOTE] > This release is backporting bug fixes. It does **not** include all pending features/changes on canary. ##### Core Changes - Update react version in cna templates ([#&#8203;86950](https://github.com/vercel/next.js/issues/86950)) ##### Credits Huge thanks to [@&#8203;huozhi](https://github.com/huozhi) for helping! ### [`v16.0.7`](https://github.com/vercel/next.js/releases/tag/v16.0.7) [Compare Source](https://github.com/vercel/next.js/compare/v16.0.6...v16.0.7) Please see [CVE-2025-66478](https://nextjs.org/blog/CVE-2025-66478) for additional details about this release. ### [`v16.0.6`](https://github.com/vercel/next.js/releases/tag/v16.0.6) [Compare Source](https://github.com/vercel/next.js/compare/v16.0.5...v16.0.6) > \[!NOTE] > This release is backporting bug fixes. It does **not** include all pending features/changes on canary. ##### Core Changes - bump the browserslist version to silence a warning in CI ([#&#8203;86625](https://github.com/vercel/next.js/issues/86625)) ##### Credits Huge thanks to [@&#8203;lukesandberg](https://github.com/lukesandberg) for helping! ### [`v16.0.5`](https://github.com/vercel/next.js/releases/tag/v16.0.5) [Compare Source](https://github.com/vercel/next.js/compare/v16.0.4...v16.0.5) > \[!NOTE] > This release is backporting bug fixes. It does **not** include all pending features/changes on canary. ##### Core Changes - fix(nodejs-middleware): await for body cloning to be properly finalized ([#&#8203;85418](https://github.com/vercel/next.js/issues/85418)) ##### Credits Huge thanks to [@&#8203;lucasadrianof](https://github.com/lucasadrianof) for helping! ### [`v16.0.4`](https://github.com/vercel/next.js/releases/tag/v16.0.4) [Compare Source](https://github.com/vercel/next.js/compare/v16.0.3...v16.0.4) > \[!NOTE] > This release is backporting bug fixes. It does **not** include all pending features/changes on canary. ##### Core Changes - fix: Rename proxy.js to middleware.js in NFT file ([#&#8203;86214](https://github.com/vercel/next.js/issues/86214)) - fix: prevent fetch abort errors propagating to user error boundaries ([#&#8203;86277](https://github.com/vercel/next.js/issues/86277)) - Turbopack: fix passing project options from napi ([#&#8203;86256](https://github.com/vercel/next.js/issues/86256)) ##### Credits Huge thanks to [@&#8203;devjiwonchoi](https://github.com/devjiwonchoi), [@&#8203;sokra](https://github.com/sokra) and [@&#8203;ztanner](https://github.com/ztanner) for helping! ### [`v16.0.3`](https://github.com/vercel/next.js/releases/tag/v16.0.3) [Compare Source](https://github.com/vercel/next.js/compare/v16.0.2...v16.0.3) ##### Core Changes - fix: Rspack throw error when using ForceCompleteRuntimePlugin: [#&#8203;85221](https://github.com/vercel/next.js/issues/85221) - fix: build CLI output not displaying Proxy (Middleware) when nodejs runtime: [#&#8203;85403](https://github.com/vercel/next.js/issues/85403) - fix: staleTimes.static should consistently enforce a 30s minimum: [#&#8203;85479](https://github.com/vercel/next.js/issues/85479) - \[turbopack] fix build of empty entries of pages: [#&#8203;84873](https://github.com/vercel/next.js/issues/84873) - Cache the head separately from the route tree: [#&#8203;84724](https://github.com/vercel/next.js/issues/84724) - Allow inspecting dev server on default port with `next dev --inspect`: [#&#8203;85037](https://github.com/vercel/next.js/issues/85037) - Avoid proxying React modules through workUnitStore: [#&#8203;85486](https://github.com/vercel/next.js/issues/85486) - fix: redirect should always return updated router state: [#&#8203;85533](https://github.com/vercel/next.js/issues/85533) - Upgrade React from `b4455a6e-20251027` to `4f931700-20251029`: [#&#8203;85518](https://github.com/vercel/next.js/issues/85518) - \[turbopack] Move generation of `cacheLife` types out of the webpack plugin and into the dev bundler directly: [#&#8203;85539](https://github.com/vercel/next.js/issues/85539) - Ensure user-space stack frame for `'use cache'` in page/layout component: [#&#8203;85519](https://github.com/vercel/next.js/issues/85519) - Update parallel routes in build-complete: [#&#8203;85546](https://github.com/vercel/next.js/issues/85546) - fully remove clientSegmentCache flag: [#&#8203;85541](https://github.com/vercel/next.js/issues/85541) - \[turbopack] Support relative paths in turbopack source maps.: [#&#8203;85146](https://github.com/vercel/next.js/issues/85146) - Release unnecessary memory on hydration finish: [#&#8203;84967](https://github.com/vercel/next.js/issues/84967) - Preserve interception markers in parameter types: [#&#8203;85526](https://github.com/vercel/next.js/issues/85526) - move segment cache entries to top level segment-cache dir: [#&#8203;85542](https://github.com/vercel/next.js/issues/85542) - Upgrade React from `4f931700-20251029` to `561ee24d-20251101`: [#&#8203;85670](https://github.com/vercel/next.js/issues/85670) - \[devtools] Remove title from preferences: [#&#8203;85698](https://github.com/vercel/next.js/issues/85698) - Update font data: [#&#8203;85708](https://github.com/vercel/next.js/issues/85708) - Don't invalidate hot reloader excessively during dev server boot: [#&#8203;85732](https://github.com/vercel/next.js/issues/85732) - \[codemod] fix: next-lint-to-eslint-cli did not handle `'next'` plugin: [#&#8203;85749](https://github.com/vercel/next.js/issues/85749) - Upgrade React from `561ee24d-20251101` to `67f7d47a-20251103`: [#&#8203;85762](https://github.com/vercel/next.js/issues/85762) - Tracing: Fix memory leak in span map: [#&#8203;85529](https://github.com/vercel/next.js/issues/85529) - Fix documentation typo in refresh function: [#&#8203;85696](https://github.com/vercel/next.js/issues/85696) - fix: eslint-config-next types was exporting to dist/src: [#&#8203;85768](https://github.com/vercel/next.js/issues/85768) - Upgrade React from `67f7d47a-20251103` to `f646e8ff-20251104`: [#&#8203;85772](https://github.com/vercel/next.js/issues/85772) - remove unused RSC payload property: [#&#8203;85746](https://github.com/vercel/next.js/issues/85746) - \[runtime prefetching]: fix runtime prefetching when deployed: [#&#8203;85595](https://github.com/vercel/next.js/issues/85595) - Turbopack: next build --analyze: [#&#8203;85197](https://github.com/vercel/next.js/issues/85197) - Build: Log amount of workers during static generation: [#&#8203;85706](https://github.com/vercel/next.js/issues/85706) - Upgrade React from `f646e8ff-20251104` to `dd048c3b-20251105`: [#&#8203;85819](https://github.com/vercel/next.js/issues/85819) - Sync devFallbackParams when generateStaticParams change: [#&#8203;85741](https://github.com/vercel/next.js/issues/85741) - chore: upgrade rspack 1.6.0: [#&#8203;84210](https://github.com/vercel/next.js/issues/84210) - \[mcp] get\_routes mcp tool: [#&#8203;85773](https://github.com/vercel/next.js/issues/85773) - Split each path param into a separate cache key : [#&#8203;85758](https://github.com/vercel/next.js/issues/85758) - \[turbopack] change server source maps in production to use relative paths: [#&#8203;85576](https://github.com/vercel/next.js/issues/85576) - fix: skip collecting metadata for app-error in webpack: [#&#8203;85892](https://github.com/vercel/next.js/issues/85892) - fix: support root span attributes with a custom server: [#&#8203;85521](https://github.com/vercel/next.js/issues/85521) - fix isDynamicRSC condition when deployed: [#&#8203;85919](https://github.com/vercel/next.js/issues/85919) - \[turbopack] Make it possible to synchronously access native bindings: [#&#8203;85787](https://github.com/vercel/next.js/issues/85787) - Upgrade React from `dd048c3b-20251105` to `fa50caf5-20251107`: [#&#8203;85906](https://github.com/vercel/next.js/issues/85906) - Fix telemetry event loss on build failures and server shutdown: [#&#8203;85867](https://github.com/vercel/next.js/issues/85867) - Remove one stack frame from `'use cache'` call stacks: [#&#8203;85966](https://github.com/vercel/next.js/issues/85966) - Upgrade React from `fa50caf5-20251107` to `52684925-20251110`: [#&#8203;85980](https://github.com/vercel/next.js/issues/85980) - Deployment adapter: fix metadata for "/" route: [#&#8203;85820](https://github.com/vercel/next.js/issues/85820) - Enable React's default Transition indicator behind a flag: [#&#8203;86000](https://github.com/vercel/next.js/issues/86000) - update routes-manifest to include whether app has pages routes: [#&#8203;86051](https://github.com/vercel/next.js/issues/86051) ##### Misc Changes - chore: Add `opt-level = s` for not frequently used crates: [#&#8203;85426](https://github.com/vercel/next.js/issues/85426) - \[test] Deflake cache-components-allow-otel-spans: [#&#8203;85466](https://github.com/vercel/next.js/issues/85466) - \[test] Move remaining `experimental.cacheLife`: [#&#8203;85467](https://github.com/vercel/next.js/issues/85467) - Turbopack: chore: Remove mopa dependency in turbo-tasks (2nd attempt): [#&#8203;85286](https://github.com/vercel/next.js/issues/85286) - Update Proxy docs: [#&#8203;85439](https://github.com/vercel/next.js/issues/85439) - \[CNA] Do not prompt for Turbopack: [#&#8203;85404](https://github.com/vercel/next.js/issues/85404) - Clean up new release process: [#&#8203;85458](https://github.com/vercel/next.js/issues/85458) - Update E2E tests workflow: [#&#8203;85485](https://github.com/vercel/next.js/issues/85485) - Update E2E deploy tests manifest: [#&#8203;85483](https://github.com/vercel/next.js/issues/85483) - docs: example are incorrect async function exports only: [#&#8203;85453](https://github.com/vercel/next.js/issues/85453) - \[test] Handle CLI assertions where no "Compiling..." log is present: [#&#8203;85499](https://github.com/vercel/next.js/issues/85499) - \[test] Speed up refresh test: [#&#8203;85505](https://github.com/vercel/next.js/issues/85505) - \[test] Add test cases for dynamic caches without suspense boundaries: [#&#8203;85500](https://github.com/vercel/next.js/issues/85500) - docs: Routes are wrapped w/ Activity in Cache Components: [#&#8203;85309](https://github.com/vercel/next.js/issues/85309) - docs: GET handler behavior under cache components: [#&#8203;85389](https://github.com/vercel/next.js/issues/85389) - \[test] Avoid needless start/stop from using `createSandbox`: [#&#8203;85507](https://github.com/vercel/next.js/issues/85507) - \[test] Use `--debug-build-paths` instead of `NEXT_PRIVATE_APP_PATHS`: [#&#8203;85504](https://github.com/vercel/next.js/issues/85504) - docs: revalidateTag requires second argument: [#&#8203;85284](https://github.com/vercel/next.js/issues/85284) - Refactor GTM implementation to support google tag gateway: [#&#8203;81011](https://github.com/vercel/next.js/issues/81011) - Update Rspack production test manifest: [#&#8203;85494](https://github.com/vercel/next.js/issues/85494) - Update Rspack development test manifest: [#&#8203;85495](https://github.com/vercel/next.js/issues/85495) - \[docs] Fix a typo: [#&#8203;85492](https://github.com/vercel/next.js/issues/85492) - \[test] Regenerate tsconfig.json files: [#&#8203;85515](https://github.com/vercel/next.js/issues/85515) - \[Turbopack] clean up `completion.rs` a bit: [#&#8203;84863](https://github.com/vercel/next.js/issues/84863) - \[test] Remove `maxRetries` and `hardError` parameters: [#&#8203;85536](https://github.com/vercel/next.js/issues/85536) - Turbopack: remove the .into() alias to .cell(): [#&#8203;85516](https://github.com/vercel/next.js/issues/85516) - \[test] Consolidate identical snapshots across different bundlers: [#&#8203;85532](https://github.com/vercel/next.js/issues/85532) - \[turbopack] Change where `cell`s are created in `resolve_raw` to make cell allocation order deterministic.: [#&#8203;85525](https://github.com/vercel/next.js/issues/85525) - Turbopack: Make tasks deterministic: [#&#8203;85524](https://github.com/vercel/next.js/issues/85524) - \[test] Separate act and assertions: [#&#8203;85508](https://github.com/vercel/next.js/issues/85508) - \[test] `assert*` -> `waitFor*` when the util is not instant: [#&#8203;85450](https://github.com/vercel/next.js/issues/85450) - Turbopack: move whole\_app\_module\_graphs to top level: [#&#8203;84897](https://github.com/vercel/next.js/issues/84897) - \[test] Bail on sending requests to Next.js instance if it's no longer available: [#&#8203;85557](https://github.com/vercel/next.js/issues/85557) - \[test] Deflake tests comparing two random numbers: [#&#8203;85571](https://github.com/vercel/next.js/issues/85571) - \[test] Disallow custom `RegExp`-like implementations in `check`: [#&#8203;85537](https://github.com/vercel/next.js/issues/85537) - \[test] Deflake prerender suite: [#&#8203;85563](https://github.com/vercel/next.js/issues/85563) - Turbopack: chore: Remove some dead MagicAny serialization code from turbo\_tasks::value: [#&#8203;85577](https://github.com/vercel/next.js/issues/85577) - \[test]: fix broken scroll restoration test: [#&#8203;85599](https://github.com/vercel/next.js/issues/85599) - \[test] Deflake nested `after()` tests: [#&#8203;85566](https://github.com/vercel/next.js/issues/85566) - \[test] Stop installing unused dependencies: [#&#8203;85569](https://github.com/vercel/next.js/issues/85569) - \[test] Consider `test/integration/` in flake detection tests: [#&#8203;85590](https://github.com/vercel/next.js/issues/85590) - Turbopack: more checks on verify\_serialization: [#&#8203;84952](https://github.com/vercel/next.js/issues/84952) - Turbopack: add track\_caller to improve panics: [#&#8203;85565](https://github.com/vercel/next.js/issues/85565) - Turbopack: add verify\_determinism feature to check if tasks are deterministic: [#&#8203;85559](https://github.com/vercel/next.js/issues/85559) - docs: cache life rework: [#&#8203;85224](https://github.com/vercel/next.js/issues/85224) - Turbopack: fix hanging dev server and builds with fs cache: [#&#8203;85606](https://github.com/vercel/next.js/issues/85606) - Turbopack: Fix compound assignment expression evaluation ([#&#8203;85478](https://github.com/vercel/next.js/issues/85478)): [#&#8203;85593](https://github.com/vercel/next.js/issues/85593) - Turbopack: fix Scope holding Arc too long: [#&#8203;85611](https://github.com/vercel/next.js/issues/85611) - \[ci] Improve change detection logic in `run-for-change` script: [#&#8203;85619](https://github.com/vercel/next.js/issues/85619) - \[test] Ignore in deploy tests if a child process isn't available: [#&#8203;85636](https://github.com/vercel/next.js/issues/85636) - Turbopack: add size\_hint and len for Chunk iterator: [#&#8203;85622](https://github.com/vercel/next.js/issues/85622) - \[test]: move resume-data-cache to e2e test: [#&#8203;85647](https://github.com/vercel/next.js/issues/85647) - Update Rspack development test manifest: [#&#8203;85662](https://github.com/vercel/next.js/issues/85662) - Update Rspack production test manifest: [#&#8203;85661](https://github.com/vercel/next.js/issues/85661) - Update Rspack production test manifest: [#&#8203;85688](https://github.com/vercel/next.js/issues/85688) - Update Rspack development test manifest: [#&#8203;85689](https://github.com/vercel/next.js/issues/85689) - \[test] Deflake root-optional-revalidate: [#&#8203;85584](https://github.com/vercel/next.js/issues/85584) - docs: fix generateImageMetadata example to use normal params object: [#&#8203;85658](https://github.com/vercel/next.js/issues/85658) - Turbopack: Upgrade image crate: [#&#8203;85084](https://github.com/vercel/next.js/issues/85084) - docs: update multi sitemap argumenmt type: [#&#8203;85701](https://github.com/vercel/next.js/issues/85701) - \[test] Move all files to .ts (6/6): [#&#8203;85641](https://github.com/vercel/next.js/issues/85641) - Turbopack: add a batch add method to the storage: [#&#8203;84270](https://github.com/vercel/next.js/issues/84270) - docs: recommend reverse-proxy when self-hosting: [#&#8203;85650](https://github.com/vercel/next.js/issues/85650) - \[test] Deflake prefetching.stale-times: [#&#8203;85733](https://github.com/vercel/next.js/issues/85733) - \[test] Deflake custom cache handler test: [#&#8203;85610](https://github.com/vercel/next.js/issues/85610) - \[test] Allow CLI integration test to be retryable: [#&#8203;85586](https://github.com/vercel/next.js/issues/85586) - docs: update docs to mention ESLint as default: [#&#8203;85740](https://github.com/vercel/next.js/issues/85740) - docs(next.config): this docs should remove ".mts" is not supported.: [#&#8203;85716](https://github.com/vercel/next.js/issues/85716) - Turbopack: cleanup StyleSheetLike: [#&#8203;85718](https://github.com/vercel/next.js/issues/85718) - Turbopack: disable tree shaking for tracing: [#&#8203;85722](https://github.com/vercel/next.js/issues/85722) - \[test] Move all files to .ts (3/6): [#&#8203;85638](https://github.com/vercel/next.js/issues/85638) - \[test] Move all files to .ts (2/6): [#&#8203;85637](https://github.com/vercel/next.js/issues/85637) - \[test] Move all files to .ts (1/6): [#&#8203;85634](https://github.com/vercel/next.js/issues/85634) - docs: generateSitemap passes id as promise: [#&#8203;85767](https://github.com/vercel/next.js/issues/85767) - \[test] Move all files to .ts (4/6): [#&#8203;85639](https://github.com/vercel/next.js/issues/85639) - docs: disclosure on path-to-regexp: [#&#8203;85629](https://github.com/vercel/next.js/issues/85629) - chore: update rspack binding to 1.6.0: [#&#8203;85717](https://github.com/vercel/next.js/issues/85717) - Turbopack: trace worker\_threads worker entry: [#&#8203;85734](https://github.com/vercel/next.js/issues/85734) - Update Rspack development test manifest: [#&#8203;85761](https://github.com/vercel/next.js/issues/85761) - Turbopack: chore: Remove `extern crate` and `macro_use` syntax: [#&#8203;85778](https://github.com/vercel/next.js/issues/85778) - \[turbopack] Drop duration and allocation tracking from CaptureFuture: [#&#8203;85534](https://github.com/vercel/next.js/issues/85534) - Turbopack: chore: Remove dead RouteMatcher stuff: [#&#8203;85784](https://github.com/vercel/next.js/issues/85784) - docs: fresh up getting started 00: [#&#8203;85736](https://github.com/vercel/next.js/issues/85736) - Turbopack: chore: Remove the serde\_regex dependency, which wasn't very heavily used: [#&#8203;85578](https://github.com/vercel/next.js/issues/85578) - Turbopack: use batch add in connect children: [#&#8203;85623](https://github.com/vercel/next.js/issues/85623) - \[test] Move all files to .ts (5/6): [#&#8203;85640](https://github.com/vercel/next.js/issues/85640) - \[test] Deflake legacy-link-behavior: [#&#8203;85805](https://github.com/vercel/next.js/issues/85805) - Resolve request ID confusion: [#&#8203;85809](https://github.com/vercel/next.js/issues/85809) - Turbopack: use batch add to add initial followers: [#&#8203;85624](https://github.com/vercel/next.js/issues/85624) - Turbopack: chore: Remove dead experimental.ppr struct field: [#&#8203;85792](https://github.com/vercel/next.js/issues/85792) - Turbopack: chore: Avoid string clones in Glob::parse by using RcStr: [#&#8203;85579](https://github.com/vercel/next.js/issues/85579) - Update Rspack production test manifest: [#&#8203;85795](https://github.com/vercel/next.js/issues/85795) - docs: getting started updates 01: [#&#8203;85750](https://github.com/vercel/next.js/issues/85750) - chore: Update patricia\_tree dependency, remove manual serde impls: [#&#8203;85785](https://github.com/vercel/next.js/issues/85785) - docs: keywords in system reqs and add browserslist: [#&#8203;85838](https://github.com/vercel/next.js/issues/85838) - Honour `NEXT_TEST_PREFER_OFFLINE` in `install-native.mjs`: [#&#8203;85850](https://github.com/vercel/next.js/issues/85850) - Turbopack: chore: Update anyhow, remove old backtrace feature: [#&#8203;85844](https://github.com/vercel/next.js/issues/85844) - Turbopack: Remove some dead (or useless) code from `next-core/src/next_client_reference/visit_client_reference.rs`: [#&#8203;85843](https://github.com/vercel/next.js/issues/85843) - sort dependencies for smaller diffs: [#&#8203;82291](https://github.com/vercel/next.js/issues/82291) - Update Rspack development test manifest: [#&#8203;85846](https://github.com/vercel/next.js/issues/85846) - Turbopack: Remove `non_operation_vc_strongly_consistent` feature usage from next-api: [#&#8203;85874](https://github.com/vercel/next.js/issues/85874) - Turbopack: remove the streaming hack for improved stability: [#&#8203;85858](https://github.com/vercel/next.js/issues/85858) - test: Port clean-distdir integration test to the modern e2e test framework: [#&#8203;85828](https://github.com/vercel/next.js/issues/85828) - Update font data: [#&#8203;85920](https://github.com/vercel/next.js/issues/85920) - Update deploy manifest: [#&#8203;85924](https://github.com/vercel/next.js/issues/85924) - Turbopack: chore: Merge `turbo-tasks-macros-shared` crate into `turbo-tasks-macros`: [#&#8203;85917](https://github.com/vercel/next.js/issues/85917) - Turbopack: Fix IO concurrency for MacOS: [#&#8203;85861](https://github.com/vercel/next.js/issues/85861) - Add Appwrite Sites to supported adapters: [#&#8203;85830](https://github.com/vercel/next.js/issues/85830) - \[turbopack] Remove LocalTaskType::Native, it is dead: [#&#8203;85480](https://github.com/vercel/next.js/issues/85480) - \[test] Increase response timeout in `next.browserWithResponse()`: [#&#8203;85911](https://github.com/vercel/next.js/issues/85911) - Hoist inner `'use cache'` functions to reduce function allocations: [#&#8203;85904](https://github.com/vercel/next.js/issues/85904) - docs: eslint config update: [#&#8203;85969](https://github.com/vercel/next.js/issues/85969) - Fix Turbopack local font `font-family` declaration: [#&#8203;85913](https://github.com/vercel/next.js/issues/85913) - switch to slice in createRuntimePrefetchTransformStream: [#&#8203;85822](https://github.com/vercel/next.js/issues/85822) - Update authentication.mdx: Fix `Auth0` Link: [#&#8203;85953](https://github.com/vercel/next.js/issues/85953) - Turbopack: remove unused function: [#&#8203;85974](https://github.com/vercel/next.js/issues/85974) - docs: cacheHandlers: [#&#8203;85311](https://github.com/vercel/next.js/issues/85311) - docs: Feedback item on proxy default: [#&#8203;86004](https://github.com/vercel/next.js/issues/86004) - \[test] Add missing test fixtures for `cacheLife` & `cacheTag` in client: [#&#8203;85872](https://github.com/vercel/next.js/issues/85872) - Fix false-positive build error for `cacheLife` & `cacheTag`: [#&#8203;85875](https://github.com/vercel/next.js/issues/85875) - \[cna] For pnpm ignore postinstall from `sharp` and `unrs-resolver`: [#&#8203;83168](https://github.com/vercel/next.js/issues/83168) - Turbopack: refactor `evaluate` to take module\_graph: [#&#8203;85971](https://github.com/vercel/next.js/issues/85971) - Turbopack: remove duplicate traversal implementations: [#&#8203;85853](https://github.com/vercel/next.js/issues/85853) - Omit unused `encryptActionBoundArgs`/`decryptActionBoundArgs` imports: [#&#8203;86015](https://github.com/vercel/next.js/issues/86015) - Turbopack: cleanup db log and add verbose option: [#&#8203;85965](https://github.com/vercel/next.js/issues/85965) - \[ci]: fix retry\_deploy\_test workflow: [#&#8203;85981](https://github.com/vercel/next.js/issues/85981) - Fix typo in documentation: [#&#8203;86054](https://github.com/vercel/next.js/issues/86054) ##### Credits Huge thanks to [@&#8203;kdy1](https://github.com/kdy1), [@&#8203;eps1lon](https://github.com/eps1lon), [@&#8203;SyMind](https://github.com/SyMind), [@&#8203;bgw](https://github.com/bgw), [@&#8203;swarnava](https://github.com/swarnava), [@&#8203;devjiwonchoi](https://github.com/devjiwonchoi), [@&#8203;ztanner](https://github.com/ztanner), [@&#8203;ijjk](https://github.com/ijjk), [@&#8203;huozhi](https://github.com/huozhi), [@&#8203;icyJoseph](https://github.com/icyJoseph), [@&#8203;acdlite](https://github.com/acdlite), [@&#8203;unstubbable](https://github.com/unstubbable), [@&#8203;gnoff](https://github.com/gnoff), [@&#8203;gusfune](https://github.com/gusfune), [@&#8203;vercel-release-bot](https://github.com/vercel-release-bot), [@&#8203;lukesandberg](https://github.com/lukesandberg), [@&#8203;sokra](https://github.com/sokra), [@&#8203;hayes](https://github.com/hayes), [@&#8203;shuding](https://github.com/shuding), [@&#8203;wyattjoh](https://github.com/wyattjoh), [@&#8203;marjan-ahmed](https://github.com/marjan-ahmed), [@&#8203;timneutkens](https://github.com/timneutkens), [@&#8203;ajstrongdev](https://github.com/ajstrongdev), [@&#8203;zigang93](https://github.com/zigang93), [@&#8203;mischnic](https://github.com/mischnic), [@&#8203;Nayeem-XTREME](https://github.com/Nayeem-XTREME), [@&#8203;hamirmahal](https://github.com/hamirmahal), [@&#8203;eli0shin](https://github.com/eli0shin), [@&#8203;tessamero](https://github.com/tessamero), [@&#8203;gaojude](https://github.com/gaojude), [@&#8203;jamesdaniels](https://github.com/jamesdaniels), [@&#8203;georgesfarah](https://github.com/georgesfarah), and [@&#8203;timeyoutakeit](https://github.com/timeyoutakeit) for helping! ### [`v16.0.2`](https://github.com/vercel/next.js/releases/tag/v16.0.2) [Compare Source](https://github.com/vercel/next.js/compare/v16.0.1...v16.0.2) > \[!NOTE]\ > This version includes no code or feature changes. To get the latest change, please look for the next patch release [v16.0.3](https://github.com/vercel/next.js/releases/tag/v16.0.3) or next\@&#8203;latest ### [`v16.0.1`](https://github.com/vercel/next.js/releases/tag/v16.0.1) [Compare Source](https://github.com/vercel/next.js/compare/v16.0.0...v16.0.1) ##### Core Changes - fix(static-paths): add depth tracking to parallel route param resolution: [#&#8203;85319](https://github.com/vercel/next.js/issues/85319) - Fix types of [@&#8203;next/mdx](https://github.com/next/mdx): [#&#8203;82238](https://github.com/vercel/next.js/issues/82238) - Ensure getServerInsertedHTML skips rendering correctly: [#&#8203;85394](https://github.com/vercel/next.js/issues/85394) - Fix duplicate .next/types `include` on Windows: [#&#8203;85400](https://github.com/vercel/next.js/issues/85400) - Exclude `next-js` condition from middleware, proxy, and instrumentation: [#&#8203;85321](https://github.com/vercel/next.js/issues/85321) - remove unstable\_forceStale prefetch option & restore `prefetch={true}` functionality: [#&#8203;85411](https://github.com/vercel/next.js/issues/85411) - Upgrade React from `2bcbf254-20251020` to `6160773f-20251023`: [#&#8203;85277](https://github.com/vercel/next.js/issues/85277) - fix(next/image): swap dependencies: [#&#8203;85419](https://github.com/vercel/next.js/issues/85419) - Handle `Origin: null` headers: [#&#8203;85402](https://github.com/vercel/next.js/issues/85402) - Generalize Segment Cache fallback implementation: [#&#8203;84652](https://github.com/vercel/next.js/issues/84652) - fix: ensure req.query is writable: [#&#8203;81573](https://github.com/vercel/next.js/issues/81573) - fix: Proxy not picked up on Windows: [#&#8203;85443](https://github.com/vercel/next.js/issues/85443) - \[test] Ensure we can toggle the DevTools menu while status indicators are active: [#&#8203;85456](https://github.com/vercel/next.js/issues/85456) - Fix crash when suspending in Components using `useActionQueue`: [#&#8203;85459](https://github.com/vercel/next.js/issues/85459) ##### Misc Changes - docs: create-next-app react-compiler and new prompts: [#&#8203;85213](https://github.com/vercel/next.js/issues/85213) - docs: cache components - introduction: [#&#8203;85196](https://github.com/vercel/next.js/issues/85196) - docs: use cache feedback: [#&#8203;85169](https://github.com/vercel/next.js/issues/85169) - docs: stabilize apis in docs: [#&#8203;85219](https://github.com/vercel/next.js/issues/85219) - docs: revalidateTag immediate expiration in Route Handlers: [#&#8203;85223](https://github.com/vercel/next.js/issues/85223) - Docs/use cache feedback 2: [#&#8203;85222](https://github.com/vercel/next.js/issues/85222) - docs: added `use cache: remote` docs: [#&#8203;85145](https://github.com/vercel/next.js/issues/85145) - docs: proxy runtime defaults to nodejs: [#&#8203;85204](https://github.com/vercel/next.js/issues/85204) - chore: cache components feedback: [#&#8203;85241](https://github.com/vercel/next.js/issues/85241) - docs: add a note that cache components is opt-in near the top: [#&#8203;85245](https://github.com/vercel/next.js/issues/85245) - Docs/v16 feedback: [#&#8203;85259](https://github.com/vercel/next.js/issues/85259) - Update command to install babel-plugin-react-compiler as a devDependency: [#&#8203;85235](https://github.com/vercel/next.js/issues/85235) - docs: typegen next-env.d.ts feedback: [#&#8203;85273](https://github.com/vercel/next.js/issues/85273) - docs: link to MCP guide from upgrade: [#&#8203;85308](https://github.com/vercel/next.js/issues/85308) - docs: regexp removed from middleware config: [#&#8203;85343](https://github.com/vercel/next.js/issues/85343) - docs: simplify MCP guide to focus on next-devtools-mcp: [#&#8203;85353](https://github.com/vercel/next.js/issues/85353) - docs: fix proxy matcher overflow: [#&#8203;85337](https://github.com/vercel/next.js/issues/85337) - docs: point out diff in serialization types for arguments and return values: [#&#8203;85338](https://github.com/vercel/next.js/issues/85338) - \[test] Update snapshots: [#&#8203;85407](https://github.com/vercel/next.js/issues/85407) - docs: Fix typo in SEO section of loading.mdx: [#&#8203;85301](https://github.com/vercel/next.js/issues/85301) - Fix typo in Fast Refresh documentation: [#&#8203;85352](https://github.com/vercel/next.js/issues/85352) - Fix grammatical errors in updating data documentation: [#&#8203;85067](https://github.com/vercel/next.js/issues/85067) - \[test] Skip devlow benchmarks on PRs: [#&#8203;85408](https://github.com/vercel/next.js/issues/85408) - \[test] Unflake typed-env suite: [#&#8203;85410](https://github.com/vercel/next.js/issues/85410) - Update rust toolchain to 2025-10-27: [#&#8203;85409](https://github.com/vercel/next.js/issues/85409) - \[test] Speed up prefetching suite: [#&#8203;85417](https://github.com/vercel/next.js/issues/85417) - docs: remove inaccuracies from use cache: private: [#&#8203;85425](https://github.com/vercel/next.js/issues/85425) - \[test] Exclude Next.js internal stack frames from cache-component-error CLI output assertions: [#&#8203;85421](https://github.com/vercel/next.js/issues/85421) - \[test] Exclude likely Next.js internal Components from component stacks in Redbox assertions: [#&#8203;85420](https://github.com/vercel/next.js/issues/85420) - Turbopack: correctly trace files with npm: [#&#8203;85323](https://github.com/vercel/next.js/issues/85323) ##### Credits Huge thanks to [@&#8203;icyJoseph](https://github.com/icyJoseph), [@&#8203;wyattjoh](https://github.com/wyattjoh), [@&#8203;devjiwonchoi](https://github.com/devjiwonchoi), [@&#8203;arnabsen](https://github.com/arnabsen), [@&#8203;remcohaszing](https://github.com/remcohaszing), [@&#8203;denesbeck](https://github.com/denesbeck), [@&#8203;gaojude](https://github.com/gaojude), [@&#8203;mhart](https://github.com/mhart), [@&#8203;eps1lon](https://github.com/eps1lon), [@&#8203;jesuistuan](https://github.com/jesuistuan), [@&#8203;codr](https://github.com/codr), [@&#8203;InfiniteCodeMonkeys](https://github.com/InfiniteCodeMonkeys), [@&#8203;gnoff](https://github.com/gnoff), [@&#8203;ztanner](https://github.com/ztanner), [@&#8203;wbinnssmith](https://github.com/wbinnssmith), [@&#8203;styfle](https://github.com/styfle), [@&#8203;acdlite](https://github.com/acdlite), [@&#8203;ale-grosselle](https://github.com/ale-grosselle), and [@&#8203;mischnic](https://github.com/mischnic) for helping! ### [`v16.0.0`](https://github.com/vercel/next.js/releases/tag/v16.0.0) [Compare Source](https://github.com/vercel/next.js/compare/v15.5.15...v16.0.0) > \[!TIP]\ > **Check out our Next v16 [Blog Post](https://nextjs.org/blog/next-16) to learn more about this release.** ##### Core Changes - Development: Don't import app-router / hot-reloader through next/link in application code: [#&#8203;83656](https://github.com/vercel/next.js/issues/83656) - Remove clientParamParsing requirement from RDC for Navigations: [#&#8203;83661](https://github.com/vercel/next.js/issues/83661) - Upgrade React from `6b70072c-20250909` to `886b3d36-20250910`: [#&#8203;83650](https://github.com/vercel/next.js/issues/83650) - Turbopack: Use readFileSync / writeFileSync for manifest writing: [#&#8203;83694](https://github.com/vercel/next.js/issues/83694) - Upgrade React from `886b3d36-20250910` to `f3a80361-20250911`: [#&#8203;83696](https://github.com/vercel/next.js/issues/83696) - Don't create client-side debug channel if the feature is disabled: [#&#8203;83699](https://github.com/vercel/next.js/issues/83699) - fix: dev should produce the correct default fallback regex to match builds/Turbopack: [#&#8203;83701](https://github.com/vercel/next.js/issues/83701) - \[devtool] fix overlay styles are missing: [#&#8203;83721](https://github.com/vercel/next.js/issues/83721) - Revert "Remove clientParamParsing requirement from RDC for Navigations": [#&#8203;83725](https://github.com/vercel/next.js/issues/83725) - Only enable unhandledRejection filtering when opted in: [#&#8203;83726](https://github.com/vercel/next.js/issues/83726) - Fix index data route for adapter build-complete: [#&#8203;83730](https://github.com/vercel/next.js/issues/83730) - Remove leading underscore for unhandledRejection envvar: [#&#8203;83732](https://github.com/vercel/next.js/issues/83732) - Upgrade React from `f3a80361-20250911` to `93d7aa69-20250912`: [#&#8203;83729](https://github.com/vercel/next.js/issues/83729) - Upgrade React from `93d7aa69-20250912` to `8a8e9a7e-20250912`: [#&#8203;83742](https://github.com/vercel/next.js/issues/83742) - Fix reentrancy of unhandledRejection filtering: [#&#8203;83741](https://github.com/vercel/next.js/issues/83741) - Fix type for unhandled rejection handler process.removeListener: [#&#8203;83748](https://github.com/vercel/next.js/issues/83748) - \[OTel] fix: Root span name should not include high cardinality URL: [#&#8203;75416](https://github.com/vercel/next.js/issues/75416) - Turbopack: Remove matchers.reload() call on each request: [#&#8203;83720](https://github.com/vercel/next.js/issues/83720) - \[Breaking] Flat config as default in `@next/eslint-plugin-next`: [#&#8203;83763](https://github.com/vercel/next.js/issues/83763) - fix: Rspack splitChunks.chunks regex: [#&#8203;83670](https://github.com/vercel/next.js/issues/83670) - Revert "Turbopack: Remove matchers.reload() call on each request": [#&#8203;83819](https://github.com/vercel/next.js/issues/83819) - fix: unstable\_cache should perform blocking revalidation during ISR revalidation: [#&#8203;83820](https://github.com/vercel/next.js/issues/83820) - fix(Rspack): resolve HMR unresponsiveness or unexpected full reload & update dev snapshot: [#&#8203;83480](https://github.com/vercel/next.js/issues/83480) - Allow `next.config.mts` for Node.js native TS resolver: [#&#8203;83556](https://github.com/vercel/next.js/issues/83556) - chore: Ensure Import Trace starts in a newline: [#&#8203;83638](https://github.com/vercel/next.js/issues/83638) - Development: Remove matchers.reload() on each request: [#&#8203;83829](https://github.com/vercel/next.js/issues/83829) - Upgrade React from `8a8e9a7e-20250912` to `5e0c951b-20250916`: [#&#8203;83850](https://github.com/vercel/next.js/issues/83850) - Bump typescript 5.9.2: [#&#8203;83833](https://github.com/vercel/next.js/issues/83833) - Allow headers, rewrites and redirects to be defined as sync functions: [#&#8203;83743](https://github.com/vercel/next.js/issues/83743) - Turbopack: Optimize addedRoutes and removedRoutes calculation: [#&#8203;83840](https://github.com/vercel/next.js/issues/83840) - \[next-config-ts] Set Node.js native TS loader fallback flag to process.env: [#&#8203;83832](https://github.com/vercel/next.js/issues/83832) - Development: Clarify TypescriptStatus in watcher: [#&#8203;83857](https://github.com/vercel/next.js/issues/83857) - Upgrade sharp dependency to version ^0.34.4: [#&#8203;83892](https://github.com/vercel/next.js/issues/83892) - Upgrade React from `5e0c951b-20250916` to `128abcfa-20250917`: [#&#8203;83906](https://github.com/vercel/next.js/issues/83906) - Add native ts resolver docs link to transpile-config: [#&#8203;83914](https://github.com/vercel/next.js/issues/83914) - OTel: use `srcPage` for templates when `next.route` is unavailable: [#&#8203;83911](https://github.com/vercel/next.js/issues/83911) - Remove inline CSS sourcemaps from next-devtools: [#&#8203;83917](https://github.com/vercel/next.js/issues/83917) - Development: Move all TypeScript related work in watcher together: [#&#8203;83912](https://github.com/vercel/next.js/issues/83912) - \[Cache Components] Allow sync IO inside console methods : [#&#8203;83843](https://github.com/vercel/next.js/issues/83843) - Upgrade React from `128abcfa-20250917` to `84af9085-20250917`: [#&#8203;83959](https://github.com/vercel/next.js/issues/83959) - Build: Add .next/trace-build with high level trace: [#&#8203;83949](https://github.com/vercel/next.js/issues/83949) - Remove force writing \*\*/\*.mts to tsconfig: [#&#8203;83967](https://github.com/vercel/next.js/issues/83967) - feat: Isolate dev build from prod: [#&#8203;83961](https://github.com/vercel/next.js/issues/83961) - Remove JS size reporting from next build: [#&#8203;83815](https://github.com/vercel/next.js/issues/83815) - Docs/workspace setup: [#&#8203;83490](https://github.com/vercel/next.js/issues/83490) - Turbopack: support `import ... with {type: "bytes"}`: [#&#8203;83896](https://github.com/vercel/next.js/issues/83896) - fix: error overlay not closing when backdrop clicked: [#&#8203;83981](https://github.com/vercel/next.js/issues/83981) - Upgrade React from `84af9085-20250917` to `d415fd3e-20250919`: [#&#8203;84003](https://github.com/vercel/next.js/issues/84003) - fix: worker logs should still support color: [#&#8203;84024](https://github.com/vercel/next.js/issues/84024) - Update font data: [#&#8203;84005](https://github.com/vercel/next.js/issues/84005) - Allow passing port to `next internal trace`: [#&#8203;83907](https://github.com/vercel/next.js/issues/83907) - Turbopack: error when importing Typescript in node\_modules: [#&#8203;83990](https://github.com/vercel/next.js/issues/83990) - Turbopack: Deterministic builds (prerender-manifest, .next/package.json, ./next/postcss.js): [#&#8203;84081](https://github.com/vercel/next.js/issues/84081) - Turbopack: Fix babel-loader (allowing built-in or manual configuration): [#&#8203;82676](https://github.com/vercel/next.js/issues/82676) - \[Cache Components] allow using headers() in runtime prefetches: [#&#8203;83838](https://github.com/vercel/next.js/issues/83838) - \[Breaking] Remove deprecated `publicRuntimeConfig` and `serverRuntimeConfig`: [#&#8203;83944](https://github.com/vercel/next.js/issues/83944) - Turbopack: mode to disable tracing: [#&#8203;83683](https://github.com/vercel/next.js/issues/83683) - babel-loader: Fix a few issues with config caching: [#&#8203;83973](https://github.com/vercel/next.js/issues/83973) - Turbopack: Merge babel-loader and react-compiler configuration logic to avoid running babel twice: [#&#8203;83502](https://github.com/vercel/next.js/issues/83502) - \[breaking]: enable router scroll optimization by default: [#&#8203;84102](https://github.com/vercel/next.js/issues/84102) - Fix layout for `ssgPageRoutes` in the file tree: [#&#8203;84104](https://github.com/vercel/next.js/issues/84104) - Turbopack: Remove useless 'default' built-in webpack loader condition: [#&#8203;84111](https://github.com/vercel/next.js/issues/84111) - Fix: Client should auto reload after server restarts: [#&#8203;83971](https://github.com/vercel/next.js/issues/83971) - trace-build: Add missing spans: [#&#8203;84080](https://github.com/vercel/next.js/issues/84080) - Development: Remove TypeScript from the hot path during bootup: [#&#8203;84090](https://github.com/vercel/next.js/issues/84090) - Guide users to `experimental.cacheComponents` config: [#&#8203;84121](https://github.com/vercel/next.js/issues/84121) - Development: Only load webpack when used: [#&#8203;84123](https://github.com/vercel/next.js/issues/84123) - Turbopack: Skip loading webpack plugin: [#&#8203;84125](https://github.com/vercel/next.js/issues/84125) - Development: Only load createEnvDefinitions when used: [#&#8203;83935](https://github.com/vercel/next.js/issues/83935) - BREAKING CHANGE!: bump default `images.minimumCacheTTL` from 1 min to 4 hours: [#&#8203;84105](https://github.com/vercel/next.js/issues/84105) - Feat: Add Model Context Protocol (MCP) server to Next.js dev server: [#&#8203;84100](https://github.com/vercel/next.js/issues/84100) - Upgrade React from `d415fd3e-20250919` to `1eca9a27-20250922`: [#&#8203;84093](https://github.com/vercel/next.js/issues/84093) - Turbopack: Remove the deprecated `.turbo` config object: [#&#8203;84109](https://github.com/vercel/next.js/issues/84109) - Flag excess properties in Next.js config with TypeScript: [#&#8203;84069](https://github.com/vercel/next.js/issues/84069) - docs: update Security section to direct disclosures : [#&#8203;84156](https://github.com/vercel/next.js/issues/84156) - ci: Enable `experimental.isolatedDevBuild` for `test-experimental-dev`: [#&#8203;84099](https://github.com/vercel/next.js/issues/84099) - \[turbopack] Ensure React Compiler options are based dev vs prod: [#&#8203;84062](https://github.com/vercel/next.js/issues/84062) - Enable anonymous function naming in React Compiler: [#&#8203;84070](https://github.com/vercel/next.js/issues/84070) - Revert "\[Breaking] Remove deprecated `publicRuntimeConfig` and `serverRuntimeConfig` ([#&#8203;83944](https://github.com/vercel/next.js/issues/83944))": [#&#8203;84167](https://github.com/vercel/next.js/issues/84167) - Fix double comma in build manifest: [#&#8203;84131](https://github.com/vercel/next.js/issues/84131) - \[turbopack] set app dir only to true when no pages entries detected: [#&#8203;84144](https://github.com/vercel/next.js/issues/84144) - Split code-frame into separate compiled package: [#&#8203;84174](https://github.com/vercel/next.js/issues/84174) - refactor: separate forward browser logs utils: [#&#8203;84151](https://github.com/vercel/next.js/issues/84151) - Upgrade React from `1eca9a27-20250922` to `e2332183-20250924`: [#&#8203;84189](https://github.com/vercel/next.js/issues/84189) - \[Cache Components] default to filtering unhandledRejection after abort: [#&#8203;84192](https://github.com/vercel/next.js/issues/84192) - fix: prevent URL mutation in router rewrites: [#&#8203;83963](https://github.com/vercel/next.js/issues/83963) - fix(server): fix pages router resume router matching: [#&#8203;84158](https://github.com/vercel/next.js/issues/84158) - Feat: `get_errors` MCP endpoint: [#&#8203;84161](https://github.com/vercel/next.js/issues/84161) - Add internal environment variable for enabling React Compiler: [#&#8203;84176](https://github.com/vercel/next.js/issues/84176) - \[devtools] Disable React's default Transition indicator: [#&#8203;84202](https://github.com/vercel/next.js/issues/84202) - Upgrade React from `e2332183-20250924` to `b0c1dc01-20250925`: [#&#8203;84248](https://github.com/vercel/next.js/issues/84248) - Feat: `get_page_metadata` MCP endpoint: [#&#8203;84211](https://github.com/vercel/next.js/issues/84211) - feat: capture logs into logging file during development: [#&#8203;84183](https://github.com/vercel/next.js/issues/84183) - babel-loader: Avoid calling expensive `isReactCompilerRequired` check when we must run Babel anyways: [#&#8203;84103](https://github.com/vercel/next.js/issues/84103) - \[mcp] expose logging: [#&#8203;84226](https://github.com/vercel/next.js/issues/84226) - Move `config.turbopack.moduleIds` to `config.experimental.turbopackModuleIds`: [#&#8203;84230](https://github.com/vercel/next.js/issues/84230) - Show invalid default export errors during prerendering: [#&#8203;84242](https://github.com/vercel/next.js/issues/84242) - fix: make sure caller exists in babel preset: [#&#8203;84154](https://github.com/vercel/next.js/issues/84154) - \[mcp] allow to enable mcp server through env var: [#&#8203;84278](https://github.com/vercel/next.js/issues/84278) - fix(metadata): make formatDetection respect true/false properly: [#&#8203;83924](https://github.com/vercel/next.js/issues/83924) - Upgrade React from `b0c1dc01-20250925` to `df38ac9a-20250926`: [#&#8203;84276](https://github.com/vercel/next.js/issues/84276) - Add a --webpack flag and default --turbopack to true: [#&#8203;84216](https://github.com/vercel/next.js/issues/84216) - fix: Update URL resolution logic to handle search parameters on root path /?foo=bar: [#&#8203;78262](https://github.com/vercel/next.js/issues/78262) - \[Breaking] Remove deprecated sync access to Dynamic APIs: [#&#8203;84179](https://github.com/vercel/next.js/issues/84179) - Move `config.turbopack.moduleIds` to `config.experimental.turbopackModuleIds`: [#&#8203;84230](https://github.com/vercel/next.js/issues/84230) - Show invalid default export errors during prerendering: [#&#8203;84242](https://github.com/vercel/next.js/issues/84242) - fix: make sure caller exists in babel preset: [#&#8203;84154](https://github.com/vercel/next.js/issues/84154) - \[mcp] allow to enable mcp server through env var: [#&#8203;84278](https://github.com/vercel/next.js/issues/84278) - fix(metadata): make formatDetection respect true/false properly: [#&#8203;83924](https://github.com/vercel/next.js/issues/83924) - Upgrade React from `b0c1dc01-20250925` to `df38ac9a-20250926`: [#&#8203;84276](https://github.com/vercel/next.js/issues/84276) - Add a --webpack flag and default --turbopack to true: [#&#8203;84216](https://github.com/vercel/next.js/issues/84216) - fix: Update URL resolution logic to handle search parameters on root path /?foo=bar: [#&#8203;78262](https://github.com/vercel/next.js/issues/78262) - \[Breaking] Remove deprecated sync access to Dynamic APIs: [#&#8203;84179](https://github.com/vercel/next.js/issues/84179) - Turbopack: only write merged manifests when they have been changed: [#&#8203;84261](https://github.com/vercel/next.js/issues/84261) - Turbopack: add separate turbopackPersistentCachingForBuild/ForDev flags: [#&#8203;84215](https://github.com/vercel/next.js/issues/84215) - Revert "Add a --webpack flag and default --turbopack to true ([#&#8203;84216](https://github.com/vercel/next.js/issues/84216))": [#&#8203;84348](https://github.com/vercel/next.js/issues/84348) - Upgrade React from `df38ac9a-20250926` to `d15d7fd7-20250929`: [#&#8203;84347](https://github.com/vercel/next.js/issues/84347) - Mark React Compiler integration as stable: [#&#8203;84220](https://github.com/vercel/next.js/issues/84220) - \[cna] Add `reactCompiler` option: [#&#8203;82251](https://github.com/vercel/next.js/issues/82251) - Turbopack: remove canary version check for turbopackPersistentCachingForDev: [#&#8203;84277](https://github.com/vercel/next.js/issues/84277) - \[turbopack] Add support for debug\_ids: [#&#8203;84319](https://github.com/vercel/next.js/issues/84319) - Revert "Revert "Add a --webpack flag and default --turbopack to true ([#&#8203;84216](https://github.com/vercel/next.js/issues/84216))"": [#&#8203;84351](https://github.com/vercel/next.js/issues/84351) - \[Breaking] Remove AMP codemod: [#&#8203;84356](https://github.com/vercel/next.js/issues/84356) - \[Breaking] Remove deprecated built-in AMP: [#&#8203;84312](https://github.com/vercel/next.js/issues/84312) - auto-enable clientParamParsing and clientSegmentCache w/ cacheComponents: [#&#8203;84250](https://github.com/vercel/next.js/issues/84250) - \[mcp] get server action tool: [#&#8203;84382](https://github.com/vercel/next.js/issues/84382) - Revert "Revert "Revert "Add a --webpack flag and default --turbopack to true ([#&#8203;84216](https://github.com/vercel/next.js/issues/84216))""": [#&#8203;84389](https://github.com/vercel/next.js/issues/84389) - Update otel test assertions and pages span\_name: [#&#8203;84393](https://github.com/vercel/next.js/issues/84393) - \[Breaking] Bump minimum TypeScript version to 5.1.0: [#&#8203;84384](https://github.com/vercel/next.js/issues/84384) - Upgrade React from `d15d7fd7-20250929` to `ef889445-20250930`: [#&#8203;84383](https://github.com/vercel/next.js/issues/84383) - \[Breaking] Remove deprecated `unstable_rootParams`: [#&#8203;84373](https://github.com/vercel/next.js/issues/84373) - \[metadata] remove falsy dynamicParams approach: [#&#8203;84405](https://github.com/vercel/next.js/issues/84405) - fix: next rspack binding NextExternalsPlugin: [#&#8203;84303](https://github.com/vercel/next.js/issues/84303) - Development: Skip route matching when there is an existing match: [#&#8203;84227](https://github.com/vercel/next.js/issues/84227) - Revert "auto-enable clientParamParsing and clientSegmentCache w/ cacheComponents": [#&#8203;84419](https://github.com/vercel/next.js/issues/84419) - Upgrade React from `ef889445-20250930` to `548235db-20251001`: [#&#8203;84416](https://github.com/vercel/next.js/issues/84416) - \[Breaking] Update default browserslist config: [#&#8203;84401](https://github.com/vercel/next.js/issues/84401) - Upgrade React from `548235db-20251001` to `1bd1f01f-20251001`: [#&#8203;84417](https://github.com/vercel/next.js/issues/84417) - Allow `metadataBase` to be a string URL in addition to `URL` instance: [#&#8203;84297](https://github.com/vercel/next.js/issues/84297) - Upgrade React from `1bd1f01f-20251001` to `86181134-20251001`: [#&#8203;84427](https://github.com/vercel/next.js/issues/84427) - \[mcp] logging file should be reset for each session: [#&#8203;84425](https://github.com/vercel/next.js/issues/84425) - Revert "Revert "Revert "Revert "Add a --webpack flag and default --turbopack to true ([#&#8203;84216](https://github.com/vercel/next.js/issues/84216))"""": [#&#8203;84394](https://github.com/vercel/next.js/issues/84394) - Optimize isMetadataRoute function: [#&#8203;84409](https://github.com/vercel/next.js/issues/84409) - \[ci]: split clientSegmentCache test runners off from experimental: [#&#8203;84440](https://github.com/vercel/next.js/issues/84440) - \[Cache Components] Fix caching in `generateMetadata`/`generateViewport`: [#&#8203;84228](https://github.com/vercel/next.js/issues/84228) - Upgrade React from `86181134-20251001` to `a757cb76-20251002`: [#&#8203;84463](https://github.com/vercel/next.js/issues/84463) - \[segment cache]: fix trailingSlash handling with output: export: [#&#8203;84465](https://github.com/vercel/next.js/issues/84465) - perf: Use a more aggressive retry loop for `recursiveDelete`: [#&#8203;84444](https://github.com/vercel/next.js/issues/84444) - \[Cache Components] Dim logs after prerender aborts: [#&#8203;84153](https://github.com/vercel/next.js/issues/84153) - telemetry track mcp server usage: [#&#8203;84471](https://github.com/vercel/next.js/issues/84471) - simplify the way we check for turbopack config to ensure we support an empty turbopack object: [#&#8203;84494](https://github.com/vercel/next.js/issues/84494) - perf: Use synchronous IO when cleaning `distDir` in `next dev` and `next build`: [#&#8203;84472](https://github.com/vercel/next.js/issues/84472) - Make turbopack the default bundler for custom servers: [#&#8203;84281](https://github.com/vercel/next.js/issues/84281) - \[segment cache]: fix interception route handling: [#&#8203;84497](https://github.com/vercel/next.js/issues/84497) - Upgrade React from `a757cb76-20251002` to `85c427d8-20251003`: [#&#8203;84496](https://github.com/vercel/next.js/issues/84496) - \[segment cache]: collectSegmentData should respect experimental.staleTime config: [#&#8203;84520](https://github.com/vercel/next.js/issues/84520) - Fix potential race condition with request ID in dev mode: [#&#8203;84532](https://github.com/vercel/next.js/issues/84532) - \[test] Enable `reactDebugChannel` for experimental test shards: [#&#8203;84533](https://github.com/vercel/next.js/issues/84533) - Simplify Metadata components: [#&#8203;84527](https://github.com/vercel/next.js/issues/84527) - Implement the updated prerender API shape: [#&#8203;84254](https://github.com/vercel/next.js/issues/84254) - Upgrade React from `85c427d8-20251003` to `4fdf7cf2-20251003`: [#&#8203;84499](https://github.com/vercel/next.js/issues/84499) - Upgrade React from `4fdf7cf2-20251003` to `c7862584-20251006`: [#&#8203;84573](https://github.com/vercel/next.js/issues/84573) - fix(Turbopack): Add better error messaging for when we can't determine Next.js root: [#&#8203;83918](https://github.com/vercel/next.js/issues/83918) - Allow silencing unhandled rejection filter warnings and improve debugging: [#&#8203;84572](https://github.com/vercel/next.js/issues/84572) - \[MCP] Fix: Do not dedup by URL for MCP get\_page\_metadata: [#&#8203;84564](https://github.com/vercel/next.js/issues/84564) - Guard `createDebugChannel` import by feature flag: [#&#8203;84604](https://github.com/vercel/next.js/issues/84604) - Build: Add time to logline of every step: [#&#8203;84602](https://github.com/vercel/next.js/issues/84602) - Upgrade React from `c7862584-20251006` to `a4eb2dfa-20251006`: [#&#8203;84589](https://github.com/vercel/next.js/issues/84589) - \[Cache Components] Schedule work on timeouts: [#&#8203;84344](https://github.com/vercel/next.js/issues/84344) - \[dev] Define request ID for RSC requests on the client: [#&#8203;84605](https://github.com/vercel/next.js/issues/84605) - fix(cache-tags): add `/index` to implicit tags and adjust `revalidatePath()`: [#&#8203;84586](https://github.com/vercel/next.js/issues/84586) - Build: Highlight TypeScript and ESLint being run clearer: [#&#8203;84606](https://github.com/vercel/next.js/issues/84606) - \[Breaking] Bump sass-loader to v16: [#&#8203;84387](https://github.com/vercel/next.js/issues/84387) - Update cases for build complete with adapters: [#&#8203;84361](https://github.com/vercel/next.js/issues/84361) - Turbopack: delete .next folder before throwing due to "pages/app directory must be in the same folder": [#&#8203;84553](https://github.com/vercel/next.js/issues/84553) - \[mcp] change get-project-path to get-project-metadata: [#&#8203;84619](https://github.com/vercel/next.js/issues/84619) - feat(next/image)!: deprecate and warn on `images.domains` config: [#&#8203;84625](https://github.com/vercel/next.js/issues/84625) - feat(next/legacy/image)!: deprecate and warn on `next/legacy/image` usage: [#&#8203;84622](https://github.com/vercel/next.js/issues/84622) - Turbopack: improve errors/warnings for turbopack messages: [#&#8203;84552](https://github.com/vercel/next.js/issues/84552) - Turbopack: rename turbopackPersistentCachingForXXX to turbopackFileSystemCacheForXXX: [#&#8203;84632](https://github.com/vercel/next.js/issues/84632) - \[Segment Cache] Add refresh URL to reused default segments: [#&#8203;84627](https://github.com/vercel/next.js/issues/84627) - \[Segment Cache] Fix tests related to optimistic loading state reuse: [#&#8203;84498](https://github.com/vercel/next.js/issues/84498) - Upgrade React from `a4eb2dfa-20251006` to `3025aa39-20251007`: [#&#8203;84613](https://github.com/vercel/next.js/issues/84613) - \[breaking]: enable clientSegmentCache by default: [#&#8203;84643](https://github.com/vercel/next.js/issues/84643) - feat: Acquire a lockfile on `distDir` in `next dev` and `next build`: [#&#8203;84428](https://github.com/vercel/next.js/issues/84428) - Add deprecation warning to Runtime config: [#&#8203;84168](https://github.com/vercel/next.js/issues/84168) - \[middleware]: add upper bound to cloneBodyStream: [#&#8203;84539](https://github.com/vercel/next.js/issues/84539) - Remove automatic linting from build: [#&#8203;83136](https://github.com/vercel/next.js/issues/83136) - Re-enable legacyBehavior and passHref on Link: [#&#8203;84500](https://github.com/vercel/next.js/issues/84500) - \[cna] Use stable React Compiler: [#&#8203;84660](https://github.com/vercel/next.js/issues/84660) - Add codemod for `middleware` to `proxy`: [#&#8203;84127](https://github.com/vercel/next.js/issues/84127) - Fix dynamic catchall parameter interpolation in parallel routes: [#&#8203;84279](https://github.com/vercel/next.js/issues/84279) - feat(breaking): Hard Deprecate PPR Configuration: [#&#8203;84280](https://github.com/vercel/next.js/issues/84280) - Deprecate `middleware` and recommend `proxy`: [#&#8203;84119](https://github.com/vercel/next.js/issues/84119) - Put native TS resolver for next config under `--experimental-next-config-strip-types` flag: [#&#8203;84675](https://github.com/vercel/next.js/issues/84675) - Fix interception route rewrites for nested dynamic routes: [#&#8203;84413](https://github.com/vercel/next.js/issues/84413) - fix: strip *NEXTSEP* from interpolated pathnames: [#&#8203;84430](https://github.com/vercel/next.js/issues/84430) - chore: Remove useless symlink resolution logic in `recursive-delete.js`: [#&#8203;84582](https://github.com/vercel/next.js/issues/84582) - breaking(next/image)!: remove 16px from default `images.imageSizes` config: [#&#8203;84647](https://github.com/vercel/next.js/issues/84647) - add Statsig Node Core package to Server External Packages: [#&#8203;84157](https://github.com/vercel/next.js/issues/84157) - Remove bailed out SSG routes from the list of SSG: [#&#8203;83861](https://github.com/vercel/next.js/issues/83861) - Revert "\[Breaking] Skip Next.js internal routes `/_next` in middleware": [#&#8203;84697](https://github.com/vercel/next.js/issues/84697) - Bump eslint-plugin-react-hooks to v7: [#&#8203;84669](https://github.com/vercel/next.js/issues/84669) - Add refresh API to next/cache: [#&#8203;84666](https://github.com/vercel/next.js/issues/84666) - \[Breaking] Require `images.localPatterns` for query in Image src: [#&#8203;84406](https://github.com/vercel/next.js/issues/84406) - \[Breaking] feat(next/image)!: add support for `images.dangerouslyAllowLocalIP` and `images.maximumRedirects`: [#&#8203;84676](https://github.com/vercel/next.js/issues/84676) - Add new updateTag API and new signature for revalidateTag: [#&#8203;83822](https://github.com/vercel/next.js/issues/83822) - Add validation for missing default.js in parallel routes: [#&#8203;84702](https://github.com/vercel/next.js/issues/84702) - misc: allow beta to be triggered: [#&#8203;84713](https://github.com/vercel/next.js/issues/84713) - Fix tags check for expired/stale: [#&#8203;84717](https://github.com/vercel/next.js/issues/84717) - tweak middlewareClientMaxBodySize handling: [#&#8203;84712](https://github.com/vercel/next.js/issues/84712) - docs: Add more details to `useLightningcss` docs: [#&#8203;84581](https://github.com/vercel/next.js/issues/84581) - Version gate migration docs link: [#&#8203;84740](https://github.com/vercel/next.js/issues/84740) - \[Cache Components] Allow hiding logs after abort: [#&#8203;84579](https://github.com/vercel/next.js/issues/84579) - Log `Compiled proxy in ...`: [#&#8203;84746](https://github.com/vercel/next.js/issues/84746) - Upgrade React from `3025aa39-20251007` to `9724e3e6-20251008`: [#&#8203;84642](https://github.com/vercel/next.js/issues/84642) - Remove unused `eslint-disable` directives: [#&#8203;84797](https://github.com/vercel/next.js/issues/84797) - Use ESLint Flat Config: [#&#8203;84800](https://github.com/vercel/next.js/issues/84800) - fix missing flight-router-state-tree header normalization: [#&#8203;84718](https://github.com/vercel/next.js/issues/84718) - Write `.next/dev/types/**/*.d.ts` to default tsconfig: [#&#8203;84747](https://github.com/vercel/next.js/issues/84747) - Upgrade React from `9724e3e6-20251008` to `ead92181-20251010`: [#&#8203;84793](https://github.com/vercel/next.js/issues/84793) - \[mcp] capture next config schema errors: [#&#8203;84832](https://github.com/vercel/next.js/issues/84832) - feat: using [@&#8203;next/rspack-core](https://github.com/next/rspack-core): [#&#8203;84221](https://github.com/vercel/next.js/issues/84221) - Upgrade React from `ead92181-20251010` to `d7215b49-20251013`: [#&#8203;84850](https://github.com/vercel/next.js/issues/84850) - Turbopack build: Switch to using workerthreads for process: [#&#8203;84818](https://github.com/vercel/next.js/issues/84818) - \[Cache Components] Dev - restart render on cache miss: [#&#8203;84088](https://github.com/vercel/next.js/issues/84088) - Update font data: [#&#8203;84785](https://github.com/vercel/next.js/issues/84785) - Fix build compile mode if pages dir does not exist in Next.js 16: [#&#8203;84783](https://github.com/vercel/next.js/issues/84783) - improve next config schema validation errors: [#&#8203;84847](https://github.com/vercel/next.js/issues/84847) - Upgrade React from `d7215b49-20251013` to `56e84692-20251014`: [#&#8203;84860](https://github.com/vercel/next.js/issues/84860) - warnOnce for Middleware deprecation: [#&#8203;84862](https://github.com/vercel/next.js/issues/84862) - Add codemod for Middleware API to Proxy API: [#&#8203;84824](https://github.com/vercel/next.js/issues/84824) - Deprecate Middleware API and add Proxy API: [#&#8203;84764](https://github.com/vercel/next.js/issues/84764) - remove `clientParamParsing` configuration & bundle it with `cacheComponents`: [#&#8203;84763](https://github.com/vercel/next.js/issues/84763) - remove dynamicIO flag: [#&#8203;84872](https://github.com/vercel/next.js/issues/84872) - Bump eslint-plugin-react to 7.37.0: [#&#8203;84876](https://github.com/vercel/next.js/issues/84876) - Add nextjs condition when cacheComponents is enabled: [#&#8203;84843](https://github.com/vercel/next.js/issues/84843) - remove rdcForNavigations configuration & bundle with cacheComponents: [#&#8203;84870](https://github.com/vercel/next.js/issues/84870) - Convert eslint-config-next project to TypeScript: [#&#8203;84839](https://github.com/vercel/next.js/issues/84839) - \[eslint-config] \[Breaking] Use Flat config by default: [#&#8203;84874](https://github.com/vercel/next.js/issues/84874) - \[Cache Components] Remove `unstable` prefix from `unstable_cacheLife`: [#&#8203;84877](https://github.com/vercel/next.js/issues/84877) - fix: always use the safe stable stringify: [#&#8203;84909](https://github.com/vercel/next.js/issues/84909) - \[Cache Components] Fix cacheSignal in dev render: [#&#8203;84846](https://github.com/vercel/next.js/issues/84846) - \[dev-overlay] Never dedupe errors with different names or messages: [#&#8203;84908](https://github.com/vercel/next.js/issues/84908) - Remove deprecated experimental\_ppr route-level configuration: [#&#8203;84871](https://github.com/vercel/next.js/issues/84871) - Include server latency in debug info: [#&#8203;84580](https://github.com/vercel/next.js/issues/84580) - Fix parallel routes ignoring generateStaticParams from primary route: [#&#8203;84889](https://github.com/vercel/next.js/issues/84889) - Revert "Include server latency in debug info": [#&#8203;84932](https://github.com/vercel/next.js/issues/84932) - Development: Use process.hrtime for request time calculation: [#&#8203;84905](https://github.com/vercel/next.js/issues/84905) - Use correct JSX runtime for library-owned JSX in React Server: [#&#8203;84869](https://github.com/vercel/next.js/issues/84869) - Development: Implement request log time details: [#&#8203;84906](https://github.com/vercel/next.js/issues/84906) - \[Cache Components] Remove `unstable` prefix from `unstable_cacheTag`: [#&#8203;84880](https://github.com/vercel/next.js/issues/84880) - \[Cache Components] separate runtime stage in dev render: [#&#8203;84644](https://github.com/vercel/next.js/issues/84644) - Reland "Include server latency in debug info": [#&#8203;84950](https://github.com/vercel/next.js/issues/84950) - Update codemod ESLint template to Flat config: [#&#8203;84919](https://github.com/vercel/next.js/issues/84919) - Upgrade React from `56e84692-20251014` to `93f85932-20251016`: [#&#8203;84963](https://github.com/vercel/next.js/issues/84963) - \[dev] Fix Middleware and Proxy file conflict: [#&#8203;84965](https://github.com/vercel/next.js/issues/84965) - stabilize experimental.enablePrerenderSourcemaps: [#&#8203;84916](https://github.com/vercel/next.js/issues/84916) - Stop manually setting stacktrace limit: [#&#8203;84968](https://github.com/vercel/next.js/issues/84968) - Turbopack: respect `--profile` CLI param: [#&#8203;84920](https://github.com/vercel/next.js/issues/84920) - Relax default.tsx validation for parallel routes leaf segments: [#&#8203;84767](https://github.com/vercel/next.js/issues/84767) - Add codemod for removing `unstable_` prefix: [#&#8203;84974](https://github.com/vercel/next.js/issues/84974) - Interception routes match from nested route navigation: [#&#8203;84898](https://github.com/vercel/next.js/issues/84898) - \[Cache Components] Allow unstable prefix for cacheLife and cacheTag: [#&#8203;84934](https://github.com/vercel/next.js/issues/84934) - Relax default.tsx validation for parallel routes leaf segments: [#&#8203;84767](https://github.com/vercel/next.js/issues/84767) - Add codemod for removing `unstable_` prefix: [#&#8203;84974](https://github.com/vercel/next.js/issues/84974) - Interception routes match from nested route navigation: [#&#8203;84898](https://github.com/vercel/next.js/issues/84898) - \[Cache Components] Allow unstable prefix for cacheLife and cacheTag: [#&#8203;84934](https://github.com/vercel/next.js/issues/84934) - Add codemod for removing `experimental_ppr`: [#&#8203;84979](https://github.com/vercel/next.js/issues/84979) - fix: throw error during build when invalid export for Proxy: [#&#8203;84886](https://github.com/vercel/next.js/issues/84886) - \[cache components]: prevent expired entries from being served: [#&#8203;84975](https://github.com/vercel/next.js/issues/84975) - Delete old prefetch cache related code: [#&#8203;84977](https://github.com/vercel/next.js/issues/84977) - docs: Deprecation of Middleware: [#&#8203;84710](https://github.com/vercel/next.js/issues/84710) - Add rendered search to router state: [#&#8203;84983](https://github.com/vercel/next.js/issues/84983) - \[segment cache]: delay revalidation prefetch pings 300ms: [#&#8203;84981](https://github.com/vercel/next.js/issues/84981) - Show relative path from cwd for Proxy Middleware file conflict error: [#&#8203;84993](https://github.com/vercel/next.js/issues/84993) - \[Cache Components] fix docs for cacheLife("seconds"): [#&#8203;85004](https://github.com/vercel/next.js/issues/85004) - Rename MiddlewareMatcher to ProxyMatcher: [#&#8203;85005](https://github.com/vercel/next.js/issues/85005) - \[Breaking] Rename instrumentation onRequestError `context.routeType` from `middleware` to `proxy`: [#&#8203;85006](https://github.com/vercel/next.js/issues/85006) - \[turbopack] Prevent accidental access to `.next`: [#&#8203;84714](https://github.com/vercel/next.js/issues/84714) - fix: incorrect canonicalUrl set when using output: export: [#&#8203;85019](https://github.com/vercel/next.js/issues/85019) - Add Activity name to route layouts and pages: [#&#8203;85011](https://github.com/vercel/next.js/issues/85011) - Update next-lint-to-eslint-cli to support `FlatCompat.config`: [#&#8203;85026](https://github.com/vercel/next.js/issues/85026) - \[cache components]: move flag out of experimental: [#&#8203;85035](https://github.com/vercel/next.js/issues/85035) - \[Cache Components] When caches are disabled in dev skip the cache warmup: [#&#8203;85014](https://github.com/vercel/next.js/issues/85014) - \[Cache Components] Use canary React when only Cache Components is enabled: [#&#8203;85042](https://github.com/vercel/next.js/issues/85042) - Turbopack: Remove unneeded warning for telemetry: [#&#8203;85039](https://github.com/vercel/next.js/issues/85039) - \[cache components] stabilize cacheLife profiles: [#&#8203;85050](https://github.com/vercel/next.js/issues/85050) - \[cache components] show when cache components is enabled in the CLI: [#&#8203;85047](https://github.com/vercel/next.js/issues/85047) - \[cache components]: show cache components enabled in DevTools: [#&#8203;85048](https://github.com/vercel/next.js/issues/85048) - \[Cache Components] correctly label IO promises in devtools: [#&#8203;84928](https://github.com/vercel/next.js/issues/84928) - Plumbing for cache indicator: [#&#8203;84955](https://github.com/vercel/next.js/issues/84955) - Upgrade React from `93f85932-20251016` to `1324e1bb-20251016`: [#&#8203;84999](https://github.com/vercel/next.js/issues/84999) - enable mcp server by default: [#&#8203;85058](https://github.com/vercel/next.js/issues/85058) - Add comment that we expect the function passed to bind to be anonymous: [#&#8203;85070](https://github.com/vercel/next.js/issues/85070) - Development: Addres comments on request log PR: [#&#8203;84945](https://github.com/vercel/next.js/issues/84945) - Development: Implement request time for Pages Router: [#&#8203;85012](https://github.com/vercel/next.js/issues/85012) - \[cache components] add cache components indicator to dev start: [#&#8203;85069](https://github.com/vercel/next.js/issues/85069) - cli: build partial entries --debug-build-paths arg: [#&#8203;85052](https://github.com/vercel/next.js/issues/85052) - Turbopack: Better error for sassOptions.functions as it's unsupported: [#&#8203;85073](https://github.com/vercel/next.js/issues/85073) - Upgrade React from `58bdc0bb-20251019` to `f6a48828-20251019`: [#&#8203;85081](https://github.com/vercel/next.js/issues/85081) - \[devtools]: instrument client navigation hooks for suspense devtools: [#&#8203;85007](https://github.com/vercel/next.js/issues/85007) - Remove Segment from CacheNodeSeedData: [#&#8203;85080](https://github.com/vercel/next.js/issues/85080) - label as Prefetch/Prefetchable depending on prefetch config: [#&#8203;85076](https://github.com/vercel/next.js/issues/85076) - \[cache components]: add 'bypass' cache indicator status: [#&#8203;85082](https://github.com/vercel/next.js/issues/85082) - Upgrade React from `f6a48828-20251019` to `2bcbf254-20251020`: [#&#8203;85112](https://github.com/vercel/next.js/issues/85112) - \[cache components]: guard against setCacheStatus since its conditionally defined: [#&#8203;85125](https://github.com/vercel/next.js/issues/85125) - warn: add deprecation warning of eslint config: [#&#8203;85122](https://github.com/vercel/next.js/issues/85122) - add new devtools indicator loading state: [#&#8203;85083](https://github.com/vercel/next.js/issues/85083) - Await initial Flight response before hydrating: [#&#8203;85124](https://github.com/vercel/next.js/issues/85124) - fix(experimental.lockDistDir): Acquire the lock in dev earlier: [#&#8203;85116](https://github.com/vercel/next.js/issues/85116) - telemetry: mcp tool call: [#&#8203;85120](https://github.com/vercel/next.js/issues/85120) - \[Turbopack] dedupe build errors: [#&#8203;85062](https://github.com/vercel/next.js/issues/85062) - Fix subtree layout alignment for route summary in `next build`: [#&#8203;85137](https://github.com/vercel/next.js/issues/85137) - \[codemod] Remove runtime config when running `middleware-to-proxy`: [#&#8203;85075](https://github.com/vercel/next.js/issues/85075) - \[turbopack] Improve the multiple bundler flags messge to note that perhaps your `package.json` is the problem: [#&#8203;85118](https://github.com/vercel/next.js/issues/85118) - Add Learn more docs to Middleware deprecation warning: [#&#8203;84711](https://github.com/vercel/next.js/issues/84711) - \[BF Cache]: skip lazyData fetch logic for inactive segments: [#&#8203;85142](https://github.com/vercel/next.js/issues/85142) - Pass `startTime` to initial RSC payload stream: [#&#8203;85144](https://github.com/vercel/next.js/issues/85144) - guard navigation `use` hooks for React 18: [#&#8203;85151](https://github.com/vercel/next.js/issues/85151) - \[turbopack] Don't warn on the lightning css experimental option: [#&#8203;84913](https://github.com/vercel/next.js/issues/84913) - Turbopack: Remove redundant log line, increase delay for compiling log message: [#&#8203;85133](https://github.com/vercel/next.js/issues/85133) - Make params and searchParams new Promises: [#&#8203;85158](https://github.com/vercel/next.js/issues/85158) - Name "cache" streams for React DevTools: [#&#8203;85159](https://github.com/vercel/next.js/issues/85159) - Use cacheMaxMemorySize config in default cache handler: [#&#8203;85153](https://github.com/vercel/next.js/issues/85153) - Omit params to from client segments: [#&#8203;84883](https://github.com/vercel/next.js/issues/84883) - enable experimental.routerBfCache behind cacheComponents: [#&#8203;84923](https://github.com/vercel/next.js/issues/84923) - \[Cache Components] Allow stale longer than expire in cacheLife: [#&#8203;85115](https://github.com/vercel/next.js/issues/85115) - Update Activity names given to routes: [#&#8203;85155](https://github.com/vercel/next.js/issues/85155) - use port zero for --inspect when forking, if used by parent: [#&#8203;85128](https://github.com/vercel/next.js/issues/85128) - Update blocking prerender error message: [#&#8203;85087](https://github.com/vercel/next.js/issues/85087) - Fix: CSS asset URLs broken with `experimental.inlineCss`: [#&#8203;85140](https://github.com/vercel/next.js/issues/85140) - Update routes generation for build-complete: [#&#8203;85017](https://github.com/vercel/next.js/issues/85017) - \[cache components] move experimental.cacheHandlers out of experimental: [#&#8203;85157](https://github.com/vercel/next.js/issues/85157) - Don't assign displayName to the internal Promises: [#&#8203;85178](https://github.com/vercel/next.js/issues/85178) - Assign name to hydration stream: [#&#8203;85179](https://github.com/vercel/next.js/issues/85179) - fix: add backwards compat for middleware → proxy field renames: [#&#8203;85183](https://github.com/vercel/next.js/issues/85183) - \[turbopack] Implement improved deobfuscation for free calls and module identifiers.: [#&#8203;85060](https://github.com/vercel/next.js/issues/85060) - Improve Proxy invalid export error message: [#&#8203;84887](https://github.com/vercel/next.js/issues/84887) - Fix Activity boundary names: [#&#8203;85185](https://github.com/vercel/next.js/issues/85185) - \[codemod] Install ESLint v9 if version under for next-lint-to-eslint-cli: [#&#8203;85182](https://github.com/vercel/next.js/issues/85182) - \[upgrade] Version gate adding `--turbopack` flag: [#&#8203;85180](https://github.com/vercel/next.js/issues/85180) - Tweaks to blocking route error message: [#&#8203;85191](https://github.com/vercel/next.js/issues/85191) - Remove layout-router sticky/fixed debug warning: [#&#8203;85193](https://github.com/vercel/next.js/issues/85193) - \[cache components] persist cache bypass UI until it's disabled: [#&#8203;85190](https://github.com/vercel/next.js/issues/85190) - Only allow node runtime in proxy: [#&#8203;85139](https://github.com/vercel/next.js/issues/85139) - logger: skip logging full element: [#&#8203;85194](https://github.com/vercel/next.js/issues/85194) - Fix: CSS asset URLs broken with `experimental.inlineCss`: [#&#8203;85140](https://github.com/vercel/next.js/issues/85140) - Update routes generation for build-complete: [#&#8203;85017](https://github.com/vercel/next.js/issues/85017) - \[cache components] move experimental.cacheHandlers out of experimental: [#&#8203;85157](https://github.com/vercel/next.js/issues/85157) - Don't assign displayName to the internal Promises: [#&#8203;85178](https://github.com/vercel/next.js/issues/85178) - Assign name to hydration stream: [#&#8203;85179](https://github.com/vercel/next.js/issues/85179) - fix: add backwards compat for middleware → proxy field renames: [#&#8203;85183](https://github.com/vercel/next.js/issues/85183) - \[turbopack] Implement improved deobfuscation for free calls and module identifiers.: [#&#8203;85060](https://github.com/vercel/next.js/issues/85060) - Improve Proxy invalid export error message: [#&#8203;84887](https://github.com/vercel/next.js/issues/84887) - Fix Activity boundary names: [#&#8203;85185](https://github.com/vercel/next.js/issues/85185) - \[codemod] Install ESLint v9 if version under for next-lint-to-eslint-cli: [#&#8203;85182](https://github.com/vercel/next.js/issues/85182) - \[upgrade] Version gate adding `--turbopack` flag: [#&#8203;85180](https://github.com/vercel/next.js/issues/85180) - Tweaks to blocking route error message: [#&#8203;85191](https://github.com/vercel/next.js/issues/85191) - Remove layout-router sticky/fixed debug warning: [#&#8203;85193](https://github.com/vercel/next.js/issues/85193) - \[cache components] persist cache bypass UI until it's disabled: [#&#8203;85190](https://github.com/vercel/next.js/issues/85190) - Only allow node runtime in proxy: [#&#8203;85139](https://github.com/vercel/next.js/issues/85139) - logger: skip logging full element: [#&#8203;85194](https://github.com/vercel/next.js/issues/85194) ##### Example Changes - docs: Convert relative imports to @&#8203; aliases in examples: [#&#8203;83813](https://github.com/vercel/next.js/issues/83813) - chore: add example with oxlint: [#&#8203;83842](https://github.com/vercel/next.js/issues/83842) - fix: correct typo 'incomming' to 'incoming' in with-mqtt-js example: [#&#8203;83887](https://github.com/vercel/next.js/issues/83887) - chore: improve oxlint example: [#&#8203;83898](https://github.com/vercel/next.js/issues/83898) - docs: update Dockerfile to use node:lts-alpine instead of node:18-alpine: [#&#8203;84229](https://github.com/vercel/next.js/issues/84229) - Use Array.from to avoid [@&#8203;ts-ignore](https://github.com/ts-ignore) when copying i18n.locales: [#&#8203;82148](https://github.com/vercel/next.js/issues/82148) - examples: Remove AMP example: [#&#8203;84355](https://github.com/vercel/next.js/issues/84355) - \[docs] fix(with-supabase): Update README env variables: [#&#8203;84745](https://github.com/vercel/next.js/issues/84745) ##### Misc Changes - Turbopack: remove `css_environment` from `Environment`: [#&#8203;83487](https://github.com/vercel/next.js/issues/83487) - Turbopack: Don't add client\_runtime\_entries to Route Handler compilation: [#&#8203;83655](https://github.com/vercel/next.js/issues/83655) - Turbopack: Only load capsize-font-metrics once: [#&#8203;83654](https://github.com/vercel/next.js/issues/83654) - \[CI] Fix GitHub Actions matrix configuration for React versions: [#&#8203;83677](https://github.com/vercel/next.js/issues/83677) - fix(Turbopack): Enable scope hoisting for large files or module counts: [#&#8203;83399](https://github.com/vercel/next.js/issues/83399) - \[turbopack] Lazily construct `resolved::Requests` for `EsmAssetReference`: [#&#8203;83662](https://github.com/vercel/next.js/issues/83662) - Update content-security-policy.mdx, fix development environment error: [#&#8203;83665](https://github.com/vercel/next.js/issues/83665) - tests: disable flaky deployment test while investigating upstream: [#&#8203;83705](https://github.com/vercel/next.js/issues/83705) - \[test] Update snapshots for Rspack + React 18: [#&#8203;83712](https://github.com/vercel/next.js/issues/83712) - Docs/sep paper cuts: [#&#8203;83689](https://github.com/vercel/next.js/issues/83689) - \[Turbopack] Remove `ssr-data` module context: [#&#8203;83626](https://github.com/vercel/next.js/issues/83626) - CI: use KV for test timing data: [#&#8203;83745](https://github.com/vercel/next.js/issues/83745) - Emit build error when `'use cache'` directive is misspelled: [#&#8203;83756](https://github.com/vercel/next.js/issues/83756) - docs(metadata): align default function export name with file name: [#&#8203;83796](https://github.com/vercel/next.js/issues/83796) - \[turbopack] Remove the `should_track_children` parameter of the turbo tasks backend: [#&#8203;83258](https://github.com/vercel/next.js/issues/83258) - docs(data-security): add bun package manager example: [#&#8203;83735](https://github.com/vercel/next.js/issues/83735) - Update next-intlayer reference in i18n doc: [#&#8203;83761](https://github.com/vercel/next.js/issues/83761) - Update Rspack production test manifest: [#&#8203;83790](https://github.com/vercel/next.js/issues/83790) - Update Rspack development test manifest: [#&#8203;83791](https://github.com/vercel/next.js/issues/83791) - Turbopack: chunking debugging utilities: [#&#8203;83801](https://github.com/vercel/next.js/issues/83801) - Removed link to maintain text consistency: [#&#8203;83644](https://github.com/vercel/next.js/issues/83644) - Turbopack: rename some fields in fs: [#&#8203;83808](https://github.com/vercel/next.js/issues/83808) - Turbopack: validate CSS without computing all paths: [#&#8203;83810](https://github.com/vercel/next.js/issues/83810) - \[test] Disable flaky navigation test: [#&#8203;83828](https://github.com/vercel/next.js/issues/83828) - docs: Type narrowing using LayoutProps, PageProps: [#&#8203;83692](https://github.com/vercel/next.js/issues/83692) - docs: implications of mutating cookies in server actions: [#&#8203;83691](https://github.com/vercel/next.js/issues/83691) - Only retry if canary fails on required jobs: [#&#8203;83851](https://github.com/vercel/next.js/issues/83851) - docs: Fix self-referential link to Middleware in middleware.mdx: [#&#8203;83854](https://github.com/vercel/next.js/issues/83854) - Update Rspack production test manifest: [#&#8203;83826](https://github.com/vercel/next.js/issues/83826) - Update generate-metadata.mdx: [#&#8203;81853](https://github.com/vercel/next.js/issues/81853) - Turbopack: remove lazy invalidated tasks: [#&#8203;83845](https://github.com/vercel/next.js/issues/83845) - Turbopack: remove Backend TaskState: [#&#8203;83846](https://github.com/vercel/next.js/issues/83846) - Turbopack: don't recompute empty parse results: [#&#8203;83883](https://github.com/vercel/next.js/issues/83883) - Turbopack: delete broken hmr benchmark: [#&#8203;83882](https://github.com/vercel/next.js/issues/83882) - Turbopack: only generate error string in error case: [#&#8203;83884](https://github.com/vercel/next.js/issues/83884) - docs: the as prop is still available in Pages Router: [#&#8203;83864](https://github.com/vercel/next.js/issues/83864) - Turbopack: map\_module\_batch: [#&#8203;83885](https://github.com/vercel/next.js/issues/83885) - Turbopack: Change run once signature to avoid exposing TaskId: [#&#8203;83844](https://github.com/vercel/next.js/issues/83844) - docs: Update command to use `npx` for tracing files: [#&#8203;83903](https://github.com/vercel/next.js/issues/83903) - Turbopack: ModuleGraphRef: [#&#8203;83890](https://github.com/vercel/next.js/issues/83890) - Update Rspack development test manifest: [#&#8203;83876](https://github.com/vercel/next.js/issues/83876) - Turbopack: make graph traversal sync: [#&#8203;83891](https://github.com/vercel/next.js/issues/83891) - chore: Fix test snapshot: [#&#8203;83901](https://github.com/vercel/next.js/issues/83901) - Update Rspack production test manifest: [#&#8203;83877](https://github.com/vercel/next.js/issues/83877) - docs: add `next.config.ts` Node.js native resolver: [#&#8203;83561](https://github.com/vercel/next.js/issues/83561) - Turbopack: add turbo\_tasks::run to run in turbo tasks scope without a task: [#&#8203;83847](https://github.com/vercel/next.js/issues/83847) - Turbopack: fix double codegen of some merged modules: [#&#8203;83886](https://github.com/vercel/next.js/issues/83886) - Turbopack: add traces to merged module computation: [#&#8203;83908](https://github.com/vercel/next.js/issues/83908) - Turbopack: RuleCondition support resourceQuery contains: [#&#8203;83468](https://github.com/vercel/next.js/issues/83468) - fix: add the missing comma in the document example: [#&#8203;83932](https://github.com/vercel/next.js/issues/83932) - Turbopack: Document the reasons for the current design of `parse_segment_config_from_source`: [#&#8203;83919](https://github.com/vercel/next.js/issues/83919) - Turbopack: extract parse\_source\_map\_comment: [#&#8203;83938](https://github.com/vercel/next.js/issues/83938) - Turbopack: enable nodelay for node.js pool socket: [#&#8203;83942](https://github.com/vercel/next.js/issues/83942) - feat: next-rspack-binding: [#&#8203;82811](https://github.com/vercel/next.js/issues/82811) - Only send notification if canary fails on required jobs: [#&#8203;83953](https://github.com/vercel/next.js/issues/83953) - Turbopack: allow to read State from turbo\_tasks::run: [#&#8203;83955](https://github.com/vercel/next.js/issues/83955) - Fix conclusion check for retry\_test workflow: [#&#8203;83960](https://github.com/vercel/next.js/issues/83960) - Add Descope to Auth libraries list: [#&#8203;83968](https://github.com/vercel/next.js/issues/83968) - \[turbopack] Track task durations in the task\_statistics file: [#&#8203;83522](https://github.com/vercel/next.js/issues/83522) - \[turbopack] Remove the `issue_path` feature and related functionality: [#&#8203;83920](https://github.com/vercel/next.js/issues/83920) - Turbopack: use turbo\_tasks::run in next.js to avoid task memory leak: [#&#8203;83848](https://github.com/vercel/next.js/issues/83848) - Update Rspack production test manifest: [#&#8203;83934](https://github.com/vercel/next.js/issues/83934) - Update Rspack development test manifest: [#&#8203;83933](https://github.com/vercel/next.js/issues/83933) - Turbopack: add test case that checks memory leak: [#&#8203;83849](https://github.com/vercel/next.js/issues/83849) - Turbopack: read project strongly consistent in project\_update: [#&#8203;83974](https://github.com/vercel/next.js/issues/83974) - Fix output comparison when checking conclusion of required jobs: [#&#8203;83986](https://github.com/vercel/next.js/issues/83986) - Turbopack: JsAnalyzer parse AssignExpr: [#&#8203;83962](https://github.com/vercel/next.js/issues/83962) - Turbopack: less eager manifest generation: [#&#8203;83736](https://github.com/vercel/next.js/issues/83736) - Turbopack: use depth as priority for merged module info: [#&#8203;83909](https://github.com/vercel/next.js/issues/83909) - Turbopack: "connect" tasks in turbo\_tasks::run too: [#&#8203;83975](https://github.com/vercel/next.js/issues/83975) - Update Rspack production test manifest: [#&#8203;83979](https://github.com/vercel/next.js/issues/83979) - Update Rspack development test manifest: [#&#8203;83980](https://github.com/vercel/next.js/issues/83980) - Turbopack: Make transient tasks root tasks too when called in turbo\_tasks::run: [#&#8203;83976](https://github.com/vercel/next.js/issues/83976) - Turbopack: trace state changes: [#&#8203;83977](https://github.com/vercel/next.js/issues/83977) - \[turbopack] cleanup analyzer: [#&#8203;83983](https://github.com/vercel/next.js/issues/83983) - \[Turbopack] Fix AST traversal for `this` in function default parameters: [#&#8203;83746](https://github.com/vercel/next.js/issues/83746) - \[turbopack] Consolodate logic for visiting functions to simplify state management: [#&#8203;82763](https://github.com/vercel/next.js/issues/82763) - \[turbopack] Track the scope in which variables are assigned: [#&#8203;82845](https://github.com/vercel/next.js/issues/82845) - \[turbopack] Set `liveness` of exports based on assignment analysis: [#&#8203;82802](https://github.com/vercel/next.js/issues/82802) - Turbopack: trace all state changes: [#&#8203;84053](https://github.com/vercel/next.js/issues/84053) - docs: We have dropped the CORS example linked: [#&#8203;84065](https://github.com/vercel/next.js/issues/84065) - docs: add pageExtensions note to Middleware and clarify default filename: [#&#8203;84045](https://github.com/vercel/next.js/issues/84045) - Fix TypeScript type error in example code: [#&#8203;84041](https://github.com/vercel/next.js/issues/84041) - Turbopack: fix test case and update project\_update to turbo\_tasks::run too: [#&#8203;83978](https://github.com/vercel/next.js/issues/83978) - Turbopack: run tests with multiple threads: [#&#8203;84074](https://github.com/vercel/next.js/issues/84074) - Turbopack: flush Node.js worker IPC on error: [#&#8203;84077](https://github.com/vercel/next.js/issues/84077) - Turbopack: parallelize scope hoisting computation: [#&#8203;83904](https://github.com/vercel/next.js/issues/83904) - Add test for JS resource size on navigation: [#&#8203;83731](https://github.com/vercel/next.js/issues/83731) - Update Rspack development test manifest: [#&#8203;84061](https://github.com/vercel/next.js/issues/84061) - Update Rspack production test manifest: [#&#8203;84060](https://github.com/vercel/next.js/issues/84060) - Turbopack: Document automatic Babel config support: [#&#8203;84002](https://github.com/vercel/next.js/issues/84002) - docs: Fix the title/path of the turbopack page on pages router: [#&#8203;84001](https://github.com/vercel/next.js/issues/84001) - Turbopack: remove references from ChunkData: [#&#8203;84076](https://github.com/vercel/next.js/issues/84076) - Turbopack: include availability hash in the ident of evaluated chunks groups: [#&#8203;84082](https://github.com/vercel/next.js/issues/84082) - \[turbopack] s/analyse/analyze/g: [#&#8203;84112](https://github.com/vercel/next.js/issues/84112) - \[Turbopack] avoid attaching referenced output assets to chunks: [#&#8203;75933](https://github.com/vercel/next.js/issues/75933) - fix(docs): Fix links in UPGRADING.md: [#&#8203;84114](https://github.com/vercel/next.js/issues/84114) - docs: improve dynamic routes example in project structure page: [#&#8203;84086](https://github.com/vercel/next.js/issues/84086) - docs: onRequestError request header type: [#&#8203;83988](https://github.com/vercel/next.js/issues/83988) - Turbopack: Improve persistent caching test case: [#&#8203;83205](https://github.com/vercel/next.js/issues/83205) - Turbopack: add more details to the graph panic: [#&#8203;84126](https://github.com/vercel/next.js/issues/84126) - docs: Cookies store access is async: [#&#8203;83987](https://github.com/vercel/next.js/issues/83987) - Bump Rust to nightly-2025-09-21: [#&#8203;83415](https://github.com/vercel/next.js/issues/83415) - Upgrade CodSpeed action and add analyzer benchmarks: [#&#8203;84135](https://github.com/vercel/next.js/issues/84135) - Turbopack: fix run\_once when returning error: [#&#8203;84142](https://github.com/vercel/next.js/issues/84142) - \[turbopack] Conditionally collect affecting sources: [#&#8203;83921](https://github.com/vercel/next.js/issues/83921) - Turbopack: slightly improve resolve\_source\_map\_sources: [#&#8203;84147](https://github.com/vercel/next.js/issues/84147) - Turbopack: RawEcmascriptModule: [#&#8203;81806](https://github.com/vercel/next.js/issues/81806) - Turbopack: add more details to the graph panic: [#&#8203;84143](https://github.com/vercel/next.js/issues/84143) - test: split app-middleware test per describe: [#&#8203;84130](https://github.com/vercel/next.js/issues/84130) - Update Rspack development test manifest: [#&#8203;84117](https://github.com/vercel/next.js/issues/84117) - script: improve release log generation: [#&#8203;83686](https://github.com/vercel/next.js/issues/83686) - Turbopack: split task\_execution\_completed into multiple methods: [#&#8203;84170](https://github.com/vercel/next.js/issues/84170) - Turbopack: only generate field if spans are enabled: [#&#8203;84184](https://github.com/vercel/next.js/issues/84184) - Turbopack: support more dynamic request with import map: [#&#8203;84178](https://github.com/vercel/next.js/issues/84178) - \[turbopack] defer a `value_to_string` operation until we need it: [#&#8203;84188](https://github.com/vercel/next.js/issues/84188) - Update Rspack production test manifest: [#&#8203;84165](https://github.com/vercel/next.js/issues/84165) - Revert "\[turbopack] Set `liveness` of exports based on assignment ana…: [#&#8203;84207](https://github.com/vercel/next.js/issues/84207) - Turbopack: increase retry duration, reduce busy looping when there is other work: [#&#8203;84171](https://github.com/vercel/next.js/issues/84171) - Turbopack: Try to avoid block\_in\_place in scope: [#&#8203;84172](https://github.com/vercel/next.js/issues/84172) - \[turbopack] Remove some bitmap clones: [#&#8203;84193](https://github.com/vercel/next.js/issues/84193) - Turbopack: lazier manifests, part deux: [#&#8203;84191](https://github.com/vercel/next.js/issues/84191) - Turbopack: avoid panic on updating output when a task was cancelled: [#&#8203;84214](https://github.com/vercel/next.js/issues/84214) - docs: nav\_title for long unbroken words: [#&#8203;84233](https://github.com/vercel/next.js/issues/84233) - Turbopack: Use `RawValue` for `mappings` inside `SourceMapJson`: [#&#8203;84208](https://github.com/vercel/next.js/issues/84208) - Update Rspack development test manifest: [#&#8203;84218](https://github.com/vercel/next.js/issues/84218) - Turbopack: fix NFT of readFileSync of relative path: [#&#8203;84155](https://github.com/vercel/next.js/issues/84155) - Turbopack: improve references benchmark: [#&#8203;84223](https://github.com/vercel/next.js/issues/84223) - Update Rspack production test manifest: [#&#8203;84217](https://github.com/vercel/next.js/issues/84217) - Turbopack: drop ASTs when only tracing: [#&#8203;84185](https://github.com/vercel/next.js/issues/84185) - docs: Include more detailed instructions on excluding from common AV solutions, including macOS Gatekeeper: [#&#8203;84206](https://github.com/vercel/next.js/issues/84206) - Turbopack: trace fs-extra calls: [#&#8203;84246](https://github.com/vercel/next.js/issues/84246) - \[test] Overhaul `Undefined default export` test suite: [#&#8203;84235](https://github.com/vercel/next.js/issues/84235) - Turbopack: Scope with work queue: [#&#8203;84225](https://github.com/vercel/next.js/issues/84225) - \[test] Make `Undefined default export` an e2e test suite: [#&#8203;84240](https://github.com/vercel/next.js/issues/84240) - \[turbopack] Conditionally create pages router data endpoints.: [#&#8203;84194](https://github.com/vercel/next.js/issues/84194) - Turbopack: parallel connect children: [#&#8203;84173](https://github.com/vercel/next.js/issues/84173) - Turbopack: count turbo\_tasks::run as foreground tasks to avoid being idle: [#&#8203;84245](https://github.com/vercel/next.js/issues/84245) - Turbopack: make persistent caching log line more clear: [#&#8203;84262](https://github.com/vercel/next.js/issues/84262) - Turbopack: make tracing nicer: [#&#8203;84263](https://github.com/vercel/next.js/issues/84263) - docs:Small improvement on the contribution guide for clarity: [#&#8203;84200](https://github.com/vercel/next.js/issues/84200) - Turbopack: Remove not-very-useful "Finished writing to disk in" log line: [#&#8203;84244](https://github.com/vercel/next.js/issues/84244) - Turbopack: follow up changes from parallel children: [#&#8203;84219](https://github.com/vercel/next.js/issues/84219) - \[turbopack] Simplify take\_issues and peek issues: [#&#8203;84199](https://github.com/vercel/next.js/issues/84199) - Update Rspack development test manifest: [#&#8203;84260](https://github.com/vercel/next.js/issues/84260) - Update Rspack production test manifest: [#&#8203;84259](https://github.com/vercel/next.js/issues/84259) - Turbopack: Scope with work queue: [#&#8203;84225](https://github.com/vercel/next.js/issues/84225) - \[test] Make `Undefined default export` an e2e test suite: [#&#8203;84240](https://github.com/vercel/next.js/issues/84240) - \[turbopack] Conditionally create pages router data endpoints.: [#&#8203;84194](https://github.com/vercel/next.js/issues/84194) - Turbopack: parallel connect children: [#&#8203;84173](https://github.com/vercel/next.js/issues/84173) - Turbopack: count turbo\_tasks::run as foreground tasks to avoid being idle: [#&#8203;84245](https://github.com/vercel/next.js/issues/84245) - Turbopack: make persistent caching log line more clear: [#&#8203;84262](https://github.com/vercel/next.js/issues/84262) - Turbopack: make tracing nicer: [#&#8203;84263](https://github.com/vercel/next.js/issues/84263) - docs:Small improvement on the contribution guide for clarity: [#&#8203;84200](https://github.com/vercel/next.js/issues/84200) - Turbopack: Remove not-very-useful "Finished writing to disk in" log line: [#&#8203;84244](https://github.com/vercel/next.js/issues/84244) - Turbopack: follow up changes from parallel children: [#&#8203;84219](https://github.com/vercel/next.js/issues/84219) - \[turbopack] Simplify take\_issues and peek issues: [#&#8203;84199](https://github.com/vercel/next.js/issues/84199) - Update Rspack development test manifest: [#&#8203;84260](https://github.com/vercel/next.js/issues/84260) - Update Rspack production test manifest: [#&#8203;84259](https://github.com/vercel/next.js/issues/84259) - \[test] Ignore pnpm update notifier: [#&#8203;84328](https://github.com/vercel/next.js/issues/84328) - \[test] Stop downloading unused test browsers when generating PR stats: [#&#8203;84329](https://github.com/vercel/next.js/issues/84329) - docs: remove repeated to: [#&#8203;84325](https://github.com/vercel/next.js/issues/84325) - Turbopack: Use more robust logic for absolute and percent-encoded URLs in source maps received from loaders: [#&#8203;84255](https://github.com/vercel/next.js/issues/84255) - Turbopack: only replace edge dynamic calls in dev: [#&#8203;84354](https://github.com/vercel/next.js/issues/84354) - \[turbopack] Remove a bunch of dead code from the source map implementation: [#&#8203;84318](https://github.com/vercel/next.js/issues/84318) - Turbopack: prevent duplicate NFT modules: [#&#8203;84369](https://github.com/vercel/next.js/issues/84369) - docs: Remove AMP docs: [#&#8203;84357](https://github.com/vercel/next.js/issues/84357) - docs: Type helpers don't need to be imported: [#&#8203;84265](https://github.com/vercel/next.js/issues/84265) - Turbopack: Add docs for debugIds option: [#&#8203;84375](https://github.com/vercel/next.js/issues/84375) - Remove references to size metrics in next build from our docs: [#&#8203;83823](https://github.com/vercel/next.js/issues/83823) - Bump to swc v42: [#&#8203;83477](https://github.com/vercel/next.js/issues/83477) - Turbopack: skip invalidating a task on cell/output change when the dependency is outdated: [#&#8203;84376](https://github.com/vercel/next.js/issues/84376) - Turbopack: trace module.createRequire: [#&#8203;84335](https://github.com/vercel/next.js/issues/84335) - Update failing e2e deploy tests: [#&#8203;84395](https://github.com/vercel/next.js/issues/84395) - Turbopack: Webpack loader `this.fs.readFile`: [#&#8203;83313](https://github.com/vercel/next.js/issues/83313) - Improve tests: [#&#8203;84374](https://github.com/vercel/next.js/issues/84374) - Revamp Next.js boilerplate: [#&#8203;81945](https://github.com/vercel/next.js/issues/81945) - Add test for twoslash: [#&#8203;84267](https://github.com/vercel/next.js/issues/84267) - Docs/project structure polish: [#&#8203;84386](https://github.com/vercel/next.js/issues/84386) - Bump to swc v44: [#&#8203;84420](https://github.com/vercel/next.js/issues/84420) - Turbopack: don't fail for parse errors in tracing: [#&#8203;84408](https://github.com/vercel/next.js/issues/84408) - Update Rspack development test manifest: [#&#8203;84365](https://github.com/vercel/next.js/issues/84365) - Update Rspack production test manifest: [#&#8203;84366](https://github.com/vercel/next.js/issues/84366) - \[ci]: remove PPR-specific CI jobs: [#&#8203;84439](https://github.com/vercel/next.js/issues/84439) - docs: Verbose troubleshooting for unconfigured hosts: [#&#8203;84271](https://github.com/vercel/next.js/issues/84271) - Update Rspack production test manifest: [#&#8203;84398](https://github.com/vercel/next.js/issues/84398) - Add gt-next to i18n list: [#&#8203;84396](https://github.com/vercel/next.js/issues/84396) - \[ci]: fix build-output-prerender to support segment cache env: [#&#8203;84467](https://github.com/vercel/next.js/issues/84467) - \[ci]: fix app-static snapshots with clientSegmentCache: [#&#8203;84468](https://github.com/vercel/next.js/issues/84468) - Turbopack: Only benchmark file IO on `next dev`: [#&#8203;84474](https://github.com/vercel/next.js/issues/84474) - Turbopack: improve incremental build performance when deployment id changes: [#&#8203;84460](https://github.com/vercel/next.js/issues/84460) - fix: Missing link in Lazy Loading docs: [#&#8203;84473](https://github.com/vercel/next.js/issues/84473) - docs: simplify streaming metadata: [#&#8203;84253](https://github.com/vercel/next.js/issues/84253) - make withRspack idempotent: [#&#8203;84482](https://github.com/vercel/next.js/issues/84482) - Turbopack: Use strongly consistent reads in `random_change` unit test: [#&#8203;84505](https://github.com/vercel/next.js/issues/84505) - Update Rspack development test manifest: [#&#8203;84480](https://github.com/vercel/next.js/issues/84480) - Update Rspack production test manifest: [#&#8203;84481](https://github.com/vercel/next.js/issues/84481) - \[ci]: remove test from segment cache manifest: [#&#8203;84507](https://github.com/vercel/next.js/issues/84507) - \[ci]: de-flake client cache test: [#&#8203;84517](https://github.com/vercel/next.js/issues/84517) - Revert "Turbopack: skip invalidating a task on cell/output change when the dependency is outdated": [#&#8203;84526](https://github.com/vercel/next.js/issues/84526) - next mcp router - Revert "next mcp router" - test: Use nextTestSetup in scss tests: [#&#8203;84501](https://github.com/vercel/next.js/issues/84501) - \[turbopack\[ Use the configured hasher to implementh Hash for AutoMap and AutoSet: [#&#8203;84542](https://github.com/vercel/next.js/issues/84542) - Turbopack: debug ids for server chunks: [#&#8203;84557](https://github.com/vercel/next.js/issues/84557) - CI: Enable `experimental.isolatedDevBuild` for `test-unit`: [#&#8203;84559](https://github.com/vercel/next.js/issues/84559) - \[test]: convert prefetching tests to be segmentCache compatible: [#&#8203;84521](https://github.com/vercel/next.js/issues/84521) - CI: Enable `experimental.isolatedDevBuild` for `test-prod`: [#&#8203;84556](https://github.com/vercel/next.js/issues/84556) - Add `.next/dev/types` to CNA templates tsconfig include: [#&#8203;84566](https://github.com/vercel/next.js/issues/84566) - CI: Enable `experimental.isolatedDevBuild` for `test-integration`: [#&#8203;84558](https://github.com/vercel/next.js/issues/84558) - Update Rspack development test manifest: [#&#8203;84548](https://github.com/vercel/next.js/issues/84548) - Add a webpack flag to create next app. Ensure that if you set it or decline turbopack we set the --webpack flag on the generated project: [#&#8203;84476](https://github.com/vercel/next.js/issues/84476) - Update Rspack production test manifest: [#&#8203;84549](https://github.com/vercel/next.js/issues/84549) - CI: Enable `experimental.isolatedDevBuild` for `test-dev`: [#&#8203;84562](https://github.com/vercel/next.js/issues/84562) - \[test] Unflake static image test: [#&#8203;84535](https://github.com/vercel/next.js/issues/84535) - Turbopack: Lower the IO concurrency limit in CI tests: [#&#8203;84508](https://github.com/vercel/next.js/issues/84508) - Add documentation for experimental adapters handling: [#&#8203;83737](https://github.com/vercel/next.js/issues/83737) - Turbopack: improve next/dynamic eventual consistentcy: [#&#8203;84560](https://github.com/vercel/next.js/issues/84560) - fix hidden errors in router-act: [#&#8203;84603](https://github.com/vercel/next.js/issues/84603) - fix(cna): use correct postcss plugins syntax: [#&#8203;79949](https://github.com/vercel/next.js/issues/79949) - Turbopack: absolute requests in webpack loader: [#&#8203;84575](https://github.com/vercel/next.js/issues/84575) - Update Rspack development test manifest: [#&#8203;84592](https://github.com/vercel/next.js/issues/84592) - Update Rspack production test manifest: [#&#8203;84593](https://github.com/vercel/next.js/issues/84593) - Turbopack: Remove workaround in hyper for rustc miscompilation bug on macos intel: [#&#8203;84578](https://github.com/vercel/next.js/issues/84578) - Turbopack: add manual worker count override: [#&#8203;84454](https://github.com/vercel/next.js/issues/84454) - Turbopack: don't ignore TS parse errors: [#&#8203;84597](https://github.com/vercel/next.js/issues/84597) - Add middleware to routes order doc: [#&#8203;84618](https://github.com/vercel/next.js/issues/84618) - \[create-next-app]: prompt to use recommended options: [#&#8203;84570](https://github.com/vercel/next.js/issues/84570) - Update labeler: [#&#8203;84623](https://github.com/vercel/next.js/issues/84623) - Turbopack: use mmap advise to help the OS preloading: [#&#8203;84379](https://github.com/vercel/next.js/issues/84379) - Turbopack: skip invalidating a task on cell/output change when the dependency is outdated: [#&#8203;84551](https://github.com/vercel/next.js/issues/84551) - Turbopack: follow-up changes from untracked tracing: [#&#8203;84629](https://github.com/vercel/next.js/issues/84629) - Turbopack: sourcemaps for JSON modules: [#&#8203;84611](https://github.com/vercel/next.js/issues/84611) - Turbopack: avoid race condition when updating cells: [#&#8203;84598](https://github.com/vercel/next.js/issues/84598) - docs: update core documentation for Turbopack as default bundler: [#&#8203;84282](https://github.com/vercel/next.js/issues/84282) - Update Rspack development test manifest: [#&#8203;84631](https://github.com/vercel/next.js/issues/84631) - \[turbopack] Only send the filesystem caching timing messages for slow events: [#&#8203;84646](https://github.com/vercel/next.js/issues/84646) - docs: `experimental.isolatedDevBuild`: [#&#8203;84656](https://github.com/vercel/next.js/issues/84656) - docs: add note clarifying project root in monorepo: [#&#8203;84628](https://github.com/vercel/next.js/issues/84628) - Fix flakey overlay feedback test: [#&#8203;84662](https://github.com/vercel/next.js/issues/84662) - \[ci]: update flake detection to only run in Turbopack: [#&#8203;84659](https://github.com/vercel/next.js/issues/84659) - \[ci]: move router-act to top level testing utils: [#&#8203;84653](https://github.com/vercel/next.js/issues/84653) - \[tests]: de-flake client-cache.parallel-routes.test.ts: [#&#8203;84655](https://github.com/vercel/next.js/issues/84655) - \[create-next-app]: add eslint to default template: [#&#8203;84661](https://github.com/vercel/next.js/issues/84661) - Update Rspack production test manifest: [#&#8203;84630](https://github.com/vercel/next.js/issues/84630) - \[test] Assert on stable error codes: [#&#8203;84671](https://github.com/vercel/next.js/issues/84671) - Turbopack: convert HashMap to IndexMap for deterministic tasks: [#&#8203;84641](https://github.com/vercel/next.js/issues/84641) - Add note about $ACTION\_ properties, remove reference to .entries(): [#&#8203;84459](https://github.com/vercel/next.js/issues/84459) - Fix typo on welcome page: [#&#8203;84715](https://github.com/vercel/next.js/issues/84715) - Rspack: Fix lockfile test on rspack: [#&#8203;84707](https://github.com/vercel/next.js/issues/84707) - \[turbopack] Emit a warning when there are too many matches from a FileSourceReference: [#&#8203;84701](https://github.com/vercel/next.js/issues/84701) - Update beta tag: [#&#8203;84725](https://github.com/vercel/next.js/issues/84725) - \[next-codemod] fix: Set codemod version to the first introduced version: [#&#8203;84726](https://github.com/vercel/next.js/issues/84726) - \[next-upgrade] misc: update comment: [#&#8203;84727](https://github.com/vercel/next.js/issues/84727) - Turbopack: use vector instead of hash map: [#&#8203;84696](https://github.com/vercel/next.js/issues/84696) - Revert "docs: nav\_title for long unbroken words ([#&#8203;84233](https://github.com/vercel/next.js/issues/84233))": [#&#8203;84346](https://github.com/vercel/next.js/issues/84346) - \[turbopack] tweak the doc on the inner graph optimization: [#&#8203;84752](https://github.com/vercel/next.js/issues/84752) - \[turbopack] Fix a few references to caching configuration as it is no longer canary guarded: [#&#8203;84761](https://github.com/vercel/next.js/issues/84761) - Add 16.0.0-beta.0 to next/third-parties peerDeps: [#&#8203;84741](https://github.com/vercel/next.js/issues/84741) - \[eslint-plugin] Remove `eslint-v8` testing: [#&#8203;84721](https://github.com/vercel/next.js/issues/84721) - Update Rspack production test manifest: [#&#8203;84729](https://github.com/vercel/next.js/issues/84729) - Update Rspack development test manifest: [#&#8203;84730](https://github.com/vercel/next.js/issues/84730) - fix: release next-rspack ci: [#&#8203;84673](https://github.com/vercel/next.js/issues/84673) - \[cna] Preserve existing config option when enabling React Compiler: [#&#8203;84663](https://github.com/vercel/next.js/issues/84663) - Prevent failing `types-and-precompiled` from corrupting terminal output: [#&#8203;84799](https://github.com/vercel/next.js/issues/84799) - Update test/CNA templates React version to 19.2.0: [#&#8203;84736](https://github.com/vercel/next.js/issues/84736) - Turbopack: use the same serialization method for lookup as for storing: [#&#8203;84765](https://github.com/vercel/next.js/issues/84765) - Turbopack: update petgraph: [#&#8203;84757](https://github.com/vercel/next.js/issues/84757) - \[turbopack] Issue 'too many matches' warning for DirAssets also: [#&#8203;84768](https://github.com/vercel/next.js/issues/84768) - Revert "Fix flakey overlay feedback test": [#&#8203;84819](https://github.com/vercel/next.js/issues/84819) - \[test]: de-flake client-cache.original.test.ts: [#&#8203;84831](https://github.com/vercel/next.js/issues/84831) - \[ci]: set NEXT\_TEST\_VERSION to release tag for deploy tests: [#&#8203;84840](https://github.com/vercel/next.js/issues/84840) - docs: soft 404's, Suspense and loading.tsx: [#&#8203;83867](https://github.com/vercel/next.js/issues/83867) - \[turbopack] Discuss Core Web vitals in our bundle size gap docs: [#&#8203;84837](https://github.com/vercel/next.js/issues/84837) - \[turbopack] document missing webpack loader features: [#&#8203;84849](https://github.com/vercel/next.js/issues/84849) - \[turbopack] fix typo in docs: [#&#8203;84868](https://github.com/vercel/next.js/issues/84868) - \[turbopack] Remove the implementation of `TaskInput` from `AutoSet`: [#&#8203;84867](https://github.com/vercel/next.js/issues/84867) - Update turborepo env in workflows: [#&#8203;84879](https://github.com/vercel/next.js/issues/84879) - Turbopack: take task cache log before starting snapshot: [#&#8203;84755](https://github.com/vercel/next.js/issues/84755) - Turbopack: allow gzip compression on trace files: [#&#8203;84685](https://github.com/vercel/next.js/issues/84685) - Turbopack: process task result as part of the task completion: [#&#8203;84638](https://github.com/vercel/next.js/issues/84638) - Add test for eslint-config-next: [#&#8203;84838](https://github.com/vercel/next.js/issues/84838) - Turbopack: lower level drop collectibles: [#&#8203;84895](https://github.com/vercel/next.js/issues/84895) - docs: next/dynamic headings: [#&#8203;84492](https://github.com/vercel/next.js/issues/84492) - Turbopack: expose client static assets correctly: [#&#8203;84695](https://github.com/vercel/next.js/issues/84695) - Turbopack: better errors for strip\_prefix\_len: [#&#8203;84882](https://github.com/vercel/next.js/issues/84882) - Turbopack: improve missing factory message: [#&#8203;84881](https://github.com/vercel/next.js/issues/84881) - CNA: Update template to use ESLint Flat config: [#&#8203;84917](https://github.com/vercel/next.js/issues/84917) - fix: process.env.TURBOPACK maybe undefined: [#&#8203;84885](https://github.com/vercel/next.js/issues/84885) - Turbopack: fix spacing on EcmascriptModuleAssetType: [#&#8203;84915](https://github.com/vercel/next.js/issues/84915) - Update Rspack development test manifest: [#&#8203;84890](https://github.com/vercel/next.js/issues/84890) - Update Rspack production test manifest: [#&#8203;84891](https://github.com/vercel/next.js/issues/84891) - Fix url-imports test: [#&#8203;84922](https://github.com/vercel/next.js/issues/84922) - Turbopack: fix pageExtensions precedence: [#&#8203;84926](https://github.com/vercel/next.js/issues/84926) - Turbopack: fix client reference order for shared references: [#&#8203;84760](https://github.com/vercel/next.js/issues/84760) - Turbopack: turn panic into bail: [#&#8203;84927](https://github.com/vercel/next.js/issues/84927) - Docs/sync with new features 0: [#&#8203;84861](https://github.com/vercel/next.js/issues/84861) - Turbopack: transpile runtime with swc: [#&#8203;84931](https://github.com/vercel/next.js/issues/84931) - docs: x-nextjs-stale-time header: [#&#8203;84901](https://github.com/vercel/next.js/issues/84901) - docs: Templates on navigation: [#&#8203;84493](https://github.com/vercel/next.js/issues/84493) - Docs/sync with new features 0: [#&#8203;84861](https://github.com/vercel/next.js/issues/84861) - Turbopack: transpile runtime with swc: [#&#8203;84931](https://github.com/vercel/next.js/issues/84931) - docs: x-nextjs-stale-time header: [#&#8203;84901](https://github.com/vercel/next.js/issues/84901) - docs: Templates on navigation: [#&#8203;84493](https://github.com/vercel/next.js/issues/84493) - chore: Attempt to fix ppr-partial-hydration flakiness: [#&#8203;84672](https://github.com/vercel/next.js/issues/84672) - Update Rspack production test manifest: [#&#8203;84939](https://github.com/vercel/next.js/issues/84939) - Turbopack: rename Persistent Caching: [#&#8203;84896](https://github.com/vercel/next.js/issues/84896) - Turbopack: Add ChunkedVec test case: [#&#8203;84756](https://github.com/vercel/next.js/issues/84756) - docs: Add missing codemod docs: [#&#8203;84980](https://github.com/vercel/next.js/issues/84980) - Update prefetching.mdx providing more clarity on the usage of `router.prefetch()`: [#&#8203;84903](https://github.com/vercel/next.js/issues/84903) - docs: getting started installation and next lint removal: [#&#8203;84781](https://github.com/vercel/next.js/issues/84781) - docs: Split "Get Started: Route Handlers and Middleware" to Route Handlers and Proxy: [#&#8203;84708](https://github.com/vercel/next.js/issues/84708) - docs: Replace Middleware docs to Proxy: [#&#8203;84709](https://github.com/vercel/next.js/issues/84709) - chore: Remove redundant copy of rust reqwest crate: [#&#8203;84982](https://github.com/vercel/next.js/issues/84982) - \[turbopack] Allow withRspack to work even if you already have NEXT\_RSPACK set: [#&#8203;84987](https://github.com/vercel/next.js/issues/84987) - Turbopack: Track errored tasks as dependency when using untracked(): [#&#8203;84914](https://github.com/vercel/next.js/issues/84914) - Turbopack: shard amount need to grow quadratic to cpu count to keep propability of conflicts constant: [#&#8203;84921](https://github.com/vercel/next.js/issues/84921) - Turbopack: fix race condition when adding dependencies: [#&#8203;84946](https://github.com/vercel/next.js/issues/84946) - Turbopack: make tracing warning not fail build: [#&#8203;85032](https://github.com/vercel/next.js/issues/85032) - \[ci]: increase number of runners for test jobs: [#&#8203;85049](https://github.com/vercel/next.js/issues/85049) - add a message about Turbopack tracing: [#&#8203;85044](https://github.com/vercel/next.js/issues/85044) - Turbopack: Implement next/font/local declarations option: [#&#8203;85051](https://github.com/vercel/next.js/issues/85051) - docs: experimentalClientMaxBodySize: [#&#8203;85105](https://github.com/vercel/next.js/issues/85105) - Docs: Add `--debug-build-paths` next build option: [#&#8203;85097](https://github.com/vercel/next.js/issues/85097) - Docs: Add note on tag limits for `cacheTag`: [#&#8203;85106](https://github.com/vercel/next.js/issues/85106) - docs: no switcher for TS only examples: [#&#8203;85109](https://github.com/vercel/next.js/issues/85109) - fix: Handle non-directory files in cache folder when performing cleanup: [#&#8203;84930](https://github.com/vercel/next.js/issues/84930) - Turbopack: Suggest using system certs when a TLS error occurs: [#&#8203;85009](https://github.com/vercel/next.js/issues/85009) - \[turbopack] Try to fix v8 crashes on github actions: [#&#8203;85114](https://github.com/vercel/next.js/issues/85114) - docs: Update to Zod v4 syntax: [#&#8203;84807](https://github.com/vercel/next.js/issues/84807) - Docs: Add version history for `next lint` deprecation and update error message: [#&#8203;85100](https://github.com/vercel/next.js/issues/85100) - Turbopack: improve module evaluation name: [#&#8203;84633](https://github.com/vercel/next.js/issues/84633) - \[test] Current behavior of dynamic APIs integration with React DevTools: [#&#8203;85111](https://github.com/vercel/next.js/issues/85111) - \[Cache Components] fix env labels in perf track test: [#&#8203;85132](https://github.com/vercel/next.js/issues/85132) - Turbopack: Disable LightningCSS MediaRangeSyntax feature: [#&#8203;85086](https://github.com/vercel/next.js/issues/85086) - Don't expliclitly set the `--turbopack` flag in Create Next App, it is no longer necessary: [#&#8203;85117](https://github.com/vercel/next.js/issues/85117) - \[turbopack] Remove the canary icon from the cache components docs: [#&#8203;85149](https://github.com/vercel/next.js/issues/85149) - Bump swc to v45: [#&#8203;85143](https://github.com/vercel/next.js/issues/85143) - \[test] Fix test-dev with --projects: [#&#8203;85167](https://github.com/vercel/next.js/issues/85167) - \[test] Update snapshots: [#&#8203;85171](https://github.com/vercel/next.js/issues/85171) - docs: mcp: [#&#8203;85010](https://github.com/vercel/next.js/issues/85010) - Docs: Explain Sass tilde import difference: [#&#8203;85041](https://github.com/vercel/next.js/issues/85041) - Turbopack: don't fail on export type in use server: [#&#8203;85054](https://github.com/vercel/next.js/issues/85054) - Turbopack: speedup module merging: [#&#8203;85043](https://github.com/vercel/next.js/issues/85043) - docs: remove experimental\_ppr route segment config: [#&#8203;85188](https://github.com/vercel/next.js/issues/85188) - Rename "blocking route" error docs page: [#&#8203;85189](https://github.com/vercel/next.js/issues/85189) - docs: upgrade from 15 to 16: [#&#8203;85176](https://github.com/vercel/next.js/issues/85176) - Docs: Explain Sass tilde import difference: [#&#8203;85041](https://github.com/vercel/next.js/issues/85041) - Turbopack: don't fail on export type in use server: [#&#8203;85054](https://github.com/vercel/next.js/issues/85054) - Turbopack: speedup module merging: [#&#8203;85043](https://github.com/vercel/next.js/issues/85043) - docs: remove experimental\_ppr route segment config: [#&#8203;85188](https://github.com/vercel/next.js/issues/85188) - Rename "blocking route" error docs page: [#&#8203;85189](https://github.com/vercel/next.js/issues/85189) - docs: upgrade from 15 to 16: [#&#8203;85176](https://github.com/vercel/next.js/issues/85176) ##### Credits Huge thanks to [@&#8203;mischnic](https://github.com/mischnic), [@&#8203;timneutkens](https://github.com/timneutkens), [@&#8203;unstubbable](https://github.com/unstubbable), [@&#8203;wyattjoh](https://github.com/wyattjoh), [@&#8203;Cy-Tek](https://github.com/Cy-Tek), [@&#8203;lukesandberg](https://github.com/lukesandberg), [@&#8203;OoMNoO](https://github.com/OoMNoO), [@&#8203;ztanner](https://github.com/ztanner), [@&#8203;icyJoseph](https://github.com/icyJoseph), [@&#8203;huozhi](https://github.com/huozhi), [@&#8203;gnoff](https://github.com/gnoff), [@&#8203;ijjk](https://github.com/ijjk), [@&#8203;povilasv](https://github.com/povilasv), [@&#8203;dwrth](https://github.com/dwrth), [@&#8203;obendev](https://github.com/obendev), [@&#8203;aymericzip](https://github.com/aymericzip), [@&#8203;devjiwonchoi](https://github.com/devjiwonchoi), [@&#8203;SyMind](https://github.com/SyMind), [@&#8203;vercel-release-bot](https://github.com/vercel-release-bot), [@&#8203;Shireee](https://github.com/Shireee), [@&#8203;eps1lon](https://github.com/eps1lon), [@&#8203;dharun36](https://github.com/dharun36), [@&#8203;kachkaev](https://github.com/kachkaev), [@&#8203;bgw](https://github.com/bgw), [@&#8203;yousefdawood7](https://github.com/yousefdawood7), [@&#8203;TheAlexLichter](https://github.com/TheAlexLichter), [@&#8203;sokra](https://github.com/sokra), [@&#8203;ericx0099](https://github.com/ericx0099), [@&#8203;leerob](https://github.com/leerob), [@&#8203;Copilot](https://github.com/Copilot), [@&#8203;fireairforce](https://github.com/fireairforce), [@&#8203;fufuShih](https://github.com/fufuShih), [@&#8203;anvibanga](https://github.com/anvibanga), [@&#8203;hayes](https://github.com/hayes), [@&#8203;Milancen123](https://github.com/Milancen123), [@&#8203;martinfrancois](https://github.com/martinfrancois), [@&#8203;lubieowoce](https://github.com/lubieowoce), [@&#8203;gaojude](https://github.com/gaojude), [@&#8203;lachlanjc](https://github.com/lachlanjc), [@&#8203;liketiger](https://github.com/liketiger), [@&#8203;styfle](https://github.com/styfle), [@&#8203;aaronbrown-vercel](https://github.com/aaronbrown-vercel), [@&#8203;Samii2383](https://github.com/Samii2383), [@&#8203;FelipeChicaiza](https://github.com/FelipeChicaiza), [@&#8203;kevva](https://github.com/kevva), [@&#8203;m1abdullahh](https://github.com/m1abdullahh), [@&#8203;F7b5](https://github.com/F7b5), [@&#8203;Anshuman71](https://github.com/Anshuman71), [@&#8203;RobertFent](https://github.com/RobertFent), [@&#8203;poteto](https://github.com/poteto), [@&#8203;chloe-yan](https://github.com/chloe-yan), [@&#8203;sireesha-siri](https://github.com/sireesha-siri), [@&#8203;brian-lou](https://github.com/brian-lou), [@&#8203;joao4xz](https://github.com/joao4xz), [@&#8203;stefanprobst](https://github.com/stefanprobst), [@&#8203;samselikoff](https://github.com/samselikoff), [@&#8203;acdlite](https://github.com/acdlite), [@&#8203;gwkline](https://github.com/gwkline), [@&#8203;bgub](https://github.com/bgub), [@&#8203;brock-statsig](https://github.com/brock-statsig), [@&#8203;karlhorky](https://github.com/karlhorky), [@&#8203;feedthejim](https://github.com/feedthejim), [@&#8203;CarloQuick](https://github.com/CarloQuick), [@&#8203;greguintow](https://github.com/greguintow), [@&#8203;hallucinogenizer](https://github.com/hallucinogenizer), [@&#8203;sebmarkbage](https://github.com/sebmarkbage), [@&#8203;delbaoliveira](https://github.com/delbaoliveira), [@&#8203;makandrr](https://github.com/makandrr), [@&#8203;seeplusplus](https://github.com/seeplusplus), and [@&#8203;serhalp](https://github.com/serhalp) for helping! </details> <details> <summary>nodejs/node (node)</summary> ### [`v25`](https://github.com/nodejs/node/blob/HEAD/CHANGELOG.md#20151125-Version-0128-LTS--rvagg) <a href="doc/changelogs/CHANGELOG_V012.md#0.12.8">Moved to doc/changelogs/CHANGELOG\_V012.md#0.12.8</a>. ### [`v24`](https://github.com/nodejs/node/blob/HEAD/CHANGELOG.md#2015-05-24-Version-210-rvagg) <a href="doc/changelogs/CHANGELOG_IOJS.md#2.1.0">Moved to doc/changelogs/CHANGELOG\_IOJS.md#2.1.0</a>. ### [`v23`](https://github.com/nodejs/node/blob/HEAD/CHANGELOG.md#2016-05-05-Version-610-Current--Fishrock123) <a href="doc/changelogs/CHANGELOG_V6.md#6.1.0">Moved to doc/changelogs/CHANGELOG\_V6.md#6.1.0</a>. ### [`v22`](https://github.com/nodejs/node/blob/HEAD/CHANGELOG.md#2016-03-22-Version-441-Argon-LTS--thealphanerd) <a href="doc/changelogs/CHANGELOG_V4.md#4.4.1">Moved to doc/changelogs/CHANGELOG\_V4.md#4.4.1</a>. ### [`v21`](https://github.com/nodejs/node/blob/HEAD/CHANGELOG.md#2016-01-21-Version-426-Argon-LTS--TheAlphaNerd) <a href="doc/changelogs/CHANGELOG_V4.md#4.2.6">Moved to doc/changelogs/CHANGELOG\_V4.md#4.2.6</a>. ### [`v20`](https://github.com/nodejs/node/blob/HEAD/CHANGELOG.md#2016-05-06-Version-01214-Maintenance--rvagg) <a href="doc/changelogs/CHANGELOG_V012.md#0.12.14">Moved to doc/changelogs/CHANGELOG\_V012.md#0.12.14</a>. </details> <details> <summary>gpbl/react-day-picker (react-day-picker)</summary> ### [`v9.14.0`](https://github.com/gpbl/react-day-picker/releases/tag/v9.14.0) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.13.2...v9.14.0) This release introduces a new `resetOnSelect` prop and adds support for the Hijri calendar. #### Resetting Selections in Range Mode When in range selection mode, use the new [resetOnSelect](https://daypicker.dev/selections/range-mode#reset-selection) prop to start a new range when a full range is already selected. #### Hijri Calendar To use the Hijri (Umm al-Qura) calendar, import `DayPicker` from `react-day-picker/hijri`: ```tsx import { DayPicker } from "react-day-picker/hijri"; export function HijriCalendar() { return <DayPicker />; } ``` Read more in the [documentation](https://daypicker.dev/localization/hijri) and play with it in [playground](https://daypicker.dev/playground?calendar=hijri). #### What's Changed - feat: Add Hijri calendar support (Umm al-Qura) by [@&#8203;ws-rush](https://github.com/ws-rush) in [#&#8203;2904](https://github.com/gpbl/react-day-picker/pull/2904) - feat: New `resetOnSelect` prop to reset date range when selecting date with completed range by [@&#8203;rodgobbi](https://github.com/rodgobbi) in [#&#8203;2906](https://github.com/gpbl/react-day-picker/pull/2906) - feat: add default `lang` prop to DayPicker root element by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2907](https://github.com/gpbl/react-day-picker/pull/2907) #### New Contributors - [@&#8203;ws-rush](https://github.com/ws-rush) made their first contribution in [#&#8203;2904](https://github.com/gpbl/react-day-picker/pull/2904) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.13.2...v9.14.0> ### [`v9.13.2`](https://github.com/gpbl/react-day-picker/releases/tag/v9.13.2) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.13.1...v9.13.2) #### What's Changed - fix(build): add correct type declaration for style.css export by [@&#8203;NotNestor](https://github.com/NotNestor) in [#&#8203;2897](https://github.com/gpbl/react-day-picker/pull/2897) - fix(locale): correct Northern Sami (se) and Japanese Hiragana (ja-Hira) labels by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2898](https://github.com/gpbl/react-day-picker/pull/2898) #### New Contributors - [@&#8203;NotNestor](https://github.com/NotNestor) made their first contribution in [#&#8203;2897](https://github.com/gpbl/react-day-picker/pull/2897) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.13.1...v9.13.2> ### [`v9.13.1`](https://github.com/gpbl/react-day-picker/releases/tag/v9.13.1) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.13.0...v9.13.1) Persian calendar improvements. #### What's Changed - feat: add narrow weekday format for Persian calendar by [@&#8203;rezaaa](https://github.com/rezaaa) in [#&#8203;2895](https://github.com/gpbl/react-day-picker/pull/2895) #### New Contributors - [@&#8203;rezaaa](https://github.com/rezaaa) made their first contribution in [#&#8203;2895](https://github.com/gpbl/react-day-picker/pull/2895) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.13.0...v9.13.1> ### [`v9.13.0`](https://github.com/gpbl/react-day-picker/releases/tag/v9.13.0) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.12.0...v9.13.0) This release introduces an experimental `noonSafe` prop to help deal with historical time zones with second offsets. See <https://daypicker.dev/localization/setting-time-zone#noonsafe> for more details. #### What's Changed - feat: add experimental `noonSafe` prop for timezone offsets by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2879](https://github.com/gpbl/react-day-picker/pull/2879) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.12.0...v9.13.0> ### [`v9.12.0`](https://github.com/gpbl/react-day-picker/releases/tag/v9.12.0) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.11.3...v9.12.0) This release adds translated labels to built-in locales and fixes issues with array modifiers and the Hebrew calendar. #### Translated Locales DayPicker locales now ship with localized labels (e.g., “Go to next month”, “Today”), so you no longer need to supply them via `labels`. To use a locale: ```tsx import { es } from "react-day-picker/locale"; <DayPicker locale={es} /> // Use Spanish locale, now with translated labels. ``` If you previously set the `labels` prop for translations, you can remove it. For details on switching locales, see <https://daypicker.dev/localization/changing-locale>. #### What's Changed - feat: add locale-aware labels and translated locale wrappers by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2861](https://github.com/gpbl/react-day-picker/pull/2861) - fix: match `Date[]` modifiers by day by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2865](https://github.com/gpbl/react-day-picker/pull/2865) - fix: correct Hebrew date conversion timezone handling by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2870](https://github.com/gpbl/react-day-picker/pull/2870) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.11.3...v9.12.0> ### [`v9.11.3`](https://github.com/gpbl/react-day-picker/releases/tag/v9.11.3) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.11.2...v9.11.3) Rendered HTML now includes empty cells in grids when `endMonth` is set, and fixes the v9.11.2 regression where JSDOM tests could fail when focusing disabled days. **Possible low impact breaking change:** The grid markup changed, so brittle snapshot tests or custom CSS that depended on the old structure may need updates. Adjust snapshots/CSS accordingly. #### What's Changed - fix: ensure final week renders when `endMonth` clips the calendar by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2856](https://github.com/gpbl/react-day-picker/pull/2856) - fix: prevent selecting disabled focused days by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2860](https://github.com/gpbl/react-day-picker/pull/2860) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.11.2...v9.11.3> ### [`v9.11.2`](https://github.com/gpbl/react-day-picker/releases/tag/v9.11.2) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.11.1...v9.11.2) #### What's Changed - fix: ensure modifiers honor the `timeZone` prop by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2849](https://github.com/gpbl/react-day-picker/pull/2849) - fix: allow focused disabled days to remain focusable by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2851](https://github.com/gpbl/react-day-picker/pull/2851) - chore(performance): cache resolved today across helpers for better performance by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2848](https://github.com/gpbl/react-day-picker/pull/2848) - chore(performance): memoize calendar and reuse ISO date ids in day rendering by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2850](https://github.com/gpbl/react-day-picker/pull/2850) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.11.1...v9.11.2> ### [`v9.11.1`](https://github.com/gpbl/react-day-picker/releases/tag/v9.11.1) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.11.0...v9.11.1) #### What's Changed - fix: duplicated years in dropdown for some timezones by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2836](https://github.com/gpbl/react-day-picker/pull/2836) - fix: prevent focus navigation past disabled bounds by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2839](https://github.com/gpbl/react-day-picker/pull/2839) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.11.0...v9.11.1> ### [`v9.11.0`](https://github.com/gpbl/react-day-picker/releases/tag/v9.11.0) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.10.0...v9.11.0) This release adds support for Buddhist and Hebrew calendars, introduces new Southeast Asian numeral systems, adds the `aria-labelledby` prop, and improves month/year formatting for specific locales. It also includes fixes for the recently added Ethiopic calendar. #### Buddhist Calendar To use the Buddhist calendar, import `DayPicker` from `react-day-picker/buddhist`. ```tsx import { DayPicker } from "react-day-picker/buddhist"; export function BuddhistCalendar() { return <DayPicker />; } ``` <img width="1898" height="818" alt="Screen Shot 2025-09-20 at 18 19 40" src="https://github.com/user-attachments/assets/d1687521-6c20-424e-a2d2-b106bee22d79" /> Read more in the [documentation](https://daypicker.dev/docs/localization#buddhist-calendar) and play with it in [playground](https://daypicker.dev/playground?calendar=buddhist). #### Hebrew Calendar To switch to the Hebrew calendar, import `DayPicker` from `react-day-picker/hebrew`. ```tsx import { DayPicker } from "react-day-picker/hebrew"; export function HebrewCalendar() { return <DayPicker />; } ``` <img width="1898" height="818" alt="Screen Shot 2025-09-20 at 18 19 55" src="https://github.com/user-attachments/assets/5c6c74af-a958-4b6e-888f-0e0db8aa6ed5" /> Read more in the [documentation](https://daypicker.dev/docs/localization#hebrew-calendar) and play with it in [playground](https://daypicker.dev/playground?calendar=hebrew). #### What's Changed - feat: Buddhist calendar by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2825](https://github.com/gpbl/react-day-picker/pull/2825) - feat: Hebrew calendar by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2827](https://github.com/gpbl/react-day-picker/pull/2827) - feat: align month/year caption and dropdown with locale by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2830](https://github.com/gpbl/react-day-picker/pull/2830) - feat: add `aria-labelledby` prop by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2828](https://github.com/gpbl/react-day-picker/pull/2828) - feat: add Southeast Asian numeral systems by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2832](https://github.com/gpbl/react-day-picker/pull/2832) - fix: ethiopic calendar may crash with dropdown layout by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2831](https://github.com/gpbl/react-day-picker/pull/2831) - fix: years are not correctly formatted in ethiopic calendar by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2831](https://github.com/gpbl/react-day-picker/pull/2831) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.10.0...v9.11.0> ### [`v9.10.0`](https://github.com/gpbl/react-day-picker/releases/tag/v9.10.0) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.9.0...v9.10.0) This release adds support for the Ethiopic calendar. #### Ethiopic calendar To use the Ethiopic calendar, import `DayPicker` from `react-day-picker/ethiopic`. ```tsx import { DayPicker } from "react-day-picker/ethiopic"; export function EthiopicCalendar() { return <DayPicker />; } ``` <img width="1846" height="818" alt="Screen Shot 2025-09-14 at 17 54 36" src="https://github.com/user-attachments/assets/0e535e03-d0fd-4ea4-a8a7-03afb89fa456" /> Read more in the [documentation](https://daypicker.dev/docs/localization#ethiopic-calendar) and play with it in [playground](https://daypicker.dev/playground?calendar=ethiopic). #### What's Changed - feat: ethiopic calendar by [@&#8203;temesgen-mulugeta](https://github.com/temesgen-mulugeta) in [#&#8203;2658](https://github.com/gpbl/react-day-picker/pull/2658) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.9.0...v9.10.0> ### [`v9.9.0`](https://github.com/gpbl/react-day-picker/releases/tag/v9.9.0) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.8.1...v9.9.0) This release includes a new `reverseYears` prop, a range selection fix, and a build update to fix issues with source maps. #### Reversing the Years in the Dropdown When using `captionLayout='dropdown'`, set `reverseYears` to reverse the years listed in the dropdown: the most recent year will appear first. ```tsx <DayPicker captionLayout="dropdown" reverseYears /> ``` See it in action in the [playground](https://daypicker.dev/playground?captionLayout=dropdown\&reverseYears). #### What's Changed - feat: add `reverseYears` prop by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2822](https://github.com/gpbl/react-day-picker/pull/2822) - fix: select the same day in range mode when range is open and min prop is 0 by [@&#8203;rodgobbi](https://github.com/rodgobbi) in [#&#8203;2816](https://github.com/gpbl/react-day-picker/pull/2816) - build: removed source maps and `src` directory from package by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2812](https://github.com/gpbl/react-day-picker/pull/2812) - build: update `date-fns/tz` dependency by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2823](https://github.com/gpbl/react-day-picker/pull/2823) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.8.1...v9.9.0> ### [`v9.8.1`](https://github.com/gpbl/react-day-picker/releases/tag/v9.8.1) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.8.0...v9.8.1) Improved `captionLayout` documentation and build process. #### What's Changed - docs: Improve documentation for `captionLayout` prop by [@&#8203;rodgobbi](https://github.com/rodgobbi) in [#&#8203;2788](https://github.com/gpbl/react-day-picker/pull/2788) and [@&#8203;haecheonlee](https://github.com/haecheonlee) in [#&#8203;2787](https://github.com/gpbl/react-day-picker/pull/2787) - build: avoid locking dependencies by [@&#8203;nihgwu](https://github.com/nihgwu) in [#&#8203;2789](https://github.com/gpbl/react-day-picker/pull/2789) #### New Contributors - [@&#8203;haecheonlee](https://github.com/haecheonlee) made their first contribution in [#&#8203;2787](https://github.com/gpbl/react-day-picker/pull/2787) - [@&#8203;n-zngr](https://github.com/n-zngr) made their first contribution in [#&#8203;2790](https://github.com/gpbl/react-day-picker/pull/2790) - [@&#8203;nihgwu](https://github.com/nihgwu) made their first contribution in [#&#8203;2789](https://github.com/gpbl/react-day-picker/pull/2789) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.8.0...v9.8.1> ### [`v9.8.0`](https://github.com/gpbl/react-day-picker/releases/tag/v9.8.0) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.7.0...v9.8.0) DayPicker 9.8 includes better [keyboard navigation](https://daypicker.dev/guides/accessibility#keyboard-navigation) and resolves edge cases with month and year rendering. #### What's Changed - feat(accessibility): enable <kbd>Shift+Arrows</kbd> to navigate between months/years by [@&#8203;mhwice](https://github.com/mhwice) in [#&#8203;2770](https://github.com/gpbl/react-day-picker/pull/2770) - fix: setting `defaultMonth` to the next year with the dropdown navigation layout no longer prevents the calendar from rendering by [@&#8203;rodgobbi](https://github.com/rodgobbi) in [#&#8203;2783](https://github.com/gpbl/react-day-picker/pull/2783) - fix: correctly display the number of months when `numberOfMonths` and `endMonth` are set by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2784](https://github.com/gpbl/react-day-picker/pull/2784) #### New Contributors - [@&#8203;mhwice](https://github.com/mhwice) made their first contribution in [#&#8203;2770](https://github.com/gpbl/react-day-picker/pull/2770) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.7.0...v9.8.0> ### [`v9.7.0`](https://github.com/gpbl/react-day-picker/releases/tag/v9.7.0) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.6.7...v9.7.0) DayPicker 9.7 introduces a new `navLayout` prop to customize the layout of the navigation and includes improvements for time zones and localization. #### Navigation Layouts The `navLayout` prop allows you to change the layout of the navigation buttons in the calendar: - With `navLayout="around"`, navigation buttons are displayed on either side of the caption. - With `navLayout="after"`, navigation buttons are displayed after the caption. This layout ensures that the focus order respects the visual order, conforming to the [WCAG 2.2](https://www.w3.org/TR/WCAG22/#focus-order) guidelines for accessibility. For more details, see the [Navigation Layouts](https://daypicker.dev/docs/customization#navigation-layouts) section in the documentation. ```tsx <DayPicker navLayout="around" /> ``` <p align="center"> <img src="https://github.com/user-attachments/assets/fc7fc9aa-9fdd-4882-8b57-1c4b8b66409a" width="600"> </p> ```tsx <DayPicker navLayout="after" /> ``` <p align="center"> <img src="https://github.com/user-attachments/assets/608d6de9-e297-4318-a8c4-7dbe0b9cd0b7" width="600"> </p> #### What's Changed * feat: add `navLayout` prop by @&#8203;gpbl in https://github.com/gpbl/react-day-picker/pull/2755 * fix: add timezone to `Date` props by @&#8203;gpbl in https://github.com/gpbl/react-day-picker/pull/2750 * fix: format week number with numerals by @&#8203;gpbl in https://github.com/gpbl/react-day-picker/pull/2756 * chore: rename `useGetModifiers` to `createGetModifiers` by @&#8203;gpbl in https://github.com/gpbl/react-day-picker/pull/2751 * chore: simplify DateLib types by @&#8203;gpbl in https://github.com/gpbl/react-day-picker/pull/2735 * chore: proofread and update jsdocs for consistency by @&#8203;gpbl in https://github.com/gpbl/react-day-picker/pull/2760 **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.6.7...v9.7.0> ### [`v9.6.7`](https://github.com/gpbl/react-day-picker/releases/tag/v9.6.7) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.6.6...v9.6.7) Improved handling of timezones, fixed alignment with the Left/Right navigation icons. #### What's Changed - fix: improve left/right icon alignment by [@&#8203;AlecRust](https://github.com/AlecRust) in [#&#8203;2734](https://github.com/gpbl/react-day-picker/pull/2734) - fix: prevent timezone override when `initialMonth` is `Date` type by [@&#8203;lovebuizel](https://github.com/lovebuizel) in [#&#8203;2737](https://github.com/gpbl/react-day-picker/pull/2737) #### New Contributors - [@&#8203;lovebuizel](https://github.com/lovebuizel) made their first contribution in [#&#8203;2737](https://github.com/gpbl/react-day-picker/pull/2737) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.6.6...v9.6.7> ### [`v9.6.6`](https://github.com/gpbl/react-day-picker/releases/tag/v9.6.6) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.6.5...v9.6.6) Includes a fix for `autoFocus` prop not correctly autofocusing the selected day. #### What's Changed - fix: calculateFocusTarget logic by [@&#8203;rodgobbi](https://github.com/rodgobbi) in [#&#8203;2727](https://github.com/gpbl/react-day-picker/pull/2727) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.6.5...v9.6.6> ### [`v9.6.5`](https://github.com/gpbl/react-day-picker/releases/tag/v9.6.5) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.6.4...v9.6.5) Fixed an issue with the Persian calendar. #### What's Changed - (fix) Persian calendar with `enUS` locale displaying empty week by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2723](https://github.com/gpbl/react-day-picker/pull/2723) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.6.4...v9.6.5> ### [`v9.6.4`](https://github.com/gpbl/react-day-picker/releases/tag/v9.6.4) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.6.3...v9.6.4) #### What's Changed - fix(animation): fix issues when navigating months during animation by [@&#8203;rodgobbi](https://github.com/rodgobbi) in [#&#8203;2710](https://github.com/gpbl/react-day-picker/pull/2710) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.6.3...v9.6.4> ### [`v9.6.3`](https://github.com/gpbl/react-day-picker/releases/tag/v9.6.3) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.6.2...v9.6.3) Improved accessibility, fixed the default locale imports, and added missing files for source maps. #### What's Changed - fix(accessibility): add visually hidden text to announce month/year by [@&#8203;rodgobbi](https://github.com/rodgobbi) in [#&#8203;2716](https://github.com/gpbl/react-day-picker/pull/2716) - fix(build): fix importing of whole locale from `date-fns` by [@&#8203;binhpv](https://github.com/binhpv) in [#&#8203;2717](https://github.com/gpbl/react-day-picker/pull/2717) - fix(build): add back `src` to package.json by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2718](https://github.com/gpbl/react-day-picker/pull/2718) #### New Contributors - [@&#8203;Amethystix](https://github.com/Amethystix) made their first contribution in [#&#8203;2711](https://github.com/gpbl/react-day-picker/pull/2711) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.6.2...v9.6.3> ### [`v9.6.2`](https://github.com/gpbl/react-day-picker/releases/tag/v9.6.2) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.6.1...v9.6.2) Fix issues when importing the Persian calendar or the CSS types declaration. #### What's Changed - fix: add persian.js to package.json files by [@&#8203;maxnowack](https://github.com/maxnowack) in [#&#8203;2713](https://github.com/gpbl/react-day-picker/pull/2713) - fix: add missing css types to package.json files by [@&#8203;maxnowack](https://github.com/maxnowack) in [#&#8203;2712](https://github.com/gpbl/react-day-picker/pull/2712) #### New Contributors - [@&#8203;maxnowack](https://github.com/maxnowack) made their first contribution in [#&#8203;2713](https://github.com/gpbl/react-day-picker/pull/2713) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.6.1...v9.6.2> ### [`v9.6.1`](https://github.com/gpbl/react-day-picker/releases/tag/v9.6.1) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.6.0...v9.6.1) This release addresses an accessibility issue, adds a new `animate` prop and fixes other minor bugs. ##### Possible Breaking Change in Custom Styles To address a [focus lost bug](https://github.com/gpbl/react-day-picker/issues/2630) affecting navigation buttons, we [updated](https://github.com/gpbl/react-day-picker/pull/2685) the buttons to use `aria-disabled` instead of the `disabled` attribute. This change may cause custom styles for those disabled buttons to break. To fix it in your code, update the CSS selector to target `[aria-disabled="true"]`: ```diff - .rdp-button_next:disabled, + .rdp-button_next[aria-disabled="true"] { /* your custom CSS */ } - .rdp-button_previous:disabled, + .rdp-button_previous[aria-disabled="true"] { /* your custom CSS */ } ``` ##### Animating Month Transitions Thanks to the work by [@&#8203;rodgobbi](https://github.com/rodgobbi), we have added animations to DayPicker. The new [`animate` prop](http://daypicker.dev/docs/navigation#animate) enables CSS transitions for captions and weeks when navigating between months: <img width="500" src="https://github.com/user-attachments/assets/26b6d7ad-f0e8-4b2c-9bdd-a2e61b044db7"> ```tsx <DayPicker animate /> ``` Customizing the animation style can be challenging due to the HTML table structure of the grid. We may address this in the future. Please leave your feedback in [DayPicker Discussions](https://github.com/gpbl/react-day-picker/discussions). #### What's Changed - feat: new `animate` prop by [@&#8203;rodgobbi](https://github.com/rodgobbi) in [#&#8203;2684](https://github.com/gpbl/react-day-picker/pull/2684) - feat(performance): add `sideEffects` property to package.json by [@&#8203;rodgobbi](https://github.com/rodgobbi) in [#&#8203;2673](https://github.com/gpbl/react-day-picker/pull/2673) - fix(accessibility): focus lost when navigation button is disabled by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2685](https://github.com/gpbl/react-day-picker/pull/2685) - fix: render selected days with `selected` modifier when disabled by [@&#8203;rodgobbi](https://github.com/rodgobbi) in [#&#8203;2700](https://github.com/gpbl/react-day-picker/pull/2700) - fix(build): remove extra files from package.json by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2692](https://github.com/gpbl/react-day-picker/pull/2692) - chore(types): fix deprecation of select event handler types by [@&#8203;timothyis](https://github.com/timothyis) in [#&#8203;2680](https://github.com/gpbl/react-day-picker/pull/2680) ##### v9.6.1 - fix(build): add missing .css entries in package.json files by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2703](https://github.com/gpbl/react-day-picker/pull/2703) #### New Contributors - [@&#8203;timothyis](https://github.com/timothyis) made their first contribution in [#&#8203;2680](https://github.com/gpbl/react-day-picker/pull/2680) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.5.1...v9.6.1> ### [`v9.6.0`](https://github.com/gpbl/react-day-picker/releases/tag/v9.6.0) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.5.1...v9.6.0) This release addresses an accessibility issue, adds a new `animate` prop and fixes other minor bugs. ⚠️ **Note** v9.6.0 presents a bug when importing `style.css`. Please upgrade to [v9.6.1](https://github.com/gpbl/react-day-picker/releases/tag/v9.6.1) for a fix. ### [`v9.5.1`](https://github.com/gpbl/react-day-picker/releases/tag/v9.5.1) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.5.0...v9.5.1) This release fixes the calendar breaking its layout when passing a `month` not included between `startMonth` and `endMonth` props. #### What's Changed - fix: display calendar in a valid month when `month` prop is invalid by [@&#8203;rodgobbi](https://github.com/rodgobbi) in [#&#8203;2672](https://github.com/gpbl/react-day-picker/pull/2672) - fix(test): using `new Date()` instead of `today()` fails test by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2656](https://github.com/gpbl/react-day-picker/pull/2656) - chore(types): update `DateLib` to not import types from date-fns by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2655](https://github.com/gpbl/react-day-picker/pull/2655) - docs: fix broken `style.css` link by [@&#8203;jakedee](https://github.com/jakedee) in [#&#8203;2666](https://github.com/gpbl/react-day-picker/pull/2666) - docs: custom components guide to display better examples by [@&#8203;rodgobbi](https://github.com/rodgobbi) in [#&#8203;2668](https://github.com/gpbl/react-day-picker/pull/2668) #### New Contributors - [@&#8203;jakedee](https://github.com/jakedee) made their first contribution in [#&#8203;2666](https://github.com/gpbl/react-day-picker/pull/2666) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.5.0...v9.5.1> ### [`v9.5.0`](https://github.com/gpbl/react-day-picker/releases/tag/v9.5.0) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.4.4...v9.5.0) This release adds full support for the [Persian calendar](https://daypicker.dev/docs/localization#persian-calendar) and a new `numerals` prop to [set the numbering system](https://daypicker.dev/docs/translation#numeral-systems). ##### Breaking Change: Dropdown Formatters The `formatMonthDropdown` and `formatYearDropdown` now receive a `Date` (instead of a `number`) as first argument. ```diff <DayPicker formatters={{ - formatMonthDropdown: (month) => format(new Date(month), "mmmm") }} + formatMonthDropdown: (date) => format(date, "mmmm") }} /> - formatYearDropdown: (year) => format(new Date(year), "yyyy") }} + formatYearDropdown: (date) => format(date, "yyyy") }} /> /> ``` ##### Persian Calendar Persian Calendar get fulls support in DayPicker and replaces the previous "Jalali Calendar". If you were using DayPicker from `react-day-picker/jalali`, change your imports to `react-day-picker/persian`: ```diff - import { DayPicker } from `react-day-picker/jalali`; + import { DayPicker } from `react-day-picker/persian`; ``` See the [Persian calendar](https://daypicker.dev/docs/localization#persian-calendar) documentation for more details about using Persian calendar in DayPicker. #### What's Changed - feat: add Persian calendar support by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2645](https://github.com/gpbl/react-day-picker/pull/2645) - feat: add new `numerals` prop by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2647](https://github.com/gpbl/react-day-picker/pull/2647) - feat: add `today`, `newDate`, `timeZone` to the `DateLib` class by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2642](https://github.com/gpbl/react-day-picker/pull/2642) - feat: remove `startMonth`/`endMonth` constraints when caption layout is `dropdown-months` by [@&#8203;rodgobbi](https://github.com/rodgobbi) in [#&#8203;2648](https://github.com/gpbl/react-day-picker/pull/2648) - build: add `date-fns-jalali` to the package dependencies by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2640](https://github.com/gpbl/react-day-picker/pull/2640) - fix(breaking): dropdown formatters to use `dateLib` format by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2644](https://github.com/gpbl/react-day-picker/pull/2644) - fix(jalali): incorrect Jalali month names when using dropdown layouts by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2645](https://github.com/gpbl/react-day-picker/pull/2645) - fix(chore): always use `Date` constructor from `dateLib` by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2636](https://github.com/gpbl/react-day-picker/pull/2636) - fix(chore): use `dateLib` for getting days/months/years from a `Date` by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2643](https://github.com/gpbl/react-day-picker/pull/2643) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.4.4...v9.5.0> ### [`v9.4.4`](https://github.com/gpbl/react-day-picker/releases/tag/v9.4.4) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.4.3...v9.4.4) This release fixes an issue with the month names in the Jalali calendar. #### What's Changed - fix(jalali): defaults calendar to `faIR` locale and RTL direction by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2624](https://github.com/gpbl/react-day-picker/pull/2624) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.4.3...v9.4.4> ### [`v9.4.3`](https://github.com/gpbl/react-day-picker/releases/tag/v9.4.3) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.4.2...v9.4.3) This release enhances compatibility with React 19. #### What's Changed - chore(types): update HTML attributes for React 19 compatibility by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2621](https://github.com/gpbl/react-day-picker/pull/2621) - refactor(jest): switch to [@&#8203;swc/jest](https://github.com/swc/jest) for faster transforms by [@&#8203;thevuong](https://github.com/thevuong) in [#&#8203;2620](https://github.com/gpbl/react-day-picker/pull/2620) #### New Contributors - [@&#8203;thevuong](https://github.com/thevuong) made their first contribution in [#&#8203;2620](https://github.com/gpbl/react-day-picker/pull/2620) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.4.2...v9.4.3> ### [`v9.4.2`](https://github.com/gpbl/react-day-picker/releases/tag/v9.4.2) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.4.1...v9.4.2) This release addresses some bugs in the dropdown caption layout. #### What's Changed - fix: display all available years in the dropdown by [@&#8203;rodgobbi](https://github.com/rodgobbi) in [#&#8203;2614](https://github.com/gpbl/react-day-picker/pull/2614) - fix: display all months in dropdown by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2619](https://github.com/gpbl/react-day-picker/pull/2619) - docs: update styling.mdx by [@&#8203;AlecRust](https://github.com/AlecRust) in [#&#8203;2611](https://github.com/gpbl/react-day-picker/pull/2611) - docs: code typo in input-fields.mdx by [@&#8203;pkgacek](https://github.com/pkgacek) in [#&#8203;2613](https://github.com/gpbl/react-day-picker/pull/2613) #### New Contributors - [@&#8203;AlecRust](https://github.com/AlecRust) made their first contribution in [#&#8203;2611](https://github.com/gpbl/react-day-picker/pull/2611) - [@&#8203;pkgacek](https://github.com/pkgacek) made their first contribution in [#&#8203;2613](https://github.com/gpbl/react-day-picker/pull/2613) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.4.1...v9.4.2> ### [`v9.4.1`](https://github.com/gpbl/react-day-picker/releases/tag/v9.4.1) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.4.0...v9.4.1) This release improves support for screen readers and fixes a VoiceOver issue when navigating the calendar. #### What's Changed - fix(a11y): improve screen reader and VoiceOver support by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2609](https://github.com/gpbl/react-day-picker/pull/2609) - feat(a11y): added `role` and `aria-label` props by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2609](https://github.com/gpbl/react-day-picker/pull/2609) - chore(style): remove unused CSS variable by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2610](https://github.com/gpbl/react-day-picker/pull/2610) - chore: use callbacks for dropdown event handlers by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2602](https://github.com/gpbl/react-day-picker/pull/2602) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.4.0...v9.4.1> ### [`v9.4.0`](https://github.com/gpbl/react-day-picker/releases/tag/v9.4.0) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.3.2...v9.4.0) This version includes support for [broadcast calendars](https://daypicker.dev/docs/localization#broadcast-calendar) and some style fixes. #### What's Changed - feat: add support for broadcast calendars by [@&#8203;Nradar](https://github.com/Nradar) in [#&#8203;2597](https://github.com/gpbl/react-day-picker/pull/2597) - fix(styles): dropdown not appearing as focused by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2600](https://github.com/gpbl/react-day-picker/pull/2600) - fix(styles): inconsistent cell size when selection mode is set by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2601](https://github.com/gpbl/react-day-picker/pull/2601) - please note that the CSS variables `--rdp-day-height`, `--rdp-day-width`, `--rdp-day-button-height`, `--rdp-day-button-width` have been updated to pixel values (`44px` for day cells and `42px` for day buttons). #### New Contributors - [@&#8203;Nradar](https://github.com/Nradar) made their first contribution in [#&#8203;2597](https://github.com/gpbl/react-day-picker/pull/2597) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.3.2...v9.4.0> ### [`v9.3.2`](https://github.com/gpbl/react-day-picker/releases/tag/v9.3.2) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.3.1...v9.3.2) Bug fixes. #### What's Changed - fix: "outside days" were shown even when `beforeMonth` was set by [@&#8203;rodgobbi](https://github.com/rodgobbi) in [#&#8203;2578](https://github.com/gpbl/react-day-picker/pull/2578) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.3.1...v9.3.2> ### [`v9.3.1`](https://github.com/gpbl/react-day-picker/releases/tag/v9.3.1) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.3.0...v9.3.1) Bug fixes. #### What's Changed - fix: months with 4 weeks not displaying 6 weeks when `fixedWeeks` is used by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2590](https://github.com/gpbl/react-day-picker/pull/2590) - fix(types): `formatMonthDropdown` throwing a type error by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2584](https://github.com/gpbl/react-day-picker/pull/2584) - chore(types): added deprecated `initialFocus` and `InternalModifiers` types by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2582](https://github.com/gpbl/react-day-picker/pull/2582) - chore: removed not used `selectionStates` from `useGetModifiers()` by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2586](https://github.com/gpbl/react-day-picker/pull/2586) - build: update `@date-fns/tz` package to v1.2.0 by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2591](https://github.com/gpbl/react-day-picker/pull/2591) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.3.0...v9.3.1> ### [`v9.3.0`](https://github.com/gpbl/react-day-picker/releases/tag/v9.3.0) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.2.1...v9.3.0) This release adds the `dayPickerProps` to the values returned by [useDayPicker](https://daypicker.dev/api/functions/useDayPicker), enabling access to these props from custom components. Thanks to the work by [@&#8203;rodgobbi](https://github.com/rodgobbi), we could enhance the performance when selecting a range of days. We’ve also updated the default style to preserve the font-family inherited from the parent element. To restore the previous behavior, update the `.rdp-root` CSS class to include `font-family: system-ui`. #### What's Changed - feat: return `dayPickerProps` from `useDayPicker` by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2572](https://github.com/gpbl/react-day-picker/pull/2572) - fix(style): remove system-ui font family from default style by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2573](https://github.com/gpbl/react-day-picker/pull/2573) - Improve performance when selecting long ranges of days by [@&#8203;rodgobbi](https://github.com/rodgobbi) in [#&#8203;2537](https://github.com/gpbl/react-day-picker/pull/2537) #### New Contributors - [@&#8203;rodgobbi](https://github.com/rodgobbi) made their first contribution in [#&#8203;2537](https://github.com/gpbl/react-day-picker/pull/2537) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.2.1...v9.3.0> ### [`v9.2.1`](https://github.com/gpbl/react-day-picker/releases/tag/v9.2.1) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.2.0...v9.2.1) #### What's Changed - build(style): support importing styles in Sass by [@&#8203;GeorgeTaveras1231](https://github.com/GeorgeTaveras1231) in [#&#8203;2555](https://github.com/gpbl/react-day-picker/pull/2555) - fix(perf): improve selection performance in `useRange` by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2560](https://github.com/gpbl/react-day-picker/pull/2560) #### New Contributors - [@&#8203;Louis-jk](https://github.com/Louis-jk) made their first contribution in [#&#8203;2558](https://github.com/gpbl/react-day-picker/pull/2558) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.2.0...v9.2.1> ### [`v9.2.0`](https://github.com/gpbl/react-day-picker/releases/tag/v9.2.0) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.1.4...v9.2.0) This release addresses an issue with localization and applies some fixes for types and CSS exports. #### What's Changed - feat: new `DateLib` class by [@&#8203;gpbl](https://github.com/gpbl) and [@&#8203;daveallie](https://github.com/daveallie) in [#&#8203;2550](https://github.com/gpbl/react-day-picker/pull/2550) - fix(localization): Australian locale may not work as expected by [@&#8203;gpbl](https://github.com/gpbl) and [@&#8203;daveallie](https://github.com/daveallie) in [#&#8203;2550](https://github.com/gpbl/react-day-picker/pull/2550) - fix(styles): day buttons height and width are reversed by [@&#8203;merlinio2000](https://github.com/merlinio2000) in [#&#8203;2552](https://github.com/gpbl/react-day-picker/pull/2552) - fix(types): argument of type 'Date' is not assignable to parameter of type 'never' by [@&#8203;cosminpsk](https://github.com/cosminpsk) in [#&#8203;2542](https://github.com/gpbl/react-day-picker/pull/2542) - build: improve css exports in package.json by [@&#8203;karlshea](https://github.com/karlshea) in [#&#8203;2547](https://github.com/gpbl/react-day-picker/pull/2547) #### New Contributors - [@&#8203;karlshea](https://github.com/karlshea) made their first contribution in [#&#8203;2547](https://github.com/gpbl/react-day-picker/pull/2547) - [@&#8203;cosminpsk](https://github.com/cosminpsk) made their first contribution in [#&#8203;2542](https://github.com/gpbl/react-day-picker/pull/2542) - [@&#8203;daveallie](https://github.com/daveallie) made their first contribution in [#&#8203;2550](https://github.com/gpbl/react-day-picker/pull/2550) - [@&#8203;merlinio2000](https://github.com/merlinio2000) made their first contribution in [#&#8203;2552](https://github.com/gpbl/react-day-picker/pull/2552) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.1.4...v9.2.0> ### [`v9.1.4`](https://github.com/gpbl/react-day-picker/releases/tag/v9.1.4) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.1.3...v9.1.4) This release fixes a localization issue and improves export compatibility across various Node.js environments. #### What's Changed - fix: month not being localized with `dropdown-years` caption layout by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2497](https://github.com/gpbl/react-day-picker/pull/2497) - build: update exports in package.json for better compatibility by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2535](https://github.com/gpbl/react-day-picker/pull/2535) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.1.3...v9.1.4> ### [`v9.1.3`](https://github.com/gpbl/react-day-picker/releases/tag/v9.1.3) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.1.2...v9.1.3) This release includes some minor build fixes and documentation updates. #### What's Changed - build: add `tsconfig-base.json` to package by [@&#8203;luucvanderzee](https://github.com/luucvanderzee) in [#&#8203;2492](https://github.com/gpbl/react-day-picker/pull/2492) - build(deps): bump [@&#8203;date-fns/tz](https://github.com/date-fns/tz) to 1.1.2 by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2494](https://github.com/gpbl/react-day-picker/pull/2494) #### New Contributors - [@&#8203;luucvanderzee](https://github.com/luucvanderzee) made their first contribution in [#&#8203;2492](https://github.com/gpbl/react-day-picker/pull/2492) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.1.2...v9.1.3> ### [`v9.1.2`](https://github.com/gpbl/react-day-picker/releases/tag/v9.1.2) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.1.1...v9.1.2) #### What's Changed - fix: validate HTML output by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2475](https://github.com/gpbl/react-day-picker/pull/2475) - fix: use of `dateLib` to work when mocking dates by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2481](https://github.com/gpbl/react-day-picker/pull/2481) - fix(types): Improve `DayPickerContext` type by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2479](https://github.com/gpbl/react-day-picker/pull/2479) - build(deps): update [@&#8203;date-fs/tz](https://github.com/date-fs/tz) package by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2480](https://github.com/gpbl/react-day-picker/pull/2480) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.1.1...v9.1.2> ### [`v9.1.1`](https://github.com/gpbl/react-day-picker/releases/tag/v9.1.1) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.1.0...v9.1.1) This release improves reliability for controlled mode and adds experimental support for time zones. #### Time Zone Support By integrating the [@&#8203;date-fns/tz](https://github.com/date-fns/tz) utilities for handling time zones, we have added a new experimental `timeZone` prop. Please see the [updated docs](https://daypicker.dev/docs/localization#time-zone) for more details. ```tsx import { DayPicker, TZDate } from 'react-day-picker'; <DayPicker timeZone="Europe/Athens" // set the time zone disabled={TZDate.tz("Europe/Athens")} // make sure you use `TZDate` to initialize dates /> ``` > \[!NOTE] > If you were using the experimental `react-day-picker/utc` module, you can skip now it. Remove the `@date-fns/utc` package and just pass `timeZone="UTC"` to `<DayPicker />`. #### What's Changed - fix: make sure internal state is not updated in controlled mode by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2473](https://github.com/gpbl/react-day-picker/pull/2473) - feat: new `timeZone` prop (experimental) by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2467](https://github.com/gpbl/react-day-picker/pull/2467) - feat: export locales from `react-day-picker/locale` by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2474](https://github.com/gpbl/react-day-picker/pull/2474) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.1.0...v9.1.1> ### [`v9.1.0`](https://github.com/gpbl/react-day-picker/releases/tag/v9.1.0) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.0.9...v9.1.0) Thank you for using and helping improve DayPicker. Here are the notable changes in this release: - Updated to date-fns v4. - Please update `@date-fns/utc` if you are using `react-day-picker/utc`. - Introduced new custom components for dropdowns and navigation buttons. - Fixed issues with controlled vs. uncontrolled selections not working as expected. #### What's Changed - build: update to date-fns\@&#8203;4 by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2466](https://github.com/gpbl/react-day-picker/pull/2466) - feat: add `PreviousMonthButton` and `NextMonthButton` to custom components by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2437](https://github.com/gpbl/react-day-picker/pull/2437) - feat: add `MonthsDropdown` and `YearsDropdown` custom components by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2454](https://github.com/gpbl/react-day-picker/pull/2454) - feat(types): remove restrictions on `components` and `classNames` prop types by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2452](https://github.com/gpbl/react-day-picker/pull/2452) - feat(types): add `OnSelectHandler` type by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2436](https://github.com/gpbl/react-day-picker/pull/2436) - fix: controlled vs. uncontrolled selections by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2462](https://github.com/gpbl/react-day-picker/pull/2462) - fix: use correct month to disable `Chevron` of `NextMonthButton` by [@&#8203;qgadrian](https://github.com/qgadrian) in [#&#8203;2449](https://github.com/gpbl/react-day-picker/pull/2449) - fix(types): add missing `ClassNames` types for dropdowns by [@&#8203;hsnaydd](https://github.com/hsnaydd) in [#&#8203;2441](https://github.com/gpbl/react-day-picker/pull/2441) - chore: remove unnecessary `labelOptions` from `labelNext` and `labelPrevious` by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2434](https://github.com/gpbl/react-day-picker/pull/2434) - chore: move `Nav` to its own component by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2435](https://github.com/gpbl/react-day-picker/pull/2435) - chore(types): deprecate `Button` in `CustomComponents` by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2439](https://github.com/gpbl/react-day-picker/pull/2439) #### New Contributors - [@&#8203;qgadrian](https://github.com/qgadrian) made their first contribution in [#&#8203;2449](https://github.com/gpbl/react-day-picker/pull/2449) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.0.9...v9.1.0> ### [`v9.0.9`](https://github.com/gpbl/react-day-picker/releases/tag/v9.0.9) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.0.8...v9.0.9) This release fixes a regression causing the calendar to reset when selecting the days, improves compatibility with the previous version and fixes some other bugs. #### What's Changed - feat: added back more properties to the value returned by `useDayPicker` by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2427](https://github.com/gpbl/react-day-picker/pull/2427) - fix: calendar is reset after selecting a day by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2429](https://github.com/gpbl/react-day-picker/pull/2429) - fix(style): remove unnecessary styles to buttons in footer in DayPicker by [@&#8203;hsnaydd](https://github.com/hsnaydd) in [#&#8203;2383](https://github.com/gpbl/react-day-picker/pull/2383) - fix(style): missing class names for months and years dropdowns [@&#8203;hsnaydd](https://github.com/hsnaydd) in [#&#8203;2394](https://github.com/gpbl/react-day-picker/pull/2394) - fix(utilities): `dateMatchModifiers` to use `defaultDateLib` by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2413](https://github.com/gpbl/react-day-picker/pull/2413) - fix(types): add `formatWeekNumberHeader` to `Formatters` by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2412](https://github.com/gpbl/react-day-picker/pull/2412) - fix(types): add missing `ChevronProps` export by [@&#8203;rishabh-ink](https://github.com/rishabh-ink) in [#&#8203;2363](https://github.com/gpbl/react-day-picker/pull/2363) #### New Contributors - [@&#8203;mahata](https://github.com/mahata) made their first contribution in [#&#8203;2388](https://github.com/gpbl/react-day-picker/pull/2388) - [@&#8203;1eeminhyeong](https://github.com/1eeminhyeong) made their first contribution in [#&#8203;2391](https://github.com/gpbl/react-day-picker/pull/2391) - [@&#8203;hsnaydd](https://github.com/hsnaydd) made their first contribution in [#&#8203;2383](https://github.com/gpbl/react-day-picker/pull/2383) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.0.8...v9.0.9> ### [`v9.0.8`](https://github.com/gpbl/react-day-picker/releases/tag/v9.0.8) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.0.7...v9.0.8) This release fixes a regression in v9.0.7 affecting range mode. #### What's Changed - fix: update the displayed month only if start/end month change by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2358](https://github.com/gpbl/react-day-picker/pull/2358) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.0.7...v9.0.8> ### [`v9.0.7`](https://github.com/gpbl/react-day-picker/releases/tag/v9.0.7) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.0.6...v9.0.7) This release improves compatibility with v8 and fix an issue with the calendar navigation. #### What's Changed - fix: update calendar state when `startMonth` or `endMonth` change by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2343](https://github.com/gpbl/react-day-picker/pull/2343) - feat: allow partial locales, export `defaultLocale` by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2348](https://github.com/gpbl/react-day-picker/pull/2348) - feat: allow `undefined` as initially selected value, as it was in v8 by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2341](https://github.com/gpbl/react-day-picker/pull/2341) - docs: changed class name `calendar` to `root` in the examples by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2347](https://github.com/gpbl/react-day-picker/pull/2347) - docs: replaced deprecated props by [@&#8203;josephmarkus](https://github.com/josephmarkus) in [#&#8203;2336](https://github.com/gpbl/react-day-picker/pull/2336)\* #### New Contributors - [@&#8203;josephmarkus](https://github.com/josephmarkus) made their first contribution in [#&#8203;2336](https://github.com/gpbl/react-day-picker/pull/2336) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.0.6...v9.0.7> ### [`v9.0.6`](https://github.com/gpbl/react-day-picker/releases/tag/v9.0.6) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.0.5...v9.0.6) This release addresses the failed import of the common-js module for some app builder and add new `data-` attributes to help the integration with Tailwind. Thanks for your feedback! #### What's Changed - fix(build): add package.json to dist/cjs module by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2330](https://github.com/gpbl/react-day-picker/pull/2330) - feat: add new data-attributes to the day cells by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2331](https://github.com/gpbl/react-day-picker/pull/2331) #### New Contributors - [@&#8203;lesleh](https://github.com/lesleh) made their first contribution in [#&#8203;2329](https://github.com/gpbl/react-day-picker/pull/2329) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.0.5...v9.0.6> ### [`v9.0.5`](https://github.com/gpbl/react-day-picker/releases/tag/v9.0.5) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.0.4...v9.0.5) This release improves the range mode behavior (see the [updated docs](https://daypicker.dev/docs/selection-modes#range-mode)) and address some styling issues. #### What's Changed - fix: improved range mode to work with min / required props by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2326](https://github.com/gpbl/react-day-picker/pull/2326) - fix(style): typo in css rdp-hidden module css breaking CSS builds by [@&#8203;ayuhito](https://github.com/ayuhito) in [#&#8203;2307](https://github.com/gpbl/react-day-picker/pull/2307) - fix(style): borders grid are not collapsed by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2323](https://github.com/gpbl/react-day-picker/pull/2323) - fix(style): week numbers are now centered by [@&#8203;gpbl](https://github.com/gpbl) in [`c919ad8`](https://github.com/gpbl/react-day-picker/commit/c919ad829c042c7af70b6a88d22c163e697b40d7) #### New Contributors - [@&#8203;ayuhito](https://github.com/ayuhito) made their first contribution in [#&#8203;2307](https://github.com/gpbl/react-day-picker/pull/2307) - [@&#8203;rishabh-ink](https://github.com/rishabh-ink) made their first contribution in [#&#8203;2311](https://github.com/gpbl/react-day-picker/pull/2311) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.0.4...v9.0.5> ### [`v9.0.4`](https://github.com/gpbl/react-day-picker/releases/tag/v9.0.4) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.0.3...v9.0.4) This release fixes some bugs and improves compatibility with v8.10. Thanks for your feedback and patience! 🤖 #### What's Changed - fix(css): typo in `.rdp-range_end` by [@&#8203;AlessioDP](https://github.com/AlessioDP) in [#&#8203;2298](https://github.com/gpbl/react-day-picker/pull/2298) - fix(css): dropdown is transparent in Windows OS by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2300](https://github.com/gpbl/react-day-picker/pull/2300) - fix: `endMonth` date not working as expected by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2301](https://github.com/gpbl/react-day-picker/pull/2301) - feat: added back `onDayMouseEnter` and `onDayMouseLeave` by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2304](https://github.com/gpbl/react-day-picker/pull/2304) #### New Contributors - [@&#8203;AlessioDP](https://github.com/AlessioDP) made their first contribution in [#&#8203;2298](https://github.com/gpbl/react-day-picker/pull/2298) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.0.3...v9.0.4> ### [`v9.0.3`](https://github.com/gpbl/react-day-picker/releases/tag/v9.0.3) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.0.2...v9.0.3) This release fixes two issues found with the grid style and the range mode. #### What's Changed - fix: alignment of grid elements by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2294](https://github.com/gpbl/react-day-picker/pull/2294) - fix: range mode not updating when selected prop changes by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2295](https://github.com/gpbl/react-day-picker/pull/2295) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.0.2...v9.0.3> ### [`v9.0.2`](https://github.com/gpbl/react-day-picker/releases/tag/v9.0.2) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.0.1...v9.0.2) This update improves backward compatibility with v8.10.1 for range selection mode. #### What's Changed - feat: add `excludeDisabled` prop for range mode by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2290](https://github.com/gpbl/react-day-picker/pull/2290) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.0.1...v9.0.2> ### [`v9.0.1`](https://github.com/gpbl/react-day-picker/releases/tag/v9.0.1) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v9.0.0...v9.0.1) This update improves backward compatibility with v8.10.1. #### What's Changed - fix: prop types not being correctly interpreted by TS by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2283](https://github.com/gpbl/react-day-picker/pull/2283) - feat: add `DeprecatedUI` enum by [@&#8203;gpbl](https://github.com/gpbl) in [#&#8203;2284](https://github.com/gpbl/react-day-picker/pull/2284) **Full Changelog**: <https://github.com/gpbl/react-day-picker/compare/v9.0.0...v9.0.1> ### [`v9.0.0`](https://github.com/gpbl/react-day-picker/releases/tag/v9.0.0) [Compare Source](https://github.com/gpbl/react-day-picker/compare/v8.10.1...v9.0.0) DayPicker v9 is a major release including significant updates related to accessibility, customization and localization. - See the updated docs at <https://daypicker.dev> and the [upgrading Guide](https://daypicker.dev/upgrading) for more details. ##### Install the Latest Version ```bash npm install react-day-picker@latest ``` #### What’s New - Moved `date-fns` from peer dependencies to dependencies. - Added support for [UTC dates](https://daypicker.dev/docs/localization#utc-dates) and [Jalali Calendar](https://daypicker.dev/docs/localization#jalali-calendar). - [Enhanced accessibility](https://daypicker.dev/docs/accessibility) to better comply with [WCAG 2.1](https://www.w3.org/TR/WCAG21/) recommendations. - [Simplified styles](https://daypicker.dev/docs/styling) and new CSS variables for easier customization. - Improved selection logic for [range mode](https://daypicker.dev/docs/selection-modes.mdx). - New `dropdown-years` and `dropdown-months` caption layouts. - New `hideWeekdayRow` and `hideNavigation` props. - Updated for a complete [custom components](https://daypicker.dev/guides/custom-components) support. - Improved typings and props for better compatibility in TypeScript `strict` mode. #### Breaking Changes While we tried to keep the API as stable as possible, some breaking changes were necessary to improve the library: - The updated ARIA labels could require new translations or updated unit tests selectors. - Custom CSS styles will likely break, due to the updated CSS classes and simplified styles. - Custom Components have new API and may break. - Some typings have been renamed or deprecated. - The `useInput` hook has been removed. See [Input fields](https://daypicker.dev/guides/input-fields) guide for more details. - `onWeekNumberClick` has been removed. Use a custom component to handle week number clicks. - The updated build system to ESM and CommonJS could break some custom bundler. ##### Upgrading Guide We prepared a [Upgrading guide](https://daypicker.dev/upgrading) for help upgrading your app to v9. We welcome [feedback](https://github.com/gpbl/react-day-picker/discussions) about the upgrade process, to ensure it's smooth for everyone. #### Compatibility DayPicker v9 is compatible with React 16.8+. #### Get Support and Report Issues Get support, report issues, and provide feedback on the [Discussion forums](https://github.com/gpbl/react-day-picker/discussions). Thanks. #### New Contributors - [@&#8203;grzegorzpokorski](https://github.com/grzegorzpokorski) made their first contribution in [#&#8203;2124](https://github.com/gpbl/react-day-picker/pull/2124) - [@&#8203;zaaakher](https://github.com/zaaakher) made their first contribution in [#&#8203;2137](https://github.com/gpbl/react-day-picker/pull/2137) - [@&#8203;ArthurGoupil](https://github.com/ArthurGoupil) made their first contribution in [#&#8203;2230](https://github.com/gpbl/react-day-picker/pull/2230) - [@&#8203;johnnysedh3lllo](https://github.com/johnnysedh3lllo) made their first contribution in [#&#8203;2252](https://github.com/gpbl/react-day-picker/pull/2252) - [@&#8203;xardit](https://github.com/xardit) made their first contribution in [#&#8203;2254](https://github.com/gpbl/react-day-picker/pull/2254) - [@&#8203;dave-meyer](https://github.com/dave-meyer) made their first contribution in [#&#8203;2231](https://github.com/gpbl/react-day-picker/pull/2231) - [@&#8203;benasher44](https://github.com/benasher44) made their first contribution in [#&#8203;2249](https://github.com/gpbl/react-day-picker/pull/2249) - [@&#8203;RyanCavanaugh](https://github.com/RyanCavanaugh) made their first contribution in [#&#8203;2275](https://github.com/gpbl/react-day-picker/pull/2275) - [@&#8203;kesoji](https://github.com/kesoji) made their first contribution in [#&#8203;2281](https://github.com/gpbl/react-day-picker/pull/2281) </details> <details> <summary>bvaughn/react-resizable-panels (react-resizable-panels)</summary> ### [`v4.10.0`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#4100) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.9.0...4.10.0) - [705](https://github.com/bvaughn/react-resizable-panels/pull/705): Add `data-separator="focus"` state for `Separator` elements for more consistent custom CSS styles. ### [`v4.9.0`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#490) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.8.0...4.9.0) - [702](https://github.com/bvaughn/react-resizable-panels/pull/702): Add `disableDoubleClick` prop to `Separator` to enable turning *off* the double-click size reset behavior. ### [`v4.8.0`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#480) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.7.6...4.8.0) - [699](https://github.com/bvaughn/react-resizable-panels/pull/699): `useDefaultLayout` hook automatically migrates legacy layouts to version 4 format; see issue [605](https://github.com/bvaughn/react-resizable-panels/issues/605) for details on how this works. ### [`v4.7.6`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#476) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.7.5...4.7.6) - [698](https://github.com/bvaughn/react-resizable-panels/pull/698): Replace `Panel` `aria-disabled` attribute with `data-disabled` ### [`v4.7.5`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#475) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.7.4...4.7.5) - [696](https://github.com/bvaughn/react-resizable-panels/pull/696): Improved server rendering support for `defaultSize` prop ### [`v4.7.4`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#474) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.7.3...4.7.4) - [689](https://github.com/bvaughn/react-resizable-panels/pull/689): Fix edge case bug with pointer event capture ### [`v4.7.3`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#473) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.7.2...4.7.3) - [690](https://github.com/bvaughn/react-resizable-panels/pull/690): Imperative Panel API supports non-percentage sizes ### [`v4.7.2`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#472) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.7.1...4.7.2) - [683](https://github.com/bvaughn/react-resizable-panels/pull/683): Don't scroll separator when setting focus ### [`v4.7.1`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#471) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.7.0...4.7.1) - [678](https://github.com/bvaughn/react-resizable-panels/pull/678): Change default overflow styles to support shadows ### [`v4.7.0`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#470) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.6.5...4.7.0) - [677](https://github.com/bvaughn/react-resizable-panels/pull/677): Add `groupResizeBehavior` prop to `Panel`, enabling panels to retain their current size (pixels) size when the parent `Group` is resized. ### [`v4.6.5`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#465) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.6.4...4.6.5) - [670](https://github.com/bvaughn/react-resizable-panels/pull/670): Check for undefined `adoptedStyleSheets` (to better support environments like jsdom) - [671](https://github.com/bvaughn/react-resizable-panels/pull/671): Bug-fix: Update in-memory layout cache when group is resized by double-clicking on a separator ### [`v4.6.4`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#464) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.6.3...4.6.4) - [664](https://github.com/bvaughn/react-resizable-panels/pull/664), [665](https://github.com/bvaughn/react-resizable-panels/pull/665): Resize actions sometimes "jump" on touch devices ### [`v4.6.3`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#463) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.6.2...4.6.3) - Fixed a problem with project logo not displaying correctly in the README for the Firefox browser. ### [`v4.6.2`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#462) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.6.1...4.6.2) - [660](https://github.com/bvaughn/react-resizable-panels/pull/660): `Group` guards against layouts with mis-ordered `Panel` id keys ### [`v4.6.1`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#461) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.6.0...4.6.1) - [658](https://github.com/bvaughn/react-resizable-panels/pull/658): Imperative `Panel` and `Group` APIs ignored `disabled` status when resizing panels; this is an explicit override of the *disabled* state and is required to support conditionally disabled groups. - [658](https://github.com/bvaughn/react-resizable-panels/pull/658): `Separator` component does not set a `cursor: not-allowed` style if the parent `Group` has cursors disabled. ### [`v4.6.0`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#460) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.5.9...4.6.0) - [657](https://github.com/bvaughn/react-resizable-panels/pull/657): Allow `Panel` and `Separator` components to be disabled ### [`v4.5.9`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#459) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.5.8...4.5.9) - [649](https://github.com/bvaughn/react-resizable-panels/pull/649): Optimization: Replace `useForceUpdate` with `useSyncExternalStore` to avoid side effect of swallowing "click" events in certain cases - [654](https://github.com/bvaughn/react-resizable-panels/pull/654): **Bugfix** Imperative `Group` method `setLayout` persists layout to in-memory cache - [652](https://github.com/bvaughn/react-resizable-panels/pull/652): Re-enable collapsible panel bugfix after fixing another reported issue ### [`v4.5.8`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#458) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.5.7...4.5.8) - [651](https://github.com/bvaughn/react-resizable-panels/pull/651): Disabled the change to collapsible panel behavior that was originally made in [635](https://github.com/bvaughn/react-resizable-panels/pull/635) due to another reported regression ### [`v4.5.7`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#457) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.5.6...4.5.7) - [646](https://github.com/bvaughn/react-resizable-panels/pull/646): Re-enable the collapsible `Panel` from 4.5.3 that was disabled in 4.5.6 - [648](https://github.com/bvaughn/react-resizable-panels/pull/648): **Bugfix**: Reset `Separator` hover-state on `Document` "pointerout" ### [`v4.5.6`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#456) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.5.5...4.5.6) - [644](https://github.com/bvaughn/react-resizable-panels/pull/644): Disabled the change to collapsible panel behavior that was originally made in [635](https://github.com/bvaughn/react-resizable-panels/pull/635) ### [`v4.5.5`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#455) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.5.4...4.5.5) - [641](https://github.com/bvaughn/react-resizable-panels/pull/641): Removed `aria-orientation` role from root `Group` element as this was invalid according to the ARIA spec; (for more information see the discussion on issue [#&#8203;640](https://github.com/bvaughn/react-resizable-panels/issues/640)) - [642](https://github.com/bvaughn/react-resizable-panels/pull/642): **Bugfix**: Fix collapsible `Panel` regression introduced in 4.5.3 ### [`v4.5.4`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#454) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.5.3...4.5.4) - [638](https://github.com/bvaughn/react-resizable-panels/pull/638): `Panel` avoids unnecessary re-renders in response to mouse-hover state. ### [`v4.5.3`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#453) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.5.2...4.5.3) - [635](https://github.com/bvaughn/react-resizable-panels/pull/635): Expand pre-collapsed panels if drug past the halfway point for more consistent collapse/expand behavior. - [631](https://github.com/bvaughn/react-resizable-panels/pull/631): **Bugfix**: Panels set `max-width` and `max-height` to 100% to fix potential CSS overflow bug. ### [`v4.5.2`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#452) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.5.1...4.5.2) - [626](https://github.com/bvaughn/react-resizable-panels/pull/626): Decrease default hit target size for `Separator` and `Panel` edges; make configurable via a new `Group` prop. ### [`v4.5.1`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#451) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.5.0...4.5.1) - [624](https://github.com/bvaughn/react-resizable-panels/pull/624): **Bugfix**: Fallback to alternate CSS cursor styles for Safari | Safari | Chrome, Firefox | | :----------- | :-------------- | | `grab` | `move` | | `col-resize` | `ew-resize` | | `row-resize` | `ns-resize` | ### [`v4.5.0`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#450) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.4.2...4.5.0) - [616](https://github.com/bvaughn/react-resizable-panels/pull/616): Replace `Separator` and `Panel` edge hit-area padding with a minimum size threshold based on [Apple's user interface guidelines](https://developer.apple.com/design/human-interface-guidelines/accessibility). Separators that are large enough will no longer be padded; separators that are too small (or panels without separators) will more or less function like before. This should not have much of a user-facing impact other than an increase in the click target area. (Previously I was not padding enough, as per Apple's guidelines.) - [615](https://github.com/bvaughn/react-resizable-panels/pull/615), [620](https://github.com/bvaughn/react-resizable-panels/pull/620): Double-clicking on a `Separator` resets its associated `Panel` to its default-size (see video below); double-click will have no impact on panels without default sizes - [622](https://github.com/bvaughn/react-resizable-panels/pull/622): **Bugfix**: Panels within vertical groups are now properly sized in Safari - [618](https://github.com/bvaughn/react-resizable-panels/pull/618): **Bugfix**: Don't override `adoptedStyleSheets` Demo of double-clicking on a separator: <https://github.com/user-attachments/assets/f19f6c5e-d290-455e-9bad-20e5038c3508> ### [`v4.4.2`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#442) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.4.1...4.4.2) - [610](https://github.com/bvaughn/react-resizable-panels/pull/610): Fix calculated cursor style when `"pointermove"` event is has low-precision/rounded `clientX` and `clientY` values ### [`v4.4.1`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#441) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.4.0...4.4.1) - [600](https://github.com/bvaughn/react-resizable-panels/pull/600): Bugfix: Collapsible `Panel` should treat `defaultSize={0}` as *collapsed* on mount ### [`v4.4.0`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#440) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.3.3...4.4.0) - [599](https://github.com/bvaughn/react-resizable-panels/pull/599): Add new `onLayoutChanged` prop to `Group`. For layout changes caused by pointer events, this method is not called until the pointer has been released. This callback should be used if you're doing something like saving a layout as it is called less frequently than the previous approach. The `useDefaultLayout` hook has also been updated to use this callback (though it will continue to support the old callback as well, with a `@deprecation` tag). ### [`v4.3.3`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#433) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.3.2...4.3.3) - [595](https://github.com/bvaughn/react-resizable-panels/pull/595): Don't call `event.preventDefault()` on "pointerup" unless a handle was actively dragged > \[!NOTE] > This change also fixes a text selection bug that impacted Windows users ([#&#8203;574](https://github.com/bvaughn/react-resizable-panels/issues/574)) ### [`v4.3.2`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#432) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.3.1...4.3.2) - Moved `flex-grow` `Panel` style to an inline value instead of a CSS variable defined on the parent `Group` to improve rendering performance. (This significantly reduces the negative impact from forced-reflow) ### [`v4.3.1`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#431) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.3.0...4.3.1) - [588](https://github.com/bvaughn/react-resizable-panels/pull/588): Replace `"unset"` styles with safer override values - [589](https://github.com/bvaughn/react-resizable-panels/pull/589): Use capture phase for `"pointerdown"` and `"pointerup"` events; this is necessary for compatibility with certain UI libraries like Blueprint JS - [590](https://github.com/bvaughn/react-resizable-panels/pull/590): Read `Panel` pixel size using `offsetWidth`/`offsetHeight` rather than `inlineSize` to avoid an edgecase bug with `ResizeObserver` ### [`v4.3.0`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#430) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.2.2...4.3.0) - [583](https://github.com/bvaughn/react-resizable-panels/pull/583): `Group` component now sets default `width`, `height`, and `overflow` styles; (both can be overridden using the `style` property) - [582](https://github.com/bvaughn/react-resizable-panels/pull/582): Drag interactions only call `event.preventDefault` for the primary button - Refine TS types for `useGroupRef` and `usePanelRef` to include `| null` to increase compatibility with older React versions - Update TSDoc comments for `Panel` and `Separator` components ### [`v4.2.2`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#422) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.2.1...4.2.2) - `useDefaultLayout` hook initializes `storage` param to `localStorage` if undefined. - Fix ambiguous type for `Panel` prop `onResize` that impacted certain TypeScript versions. ### [`v4.2.1`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#421) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.2.0...4.2.1) - [2a6b03f](https://github.com/bvaughn/react-resizable-panels/commit/2a6b03f67d7d8fea8483a6a69bcdaebbe1b18a7a): Add `displayName` property to `Group`, `Panel`, and `Separator` components for better debugging experience. - [577](https://github.com/bvaughn/react-resizable-panels/pull/577): `Group` handles newly registered `Panels` + `Separators` during mount so that user code can safely call imperative APIs earlier ### [`v4.2.0`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#420) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.1.1...4.2.0) - [573](https://github.com/bvaughn/react-resizable-panels/pull/573): Add `prevPanelSize` param to `onResize` callback to help simplify collapse/expand detection. ### [`v4.1.1`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#411) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.1.0...4.1.1) - [571](https://github.com/bvaughn/react-resizable-panels/pull/571): Update TS types to better reflect that `Separator` attributes `role` and `tabIndex` cannot be overridden using props. ### [`v4.1.0`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#410) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.0.16...4.1.0) - [567](https://github.com/bvaughn/react-resizable-panels/pull/567): `useDefaultLayout` hook supports saving and restoring multiple Panel layouts - [568](https://github.com/bvaughn/react-resizable-panels/pull/568): Fix race in `useGroupRef` and `usePanelRef` hooks ### [`v4.0.16`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#4016) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.0.15...4.0.16) - [563](https://github.com/bvaughn/react-resizable-panels/pull/563): Panel `expand()` API should restore pre-collapse size - [564](https://github.com/bvaughn/react-resizable-panels/pull/564): Add guard for unexpected `defaultView` value seemingly returned by some dev environments ### [`v4.0.15`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#4015) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.0.14...4.0.15) - [556](https://github.com/bvaughn/react-resizable-panels/pull/556): Ignore `defaultLayout` when keys don't match Panel ids ### [`v4.0.14`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#4014) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.0.13...4.0.14) - [555](https://github.com/bvaughn/react-resizable-panels/pull/555): Allow resizable panels to be rendered into a different Window (e.g. popup or frame) by accessing globals through `element.ownerDocument.defaultView` ### [`v4.0.13`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#4013) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.0.12...4.0.13) - `useDefaultLayout`: Deprecated `groupId` param in favor of `id` to avoid confusion; (there is no actual requirement for the Group to have a matching id) ### [`v4.0.12`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#4012) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.0.11...4.0.12) - [552](https://github.com/bvaughn/react-resizable-panels/pull/552): `useDefaultLayout` now debounces calls to `storage.setItem` by 150ms ```ts // To opt out of this change useDefaultLayout({ debounceSaveMs: 0, groupId: "test-group-id", storage: localStorage, }) ``` > \[!NOTE] > Some may consider this a breaking change, considering the default value is 150ms rather than 0ms. I think in practice this should only impact unit tests which can be easily fixed by overriding the default (as shown above) or by using fake timers. > > Changes like this are often judgement calls, but I think on balance it's better to correct my initial oversight of not debouncing this by default. ### [`v4.0.11`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#4011) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.0.10...4.0.11) - [8604491](https://github.com/bvaughn/react-resizable-panels/commit/8604491): Fix edge case bug with panel constraints not being properly invalidated after resize ### [`v4.0.10`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#4010) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.0.9...4.0.10) - [#&#8203;551](https://github.com/bvaughn/react-resizable-panels/pull/551): Expand fixed-size element support ### [`v4.0.9`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#409) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.0.8...4.0.9) - [#&#8203;542](https://github.com/bvaughn/react-resizable-panels/pull/542): Clicks on higher `z-index` elements (e.g. modals) should not trigger separators behind them - [#&#8203;547](https://github.com/bvaughn/react-resizable-panels/pull/547): Don't re-mount Group when `defaultLayout` or `disableCursor` props change - [#&#8203;548](https://github.com/bvaughn/react-resizable-panels/pull/548): Bugfix: Gracefully handle `Panel` id changes - [#&#8203;549](https://github.com/bvaughn/react-resizable-panels/pull/549): Improve DevX when Group within hidden DOM subtree; defer layout-change events ### [`v4.0.8`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#408) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.0.7...4.0.8) - [#&#8203;541](https://github.com/bvaughn/react-resizable-panels/pull/541): Don't set invalid layouts when Group is hidden or has a width/height of 0 - [40d4356](https://github.com/bvaughn/react-resizable-panels/commit/40d4356): Gracefully handle invalid `defaultLayout` value ### [`v4.0.7`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#407) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.0.6...4.0.7) - [f07bf00](https://github.com/bvaughn/react-resizable-panels/commit/f07bf00): Reset `pointer-event` styles after "pointerup" event ### [`v4.0.6`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#406) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.0.5...4.0.6) - [0796644](https://github.com/bvaughn/react-resizable-panels/commit/0796644): Account for Flex gap when calculating pointer-move delta % ### [`v4.0.5`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#405) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.0.4...4.0.5) - [#&#8203;535](https://github.com/bvaughn/react-resizable-panels/pull/535): Updated docs to make size and layout formats clearer ### [`v4.0.4`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#404) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.0.3...4.0.4) - [#&#8203;534](https://github.com/bvaughn/react-resizable-panels/pull/534): Set focus on `Separator` on "pointerdown" - [e08fe42](https://github.com/bvaughn/react-resizable-panels/commit/e08fe42195d8ace7e4e62205453be4a5245fefb9): Improve iOS/Safari resize UX ### [`v4.0.3`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#403) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.0.2...4.0.3) - Fixed TS type for `defaultLayout` value returned from `useDefaultLayout` ### [`v4.0.2`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#402) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.0.1...4.0.2) - Export `GroupImperativeHandle` and `PanelImperativeHandle` types. ### [`v4.0.1`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#4016) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/4.0.0...4.0.1) - [563](https://github.com/bvaughn/react-resizable-panels/pull/563): Panel `expand()` API should restore pre-collapse size - [564](https://github.com/bvaughn/react-resizable-panels/pull/564): Add guard for unexpected `defaultView` value seemingly returned by some dev environments ### [`v4.0.0`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#400) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/3.0.6...4.0.0) Version 4 of react-resizable-panels offers more flexible size constraints– supporting units as pixels, percentages, REMs/EMs, and more. Support for server-rendering (including Server Components) has also been expanded. #### Migrating from version 3 to 4 Refer to [the docs](https://react-resizable-panels.vercel.app/) for a complete list of props and API methods. Below are some examples of migrating from version 3 to 4, but first a couple of potential questions: <dl> <dt>Q: Why'd you rename &lt;component&gt; or &lt;prop&gt;?</dt> <dd>A: The most likely reason is that I think the new name more closely aligns with web standards like WAI-ARIA and CSS. For example, the <code>PanelResizeHandle</code> component was renamed to <code>Separator</code> to better align with the <a href="https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Roles/separator_role">ARIA "separator" role</a> and the <code>direction</code> prop was renamed to <code>orientation</code> to better align with the <a href="https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Attributes/aria-orientation">ARIA <code>orientation</code> attribute </a>.</dd> <dt>Q: Why'd you remove support for &lt;feature&gt;?</dt> <dd>A: Probably because it wasn't used widely enough to justify the complexity required to maintain it. If it turns out that I'm mistaken, features can always be (re)added but it's more difficult to remove them.</dd> <dt>Q: Were the <code>onCollapse</code> and <code>onExpand</code> event handlers removed?</dt> <dd>A: Yes. Use the <code>onResize</code> event handler instead: ```ts onResize={(nextSize, id, prevSize) => { if (prevSize !== undefined) { const wasCollapsed = prevSize.asPercentage !== 0; const isCollapsed = nextSize.asPercentage === 0; if (isCollapsed !== wasCollapsed) { // Panel was collapsed or expanded } } }} ``` </dd> </dl> ##### Basic usage example ```tsx // Version 3 import { PanelGroup, Panel, PanelResizeHandle } from "react-resizable-panels"; <PanelGroup direction="horizontal"> <Panel defaultSize={30} minSize={20}>left</Panel> <PanelResizeHandle /> <Panel defaultSize={30} minSize={20}>right</Panel> </PanelGroup> // Version 4 import { Group, Panel, Separator } from "react-resizable-panels"; <Group orientation="horizontal"> <Panel defaultSize="30%" minSize="20%">left</Panel> <Separator /> <Panel defaultSize="30%" minSize="20%">right</Panel> </Group> ``` ##### Persistent layouts using localStorage ```tsx // Version 3 import { PanelGroup, Panel, PanelResizeHandle } from "react-resizable-panels"; <PanelGroup autoSaveId="unique-group-id" direction="horizontal"> <Panel>left</Panel> <PanelResizeHandle /> <Panel>right</Panel> </PanelGroup> // Version 4 import { Group, Panel, Separator, useDefaultLayout } from "react-resizable-panels"; const { defaultLayout, onLayoutChange } = useDefaultLayout({ groupId: "unique-group-id", storage: localStorage }); <Group defaultLayout={defaultLayout} onLayoutChange={onLayoutChange}> <Panel>left</Panel> <Separator /> <Panel>right</Panel> </Group> ``` > \[!NOTE] > Refer to [the docs](https://react-resizable-panels.vercel.app/examples/persistent-layout) for examples of persistent layouts with server rendering and server components. ##### Conditional panels ```tsx // Version 3 import { PanelGroup, Panel, PanelResizeHandle } from "react-resizable-panels"; <PanelGroup autoSaveId="unique-group-id" direction="horizontal"> {showLeftPanel && ( <> <Panel id="left" order={1}>left</Panel> <PanelResizeHandle /> </> )} <Panel id="center" order={2}>center</Panel> {showRightPanel && ( <> <PanelResizeHandle /> <Panel id="right" order={3}>right</Panel> </> )} </PanelGroup> // Version 4 import { Group, Panel, Separator } from "react-resizable-panels"; <Group> {showLeftPanel && ( <> <Panel id="left">left</Panel> <Separator /> </> )} <Panel id="center">center</Panel> {showRightPanel && ( <> <Separator /> <Panel id="right">right</Panel> </> )} </Group> ``` ##### Imperative APIs ```tsx // Version 3 import { PanelGroup, Panel, PanelResizeHandle } from "react-resizable-panels"; import type { ImperativePanelGroupHandle, ImperativePanelHandle }from "react-resizable-panels"; const panelRef = useRef<ImperativePanelHandle>(null); const panelGroupRef = useRef<ImperativePanelGroupHandle>(null); <PanelGroup direction="horizontal" ref={panelGroupRef}> <Panel ref={panelRef}>left</Panel> <PanelResizeHandle /> <Panel>right</Panel> </PanelGroup> // Version 4 import { Group, Panel, Separator, useGroupRef, usePanelRef } from "react-resizable-panels"; const groupRef = useGroupRef(); const panelRef = usePanelRef(); <Group groupRef={groupRef} orientation="horizontal"> <Panel panelRef={panelRef}>left</Panel> <Separator /> <Panel>right</Panel> </Group> ``` ##### Disabling custom cursors ```tsx // Version 3 import { disableGlobalCursorStyles } from "react-resizable-panels"; disableGlobalCursorStyles(); // Version 4 import { Group, Panel, Separator } from "react-resizable-panels"; <Group disableCursor /> ``` ### [`v3.0.6`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#306) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/3.0.5...3.0.6) - [#&#8203;517](https://github.com/bvaughn/react-resizable-panels/pull/517): Fixed Firefox bug that caused resizing to be interrupted unexpected ### [`v3.0.5`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#305) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/3.0.4...3.0.5) - [#&#8203;512](https://github.com/bvaughn/react-resizable-panels/pull/512): Fixed size precision regression from 2.0.17 ### [`v3.0.4`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#304) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/3.0.3...3.0.4) - [#&#8203;503](https://github.com/bvaughn/react-resizable-panels/pull/503): Support custom cursors ### [`v3.0.3`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#303) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/3.0.2...3.0.3) - [#&#8203;492](https://github.com/bvaughn/react-resizable-panels/pull/492): Fix compatibility with cloudflare workers ### [`v3.0.2`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#302) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/3.0.1...3.0.2) - Fallback for type of `HTMLElement` to better support portal edge cases ### [`v3.0.1`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#301) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/3.0.0...3.0.1) - [#&#8203;479](https://github.com/bvaughn/react-resizable-panels/pull/479): Improve support for Cloudflare Workers and Vercel Functions - [#&#8203;480](https://github.com/bvaughn/react-resizable-panels/pull/480): Fixed `package.json#types` reference ### [`v3.0.0`](https://github.com/bvaughn/react-resizable-panels/blob/HEAD/CHANGELOG.md#300) [Compare Source](https://github.com/bvaughn/react-resizable-panels/compare/2.1.9...3.0.0) - [#&#8203;478](https://github.com/bvaughn/react-resizable-panels/pull/478): Module is ESM-only in order to better work with modern tooling. - [#&#8203;475](https://github.com/bvaughn/react-resizable-panels/pull/475): `"pointerup"` and `"pointercancel"` listeners are now attached to the `ownerDocument` body to better support edge cases like portals being rendered into a child window. </details> <details> <summary>recharts/recharts (recharts)</summary> ### [`v3.8.1`](https://github.com/recharts/recharts/releases/tag/v3.8.1) [Compare Source](https://github.com/recharts/recharts/compare/v3.8.0...v3.8.1) #### What's Changed Bugfixes! - fix(z-index): prevent elements from disappearing during dynamic zIndex transitions by [@&#8203;VIDHITTS](https://github.com/VIDHITTS) in [#&#8203;7006](https://github.com/recharts/recharts/pull/7006) - fix: prevent tooltip flicker in syncMethod="value" with mismatched data arrays by [@&#8203;roy7](https://github.com/roy7) in [#&#8203;7020](https://github.com/recharts/recharts/pull/7020) - docs: add missing SVG props documentation to PolarGrid [#&#8203;3400](https://github.com/recharts/recharts/issues/3400) by [@&#8203;ramanverse](https://github.com/ramanverse) in [#&#8203;6987](https://github.com/recharts/recharts/pull/6987) - fix: add cursor prop type to BaseChartProps by [@&#8203;mixelburg](https://github.com/mixelburg) in [#&#8203;7065](https://github.com/recharts/recharts/pull/7065) - fix: restore arrow key navigation when active index is outside zoomed… by [@&#8203;AbishekRaj2007](https://github.com/AbishekRaj2007) in [#&#8203;7086](https://github.com/recharts/recharts/pull/7086) - Add test for ticks spacing by [@&#8203;VIDHITTS](https://github.com/VIDHITTS) in [#&#8203;7082](https://github.com/recharts/recharts/pull/7082) - fix(Pie): skip minAngle redistribution when no segment needs it by [@&#8203;Harikrushn9118](https://github.com/Harikrushn9118) in [#&#8203;7097](https://github.com/recharts/recharts/pull/7097) - fix(DefaultLegendContent): use entry.value for aria-label when formatter returns React element by [@&#8203;mixelburg](https://github.com/mixelburg) in [#&#8203;7109](https://github.com/recharts/recharts/pull/7109) - fix(PolarRadiusAxis): update ticks prop type by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;7112](https://github.com/recharts/recharts/pull/7112) - fix: PieChart double padding gap when a data item has value 0 by [@&#8203;Copilot](https://github.com/Copilot) in [#&#8203;7113](https://github.com/recharts/recharts/pull/7113) - Add boxplot example by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;7130](https://github.com/recharts/recharts/pull/7130) - \[fix] Update ticks calculator and domain extension by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;7146](https://github.com/recharts/recharts/pull/7146) - fix: guard against non-function d3-scale exports in getD3ScaleFromType by [@&#8203;tdebarochez](https://github.com/tdebarochez) in [#&#8203;7123](https://github.com/recharts/recharts/pull/7123) - fix: stackOffset expand should not override numerical XAxis domain by [@&#8203;SeaL773](https://github.com/SeaL773) in [#&#8203;7152](https://github.com/recharts/recharts/pull/7152) - fix: resolve keyboard navigation and tooltip issues for Pie charts ([#&#8203;6921](https://github.com/recharts/recharts/issues/6921)) by [@&#8203;olagokemills](https://github.com/olagokemills) in [#&#8203;7140](https://github.com/recharts/recharts/pull/7140) - fix(Tooltip): prevent crash on sparse or undefined payload entries by [@&#8203;Om-Mishra09](https://github.com/Om-Mishra09) in [#&#8203;7149](https://github.com/recharts/recharts/pull/7149) - fix(RechartsWrapper): prevent ResizeObserver memory leak on ref update by [@&#8203;Om-Mishra09](https://github.com/Om-Mishra09) in [#&#8203;7161](https://github.com/recharts/recharts/pull/7161) #### New Contributors - [@&#8203;AbishekRaj2007](https://github.com/AbishekRaj2007) made their first contribution in [#&#8203;7086](https://github.com/recharts/recharts/pull/7086) - [@&#8203;tdebarochez](https://github.com/tdebarochez) made their first contribution in [#&#8203;7123](https://github.com/recharts/recharts/pull/7123) - [@&#8203;SeaL773](https://github.com/SeaL773) made their first contribution in [#&#8203;7152](https://github.com/recharts/recharts/pull/7152) - [@&#8203;olagokemills](https://github.com/olagokemills) made their first contribution in [#&#8203;7140](https://github.com/recharts/recharts/pull/7140) **Full Changelog**: <https://github.com/recharts/recharts/compare/v3.8.0...v3.8.1> ### [`v3.8.0`](https://github.com/recharts/recharts/releases/tag/v3.8.0) [Compare Source](https://github.com/recharts/recharts/compare/v3.7.0...v3.8.0) #### What's Changed We added generics to our `data` and `dataKey` props and now you can have your charts validated by TypeScript. See the full guide here: <https://recharts.github.io/en-US/guide/typescript/> We are releasing new helper functions and hooks that will allow you to precisely target mouse interactions, and convert coordinates. See the guide here: <https://recharts.github.io/en-US/guide/coordinateSystems/> And new functions and hooks: [getRelativeCoordinate](https://recharts.github.io/en-US/api/getRelativeCoordinate/) - converts mouse events to pixel positions Convert Data → Pixels: [useXAxisScale](https://recharts.github.io/en-US/api/useXAxisScale) - returns a function to convert X data values to pixel positions [useYAxisScale](https://recharts.github.io/en-US/api/useYAxisScale) - returns a function to convert Y data values to pixel positions [useCartesianScale](https://recharts.github.io/en-US/api/useCartesianScale) - convenience hook for converting both at once Pixels → Data: [useXAxisInverseScale](https://recharts.github.io/en-US/api/useXAxisInverseScale) - returns a function to convert pixel X to the closest data value [useYAxisInverseScale](https://recharts.github.io/en-US/api/useYAxisInverseScale) - returns a function to convert pixel Y to the closest data value [useXAxisInverseTickSnapScale](https://recharts.github.io/en-US/api/useXAxisInverseTickSnapScale) - returns a function to convert pixel X to the closest axis tick [useYAxisInverseTickSnapScale](https://recharts.github.io/en-US/api/useYAxisInverseTickSnapScale) - returns a function to convert pixel Y to the closest axis tick Accessing Ticks: [useXAxisTicks](https://recharts.github.io/en-US/api/useXAxisTicks) - returns the calculated ticks of an X-axis [useYAxisTicks](https://recharts.github.io/en-US/api/useYAxisTicks) - returns the calculated ticks of a Y-axis ##### Feat - `Hooks`: New hooks (see above) by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6960](https://github.com/recharts/recharts/pull/6960) - `Annotations`: export `getRelativeCoordinate` helper function by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6942](https://github.com/recharts/recharts/pull/6942) - `Legend`: Add label style prop in Legend by [@&#8203;devoldemar](https://github.com/devoldemar) in [#&#8203;7012](https://github.com/recharts/recharts/pull/7012) - `XAxis/YAxis`: **new** `niceTIcks` prop - specify `'none' | 'auto' | 'equidistant' | 'nice'` for different behaviors by [@&#8203;MaxGhenis](https://github.com/MaxGhenis) in [#&#8203;7009](https://github.com/recharts/recharts/pull/7009) - `General`: Add event throttling controls to chart props by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6924](https://github.com/recharts/recharts/pull/6924) ##### Fix - `Pie`: fix: enable tooltip synchronization for PieChart by [@&#8203;VIDHITTS](https://github.com/VIDHITTS) in [#&#8203;6989](https://github.com/recharts/recharts/pull/6989) - `Pie`: fix: sync pie tooltip/legend color with per-sector fill by [@&#8203;2YH02](https://github.com/2YH02) in [#&#8203;6977](https://github.com/recharts/recharts/pull/6977) - `Bar`: Fix activeBar highlighting with missing/null data by [@&#8203;Copilot](https://github.com/Copilot) in [#&#8203;7001](https://github.com/recharts/recharts/pull/7001) - `Bar`: Support Bar CSS transitions by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6920](https://github.com/recharts/recharts/pull/6920) - `XAxis/YAxis`: respect user-provided textAnchor prop on XAxis/YAxis by [@&#8203;pierreeurope](https://github.com/pierreeurope) in [#&#8203;7028](https://github.com/recharts/recharts/pull/7028) - `Tooltip`: Close tooltip on blur by [@&#8203;gVguy](https://github.com/gVguy) in [#&#8203;6958](https://github.com/recharts/recharts/pull/6958) - `General`: fix error when `onMouseEnter/Leave={undefined}` by [@&#8203;SvetlanaVesna](https://github.com/SvetlanaVesna) in [#&#8203;6969](https://github.com/recharts/recharts/pull/6969) - `Animation`: \[animations] auto disable primitives animations based on user system preferences by [@&#8203;cloud-walker](https://github.com/cloud-walker) in [#&#8203;6956](https://github.com/recharts/recharts/pull/6956) - `Animation/Line`: fix: prevent animated line flicker with round/square strokeLinecap by [@&#8203;roy7](https://github.com/roy7) in [#&#8203;7022](https://github.com/recharts/recharts/pull/7022) - `Performance`: filter zero-dimension rectangles early by [@&#8203;MendyLanda](https://github.com/MendyLanda) in [#&#8203;6800](https://github.com/recharts/recharts/pull/6800) - Bump minimum [@&#8203;reduxjs/toolkit](https://github.com/reduxjs/toolkit) to 1.9.0 by [@&#8203;Copilot](https://github.com/Copilot) in [#&#8203;6934](https://github.com/recharts/recharts/pull/6934) ##### Types - `Bar`: Add generics to Bar by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;7015](https://github.com/recharts/recharts/pull/7015) - `RadialBar`: shape type and selector stability by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6917](https://github.com/recharts/recharts/pull/6917) - `LabelList/Area`: Enhance type definitions for LabelList and Area components by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6936](https://github.com/recharts/recharts/pull/6936) - `Pie` Fix Pie event handlers type by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6944](https://github.com/recharts/recharts/pull/6944) - `Pie/RadialBar`: Fix event types for Pie and RadialBar by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6965](https://github.com/recharts/recharts/pull/6965) - `PolarAngleAxis`: Fix PolarAngleAxis event types, add tests for remaining components by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;7000](https://github.com/recharts/recharts/pull/7000) - `Tooltip`: payload type from any by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6925](https://github.com/recharts/recharts/pull/6925) - `XAxis/YAxis`: update event types for XAxis and YAxis, add type tests by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;7004](https://github.com/recharts/recharts/pull/7004) - `General`: Add external generics to Area by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6993](https://github.com/recharts/recharts/pull/6993) - `General`: Add optional explicit generics to graphical items and charts by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;7035](https://github.com/recharts/recharts/pull/7035) - `General`: New feature - typed charts helper by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;7071](https://github.com/recharts/recharts/pull/7071) - `General`: Fix mouse event type by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6939](https://github.com/recharts/recharts/pull/6939) ##### Docs - Add tests, documentation, and website example for Treemap nesting ([#&#8203;4](https://github.com/recharts/recharts/issues/4)… by [@&#8203;VIDHITTS](https://github.com/VIDHITTS) in [#&#8203;6971](https://github.com/recharts/recharts/pull/6971) - docs: add computeWaterfallData utility for waterfall charts by [@&#8203;MaxGhenis](https://github.com/MaxGhenis) in [#&#8203;7011](https://github.com/recharts/recharts/pull/7011) - docs: add ErrorBar dataPointFormatter storybook examples by [@&#8203;mixelburg](https://github.com/mixelburg) in [#&#8203;7026](https://github.com/recharts/recharts/pull/7026) - \[dark mode] line chart examples by [@&#8203;cloud-walker](https://github.com/cloud-walker) in [#&#8203;6916](https://github.com/recharts/recharts/pull/6916) - fix(storybook): use flat dataset for Simple and WithTooltip Treemap stories ([#&#8203;6364](https://github.com/recharts/recharts/issues/6364)) by [@&#8203;Harikrushn9118](https://github.com/Harikrushn9118) in [#&#8203;7072](https://github.com/recharts/recharts/pull/7072) - docs: Dark mode homepage by [@&#8203;cloud-walker](https://github.com/cloud-walker) in [#&#8203;7063](https://github.com/recharts/recharts/pull/7063) #### New Contributors - [@&#8203;gVguy](https://github.com/gVguy) made their first contribution in [#&#8203;6958](https://github.com/recharts/recharts/pull/6958) - [@&#8203;SvetlanaVesna](https://github.com/SvetlanaVesna) made their first contribution in [#&#8203;6969](https://github.com/recharts/recharts/pull/6969) - [@&#8203;VIDHITTS](https://github.com/VIDHITTS) made their first contribution in [#&#8203;6971](https://github.com/recharts/recharts/pull/6971) - [@&#8203;2YH02](https://github.com/2YH02) made their first contribution in [#&#8203;6977](https://github.com/recharts/recharts/pull/6977) - [@&#8203;MaxGhenis](https://github.com/MaxGhenis) made their first contribution in [#&#8203;7011](https://github.com/recharts/recharts/pull/7011) - [@&#8203;mixelburg](https://github.com/mixelburg) made their first contribution in [#&#8203;7026](https://github.com/recharts/recharts/pull/7026) - [@&#8203;roy7](https://github.com/roy7) made their first contribution in [#&#8203;7022](https://github.com/recharts/recharts/pull/7022) - [@&#8203;devoldemar](https://github.com/devoldemar) made their first contribution in [#&#8203;7012](https://github.com/recharts/recharts/pull/7012) - [@&#8203;MendyLanda](https://github.com/MendyLanda) made their first contribution in [#&#8203;6800](https://github.com/recharts/recharts/pull/6800) - [@&#8203;pierreeurope](https://github.com/pierreeurope) made their first contribution in [#&#8203;7028](https://github.com/recharts/recharts/pull/7028) - [@&#8203;haritamar](https://github.com/haritamar) made their first contribution in [#&#8203;7068](https://github.com/recharts/recharts/pull/7068) **Full Changelog**: <https://github.com/recharts/recharts/compare/v3.7.0...v3.8.0> ### [`v3.7.0`](https://github.com/recharts/recharts/releases/tag/v3.7.0) [Compare Source](https://github.com/recharts/recharts/compare/v3.6.0...v3.7.0) #### What's Changed 📢 **`Cell` is now deprecated** and will be removed in the next major version. Please migrate all `Cell` usage to use the `shape` prop of respective chart elements. ‼️ ##### Feat ##### New Hooks - `useIsTooltipActive`: returns if the tooltip is active by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6880](https://github.com/recharts/recharts/pull/6880) - `useActiveTooltipCoordinate`: returns current tooltip coordinate by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6880](https://github.com/recharts/recharts/pull/6880) ##### Other - `Tooltip`: allow `offset` prop to accept Coordinate object by [@&#8203;bigsaigon333](https://github.com/bigsaigon333) in [#&#8203;6868](https://github.com/recharts/recharts/pull/6868) `X/YAxis` add new axis type: "auto" by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6823](https://github.com/recharts/recharts/pull/6823) - sets the type to "category" for categorical axes, and "number" for numeric axis. - `X/YAxis`: replace `tick: any` with explicit type by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6911](https://github.com/recharts/recharts/pull/6911) - `Bar/TypeScript`: add `BarShapeProps` type to fix `Bar.shape` type by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6900](https://github.com/recharts/recharts/pull/6900) - `TypeScript`: add missing useful type exports for `content`, `shape` functions, etc. [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6852](https://github.com/recharts/recharts/pull/6852) ##### Fix - `BarChart`: fix `stackOffset=sign` for charts with 3 or more positive values in one series by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6807](https://github.com/recharts/recharts/pull/6807) - `BarStack`: fix circular dependency when building with vite by [@&#8203;jkr2255](https://github.com/jkr2255) in [#&#8203;6777](https://github.com/recharts/recharts/pull/6777) - `BarStack`: fix `BarStack` `clipPath` in charts with `stackOffset=sign` by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6806](https://github.com/recharts/recharts/pull/6806) - `BarStack`: apply bar stack radius to active bars by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6906](https://github.com/recharts/recharts/pull/6906) ##### Chore - Enabled `strict` tsconfig by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6842](https://github.com/recharts/recharts/pull/6842) ##### Docs We've started auto-generating our docs for the most part so you should see large improvements in accuracy of the docs between the code, the website, and the storybook. Huge shoutout to [@&#8203;PavelVanecek](https://github.com/PavelVanecek) 🚀 - Dark mode 🕶️ by [@&#8203;cloud-walker](https://github.com/cloud-walker) in [#&#8203;6828](https://github.com/recharts/recharts/pull/6828) - Thanks [@&#8203;cloud-walker](https://github.com/cloud-walker) - Recharts devtools has been added to all website examples for easier issue debugging #### New Contributors - [@&#8203;jkr2255](https://github.com/jkr2255) made their first contribution in [#&#8203;6777](https://github.com/recharts/recharts/pull/6777) - [@&#8203;cloud-walker](https://github.com/cloud-walker) made their first contribution in [#&#8203;6824](https://github.com/recharts/recharts/pull/6824) - [@&#8203;bigsaigon333](https://github.com/bigsaigon333) made their first contribution in [#&#8203;6868](https://github.com/recharts/recharts/pull/6868) - [@&#8203;huangkevin-apr](https://github.com/huangkevin-apr) made their first contribution in [#&#8203;6872](https://github.com/recharts/recharts/pull/6872) **Full Changelog**: <https://github.com/recharts/recharts/compare/v3.6.0...v3.7.0> ### [`v3.6.0`](https://github.com/recharts/recharts/releases/tag/v3.6.0) [Compare Source](https://github.com/recharts/recharts/compare/v3.5.1...v3.6.0) #### What's Changed 3.6 🚀 - check out [`BarStack`](https://recharts.github.io/en-US/guide/roundedBars/) and [ranged stacked bars](https://recharts.github.io/en-US/examples/RangedStackedBarChart/) 📊 ##### Feat - `BarStack`: new component `BarStack` by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6746](https://github.com/recharts/recharts/pull/6746) - allows configuring settings for the whole stack of bars such as `radius` - `Bar`: enable ranged stacked bars by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6722](https://github.com/recharts/recharts/pull/6722) - `Pie/Typescript`: Export `PieSectorShapeProps` type for `shape` function by [@&#8203;ramanverse](https://github.com/ramanverse) in [#&#8203;6706](https://github.com/recharts/recharts/pull/6706) `XAxis/YAxis`: Implement 'equidistantPreserveEnd' interval option for XAxis and YAxis ([#&#8203;6642](https://github.com/recharts/recharts/issues/6642)) by [@&#8203;Om-Mishra09](https://github.com/Om-Mishra09) in [#&#8203;6661](https://github.com/recharts/recharts/pull/6661) - `Tooltip`: Add `graphicalItemId` to tooltip payload object by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6765](https://github.com/recharts/recharts/pull/6765) - `TypeScript`: Export `TooltipIndex`, `BarRectangleItem`, `TreemapNode`, `DataKey`, `AxisInterval` from public API by [@&#8203;Copilot](https://github.com/Copilot) in [#&#8203;6676](https://github.com/recharts/recharts/pull/6676) ##### Fix - `Scatter`: fix bug where Tooltip payload data was duplicated or contained unrelated items when using multiple `Scatter` elements in one `ScatterChart` by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6773](https://github.com/recharts/recharts/pull/6773) - `Label/LabelList: `Fix crash when `Label` is passed as content to `LabelList` by [@&#8203;Harikrushn9118](https://github.com/Harikrushn9118) in [#&#8203;6732](https://github.com/recharts/recharts/pull/6732) - `General`: Round numbers before putting them to DOM by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6707](https://github.com/recharts/recharts/pull/6707) - `General`: Store refs instead of IDs to unblock shadow DOM usecases by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6753](https://github.com/recharts/recharts/pull/6753) ##### Chore - `CartesianAxis`: Deprecate `CartesianAxis` [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6774](https://github.com/recharts/recharts/pull/6774) - Bump to Node 24 - Lots of `undefined` checks for progress towards TS `strict` mode ##### Docs - Docs should be improving on the daily - comments in code + storybook + the website should all be coming closer to in sync thanks to [@&#8203;PavelVanecek](https://github.com/PavelVanecek) pretty much writing his own documentation generator 🤖 🚀 #### New Contributors - [@&#8203;Om-Mishra09](https://github.com/Om-Mishra09) made their first contribution in [#&#8203;6661](https://github.com/recharts/recharts/pull/6661) - [@&#8203;taro-yanagiya](https://github.com/taro-yanagiya) made their first contribution in [#&#8203;6708](https://github.com/recharts/recharts/pull/6708) - [@&#8203;ramanverse](https://github.com/ramanverse) made their first contribution in [#&#8203;6706](https://github.com/recharts/recharts/pull/6706) - [@&#8203;Advikkhandelwal](https://github.com/Advikkhandelwal) made their first contribution in [#&#8203;6714](https://github.com/recharts/recharts/pull/6714) - [@&#8203;Harikrushn9118](https://github.com/Harikrushn9118) made their first contribution in [#&#8203;6732](https://github.com/recharts/recharts/pull/6732) - [@&#8203;milanchahar](https://github.com/milanchahar) made their first contribution in [#&#8203;6739](https://github.com/recharts/recharts/pull/6739) **Full Changelog**: <https://github.com/recharts/recharts/compare/v3.5.1...v3.6.0> ### [`v3.5.1`](https://github.com/recharts/recharts/releases/tag/v3.5.1) [Compare Source](https://github.com/recharts/recharts/compare/v3.5.0...v3.5.1) #### What's Changed ##### Fix - `Pie`: add missing `Sector` index to `Pie` `shape` prop by [@&#8203;ckifer](https://github.com/ckifer) in [#&#8203;6683](https://github.com/recharts/recharts/pull/6683) - This enables customization of specific slices of the `Pie` similar to `activeIndex` in 2.x - `Pie`: prevent cross-Pie highlighting in multi-Pie `PieChart`s with shared dataKeys by [@&#8203;shreedharbhat98](https://github.com/shreedharbhat98) in [#&#8203;6678](https://github.com/recharts/recharts/pull/6678) - Only marks a specific Sector as active when that sector is hovered - `TypeScript/Tooltip`: update `activeLabel` type to be a `string | number` by [@&#8203;ckifer](https://github.com/ckifer) in [#&#8203;6691](https://github.com/recharts/recharts/pull/6691) - **!! NOTE !!**: This change may break your types if you relied on it as a string, but this *is* a bug fix - `Accessibility/General`: add `tabIndex` -1 on Recharts `ZIndex` svg portal `g` tags to prevent extraneous focusable surfaces by [@&#8203;ckifer](https://github.com/ckifer) in [#&#8203;6687](https://github.com/recharts/recharts/pull/6687) - `General`: Removed accidental eslint dependency from main dependencies which should remove it from installation with recharts #### New Contributors - [@&#8203;Ashish-rajput999](https://github.com/Ashish-rajput999) made their first contribution in [#&#8203;6694](https://github.com/recharts/recharts/pull/6694) **Full Changelog**: <https://github.com/recharts/recharts/compare/v3.5.0...v3.5.1> ### [`v3.5.0`](https://github.com/recharts/recharts/releases/tag/v3.5.0) [Compare Source](https://github.com/recharts/recharts/compare/v3.4.1...v3.5.0) #### What's Changed Mostly fixes and performance improvements this release but check out the deprecation of `Pie` `active/inactiveShape` in favor of aligning with the `shape` prop of other chart elements. ##### Feat - `Pie`: add `shape` to align custom Pie sector shapes to other Recharts components by [@&#8203;ckifer](https://github.com/ckifer) in [#&#8203;6482](https://github.com/recharts/recharts/pull/6482) - This change deprecates `activeShape` and `inactiveShape`. Please use the `isActive` prop passed from the callback to `shape` to create active Pie sectors. - Note: forgot to include the current Sector index, will add in 3.5.1 - `Stacked Charts`: implement `reverseStackOrder` prop in v3 - fixes a regression between recharts 2 and 3 by [@&#8203;j-shimizu111](https://github.com/j-shimizu111) in [#&#8203;6644](https://github.com/recharts/recharts/pull/6644) - `Typescript/Dot`: export `ActiveDotProps` and `DotItemDotProps` types by [@&#8203;simaks](https://github.com/simaks) in [#&#8203;6657](https://github.com/recharts/recharts/pull/6657) ##### Fix - Performance Improvements! <https://recharts.github.io/en-US/guide/performance/> - - Optimize `SetTooltipEntrySettings` to break infinite rendering loop by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6616](https://github.com/recharts/recharts/pull/6616) - Various performance improvements by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6634](https://github.com/recharts/recharts/pull/6634) - Some more performance improvements by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6654](https://github.com/recharts/recharts/pull/6654) - `Line`: fix animation when interrupted with non-data related changes by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6641](https://github.com/recharts/recharts/pull/6641) - `Line/Area`: fix active dot appearing outside graph by [@&#8203;cameronm-orion](https://github.com/cameronm-orion) in [#&#8203;6612](https://github.com/recharts/recharts/pull/6612) - `Legend`: a `Legend` with a `portal` no longer adjusts the margin of the chart (which left an empty space) by [@&#8203;ckifer](https://github.com/ckifer) in [#&#8203;6609](https://github.com/recharts/recharts/pull/6609) - `ErrorBar`: remove duplicate key warning when error range has same values by [@&#8203;bas0N](https://github.com/bas0N) in [#&#8203;6660](https://github.com/recharts/recharts/pull/6660) - `PolarAngleAxis`: prevent overlapping "0" and "360" ticks by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6611](https://github.com/recharts/recharts/pull/6611) - `Typescript/Area`: add specific type to `Area.label` instead of `any` by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6621](https://github.com/recharts/recharts/pull/6621) - `General`: disable immutable check in production, removes console warnings by [@&#8203;tngwoerleij](https://github.com/tngwoerleij) in [#&#8203;6619](https://github.com/recharts/recharts/pull/6619) ##### Docs - Add guide for performant charts by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6659](https://github.com/recharts/recharts/pull/6659) - <https://recharts.github.io/en-US/guide/performance/> please follow the guide for best results - [@&#8203;PavelVanecek](https://github.com/PavelVanecek) fixed and updated a lot of our documentation on both the storybook and website 📖 🚀 #### New Contributors (thanks everyone!) - [@&#8203;Parth10P](https://github.com/Parth10P) made their first contribution in [#&#8203;6623](https://github.com/recharts/recharts/pull/6623) - [@&#8203;j-shimizu111](https://github.com/j-shimizu111) made their first contribution in [#&#8203;6644](https://github.com/recharts/recharts/pull/6644) - [@&#8203;tngwoerleij](https://github.com/tngwoerleij) made their first contribution in [#&#8203;6619](https://github.com/recharts/recharts/pull/6619) - [@&#8203;bas0N](https://github.com/bas0N) made their first contribution in [#&#8203;6660](https://github.com/recharts/recharts/pull/6660) - [@&#8203;cameronm-orion](https://github.com/cameronm-orion) made their first contribution in [#&#8203;6612](https://github.com/recharts/recharts/pull/6612) - [@&#8203;simaks](https://github.com/simaks) made their first contribution in [#&#8203;6657](https://github.com/recharts/recharts/pull/6657) **Full Changelog**: <https://github.com/recharts/recharts/compare/v3.4.1...v3.4.2> ### [`v3.4.1`](https://github.com/recharts/recharts/releases/tag/v3.4.1) [Compare Source](https://github.com/recharts/recharts/compare/v3.4.0...v3.4.1) #### What's Changed Forgot some exports for Z Index in 3.4 - export `DefaultZIndexes` and `ZIndexLayer` by [@&#8203;ckifer](https://github.com/ckifer) in [#&#8203;6599](https://github.com/recharts/recharts/pull/6599) **Full Changelog**: <https://github.com/recharts/recharts/compare/v3.4.0...v3.4.1> ### [`v3.4.0`](https://github.com/recharts/recharts/releases/tag/v3.4.0) [Compare Source](https://github.com/recharts/recharts/compare/v3.3.0...v3.4.0) #### What's Changed Added z-index support across most recharts surfaces + a few other features, lots of fixes, and some doc updates 🚀 ##### Feat - Z Index! - You can now add a z index to many chart components to order the position of recharts elements as you wish, mimicking CSS z-index. Big shout out to [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6479](https://github.com/recharts/recharts/pull/6479) - See the guide page - <https://recharts.github.io/en-US/guide/zIndex/> - `Line`: add `shape` property to allow for custom shape implementations by [@&#8203;tarik02](https://github.com/tarik02) in [#&#8203;6512](https://github.com/recharts/recharts/pull/6512) - `Stacked Bar`: improved stacked bar animations - `Sankey`: support for left-aligned Sankey nodes via the `align` prop by [@&#8203;dbnl-renaud](https://github.com/dbnl-renaud) in [#&#8203;6568](https://github.com/recharts/recharts/pull/6568) - `Sankey`: support for top-aligned Sankey nodes via the `verticalAlign` prop by [@&#8203;dbnl-kat](https://github.com/dbnl-kat) [#&#8203;6576](https://github.com/recharts/recharts/pull/6576) - `Label`: allow overwriting the `textAnchor` prop by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6547](https://github.com/recharts/recharts/pull/6547) ##### Fix - `Stacked Bar / Brush`: fix bug in stacked bar charts with a brush where the brush would remove elements from the wrong side of the chart by [@&#8203;37108](https://github.com/37108) in [#&#8203;6481](https://github.com/recharts/recharts/pull/6481) - `Area`: fix regression in Area event handlers where the events were not firing correctly by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6507](https://github.com/recharts/recharts/pull/6507) - `Funnel`: fix Funnel margin calculations by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6453](https://github.com/recharts/recharts/pull/6453) - `Funnel`: fix label position issues from previous release by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6473](https://github.com/recharts/recharts/pull/6473) - `Label/Text`: correct `Label` and `Text` types to only what they can actually render by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6467](https://github.com/recharts/recharts/pull/6467) - `Misc`: inline a few es-toolkit functions that were causing build errors by [@&#8203;daiboom](https://github.com/daiboom) in [#&#8203;6543](https://github.com/recharts/recharts/pull/6543) - `Misc`: remove circular dependency import that had potential to cause runtime errors by [@&#8203;ckifer](https://github.com/ckifer) in [#&#8203;6581](https://github.com/recharts/recharts/pull/6581) ##### Chore - Finished adding strict null checks and enabled `strictNulls` in TSConfig for good 🚀 - by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6497](https://github.com/recharts/recharts/pull/6497) ##### Docs Lots of changes in recharts.github.io - Switch code editor to codemirror by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6531](https://github.com/recharts/recharts/pull/6531) - Added/removed missing/stale properties where applicable from storybook and website - Few layout/visual changes and fixes on the website - Much more #### New Contributors - [@&#8203;37108](https://github.com/37108) made their first contribution in [#&#8203;6481](https://github.com/recharts/recharts/pull/6481) - [@&#8203;tarik02](https://github.com/tarik02) made their first contribution in [#&#8203;6512](https://github.com/recharts/recharts/pull/6512) - [@&#8203;dbnl-renaud](https://github.com/dbnl-renaud) made their first contribution in [#&#8203;6568](https://github.com/recharts/recharts/pull/6568) - [@&#8203;coderabbitai](https://github.com/coderabbitai)\[bot] made their first contribution in [#&#8203;6538](https://github.com/recharts/recharts/pull/6538) - [@&#8203;dbnl-kat](https://github.com/dbnl-kat) made their first contribution in [#&#8203;6576](https://github.com/recharts/recharts/pull/6576) **Full Changelog**: <https://github.com/recharts/recharts/compare/v3.3.0...v3.4.0> ### [`v3.3.0`](https://github.com/recharts/recharts/releases/tag/v3.3.0) [Compare Source](https://github.com/recharts/recharts/compare/v3.2.1...v3.3.0) #### What's Changed ##### Feat - `ResponsiveContainer` is now built-in to all charts by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6388](https://github.com/recharts/recharts/pull/6388) - add the `responsive` prop to any chart along with a height and width as if you were using `ResponsiveContainer`. One less component to wrap things with. `ResponsiveContainer` will continue to work for the life of 3.x ```tsx <BarChart data={data} responsive height={300} width="100%"> .... </BarChart> ``` ##### Fix - `YAxis`: Only use the YAxis `width="auto"` oscillation detection if the difference is > 1 pixel by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6450](https://github.com/recharts/recharts/pull/6450) - `ResponsiveContainer`: only shrinks in the dimensions where it needs to shrink by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6367](https://github.com/recharts/recharts/pull/6367) - `Treemap`: fix animation stutters in Treemap by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6326](https://github.com/recharts/recharts/pull/6326) - `Sankey`: fix unique key error by [@&#8203;daiboom](https://github.com/daiboom) in [#&#8203;6352](https://github.com/recharts/recharts/pull/6352) #### Website changes - <https://recharts.github.io/> - Recharts website is now inlined in recharts/www as opposed to <https://github.com/recharts/recharts.org> - NEW recharts website URL at <https://recharts.github.io/> Unfortunately the current contributors and admins do not own recharts.org and the renewal of the domain remains up in the air. To remove that uncertainty we have deployed the website at our github pages URL instead. #### New Contributors - [@&#8203;kristiandueholm](https://github.com/kristiandueholm) made their first contribution in [#&#8203;6344](https://github.com/recharts/recharts/pull/6344) - [@&#8203;daiboom](https://github.com/daiboom) made their first contribution in [#&#8203;6352](https://github.com/recharts/recharts/pull/6352) - [@&#8203;vmizg](https://github.com/vmizg) made their first contribution in [#&#8203;6387](https://github.com/recharts/recharts/pull/6387) **Full Changelog**: <https://github.com/recharts/recharts/compare/v3.2.1...v3.3.0> ### [`v3.2.1`](https://github.com/recharts/recharts/releases/tag/v3.2.1) [Compare Source](https://github.com/recharts/recharts/compare/v3.2.0...v3.2.1) #### What's Changed ##### Fix - `X/YAxis, etc.`: reduce re-renders to fix blinking line in Zoom & Highlight example by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6315](https://github.com/recharts/recharts/pull/6315) - `Bar`: Remove redundant `Rectangle` import, fixes tsup builds with recharts in them by [@&#8203;guscost](https://github.com/guscost) in [#&#8203;6305](https://github.com/recharts/recharts/pull/6305) - `Pie`: fix PieLabel types by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6313](https://github.com/recharts/recharts/pull/6313) - `Brush`: fix index off by one error when `margin` is 0 by [@&#8203;ckifer](https://github.com/ckifer) in [#&#8203;6323](https://github.com/recharts/recharts/pull/6323) - Enable dev tools via Global module instead of window by [@&#8203;uncaught](https://github.com/uncaught) in [#&#8203;6309](https://github.com/recharts/recharts/pull/6309) #### New Contributors - [@&#8203;guscost](https://github.com/guscost) made their first contribution in [#&#8203;6305](https://github.com/recharts/recharts/pull/6305) **Full Changelog**: <https://github.com/recharts/recharts/compare/v3.2.0...v3.2.1> ### [`v3.2.0`](https://github.com/recharts/recharts/releases/tag/v3.2.0) [Compare Source](https://github.com/recharts/recharts/compare/v3.1.2...v3.2.0) #### What's Changed Quite a bit of 3.0 bug fixes in this release along with two new hooks. Thanks to all who've been reporting issues! ##### Feat - `Pie`: support string values in Pie `outerRadius` callbacks by [@&#8203;rephaelberkooz](https://github.com/rephaelberkooz) in [#&#8203;6191](https://github.com/recharts/recharts/pull/6191) - `PolarGrid`: add `fill` color support to by [@&#8203;mindtraveller](https://github.com/mindtraveller) in [#&#8203;6287](https://github.com/recharts/recharts/pull/6287) ##### Hooks - **New** : `useXAxisDomain` and `useYAxisDomain` hooks by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6201](https://github.com/recharts/recharts/pull/6201) - **New**: `useMargin` hook by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6224](https://github.com/recharts/recharts/pull/6224) ##### Fix - `Bar`: fix unnecessary line breaks in Bar labels by [@&#8203;eino](https://github.com/eino) in [#&#8203;6214](https://github.com/recharts/recharts/pull/6214) - `Bar`: improve `Bar` performance when `activeBar` is turned off by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6290](https://github.com/recharts/recharts/pull/6290) - `Stacked Bar/Area`: fix stacked charts with duplicate categorical data by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6194](https://github.com/recharts/recharts/pull/6194) - `Scatter`: fix exception when Scatter data has non-string `type` property by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6248](https://github.com/recharts/recharts/pull/6248) - `X/YAxis`: fix blinking when changing props by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6262](https://github.com/recharts/recharts/pull/6262) - `PolarAngleAxis/Radar`: fix polar angle axis ticks text positions by [@&#8203;mindtraveller](https://github.com/mindtraveller) in [#&#8203;6276](https://github.com/recharts/recharts/pull/6276) - `Label`: allow rendering Labels as nested children in `XAxis`, `YAxis` and Reference elements by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6219](https://github.com/recharts/recharts/pull/6219) `LabelList`: fix issue with LabelList not rendering in `Pie` charts by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6246](https://github.com/recharts/recharts/pull/6246) - `Text`: fix exception when `Text`'s children is empty and scaleToFit=true by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6282](https://github.com/recharts/recharts/pull/6282) - `Tooltip`: bound Tooltip coordinates to the chart container in synchronized charts by [@&#8203;shreedharbhat98](https://github.com/shreedharbhat98) in [#&#8203;6263](https://github.com/recharts/recharts/pull/6263) - `Brush:` allow brush travelers to be controlled by keys after mouse interaction by [@&#8203;ckifer](https://github.com/ckifer) in [#&#8203;6285](https://github.com/recharts/recharts/pull/6285) - `useActiveTooltipDataPoints `: fix infinite rendering loop by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6247](https://github.com/recharts/recharts/pull/6247) ##### Chore - Upgrade to ESLint 9 by [@&#8203;NishargShah](https://github.com/NishargShah) in [#&#8203;6284](https://github.com/recharts/recharts/pull/6284) - Add better storybook docs for Text component by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6278](https://github.com/recharts/recharts/pull/6278) - Make Recharts Redux devTools registration opt-in (fixes [#&#8203;6250](https://github.com/recharts/recharts/issues/6250)) by [@&#8203;uncaught](https://github.com/uncaught) in [#&#8203;6264](https://github.com/recharts/recharts/pull/6264) - Continued refactoring/improvements by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) 🚀 #### New Contributors (thanks everyone!) - [@&#8203;rephaelberkooz](https://github.com/rephaelberkooz) made their first contribution in [#&#8203;6189](https://github.com/recharts/recharts/pull/6189) - [@&#8203;uncaught](https://github.com/uncaught) made their first contribution in [#&#8203;6264](https://github.com/recharts/recharts/pull/6264) - [@&#8203;mindtraveller](https://github.com/mindtraveller) made their first contribution in [#&#8203;6276](https://github.com/recharts/recharts/pull/6276) - [@&#8203;NishargShah](https://github.com/NishargShah) made their first contribution in [#&#8203;6284](https://github.com/recharts/recharts/pull/6284) **Full Changelog**: <https://github.com/recharts/recharts/compare/v3.1.2...v3.1.3> ### [`v3.1.2`](https://github.com/recharts/recharts/releases/tag/v3.1.2) [Compare Source](https://github.com/recharts/recharts/compare/v3.1.1...v3.1.2) #### What's Changed ##### Fix - `Label/Polar Charts`: `Label` viewbox should now be present in polar charts and address [#&#8203;6030](https://github.com/recharts/recharts/issues/6030) by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6180](https://github.com/recharts/recharts/pull/6180) - Add LRU cache for string size measurements ([#&#8203;3955](https://github.com/recharts/recharts/issues/3955)) by [@&#8203;shreedharbhat98](https://github.com/shreedharbhat98) in [#&#8203;6176](https://github.com/recharts/recharts/pull/6176) **Full Changelog**: <https://github.com/recharts/recharts/compare/v3.1.1...v3.1.2> ### [`v3.1.1`](https://github.com/recharts/recharts/releases/tag/v3.1.1) [Compare Source](https://github.com/recharts/recharts/compare/v3.1.0...v3.1.1) #### What's Changed ##### Fix - `General`: Don't apply duplicate IDs in the DOM by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6111](https://github.com/recharts/recharts/pull/6111) - `Stacked Area/Bar`: give all graphical items their own unique identifier and use that to select stacked data. Fixes issue where stacked charts could not be created from the graphical item `data` prop [#&#8203;6073](https://github.com/recharts/recharts/issues/6073) by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) - `Stacked Area/Bar`: exclude stacked axis domain when not relevant for axis by [@&#8203;rinkstiekema](https://github.com/rinkstiekema) in [#&#8203;6162](https://github.com/recharts/recharts/pull/6162) fixes issue where numeric stacked charts would not render correctly - `Area Chart`: ranged area chart - show active dot on both points instead of just the top one by [@&#8203;sroy8091](https://github.com/sroy8091) in [#&#8203;6116](https://github.com/recharts/recharts/pull/6116) fixes [#&#8203;6080](https://github.com/recharts/recharts/issues/6080) - `Polar Charts/Label`: fix `Label` in polar charts by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6126](https://github.com/recharts/recharts/pull/6126) - `Scatter/ErrorBar`: choose implicit Scatter ErrorBar direction based on chart layout (to be the same as 2.x) by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6159](https://github.com/recharts/recharts/pull/6159) - `X/YAxis/Reference Components`: allow axis values and reference items to render when there is no data but there is a domain/explicit ticks set by [@&#8203;ethphan](https://github.com/ethphan) in [#&#8203;6161](https://github.com/recharts/recharts/pull/6161) - `X/YAxis`: pass axis padding info to custom tick components by [@&#8203;shreedharbhat98](https://github.com/shreedharbhat98) in [#&#8203;6163](https://github.com/recharts/recharts/pull/6163) ##### Chore / Testing - good progress on our journey to enable `strictNullChecks` - addition of playwright visual regression tests to CI - split `Animate` into `JavascriptAnimate` and `CSSTransitionAnimate` by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6175](https://github.com/recharts/recharts/pull/6175) #### New Contributors - [@&#8203;sroy8091](https://github.com/sroy8091) made their first contribution in [#&#8203;6116](https://github.com/recharts/recharts/pull/6116) - [@&#8203;ethphan](https://github.com/ethphan) made their first contribution in [#&#8203;6161](https://github.com/recharts/recharts/pull/6161) **Full Changelog**: <https://github.com/recharts/recharts/compare/v3.1.0...v3.1.1> ### [`v3.1.0`](https://github.com/recharts/recharts/releases/tag/v3.1.0) [Compare Source](https://github.com/recharts/recharts/compare/v3.0.2...v3.1.0) #### What's Changed Bug fixes (old and new) and a few new hooks post 3.0 launch! ##### Feat More hooks! - Add [`useOffset`](https://main--63da8268a0da9970db6992aa.chromatic.com/?path=/docs/api-hooks-useoffset--docs) and [`usePlotArea`](https://main--63da8268a0da9970db6992aa.chromatic.com/?path=/docs/api-hooks-useplotarea--docs) hooks by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6057](https://github.com/recharts/recharts/pull/6057) - Add [`useActiveTooltipDataPoints` ](https://main--63da8268a0da9970db6992aa.chromatic.com/?path=/docs/api-hooks-useactivetooltipdatapoints--docs\&globals=storybook-addon-recharts-position:NORTH)hook by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6067](https://github.com/recharts/recharts/pull/6067) ##### Fix - `Legend`: After hiding and showing legend elements, keep them in the same order as before by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6026](https://github.com/recharts/recharts/pull/6026) - `Bar`: add `payload` as a valid property on `BarRectangleItem` by [@&#8203;ckifer](https://github.com/ckifer) in [#&#8203;6029](https://github.com/recharts/recharts/pull/6029) - `Accessibility`: Remove `role=application` from recharts wrapper (this was removed in 2.x for accessibility reasons) by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6060](https://github.com/recharts/recharts/pull/6060) - `ResponsiveContainer`: Add `overflow: visible` zero-size wrapper so that ResponsiveContainer can shrink by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6068](https://github.com/recharts/recharts/pull/6068) - `X/YAxis`: Fix `tickCount` and `allowDecimals` if axis domain does not include the keyword 'auto' by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6070](https://github.com/recharts/recharts/pull/6070) - `Tooltip`: Fix active tooltip and dots when there are multiple graphical items each with their own data by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6074](https://github.com/recharts/recharts/pull/6074) ##### Docs - Our storybook stories can now open in stackblitz by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6043](https://github.com/recharts/recharts/pull/6043) - Add hook inspector documentation by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6059](https://github.com/recharts/recharts/pull/6059) - See <https://main--63da8268a0da9970db6992aa.chromatic.com/?path=/docs/api-hooks-hookinspector--docs> ##### Chore - Remove duplicate 'square' from Pie component’s legendType summary by [@&#8203;davinahi](https://github.com/davinahi) in [#&#8203;6054](https://github.com/recharts/recharts/pull/6054) #### New Contributors - [@&#8203;davinahi](https://github.com/davinahi) made their first contribution in [#&#8203;6054](https://github.com/recharts/recharts/pull/6054) **Full Changelog**: <https://github.com/recharts/recharts/compare/v3.0.2...v3.1.0> ### [`v3.0.2`](https://github.com/recharts/recharts/releases/tag/v3.0.2) [Compare Source](https://github.com/recharts/recharts/compare/v3.0.1...v3.0.2) ##### What's Changed Please skip 3.0.1 and go straight to 3.0.2 - [#&#8203;6022](https://github.com/recharts/recharts/issues/6022). In `React.StrictMode` charts in 3.0.1 were not rendering at all. This revert should resolve that. - `revert`: revert preserve legend order by [@&#8203;ckifer](https://github.com/ckifer) in [#&#8203;6023](https://github.com/recharts/recharts/pull/6023) **Full Changelog**: <https://github.com/recharts/recharts/compare/v3.0.1...v3.0.2> ### [`v3.0.1`](https://github.com/recharts/recharts/releases/tag/v3.0.1) [Compare Source](https://github.com/recharts/recharts/compare/v3.0.0...v3.0.1) ### ⚠️ Version 3.0.1 has a bug where some charts will not render in React strict mode. Please use 3.0.2 or higher. ⚠️ #### What's Changed Lots of fixes from the 3.0 release - thanks for the reports! Edit: broke something [#&#8203;6022](https://github.com/recharts/recharts/issues/6022) ##### Fix - `Label`: fix an issue which caused `labelRef` to get passed to custom DOM elements which logged an error/warning by [@&#8203;saurabhraj123](https://github.com/saurabhraj123) in [#&#8203;6008](https://github.com/recharts/recharts/pull/6008) - `Pie`->`Label`: fix issue where pie labels were not rendering correctly when specified as a child of `Pie` by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;5987](https://github.com/recharts/recharts/pull/5987) - `Legend`: apply legend `itemSorter` for custom `content` as well as default content by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6012](https://github.com/recharts/recharts/pull/6012) ~~\* `Legend`: keep legend items in the same order when they are hidden and shown by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6017](https://github.com/recharts/recharts/pull/6017)~~ - `Bar`->`Brush`: fix undefined access error when using `Brush` with stacked bar charts by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6009](https://github.com/recharts/recharts/pull/6009) - `X/YAxis`: fix `DecimalError` when creating vertical oriented charts with a single datapoint by [@&#8203;ckifer](https://github.com/ckifer) in [#&#8203;6016](https://github.com/recharts/recharts/pull/6016) - `X/Y/PolarAngle/PolarRadius Axis`: `tickFormatter` is no longer called with data indexes before the actual data by [@&#8203;PavelVanecek](https://github.com/PavelVanecek) in [#&#8203;6019](https://github.com/recharts/recharts/pull/6019) **Full Changelog**: <https://github.com/recharts/recharts/compare/v3.0.0...v3.0.1> ### [`v3.0.0`](https://github.com/recharts/recharts/releases/tag/v3.0.0) [Compare Source](https://github.com/recharts/recharts/compare/v2.15.4...v3.0.0) #### 🚀 Recharts 3 is here! Huge shoutout to [@&#8203;PavelVanecek](https://github.com/PavelVanecek) who wrote 95% of the code for this major version release. We re-wrote recharts state management, wrote some 3500 unit tests, fixed a bunch of bugs, and added a few well-requested features. The intent with 3.0 is that it is now a better/easier place for the community to contribute to. Looking forward to what the future of recharts looks like in 3.x and beyond! [**More details and the 3.0 migration guide**](https://github.com/recharts/recharts/wiki/3.0-migration-guide) ##### BREAKING CHANGES Please see <https://github.com/recharts/recharts/wiki/3.0-migration-guide#breaking-code-changes> tldr; - `CategoricalChartState` (which was access to recharts internal state) no longer exists in event handlers or `Customized`, etc. - `<Customized />` no longer receives recharts state/props - Removal of internal props that were always supposed to only be internal to recharts - Remove previously deprecated props - ...see full list linked above ##### New Features - [Custom Components](http://github.com/recharts/recharts/wiki/3.0-migration-guide#custom-components) - you can now render any react component in the recharts tree structure (but it must still be renderable within an SVG). Previously this was controlled and filtered by recharts - [Tooltip Portals](https://github.com/recharts/recharts/wiki/3.0-migration-guide#tooltip-portal) - you can now use portals to position your tooltip data anywhere you'd like, including outside of your chart - Legend Portals - similar to the above, you can now use portals to position your Legend anywhere you'd like, including outside of your chart - [Accessible by default](https://github.com/recharts/recharts/wiki/3.0-migration-guide#accessibility-by-default) - `accessibilityLayer` is now on on all polar and cartesian charts by default. Tab into the chart and use the arrow keys to navigate. - [Polar charts now support multiple axes](https://github.com/recharts/recharts/wiki/3.0-migration-guide#multiple-axes-in-polar-charts) (similar to cartesian charts) - Tooltip: You can now select which axis your Tooltip belongs to [using `axisId`](https://github.com/recharts/recharts/wiki/3.0-migration-guide#multiple-axes-and-tooltip) - `YAxis`: [auto width calculation for YAxes ](https://github.com/recharts/recharts/wiki/3.0-migration-guide#auto-width-y-axis)- set `width="auto"` - `X/YAxis`: Add `symlog` d3 scale type ##### Bug fixes and improvements This release fixes some long standing issues in recharts, the easiest way to determine all of them is to take a look at the recharts 3.0 [project board](https://github.com/orgs/recharts/projects/2/views/1) - Animation improvements - Typescript improvements - Accessibility fixes/improvements - `Pie`: no more border around pie sectors on click, etc. - `CartesianGrid`: background now renders below the grid lines instead of above - and more! Our [3.0 storybook ](https://63da8268a0da9970db6992aa-zwbccjhbxb.chromatic.com/) has a lot of updated examples! </details> <details> <summary>emilkowalski/sonner (sonner)</summary> ### [`v2.0.7`](https://github.com/emilkowalski/sonner/releases/tag/v2.0.7) [Compare Source](https://github.com/emilkowalski/sonner/compare/v2.0.6...v2.0.7) Sonner now supports multiple `<Toaster />` components, see more [here](https://sonner.emilkowal.ski/toaster#multiple-toasters). #### What's Changed - feat: add testId prop for individual toast components by [@&#8203;b-like-bahar](https://github.com/b-like-bahar) in [#&#8203;660](https://github.com/emilkowalski/sonner/pull/660) - feat(toaster): add support for multiple toasters with unique identifiers by [@&#8203;taroj1205](https://github.com/taroj1205) in [#&#8203;665](https://github.com/emilkowalski/sonner/pull/665) - fix: tests by [@&#8203;emilkowalski](https://github.com/emilkowalski) in [#&#8203;677](https://github.com/emilkowalski/sonner/pull/677) #### New Contributors - [@&#8203;b-like-bahar](https://github.com/b-like-bahar) made their first contribution in [#&#8203;660](https://github.com/emilkowalski/sonner/pull/660) - [@&#8203;taroj1205](https://github.com/taroj1205) made their first contribution in [#&#8203;665](https://github.com/emilkowalski/sonner/pull/665) **Full Changelog**: <https://github.com/emilkowalski/sonner/compare/v2.0.6...v2.0.7> ### [`v2.0.6`](https://github.com/emilkowalski/sonner/releases/tag/v2.0.6) [Compare Source](https://github.com/emilkowalski/sonner/compare/v2.0.5...v2.0.6) #### What's Changed - chore: upgrade pnpm to v9 to fix lockfileVersion mismatch by [@&#8203;metacode22](https://github.com/metacode22) in [#&#8203;658](https://github.com/emilkowalski/sonner/pull/658) - fix: right click event swallowing by [@&#8203;emilkowalski](https://github.com/emilkowalski) in [#&#8203;661](https://github.com/emilkowalski/sonner/pull/661) #### New Contributors - [@&#8203;metacode22](https://github.com/metacode22) made their first contribution in [#&#8203;658](https://github.com/emilkowalski/sonner/pull/658) **Full Changelog**: <https://github.com/emilkowalski/sonner/compare/v2.0.5...v2.0.6> ### [`v2.0.5`](https://github.com/emilkowalski/sonner/releases/tag/v2.0.5) [Compare Source](https://github.com/emilkowalski/sonner/compare/v2.0.4...v2.0.5) Main goal of this update is to fix css import. #### What's Changed - update bunchee by [@&#8203;emilkowalski](https://github.com/emilkowalski) in [#&#8203;650](https://github.com/emilkowalski/sonner/pull/650) **Full Changelog**: <https://github.com/emilkowalski/sonner/compare/v2.0.4...v2.0.5> ### [`v2.0.4`](https://github.com/emilkowalski/sonner/releases/tag/v2.0.4) [Compare Source](https://github.com/emilkowalski/sonner/compare/v2.0.3...v2.0.4) #### What's Changed - chore: remove lift interaction by [@&#8203;emilkowalski](https://github.com/emilkowalski) in [#&#8203;644](https://github.com/emilkowalski/sonner/pull/644) - fix: ensure `onDismiss` fires correctly by [@&#8203;emilkowalski](https://github.com/emilkowalski) in [#&#8203;645](https://github.com/emilkowalski/sonner/pull/645) - fix: react to custom toast height changes by [@&#8203;emilkowalski](https://github.com/emilkowalski) in [#&#8203;646](https://github.com/emilkowalski/sonner/pull/646) **Full Changelog**: <https://github.com/emilkowalski/sonner/compare/v2.0.3...v2.0.4> ### [`v2.0.3`](https://github.com/emilkowalski/sonner/releases/tag/v2.0.3) [Compare Source](https://github.com/emilkowalski/sonner/compare/v2.0.2...v2.0.3) #### What's Changed - chore: Don't show toast buffers when not expanded. by [@&#8203;emilkowalski](https://github.com/emilkowalski) in [#&#8203;614](https://github.com/emilkowalski/sonner/pull/614) - feat: inherit color for description when rich colors is `true` by [@&#8203;emilkowalski](https://github.com/emilkowalski) in [#&#8203;615](https://github.com/emilkowalski/sonner/pull/615) **Full Changelog**: <https://github.com/emilkowalski/sonner/compare/v2.0.2...v2.0.3> ### [`v2.0.2`](https://github.com/emilkowalski/sonner/releases/tag/v2.0.2) [Compare Source](https://github.com/emilkowalski/sonner/compare/v2.0.1...v2.0.2) #### What's Changed - fix: isExtendedResult. Check if promiseData is an object and not a valid React Element by [@&#8203;diegotraid](https://github.com/diegotraid) in [#&#8203;595](https://github.com/emilkowalski/sonner/pull/595) - fix: toast.dismiss without an id doesn't dismiss by [@&#8203;emilkowalski](https://github.com/emilkowalski) in [#&#8203;609](https://github.com/emilkowalski/sonner/pull/609) - feat: allow to fully hide icons with null by [@&#8203;emilkowalski](https://github.com/emilkowalski) in [#&#8203;610](https://github.com/emilkowalski/sonner/pull/610) **Full Changelog**: <https://github.com/emilkowalski/sonner/compare/v2.0.1...v2.0.2> ### [`v2.0.1`](https://github.com/emilkowalski/sonner/releases/tag/v2.0.1) [Compare Source](https://github.com/emilkowalski/sonner/compare/v2.0.0...v2.0.1) #### What's Changed - fix: flush sync error by [@&#8203;emilkowalski](https://github.com/emilkowalski) in [#&#8203;586](https://github.com/emilkowalski/sonner/pull/586) - fix: allow users to select text after swipe gesture by [@&#8203;emilkowalski](https://github.com/emilkowalski) in [#&#8203;587](https://github.com/emilkowalski/sonner/pull/587) **Full Changelog**: <https://github.com/emilkowalski/sonner/compare/v2.0.0...v2.0.1> ### [`v2.0.0`](https://github.com/emilkowalski/sonner/releases/tag/v2.0.0) [Compare Source](https://github.com/emilkowalski/sonner/compare/8665072d342bb919f16dd7b9edddd7959a645a81...v2.0.0) Mostly bug fixes, see more at <https://sonner.emilkowal.ski/getting-started>. #### What's Changed - sonner v2.0 by [@&#8203;emilkowalski](https://github.com/emilkowalski) in [#&#8203;558](https://github.com/emilkowalski/sonner/pull/558) **Full Changelog**: <https://github.com/emilkowalski/sonner/compare/v.2.0.0-beta.1...v2.0.0> </details> <details> <summary>dcastil/tailwind-merge (tailwind-merge)</summary> ### [`v3.5.0`](https://github.com/dcastil/tailwind-merge/releases/tag/v3.5.0) [Compare Source](https://github.com/dcastil/tailwind-merge/compare/v3.4.1...v3.5.0) ##### New Features - Add support for Tailwind CSS v4.2 by [@&#8203;dcastil](https://github.com/dcastil) in [#&#8203;651](https://github.com/dcastil/tailwind-merge/pull/651) **Full Changelog**: <https://github.com/dcastil/tailwind-merge/compare/v3.4.1...v3.5.0> Thanks to [@&#8203;brandonmcconnell](https://github.com/brandonmcconnell), [@&#8203;manavm1990](https://github.com/manavm1990), [@&#8203;langy](https://github.com/langy), [@&#8203;roboflow](https://github.com/roboflow), [@&#8203;syntaxfm](https://github.com/syntaxfm), [@&#8203;getsentry](https://github.com/getsentry), [@&#8203;codecov](https://github.com/codecov), a private sponsor, [@&#8203;block](https://github.com/block), [@&#8203;openclaw](https://github.com/openclaw), [@&#8203;sourcegraph](https://github.com/sourcegraph) and more via [@&#8203;thnxdev](https://github.com/thnxdev) for sponsoring tailwind-merge! ❤️ ### [`v3.4.1`](https://github.com/dcastil/tailwind-merge/releases/tag/v3.4.1) [Compare Source](https://github.com/dcastil/tailwind-merge/compare/v3.4.0...v3.4.1) ##### Bug Fixes - Prevent arbitrary font-family and font-weight from merging by [@&#8203;roneymoon](https://github.com/roneymoon) in [#&#8203;635](https://github.com/dcastil/tailwind-merge/pull/635) **Full Changelog**: <https://github.com/dcastil/tailwind-merge/compare/v3.4.0...v3.4.1> Thanks to [@&#8203;brandonmcconnell](https://github.com/brandonmcconnell), [@&#8203;manavm1990](https://github.com/manavm1990), [@&#8203;langy](https://github.com/langy), [@&#8203;roboflow](https://github.com/roboflow), [@&#8203;syntaxfm](https://github.com/syntaxfm), [@&#8203;getsentry](https://github.com/getsentry), [@&#8203;codecov](https://github.com/codecov), a private sponsor, [@&#8203;block](https://github.com/block), [@&#8203;openclaw](https://github.com/openclaw), [@&#8203;sourcegraph](https://github.com/sourcegraph) and more via [@&#8203;thnxdev](https://github.com/thnxdev) for sponsoring tailwind-merge! ❤️ ### [`v3.4.0`](https://github.com/dcastil/tailwind-merge/releases/tag/v3.4.0) [Compare Source](https://github.com/dcastil/tailwind-merge/compare/v3.3.1...v3.4.0) ##### New Features - Performance optimizations which make tailwind-merge >10% faster - Vibe optimization by [@&#8203;quantizor](https://github.com/quantizor) in [#&#8203;547](https://github.com/dcastil/tailwind-merge/pull/547) - Additional optimizations by [@&#8203;quantizor](https://github.com/quantizor) in [#&#8203;619](https://github.com/dcastil/tailwind-merge/pull/619) ##### Documentation - Improve docs by clarifying things, adding more examples by [@&#8203;dcastil](https://github.com/dcastil) in [#&#8203;618](https://github.com/dcastil/tailwind-merge/pull/618) - Make examples more realistic by [@&#8203;dcastil](https://github.com/dcastil) in [#&#8203;617](https://github.com/dcastil/tailwind-merge/pull/617) - Add custom variant as an alternative to docs by [@&#8203;kidonng](https://github.com/kidonng) in [#&#8203;592](https://github.com/dcastil/tailwind-merge/pull/592) ##### Other - Improve benchmarking suite by [@&#8203;quantizor](https://github.com/quantizor) in [#&#8203;620](https://github.com/dcastil/tailwind-merge/pull/620) **Full Changelog**: <https://github.com/dcastil/tailwind-merge/compare/v3.3.1...v3.4.0> Thanks to [@&#8203;brandonmcconnell](https://github.com/brandonmcconnell), [@&#8203;manavm1990](https://github.com/manavm1990), [@&#8203;langy](https://github.com/langy), [@&#8203;roboflow](https://github.com/roboflow), [@&#8203;syntaxfm](https://github.com/syntaxfm), [@&#8203;getsentry](https://github.com/getsentry), [@&#8203;codecov](https://github.com/codecov) and a private sponsor for sponsoring tailwind-merge! ❤️ ### [`v3.3.1`](https://github.com/dcastil/tailwind-merge/releases/tag/v3.3.1) [Compare Source](https://github.com/dcastil/tailwind-merge/compare/v3.3.0...v3.3.1) ##### Bug Fixes - Fix arbitrary value using `color-mix()` not being detected as color by [@&#8203;dcastil](https://github.com/dcastil) in [#&#8203;591](https://github.com/dcastil/tailwind-merge/pull/591) **Full Changelog**: <https://github.com/dcastil/tailwind-merge/compare/v3.3.0...v3.3.1> Thanks to [@&#8203;brandonmcconnell](https://github.com/brandonmcconnell), [@&#8203;manavm1990](https://github.com/manavm1990), [@&#8203;langy](https://github.com/langy), [@&#8203;roboflow](https://github.com/roboflow), [@&#8203;syntaxfm](https://github.com/syntaxfm), [@&#8203;getsentry](https://github.com/getsentry), [@&#8203;codecov](https://github.com/codecov), [@&#8203;sourcegraph](https://github.com/sourcegraph), a private sponsor, [@&#8203;block](https://github.com/block) and [@&#8203;shawt3000](https://github.com/shawt3000) for sponsoring tailwind-merge! ❤️ ### [`v3.3.0`](https://github.com/dcastil/tailwind-merge/releases/tag/v3.3.0) [Compare Source](https://github.com/dcastil/tailwind-merge/compare/v3.2.0...v3.3.0) ##### New Features - Add support for tailwind CSS v4.1.5 by [@&#8203;dcastil](https://github.com/dcastil) in [#&#8203;575](https://github.com/dcastil/tailwind-merge/pull/575) **Full Changelog**: <https://github.com/dcastil/tailwind-merge/compare/v3.2.0...v3.3.0> Thanks to [@&#8203;brandonmcconnell](https://github.com/brandonmcconnell), [@&#8203;manavm1990](https://github.com/manavm1990), [@&#8203;langy](https://github.com/langy), [@&#8203;roboflow](https://github.com/roboflow), [@&#8203;syntaxfm](https://github.com/syntaxfm), [@&#8203;getsentry](https://github.com/getsentry), [@&#8203;codecov](https://github.com/codecov), [@&#8203;sourcegraph](https://github.com/sourcegraph), a private sponsor and [@&#8203;block](https://github.com/block) for sponsoring tailwind-merge! ❤️ ### [`v3.2.0`](https://github.com/dcastil/tailwind-merge/releases/tag/v3.2.0) [Compare Source](https://github.com/dcastil/tailwind-merge/compare/v3.1.0...v3.2.0) ##### New Features - Add support for Tailwind CSS v4.1 by [@&#8203;dcastil](https://github.com/dcastil) in [#&#8203;565](https://github.com/dcastil/tailwind-merge/pull/565) **Full Changelog**: <https://github.com/dcastil/tailwind-merge/compare/v3.1.0...v3.2.0> Thanks to [@&#8203;brandonmcconnell](https://github.com/brandonmcconnell), [@&#8203;manavm1990](https://github.com/manavm1990), [@&#8203;langy](https://github.com/langy), [@&#8203;jamesreaco](https://github.com/jamesreaco), [@&#8203;roboflow](https://github.com/roboflow), [@&#8203;syntaxfm](https://github.com/syntaxfm), [@&#8203;getsentry](https://github.com/getsentry), [@&#8203;codecov](https://github.com/codecov), [@&#8203;sourcegraph](https://github.com/sourcegraph) and a private sponsor for sponsoring tailwind-merge! ❤️ ### [`v3.1.0`](https://github.com/dcastil/tailwind-merge/releases/tag/v3.1.0) [Compare Source](https://github.com/dcastil/tailwind-merge/compare/v3.0.2...v3.1.0) ##### New Features - Add support for Tailwind CSS v4.0.10 by [@&#8203;dcastil](https://github.com/dcastil) in [#&#8203;546](https://github.com/dcastil/tailwind-merge/pull/546) ##### Bug Fixes - Fix length variable in `via-(length:*)` class being merged with `via-<color>` classes accidentally by [@&#8203;dcastil](https://github.com/dcastil) in [#&#8203;559](https://github.com/dcastil/tailwind-merge/pull/559) ##### Documentation - Fix typo in comment in types.ts by [@&#8203;roottool](https://github.com/roottool) in [#&#8203;549](https://github.com/dcastil/tailwind-merge/pull/549) - Update shadow scale recipe to tailwind merge v3 API by [@&#8203;dcastil](https://github.com/dcastil) in [#&#8203;545](https://github.com/dcastil/tailwind-merge/pull/545) ##### Other - Fix metrics report action erroring on PRs from forks by [@&#8203;dcastil](https://github.com/dcastil) in [#&#8203;551](https://github.com/dcastil/tailwind-merge/pull/551) **Full Changelog**: <https://github.com/dcastil/tailwind-merge/compare/v3.0.2...v3.1.0> Thanks to [@&#8203;brandonmcconnell](https://github.com/brandonmcconnell), [@&#8203;manavm1990](https://github.com/manavm1990), [@&#8203;langy](https://github.com/langy), [@&#8203;jamesreaco](https://github.com/jamesreaco), [@&#8203;roboflow](https://github.com/roboflow), [@&#8203;syntaxfm](https://github.com/syntaxfm), [@&#8203;getsentry](https://github.com/getsentry), [@&#8203;codecov](https://github.com/codecov), [@&#8203;sourcegraph](https://github.com/sourcegraph) and a private sponsor for sponsoring tailwind-merge! ❤️ ### [`v3.0.2`](https://github.com/dcastil/tailwind-merge/releases/tag/v3.0.2) [Compare Source](https://github.com/dcastil/tailwind-merge/compare/v3.0.1...v3.0.2) ##### Bug Fixes - Fix `px` value not being recognized for some class groups by [@&#8203;dcastil](https://github.com/dcastil) in [#&#8203;538](https://github.com/dcastil/tailwind-merge/pull/538) - Fix doc comment being in incorrect place in default config by [@&#8203;gjtorikian](https://github.com/gjtorikian) in [#&#8203;526](https://github.com/dcastil/tailwind-merge/pull/526) **Full Changelog**: <https://github.com/dcastil/tailwind-merge/compare/v3.0.1...v3.0.2> Thanks to [@&#8203;brandonmcconnell](https://github.com/brandonmcconnell), [@&#8203;manavm1990](https://github.com/manavm1990), [@&#8203;langy](https://github.com/langy), [@&#8203;jamesreaco](https://github.com/jamesreaco), [@&#8203;roboflow](https://github.com/roboflow), [@&#8203;syntaxfm](https://github.com/syntaxfm), [@&#8203;getsentry](https://github.com/getsentry), [@&#8203;codecov](https://github.com/codecov), [@&#8203;sourcegraph](https://github.com/sourcegraph) and a private sponsor for sponsoring tailwind-merge! ❤️ ### [`v3.0.1`](https://github.com/dcastil/tailwind-merge/releases/tag/v3.0.1) [Compare Source](https://github.com/dcastil/tailwind-merge/compare/v3.0.0...v3.0.1) ##### Bug Fixes - Update info about supported Tailwind CSS version in README by [@&#8203;dcastil](https://github.com/dcastil) in [`b9c136d`](https://github.com/dcastil/tailwind-merge/commit/b9c136d) - Update incorrect link in v3 changelog by [@&#8203;dcastil](https://github.com/dcastil) in [`e22885e`](https://github.com/dcastil/tailwind-merge/commit/e22885e) **Full Changelog**: <https://github.com/dcastil/tailwind-merge/compare/v3.0.0...v3.0.1> Thanks to [@&#8203;brandonmcconnell](https://github.com/brandonmcconnell), [@&#8203;manavm1990](https://github.com/manavm1990), [@&#8203;langy](https://github.com/langy), [@&#8203;jamesreaco](https://github.com/jamesreaco), [@&#8203;roboflow](https://github.com/roboflow), [@&#8203;syntaxfm](https://github.com/syntaxfm), [@&#8203;getsentry](https://github.com/getsentry), [@&#8203;codecov](https://github.com/codecov), [@&#8203;sourcegraph](https://github.com/sourcegraph) and a private sponsor for sponsoring tailwind-merge! ❤️ ### [`v3.0.0`](https://github.com/dcastil/tailwind-merge/releases/tag/v3.0.0) [Compare Source](https://github.com/dcastil/tailwind-merge/compare/v2.6.1...v3.0.0) [Tailwind CSS v4 is here](https://tailwindcss.com/blog/tailwindcss-v4) and it's time to upgrade tailwind-merge to support it. tailwind-merge v3.0.0 is more accurate than ever and follows the Tailwind CSS spec more closely than in v2. That is thanks to Tailwind CSS v4 being more consistent than ever. This release drops support for Tailwind CSS v3 and in turn adds support for Tailwind CSS v4. That means you should upgrade to Tailwind CSS v4 and tailwind-merge v3 together. All breaking changes are related to the Tailwind CSS v4 support. Check out the [migration guide](https://github.com/dcastil/tailwind-merge/blob/v3.0.0/docs/changelog/v2-to-v3-migration.md) and if you have any questions, feel free to [create an issue](https://github.com/dcastil/tailwind-merge/issues/new/choose). ##### Breaking Changes - Dropping support for Tailwind CSS v3 in favor of support for Tailwind CSS v4 by [@&#8203;dcastil](https://github.com/dcastil) in [#&#8203;518](https://github.com/dcastil/tailwind-merge/pull/518) - Theme scales keys changed and now match Tailwind CSS v4 theme variable namespace exactly by [@&#8203;dcastil](https://github.com/dcastil) in [#&#8203;518](https://github.com/dcastil/tailwind-merge/pull/518) - `isLength` validator was removed and split into separate validators `isNumber` and `isFraction` by [@&#8203;dcastil](https://github.com/dcastil) in [#&#8203;518](https://github.com/dcastil/tailwind-merge/pull/518) - Prefix defined in config shouldn't include combining `-` character anymore by [@&#8203;dcastil](https://github.com/dcastil) in [#&#8203;518](https://github.com/dcastil/tailwind-merge/pull/518) - Tailwind CSS v3 prefix position in class not supported anymore in favor of Tailwind CSS v4 position by [@&#8203;dcastil](https://github.com/dcastil) in [#&#8203;518](https://github.com/dcastil/tailwind-merge/pull/518) - Custom separators are no longer supported by [@&#8203;dcastil](https://github.com/dcastil) in [#&#8203;518](https://github.com/dcastil/tailwind-merge/pull/518) - New mandatory `orderSensitiveModifiers` property in config when using `createTailwindMerge` by [@&#8203;dcastil](https://github.com/dcastil) in [#&#8203;518](https://github.com/dcastil/tailwind-merge/pull/518) - `DefaultThemeGroupIds` type union consists of different string literals than before by [@&#8203;dcastil](https://github.com/dcastil) in [#&#8203;518](https://github.com/dcastil/tailwind-merge/pull/518) - Classes removed in Tailwind CSS v4 are not supported by tailwind-merge anymore by [@&#8203;dcastil](https://github.com/dcastil) in [#&#8203;518](https://github.com/dcastil/tailwind-merge/pull/518) ##### New Features - Support for new important modifier position at the end of class by [@&#8203;dcastil](https://github.com/dcastil) in [#&#8203;518](https://github.com/dcastil/tailwind-merge/pull/518) - Support for arbitrary CSS variable syntax by [@&#8203;dcastil](https://github.com/dcastil) in [#&#8203;518](https://github.com/dcastil/tailwind-merge/pull/518) - There are a bunch of new validators used by tailwind-merge, primarily for new Tailwind CSS v4 features like arbitrary CSS variables by [@&#8203;dcastil](https://github.com/dcastil) in [#&#8203;518](https://github.com/dcastil/tailwind-merge/pull/518) ##### Bug Fixes - Previously some order-sensitive modifiers like `before:` were treated as not order-sensitive. This is now fixed by [@&#8203;dcastil](https://github.com/dcastil) in [#&#8203;518](https://github.com/dcastil/tailwind-merge/pull/518) ##### Documentation - Added section explaining order-sensitive modifiers to [configuration docs](https://github.com/dcastil/tailwind-merge/blob/v3.0.0/docs/configuration.md#order-sensitive-modifiers) by [@&#8203;dcastil](https://github.com/dcastil) in [#&#8203;518](https://github.com/dcastil/tailwind-merge/pull/518) **Full Changelog**: <https://github.com/dcastil/tailwind-merge/compare/v2.6.0...v3.0.0> Thanks to [@&#8203;brandonmcconnell](https://github.com/brandonmcconnell), [@&#8203;manavm1990](https://github.com/manavm1990), [@&#8203;langy](https://github.com/langy), [@&#8203;jamesreaco](https://github.com/jamesreaco), [@&#8203;roboflow](https://github.com/roboflow), [@&#8203;syntaxfm](https://github.com/syntaxfm), [@&#8203;getsentry](https://github.com/getsentry), [@&#8203;codecov](https://github.com/codecov), [@&#8203;sourcegraph](https://github.com/sourcegraph) and a private sponsor for sponsoring tailwind-merge! ❤️ </details> <details> <summary>tailwindlabs/tailwindcss (tailwindcss)</summary> ### [`v4.2.4`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#424---2026-04-21) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.2.3...v4.2.4) ##### Fixed - Ensure imports in `@import` and `@plugin` still resolve correctly when using Vite aliases in `@tailwindcss/vite` ([#&#8203;19947](https://github.com/tailwindlabs/tailwindcss/pull/19947)) ### [`v4.2.3`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#423---2026-04-20) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.2.2...v4.2.3) ##### Fixed - Canonicalization: improve canonicalization for `tracking-*` utilities by preferring non-negative utilities (e.g. `-tracking-tighter` → `tracking-wider`) ([#&#8203;19827](https://github.com/tailwindlabs/tailwindcss/pull/19827)) - Fix crash due to invalid characters in candidate (exceeding valid unicode code point range) ([#&#8203;19829](https://github.com/tailwindlabs/tailwindcss/pull/19829)) - Ensure query params in imports are considered unique resources when using `@tailwindcss/webpack` ([#&#8203;19723](https://github.com/tailwindlabs/tailwindcss/pull/19723)) - Canonicalization: collapse arbitrary values into shorthand utilities (e.g. `px-[1.2rem] py-[1.2rem]` → `p-[1.2rem]`) ([#&#8203;19837](https://github.com/tailwindlabs/tailwindcss/pull/19837)) - Canonicalization: collapse `border-{t,b}-*` into `border-y-*`, `border-{l,r}-*` into `border-x-*`, and `border-{t,r,b,l}-*` into `border-*` ([#&#8203;19842](https://github.com/tailwindlabs/tailwindcss/pull/19842)) - Canonicalization: collapse `scroll-m{t,b}-*` into `scroll-my-*`, `scroll-m{l,r}-*` into `scroll-mx-*`, and `scroll-m{t,r,b,l}-*` into `scroll-m-*` ([#&#8203;19842](https://github.com/tailwindlabs/tailwindcss/pull/19842)) - Canonicalization: collapse `scroll-p{t,b}-*` into `scroll-py-*`, `scroll-p{l,r}-*` into `scroll-px-*`, and `scroll-p{t,r,b,l}-*` into `scroll-p-*` ([#&#8203;19842](https://github.com/tailwindlabs/tailwindcss/pull/19842)) - Canonicalization: collapse `overflow-{x,y}-*` into `overflow-*` ([#&#8203;19842](https://github.com/tailwindlabs/tailwindcss/pull/19842)) - Canonicalization: collapse `overscroll-{x,y}-*` into `overscroll-*` ([#&#8203;19842](https://github.com/tailwindlabs/tailwindcss/pull/19842)) - Read from `--placeholder-color` instead of `--background-color` for `placeholder-*` utilities ([#&#8203;19843](https://github.com/tailwindlabs/tailwindcss/pull/19843)) - Upgrade: ensure files are not emptied out when killing the upgrade process while it's running ([#&#8203;19846](https://github.com/tailwindlabs/tailwindcss/pull/19846)) - Upgrade: use `config.content` when migrating from Tailwind CSS v3 to Tailwind CSS v4 ([#&#8203;19846](https://github.com/tailwindlabs/tailwindcss/pull/19846)) - Upgrade: never migrate files that are ignored by git ([#&#8203;19846](https://github.com/tailwindlabs/tailwindcss/pull/19846)) - Add `.env` and `.env.*` to default ignored content files ([#&#8203;19846](https://github.com/tailwindlabs/tailwindcss/pull/19846)) - Canonicalization: migrate `overflow-ellipsis` into `text-ellipsis` ([#&#8203;19849](https://github.com/tailwindlabs/tailwindcss/pull/19849)) - Canonicalization: migrate `start-full` → `inset-s-full`, `start-auto` → `inset-s-auto`, `start-px` → `inset-s-px`, and `start-<number>` → `inset-s-<number>` as well as negative versions ([#&#8203;19849](https://github.com/tailwindlabs/tailwindcss/pull/19849)) - Canonicalization: migrate `end-full` → `inset-e-full`, `end-auto` → `inset-e-auto`, `end-px` → `inset-e-px`, and `end-<number>` → `inset-e-<number>` as well as negative versions ([#&#8203;19849](https://github.com/tailwindlabs/tailwindcss/pull/19849)) - Canonicalization: move the `-` sign inside the arbitrary value `-left-[9rem]` → `left-[-9rem]` ([#&#8203;19858](https://github.com/tailwindlabs/tailwindcss/pull/19858)) - Canonicalization: move the `-` sign outside the arbitrary value `ml-[calc(-1*var(--width))]` → `-ml-(--width)` ([#&#8203;19858](https://github.com/tailwindlabs/tailwindcss/pull/19858)) - Improve performance when scanning JSONL / NDJSON files ([#&#8203;19862](https://github.com/tailwindlabs/tailwindcss/pull/19862)) - Support `NODE_PATH` environment variable in standalone CLI ([#&#8203;19617](https://github.com/tailwindlabs/tailwindcss/pull/19617)) ### [`v4.2.2`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#422---2026-03-18) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.2.1...v4.2.2) ##### Fixed - Don't crash when candidates contain prototype properties like `row-constructor` ([#&#8203;19725](https://github.com/tailwindlabs/tailwindcss/pull/19725)) - Canonicalize `calc(var(--spacing)*…)` expressions into `--spacing(…)` ([#&#8203;19769](https://github.com/tailwindlabs/tailwindcss/pull/19769)) - Fix crash in canonicalization step when handling utilities containing `@property` at-rules (e.g. `shadow-sm border`) ([#&#8203;19727](https://github.com/tailwindlabs/tailwindcss/pull/19727)) - Skip full reload for server only modules scanned by client CSS when using `@tailwindcss/vite` ([#&#8203;19745](https://github.com/tailwindlabs/tailwindcss/pull/19745)) - Add support for Vite 8 in `@tailwindcss/vite` ([#&#8203;19790](https://github.com/tailwindlabs/tailwindcss/pull/19790)) - Improve canonicalization for bare values exceeding default spacing scale suggestions (e.g. `w-1234 h-1234` → `size-1234`) ([#&#8203;19809](https://github.com/tailwindlabs/tailwindcss/pull/19809)) - Fix canonicalization resulting in empty list (e.g. `w-5 h-5 size-5` → `''` instead of `size-5`) ([#&#8203;19812](https://github.com/tailwindlabs/tailwindcss/pull/19812)) - Resolve tsconfig paths to allow for `@import '@&#8203;/path/to/file';` when using `@tailwindcss/vite` ([#&#8203;19803](https://github.com/tailwindlabs/tailwindcss/pull/19803)) ### [`v4.2.1`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#421---2026-02-23) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.2.0...v4.2.1) ##### Fixed - Allow trailing dash in functional utility names for backwards compatibility ([#&#8203;19696](https://github.com/tailwindlabs/tailwindcss/pull/19696)) - Properly detect classes containing `.` characters within curly braces in MDX files ([#&#8203;19711](https://github.com/tailwindlabs/tailwindcss/pull/19711)) ### [`v4.2.0`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#420---2026-02-18) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.1.18...v4.2.0) ##### Added - Add mauve, olive, mist, and taupe color palettes to the default theme ([#&#8203;19627](https://github.com/tailwindlabs/tailwindcss/pull/19627)) - Add `@tailwindcss/webpack` package to run Tailwind CSS as a webpack plugin ([#&#8203;19610](https://github.com/tailwindlabs/tailwindcss/pull/19610)) - Add `pbs-*` and `pbe-*` utilities for `padding-block-start` and `padding-block-end` ([#&#8203;19601](https://github.com/tailwindlabs/tailwindcss/pull/19601)) - Add `mbs-*` and `mbe-*` utilities for `margin-block-start` and `margin-block-end` ([#&#8203;19601](https://github.com/tailwindlabs/tailwindcss/pull/19601)) - Add `scroll-pbs-*` and `scroll-pbe-*` utilities for `scroll-padding-block-start` and `scroll-padding-block-end` ([#&#8203;19601](https://github.com/tailwindlabs/tailwindcss/pull/19601)) - Add `scroll-mbs-*` and `scroll-mbe-*` utilities for `scroll-margin-block-start` and `scroll-margin-block-end` ([#&#8203;19601](https://github.com/tailwindlabs/tailwindcss/pull/19601)) - Add `border-bs-*` and `border-be-*` utilities for `border-block-start` and `border-block-end` ([#&#8203;19601](https://github.com/tailwindlabs/tailwindcss/pull/19601)) - Add `inline-*`, `min-inline-*`, `max-inline-*` utilities for `inline-size`, `min-inline-size`, and `max-inline-size` ([#&#8203;19612](https://github.com/tailwindlabs/tailwindcss/pull/19612)) - Add `block-*`, `min-block-*`, `max-block-*` utilities for `block-size`, `min-block-size`, and `max-block-size` ([#&#8203;19612](https://github.com/tailwindlabs/tailwindcss/pull/19612)) - Add `inset-s-*`, `inset-e-*`, `inset-bs-*`, `inset-be-*` utilities for `inset-inline-start`, `inset-inline-end`, `inset-block-start`, and `inset-block-end` ([#&#8203;19613](https://github.com/tailwindlabs/tailwindcss/pull/19613)) - Add `font-features-*` utility for `font-feature-settings` ([#&#8203;19623](https://github.com/tailwindlabs/tailwindcss/pull/19623)) ##### Fixed - Prevent double `@supports` wrapper for `color-mix` values ([#&#8203;19450](https://github.com/tailwindlabs/tailwindcss/pull/19450)) - Allow whitespace around `@source inline()` argument ([#&#8203;19461](https://github.com/tailwindlabs/tailwindcss/pull/19461)) - Emit comment when source maps are saved to files when using `@tailwindcss/cli` ([#&#8203;19447](https://github.com/tailwindlabs/tailwindcss/pull/19447)) - Detect utilities containing capital letters followed by numbers ([#&#8203;19465](https://github.com/tailwindlabs/tailwindcss/pull/19465)) - Fix class extraction for Rails' strict locals ([#&#8203;19525](https://github.com/tailwindlabs/tailwindcss/pull/19525)) - Align `@utility` name validation with Oxide scanner rules ([#&#8203;19524](https://github.com/tailwindlabs/tailwindcss/pull/19524)) - Fix infinite loop when using `@variant` inside `@custom-variant` ([#&#8203;19633](https://github.com/tailwindlabs/tailwindcss/pull/19633)) - Allow multiples of `.25` in `aspect-*` fractions (e.g. `aspect-8.5/11`) ([#&#8203;19688](https://github.com/tailwindlabs/tailwindcss/pull/19688)) - Ensure changes to external files listed via `@source` trigger a full page reload when using `@tailwindcss/vite` ([#&#8203;19670](https://github.com/tailwindlabs/tailwindcss/pull/19670)) - Improve performance of Oxide scanner in bigger projects by reducing file system walks ([#&#8203;19632](https://github.com/tailwindlabs/tailwindcss/pull/19632)) - Ensure import aliases in Astro v5 work without crashing when using `@tailwindcss/vite` ([#&#8203;19677](https://github.com/tailwindlabs/tailwindcss/issues/19677)) - Allow escape characters in `@utility` names to improve support with formatters such as Biome ([#&#8203;19626](https://github.com/tailwindlabs/tailwindcss/pull/19626)) - Fix incorrect canonicalization results when canonicalizing multiple times ([#&#8203;19675](https://github.com/tailwindlabs/tailwindcss/pull/19675)) - Add `.jj` to default ignored content directories ([#&#8203;19687](https://github.com/tailwindlabs/tailwindcss/pull/19687)) ##### Deprecated - Deprecate `start-*` and `end-*` utilities in favor of `inset-s-*` and `inset-e-*` utilities ([#&#8203;19613](https://github.com/tailwindlabs/tailwindcss/pull/19613)) ### [`v4.1.18`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4118---2025-12-11) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.1.17...v4.1.18) ##### Fixed - Ensure validation of `source(…)` happens relative to the file it is in ([#&#8203;19274](https://github.com/tailwindlabs/tailwindcss/pull/19274)) - Include filename and line numbers in CSS parse errors ([#&#8203;19282](https://github.com/tailwindlabs/tailwindcss/pull/19282)) - Skip comments in Ruby files when checking for class names ([#&#8203;19243](https://github.com/tailwindlabs/tailwindcss/pull/19243)) - Skip over arbitrary property utilities with a top-level `!` in the value ([#&#8203;19243](https://github.com/tailwindlabs/tailwindcss/pull/19243)) - Support environment API in `@tailwindcss/vite` ([#&#8203;18970](https://github.com/tailwindlabs/tailwindcss/pull/18970)) - Preserve case of theme keys from JS configs and plugins ([#&#8203;19337](https://github.com/tailwindlabs/tailwindcss/pull/19337)) - Write source maps correctly on the CLI when using `--watch` ([#&#8203;19373](https://github.com/tailwindlabs/tailwindcss/pull/19373)) - Handle special defaults (like `ringColor.DEFAULT`) in JS configs ([#&#8203;19348](https://github.com/tailwindlabs/tailwindcss/pull/19348)) - Improve backwards compatibility for `content` theme key from JS configs ([#&#8203;19381](https://github.com/tailwindlabs/tailwindcss/pull/19381)) - Upgrade: Handle `future` and `experimental` config keys ([#&#8203;19344](https://github.com/tailwindlabs/tailwindcss/pull/19344)) - Try to canonicalize any arbitrary utility to a bare value ([#&#8203;19379](https://github.com/tailwindlabs/tailwindcss/pull/19379)) - Validate candidates similarly to Oxide ([#&#8203;19397](https://github.com/tailwindlabs/tailwindcss/pull/19397)) - Canonicalization: combine `text-*` and `leading-*` classes ([#&#8203;19396](https://github.com/tailwindlabs/tailwindcss/pull/19396)) - Correctly handle duplicate CLI arguments ([#&#8203;19416](https://github.com/tailwindlabs/tailwindcss/pull/19416)) - Don’t emit color-mix fallback rules inside `@keyframes` ([#&#8203;19419](https://github.com/tailwindlabs/tailwindcss/pull/19419)) - CLI: Don't hang when output is `/dev/stdout` ([#&#8203;19421](https://github.com/tailwindlabs/tailwindcss/pull/19421)) ### [`v4.1.17`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4117---2025-11-06) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.1.16...v4.1.17) ##### Fixed - Substitute `@variant` inside legacy JS APIs ([#&#8203;19263](https://github.com/tailwindlabs/tailwindcss/pull/19263)) - Prevent occasional crash on Windows when loaded into a worker thread ([#&#8203;19242](https://github.com/tailwindlabs/tailwindcss/pull/19242)) ### [`v4.1.16`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4116---2025-10-23) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.1.15...v4.1.16) ##### Fixed - Discard candidates with an empty data type ([#&#8203;19172](https://github.com/tailwindlabs/tailwindcss/pull/19172)) - Fix canonicalization of arbitrary variants with attribute selectors ([#&#8203;19176](https://github.com/tailwindlabs/tailwindcss/pull/19176)) - Fix invalid colors due to nested `&` ([#&#8203;19184](https://github.com/tailwindlabs/tailwindcss/pull/19184)) - Improve canonicalization for `& > :pseudo` and `& :pseudo` arbitrary variants ([#&#8203;19178](https://github.com/tailwindlabs/tailwindcss/pull/19178)) ### [`v4.1.15`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4115---2025-10-20) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.1.14...v4.1.15) ##### Fixed - Fix Safari devtools rendering issue due to `color-mix` fallback ([#&#8203;19069](https://github.com/tailwindlabs/tailwindcss/pull/19069)) - Suppress Lightning CSS warnings about `:deep`, `:slotted`, and `:global` ([#&#8203;19094](https://github.com/tailwindlabs/tailwindcss/pull/19094)) - Fix resolving theme keys when starting with the name of another theme key in JS configs and plugins ([#&#8203;19097](https://github.com/tailwindlabs/tailwindcss/pull/19097)) - Allow named groups in combination with `not-*`, `has-*`, and `in-*` ([#&#8203;19100](https://github.com/tailwindlabs/tailwindcss/pull/19100)) - Prevent important utilities from affecting other utilities ([#&#8203;19110](https://github.com/tailwindlabs/tailwindcss/pull/19110)) - Don’t index into strings with the `theme(…)` function ([#&#8203;19111](https://github.com/tailwindlabs/tailwindcss/pull/19111)) - Fix parsing issue when `\t` is used in at-rules ([#&#8203;19130](https://github.com/tailwindlabs/tailwindcss/pull/19130)) - Upgrade: Canonicalize utilities containing `0` values ([#&#8203;19095](https://github.com/tailwindlabs/tailwindcss/pull/19095)) - Upgrade: Migrate deprecated `break-words` to `wrap-break-word` ([#&#8203;19157](https://github.com/tailwindlabs/tailwindcss/pull/19157)) ##### Changed - Remove the `postinstall` script from oxide (\[[#&#8203;19149](https://github.com/tailwindlabs/tailwindcss/issues/19149)])([#&#8203;19149](https://github.com/tailwindlabs/tailwindcss/pull/19149)) ### [`v4.1.14`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4114---2025-10-01) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.1.13...v4.1.14) ##### Fixed - Handle `'` syntax in ClojureScript when extracting classes ([#&#8203;18888](https://github.com/tailwindlabs/tailwindcss/pull/18888)) - Handle `@variant` inside `@custom-variant` ([#&#8203;18885](https://github.com/tailwindlabs/tailwindcss/pull/18885)) - Merge suggestions when using `@utility` ([#&#8203;18900](https://github.com/tailwindlabs/tailwindcss/pull/18900)) - Ensure that file system watchers created when using the CLI are always cleaned up ([#&#8203;18905](https://github.com/tailwindlabs/tailwindcss/pull/18905)) - Do not generate `grid-column` utilities when configuring `grid-column-start` or `grid-column-end` ([#&#8203;18907](https://github.com/tailwindlabs/tailwindcss/pull/18907)) - Do not generate `grid-row` utilities when configuring `grid-row-start` or `grid-row-end` ([#&#8203;18907](https://github.com/tailwindlabs/tailwindcss/pull/18907)) - Prevent duplicate CSS when overwriting a static utility with a theme key ([#&#8203;18056](https://github.com/tailwindlabs/tailwindcss/pull/18056)) - Show Lightning CSS warnings (if any) when optimizing/minifying ([#&#8203;18918](https://github.com/tailwindlabs/tailwindcss/pull/18918)) - Use `default` export condition for `@tailwindcss/vite` ([#&#8203;18948](https://github.com/tailwindlabs/tailwindcss/pull/18948)) - Re-throw errors from PostCSS nodes ([#&#8203;18373](https://github.com/tailwindlabs/tailwindcss/pull/18373)) - Detect classes in markdown inline directives ([#&#8203;18967](https://github.com/tailwindlabs/tailwindcss/pull/18967)) - Ensure files with only `@theme` produce no output when built ([#&#8203;18979](https://github.com/tailwindlabs/tailwindcss/pull/18979)) - Support Maud templates when extracting classes ([#&#8203;18988](https://github.com/tailwindlabs/tailwindcss/pull/18988)) - Upgrade: Do not migrate `variant = 'outline'` during upgrades ([#&#8203;18922](https://github.com/tailwindlabs/tailwindcss/pull/18922)) - Upgrade: Show version mismatch (if any) when running upgrade tool ([#&#8203;19028](https://github.com/tailwindlabs/tailwindcss/pull/19028)) - Upgrade: Ensure first class inside `className` is migrated ([#&#8203;19031](https://github.com/tailwindlabs/tailwindcss/pull/19031)) - Upgrade: Migrate classes inside `*ClassName` and `*Class` attributes ([#&#8203;19031](https://github.com/tailwindlabs/tailwindcss/pull/19031)) ### [`v4.1.13`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4113---2025-09-03) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.1.12...v4.1.13) ##### Changed - Drop warning from browser build ([#&#8203;18731](https://github.com/tailwindlabs/tailwindcss/issues/18731)) - Drop exact duplicate declarations when emitting CSS ([#&#8203;18809](https://github.com/tailwindlabs/tailwindcss/issues/18809)) ##### Fixed - Don't transition `visibility` when using `transition` ([#&#8203;18795](https://github.com/tailwindlabs/tailwindcss/pull/18795)) - Discard matched variants with unknown named values ([#&#8203;18799](https://github.com/tailwindlabs/tailwindcss/pull/18799)) - Discard matched variants with non-string values ([#&#8203;18799](https://github.com/tailwindlabs/tailwindcss/pull/18799)) - Show suggestions for known `matchVariant` values ([#&#8203;18798](https://github.com/tailwindlabs/tailwindcss/pull/18798)) - Replace deprecated `clip` with `clip-path` in `sr-only` ([#&#8203;18769](https://github.com/tailwindlabs/tailwindcss/pull/18769)) - Hide internal fields from completions in `matchUtilities` ([#&#8203;18820](https://github.com/tailwindlabs/tailwindcss/pull/18820)) - Ignore `.vercel` folders by default (can be overridden by `@source …` rules) ([#&#8203;18855](https://github.com/tailwindlabs/tailwindcss/pull/18855)) - Consider variants starting with `@-` to be invalid (e.g. `@-2xl:flex`) ([#&#8203;18869](https://github.com/tailwindlabs/tailwindcss/pull/18869)) - Do not allow custom variants to start or end with a `-` or `_` ([#&#8203;18867](https://github.com/tailwindlabs/tailwindcss/pull/18867), [#&#8203;18872](https://github.com/tailwindlabs/tailwindcss/pull/18872)) - Upgrade: Migrate `aria` theme keys to `@custom-variant` ([#&#8203;18815](https://github.com/tailwindlabs/tailwindcss/pull/18815)) - Upgrade: Migrate `data` theme keys to `@custom-variant` ([#&#8203;18816](https://github.com/tailwindlabs/tailwindcss/pull/18816)) - Upgrade: Migrate `supports` theme keys to `@custom-variant` ([#&#8203;18817](https://github.com/tailwindlabs/tailwindcss/pull/18817)) ### [`v4.1.12`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4112---2025-08-13) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.1.11...v4.1.12) ##### Fixed - Don't consider the global important state in `@apply` ([#&#8203;18404](https://github.com/tailwindlabs/tailwindcss/pull/18404)) - Add missing suggestions for `flex-<number>` utilities ([#&#8203;18642](https://github.com/tailwindlabs/tailwindcss/pull/18642)) - Fix trailing `)` from interfering with extraction in Clojure keywords ([#&#8203;18345](https://github.com/tailwindlabs/tailwindcss/pull/18345)) - Detect classes inside Elixir charlist, word list, and string sigils ([#&#8203;18432](https://github.com/tailwindlabs/tailwindcss/pull/18432)) - Track source locations through `@plugin` and `@config` ([#&#8203;18345](https://github.com/tailwindlabs/tailwindcss/pull/18345)) - Allow boolean values of `process.env.DEBUG` in `@tailwindcss/node` ([#&#8203;18485](https://github.com/tailwindlabs/tailwindcss/pull/18485)) - Ignore consecutive semicolons in the CSS parser ([#&#8203;18532](https://github.com/tailwindlabs/tailwindcss/pull/18532)) - Center the dropdown icon added to an input with a paired datalist by default ([#&#8203;18511](https://github.com/tailwindlabs/tailwindcss/pull/18511)) - Extract candidates in Slang templates ([#&#8203;18565](https://github.com/tailwindlabs/tailwindcss/pull/18565)) - Improve error messages when encountering invalid functional utility names ([#&#8203;18568](https://github.com/tailwindlabs/tailwindcss/pull/18568)) - Discard CSS AST objects with `false` or `undefined` properties ([#&#8203;18571](https://github.com/tailwindlabs/tailwindcss/pull/18571)) - Allow users to disable URL rebasing in `@tailwindcss/postcss` via `transformAssetUrls: false` ([#&#8203;18321](https://github.com/tailwindlabs/tailwindcss/pull/18321)) - Fix false-positive migrations in `addEventListener` and JavaScript variable names ([#&#8203;18718](https://github.com/tailwindlabs/tailwindcss/pull/18718)) - Fix Standalone CLI showing default Bun help when run via symlink on Windows ([#&#8203;18723](https://github.com/tailwindlabs/tailwindcss/pull/18723)) - Read from `--border-color-*` theme keys in `divide-*` utilities for backwards compatibility ([#&#8203;18704](https://github.com/tailwindlabs/tailwindcss/pull/18704/)) - Don't scan `.hdr` and `.exr` files for classes by default ([#&#8203;18734](https://github.com/tailwindlabs/tailwindcss/pull/18734)) ### [`v4.1.11`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4111---2025-06-26) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.1.10...v4.1.11) ##### Fixed - Add heuristic to skip candidate migrations inside `emit(…)` ([#&#8203;18330](https://github.com/tailwindlabs/tailwindcss/pull/18330)) - Extract candidates with variants in Clojure/ClojureScript keywords ([#&#8203;18338](https://github.com/tailwindlabs/tailwindcss/pull/18338)) - Document `--watch=always` in the CLI's usage ([#&#8203;18337](https://github.com/tailwindlabs/tailwindcss/pull/18337)) - Add support for Vite 7 to `@tailwindcss/vite` ([#&#8203;18384](https://github.com/tailwindlabs/tailwindcss/pull/18384)) ### [`v4.1.10`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4110---2025-06-11) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.1.9...v4.1.10) ##### Fixed - Fix incorrectly generated CSS when using percentages in arbitrary values with calc (e.g. `w-[calc(100%-var(--offset))]`) ([#&#8203;18289](https://github.com/tailwindlabs/tailwindcss/pull/18289)) ### [`v4.1.9`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#419---2025-06-11) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.1.8...v4.1.9) ##### Fixed - Correctly parse custom properties with strings containing semicolons ([#&#8203;18251](https://github.com/tailwindlabs/tailwindcss/pull/18251)) - Upgrade: Migrate arbitrary modifiers without percentage signs to bare values (e.g. `/[0.16]` → `/16`) ([#&#8203;18184](https://github.com/tailwindlabs/tailwindcss/pull/18184)) - Upgrade: Migrate CSS variable shorthands where fallback value contains function call ([#&#8203;18184](https://github.com/tailwindlabs/tailwindcss/pull/18184)) - Upgrade: Migrate negative arbitrary values to negative bare values (e.g. `mb-[-32rem]` → `-mb-128`) ([#&#8203;18212](https://github.com/tailwindlabs/tailwindcss/pull/18212)) - Upgrade: Do not migrate `blur` in `wire:model.blur` ([#&#8203;18216](https://github.com/tailwindlabs/tailwindcss/pull/18216)) - Don't add spaces around CSS dashed idents when formatting math expressions ([#&#8203;18220](https://github.com/tailwindlabs/tailwindcss/pull/18220)) ### [`v4.1.8`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#418---2025-05-27) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.1.7...v4.1.8) ##### Added - Improve error messages when `@apply` fails ([#&#8203;18059](https://github.com/tailwindlabs/tailwindcss/pull/18059)) ##### Fixed - Upgrade: Do not migrate declarations that look like candidates in `<style>` blocks ([#&#8203;18057](https://github.com/tailwindlabs/tailwindcss/pull/18057), [18068](https://github.com/tailwindlabs/tailwindcss/pull/18068)) - Upgrade: Don't error when looking for `tailwindcss` in pnpm monorepos ([#&#8203;18065](https://github.com/tailwindlabs/tailwindcss/pull/18065)) - Upgrade: Don't error when updating dependencies in pnpm monorepos ([#&#8203;18065](https://github.com/tailwindlabs/tailwindcss/pull/18065)) - Upgrade: Migrate deprecated `order-none` to `order-0` ([#&#8203;18126](https://github.com/tailwindlabs/tailwindcss/pull/18126)) - Support Leptos `class:` attributes when extracting classes ([#&#8203;18093](https://github.com/tailwindlabs/tailwindcss/pull/18093)) - Fix "Cannot read properties of undefined" crash on malformed arbitrary value ([#&#8203;18133](https://github.com/tailwindlabs/tailwindcss/pull/18133)) - Upgrade: Migrate `-mt-[0px]` to `mt-[0px]` instead of the other way around ([#&#8203;18154](https://github.com/tailwindlabs/tailwindcss/pull/18154)) - Fix Haml pre-processing crash when there is no `\n` at the end of the file ([#&#8203;18155](https://github.com/tailwindlabs/tailwindcss/pull/18155)) - Ignore `.pnpm-store` folders by default (can be overridden by `@source …` rules) ([#&#8203;18163](https://github.com/tailwindlabs/tailwindcss/pull/18163)) - Fix PostCSS crash when calling `toJSON()` ([#&#8203;18083](https://github.com/tailwindlabs/tailwindcss/pull/18083)) ### [`v4.1.7`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#417---2025-05-15) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.1.6...v4.1.7) ##### Added - Upgrade: Migrate bare values to named values ([#&#8203;18000](https://github.com/tailwindlabs/tailwindcss/pull/18000)) - Upgrade: Added cache to improve template migration performance ([#&#8203;18025](https://github.com/tailwindlabs/tailwindcss/pull/18025)) ##### Fixed - Allow `_` before numbers during candidate extraction ([#&#8203;17961](https://github.com/tailwindlabs/tailwindcss/pull/17961)) - Prevent duplicate suggestions when using `@theme` and `@utility` together ([#&#8203;17675](https://github.com/tailwindlabs/tailwindcss/pull/17675)) - Ensure that media queries within `::before` and `::after` pseudo selectors create valid CSS rules in production builds ([#&#8203;17979](https://github.com/tailwindlabs/tailwindcss/pull/17979)) - Ensure that the standalone CLI does not leave temporary files behind ([#&#8203;17981](https://github.com/tailwindlabs/tailwindcss/pull/17981)) - Ensure `-rotate-*` utilities properly negate arbitrary values ([#&#8203;18014](https://github.com/tailwindlabs/tailwindcss/pull/18014)) - Ignore custom variants using `:merge(…)` selectors in legacy JS plugins ([#&#8203;18020](https://github.com/tailwindlabs/tailwindcss/pull/18020)) - Ensure classes containing `.` are properly extracted from Clojure files ([#&#8203;18038](https://github.com/tailwindlabs/tailwindcss/pull/18038)) - Upgrade: Fix error when using `@import … source(…)` ([#&#8203;17963](https://github.com/tailwindlabs/tailwindcss/pull/17963)) - Upgrade: Change casing of utilities with named values to kebab-case to match updated theme variables ([#&#8203;18017](https://github.com/tailwindlabs/tailwindcss/pull/18017)) - Upgrade: Don't migrate strings that match utility names in Vue attribute bindings other than `class` ([#&#8203;18025](https://github.com/tailwindlabs/tailwindcss/pull/18025)) ### [`v4.1.6`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#416---2025-05-09) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.1.5...v4.1.6) ##### Added - Upgrade: Automatically convert arbitrary values to named values when possible (e.g. `h-[1lh]` to `h-lh`) ([#&#8203;17831](https://github.com/tailwindlabs/tailwindcss/pull/17831), [#&#8203;17854](https://github.com/tailwindlabs/tailwindcss/pull/17854)) - Upgrade: Update dependencies in parallel for improved performance ([#&#8203;17898](https://github.com/tailwindlabs/tailwindcss/pull/17898)) - Add detailed logging about `@source` directives, discovered files and scanned files when using `DEBUG=*` ([#&#8203;17906](https://github.com/tailwindlabs/tailwindcss/pull/17906), [#&#8203;17952](https://github.com/tailwindlabs/tailwindcss/pull/17952)) - Add support for generating source maps in development ([#&#8203;17775](https://github.com/tailwindlabs/tailwindcss/pull/17775)) ##### Fixed - Ensure negative arbitrary `scale` values generate negative values ([#&#8203;17831](https://github.com/tailwindlabs/tailwindcss/pull/17831)) - Fix HAML extraction with embedded Ruby ([#&#8203;17846](https://github.com/tailwindlabs/tailwindcss/pull/17846)) - Don't scan files for utilities when using `@reference` ([#&#8203;17836](https://github.com/tailwindlabs/tailwindcss/pull/17836)) - Fix incorrectly replacing `_` with ` ` in arbitrary modifier shorthand `bg-red-500/(--my_opacity)` ([#&#8203;17889](https://github.com/tailwindlabs/tailwindcss/pull/17889)) - Don't scan `.log` files for classes by default ([#&#8203;17906](https://github.com/tailwindlabs/tailwindcss/pull/17906)) - Ensure that custom utilities applying other custom utilities don't swallow nested `@apply` rules ([#&#8203;17925](https://github.com/tailwindlabs/tailwindcss/pull/17925)) - Download platform specific package if `optionalDependencies` are skipped ([#&#8203;17929](https://github.com/tailwindlabs/tailwindcss/pull/17929)) ### [`v4.1.5`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#415---2025-04-30) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.1.4...v4.1.5) ##### Added - Support using `@tailwindcss/upgrade` to upgrade between versions of v4.\* ([#&#8203;17717](https://github.com/tailwindlabs/tailwindcss/pull/17717)) - Add `h-lh` / `min-h-lh` / `max-h-lh` utilities ([#&#8203;17790](https://github.com/tailwindlabs/tailwindcss/pull/17790)) - Transition `display`, `visibility`, `content-visibility`, `overlay`, and `pointer-events` when using `transition` to simplify `@starting-style` usage ([#&#8203;17812](https://github.com/tailwindlabs/tailwindcss/pull/17812)) ##### Fixed - Don't scan `.geojson` or `.db` files for classes by default ([#&#8203;17700](https://github.com/tailwindlabs/tailwindcss/pull/17700), [#&#8203;17711](https://github.com/tailwindlabs/tailwindcss/pull/17711)) - Hide default shadow suggestions when missing default shadow theme keys ([#&#8203;17743](https://github.com/tailwindlabs/tailwindcss/pull/17743)) - Replace `_` with `.` in theme suggestions for `@utility` if surrounded by digits ([#&#8203;17733](https://github.com/tailwindlabs/tailwindcss/pull/17733)) - Skip `color-mix(…)` when opacity is `100%` ([#&#8203;17815](https://github.com/tailwindlabs/tailwindcss/pull/17815)) - PostCSS: Ensure that errors in imported stylesheets are recoverable ([#&#8203;17754](https://github.com/tailwindlabs/tailwindcss/pull/17754)) - Upgrade: Bump all Tailwind CSS related dependencies during upgrade ([#&#8203;17763](https://github.com/tailwindlabs/tailwindcss/pull/17763)) - Upgrade: Don't add `-` to variants starting with `@` ([#&#8203;17814](https://github.com/tailwindlabs/tailwindcss/pull/17814)) - Upgrade: Don't format stylesheets that didn't change when upgrading ([#&#8203;17824](https://github.com/tailwindlabs/tailwindcss/pull/17824)) ##### Changed - Ignore `.hg`, `.svn`, `.venv`, `venv`, `.yarn`, `.next`, `.turbo`, `.parcel-cache`, `__pycache__`, and `.svelte-kit` folders by default (can be overridden by `@source …` rules) ([#&#8203;17892](https://github.com/tailwindlabs/tailwindcss/pull/17892)) - `@source` rules that point inside `.hg`, `.svn`, `.venv`, `venv`, `.yarn`, `.next`, `.turbo`, `.parcel-cache`, `__pycache__`, and `.svelte-kit` folders no longer consider your `.gitignore` rules ([#&#8203;17892](https://github.com/tailwindlabs/tailwindcss/pull/17892)) ### [`v4.1.4`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#414---2025-04-14) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.1.3...v4.1.4) ##### Added - Add experimental `@tailwindcss/oxide-wasm32-wasi` target for running Tailwind in browser environments like StackBlitz ([#&#8203;17558](https://github.com/tailwindlabs/tailwindcss/pull/17558)) ##### Fixed - Ensure `color-mix(…)` polyfills do not cause used CSS variables to be removed ([#&#8203;17555](https://github.com/tailwindlabs/tailwindcss/pull/17555)) - Ensure `color-mix(…)` polyfills create fallbacks for theme variables that reference other theme variables ([#&#8203;17562](https://github.com/tailwindlabs/tailwindcss/pull/17562)) - Fix brace expansion in declining ranges like `{10..0..5}` and `{0..10..-5}` ([#&#8203;17591](https://github.com/tailwindlabs/tailwindcss/pull/17591)) - Work around a Chrome rendering bug when using the `skew-*` utilities ([#&#8203;17627](https://github.com/tailwindlabs/tailwindcss/pull/17627)) - Ensure container query variant names can contain hyphens ([#&#8203;17628](https://github.com/tailwindlabs/tailwindcss/pull/17628)) - Ensure `shadow-inherit`, `inset-shadow-inherit`, `drop-shadow-inherit`, and `text-shadow-inherit` inherit the shadow color ([#&#8203;17647](https://github.com/tailwindlabs/tailwindcss/pull/17647)) - Ensure compatibility with array tuples used in `fontSize` JS theme keys ([#&#8203;17630](https://github.com/tailwindlabs/tailwindcss/pull/17630)) - Ensure folders with binary file extensions in their names are scanned for utilities ([#&#8203;17595](https://github.com/tailwindlabs/tailwindcss/pull/17595)) - Upgrade: Convert `fontSize` array tuple syntax to CSS theme variables ([#&#8203;17630](https://github.com/tailwindlabs/tailwindcss/pull/17630)) ### [`v4.1.3`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#413---2025-04-04) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.1.2...v4.1.3) ##### Fixed - Show warning when using unsupported bare value data type in `--value(…)` ([#&#8203;17464](https://github.com/tailwindlabs/tailwindcss/pull/17464)) - PostCSS: Ensure changes to the input CSS file don't generate stale output when using Turbopack ([#&#8203;17554](https://github.com/tailwindlabs/tailwindcss/pull/17554)) - Ensure classes are detected in Ruby's `%w` syntax in Slim templates ([#&#8203;17557](https://github.com/tailwindlabs/tailwindcss/pull/17557)) ### [`v4.1.2`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#412---2025-04-03) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.1.1...v4.1.2) ##### Fixed - Don't rely on the presence of `@layer base` to polyfill `@property` ([#&#8203;17506](https://github.com/tailwindlabs/tailwindcss/pull/17506)) - Support setting multiple inset shadows as arbitrary values ([#&#8203;17523](https://github.com/tailwindlabs/tailwindcss/pull/17523)) - Fix `drop-shadow-*` utilities that are defined with multiple shadows ([#&#8203;17515](https://github.com/tailwindlabs/tailwindcss/pull/17515)) - PostCSS: Fix race condition when two changes are queued concurrently ([#&#8203;17514](https://github.com/tailwindlabs/tailwindcss/pull/17514)) - PostCSS: Ensure files containing `@tailwind utilities` are processed ([#&#8203;17514](https://github.com/tailwindlabs/tailwindcss/pull/17514)) - Ensure the `color-mix(…)` polyfill creates fallbacks even when using colors that cannot be statically analyzed ([#&#8203;17513](https://github.com/tailwindlabs/tailwindcss/pull/17513)) - Fix slow incremental builds with `@tailwindcss/vite` and `@tailwindcss/postscss` (especially on Windows) ([#&#8203;17511](https://github.com/tailwindlabs/tailwindcss/pull/17511)) - Vite: Fix missing CSS file in Qwik setups ([#&#8203;17533](https://github.com/tailwindlabs/tailwindcss/pull/17533)) ### [`v4.1.1`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4118---2025-12-11) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.1.0...v4.1.1) ##### Fixed - Ensure validation of `source(…)` happens relative to the file it is in ([#&#8203;19274](https://github.com/tailwindlabs/tailwindcss/pull/19274)) - Include filename and line numbers in CSS parse errors ([#&#8203;19282](https://github.com/tailwindlabs/tailwindcss/pull/19282)) - Skip comments in Ruby files when checking for class names ([#&#8203;19243](https://github.com/tailwindlabs/tailwindcss/pull/19243)) - Skip over arbitrary property utilities with a top-level `!` in the value ([#&#8203;19243](https://github.com/tailwindlabs/tailwindcss/pull/19243)) - Support environment API in `@tailwindcss/vite` ([#&#8203;18970](https://github.com/tailwindlabs/tailwindcss/pull/18970)) - Preserve case of theme keys from JS configs and plugins ([#&#8203;19337](https://github.com/tailwindlabs/tailwindcss/pull/19337)) - Write source maps correctly on the CLI when using `--watch` ([#&#8203;19373](https://github.com/tailwindlabs/tailwindcss/pull/19373)) - Handle special defaults (like `ringColor.DEFAULT`) in JS configs ([#&#8203;19348](https://github.com/tailwindlabs/tailwindcss/pull/19348)) - Improve backwards compatibility for `content` theme key from JS configs ([#&#8203;19381](https://github.com/tailwindlabs/tailwindcss/pull/19381)) - Upgrade: Handle `future` and `experimental` config keys ([#&#8203;19344](https://github.com/tailwindlabs/tailwindcss/pull/19344)) - Try to canonicalize any arbitrary utility to a bare value ([#&#8203;19379](https://github.com/tailwindlabs/tailwindcss/pull/19379)) - Validate candidates similarly to Oxide ([#&#8203;19397](https://github.com/tailwindlabs/tailwindcss/pull/19397)) - Canonicalization: combine `text-*` and `leading-*` classes ([#&#8203;19396](https://github.com/tailwindlabs/tailwindcss/pull/19396)) - Correctly handle duplicate CLI arguments ([#&#8203;19416](https://github.com/tailwindlabs/tailwindcss/pull/19416)) - Don’t emit color-mix fallback rules inside `@keyframes` ([#&#8203;19419](https://github.com/tailwindlabs/tailwindcss/pull/19419)) - CLI: Don't hang when output is `/dev/stdout` ([#&#8203;19421](https://github.com/tailwindlabs/tailwindcss/pull/19421)) ### [`v4.1.0`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#410---2025-04-01) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.0.17...v4.1.0) ##### Added - Add `details-content` variant ([#&#8203;15319](https://github.com/tailwindlabs/tailwindcss/pull/15319)) - Add `inverted-colors` variant ([#&#8203;11693](https://github.com/tailwindlabs/tailwindcss/pull/11693)) - Add `noscript` variant ([#&#8203;11929](https://github.com/tailwindlabs/tailwindcss/pull/11929), [#&#8203;17431](https://github.com/tailwindlabs/tailwindcss/pull/17431)) - Add `items-baseline-last` and `self-baseline-last` utilities ([#&#8203;13888](https://github.com/tailwindlabs/tailwindcss/pull/13888), [#&#8203;17476](https://github.com/tailwindlabs/tailwindcss/pull/17476)) - Add `pointer-none`, `pointer-coarse`, and `pointer-fine` variants ([#&#8203;16946](https://github.com/tailwindlabs/tailwindcss/pull/16946)) - Add `any-pointer-none`, `any-pointer-coarse`, and `any-pointer-fine` variants ([#&#8203;16941](https://github.com/tailwindlabs/tailwindcss/pull/16941)) - Add safe alignment utilities ([#&#8203;14607](https://github.com/tailwindlabs/tailwindcss/pull/14607)) - Add `user-valid` and `user-invalid` variants ([#&#8203;12370](https://github.com/tailwindlabs/tailwindcss/pull/12370)) - Add `wrap-anywhere`, `wrap-break-word`, and `wrap-normal` utilities ([#&#8203;12128](https://github.com/tailwindlabs/tailwindcss/pull/12128)) - Add `@source inline(…)` and `@source not inline(…)` ([#&#8203;17147](https://github.com/tailwindlabs/tailwindcss/pull/17147)) - Add `@source not "…"` ([#&#8203;17255](https://github.com/tailwindlabs/tailwindcss/pull/17255)) - Add `text-shadow-*` utilities ([#&#8203;17389](https://github.com/tailwindlabs/tailwindcss/pull/17389)) - Add `mask-*` utilities ([#&#8203;17134](https://github.com/tailwindlabs/tailwindcss/pull/17134)) - Add `bg-{position,size}-*` utilities for arbitrary values ([#&#8203;17432](https://github.com/tailwindlabs/tailwindcss/pull/17432)) - Add `shadow-*/<alpha>`, `inset-shadow-*/<alpha>`, `drop-shadow-*/<alpha>`, and `text-shadow-*/<alpha>` utilities to control shadow opacity ([#&#8203;17398](https://github.com/tailwindlabs/tailwindcss/pull/17398), [#&#8203;17434](https://github.com/tailwindlabs/tailwindcss/pull/17434)) - Add `drop-shadow-<color>` utilities ([#&#8203;17434](https://github.com/tailwindlabs/tailwindcss/pull/17434)) - Improve compatibility with older versions of Safari and Firefox ([#&#8203;17435](https://github.com/tailwindlabs/tailwindcss/pull/17435)) ##### Fixed - Follow symlinks when resolving `@source` directives ([#&#8203;17391](https://github.com/tailwindlabs/tailwindcss/pull/17391)) - Don't scan ignored files for classes when changing an ignored file triggers a rebuild using `@tailwindcss/cli` ([#&#8203;17255](https://github.com/tailwindlabs/tailwindcss/pull/17255)) - Support negated `content` rules in legacy JavaScript configuration ([#&#8203;17255](https://github.com/tailwindlabs/tailwindcss/pull/17255)) - Interpret syntax like `@("@&#8203;")md:…` as `@md:…` in Razor files ([#&#8203;17427](https://github.com/tailwindlabs/tailwindcss/pull/17427)) - Disallow top-level braces, top-level semicolons, and unbalanced parentheses and brackets in arbitrary values ([#&#8203;17361](https://github.com/tailwindlabs/tailwindcss/pull/17361)) - Ensure the `--theme(…)` function still resolves to the CSS variables when using legacy JS plugins ([#&#8203;17458](https://github.com/tailwindlabs/tailwindcss/pull/17458)) - Detect used theme variables in CSS module files ([#&#8203;17433](https://github.com/tailwindlabs/tailwindcss/pull/17433), [#&#8203;17467](https://github.com/tailwindlabs/tailwindcss/pull/17467)) ##### Changed - Ignore `node_modules` by default (can be overridden by `@source …` rules) ([#&#8203;17255](https://github.com/tailwindlabs/tailwindcss/pull/17255)) - `@source` rules that include file extensions or point inside `node_modules/` folders no longer consider your `.gitignore` rules ([#&#8203;17255](https://github.com/tailwindlabs/tailwindcss/pull/17255)) - Deprecate `bg-{left,right}-{top,bottom}` in favor of `bg-{top,bottom}-{left,right}` utilities ([#&#8203;17378](https://github.com/tailwindlabs/tailwindcss/pull/17378)) - Deprecate `object-{left,right}-{top,bottom}` in favor of `object-{top,bottom}-{left,right}` utilities ([#&#8203;17437](https://github.com/tailwindlabs/tailwindcss/pull/17437)) ### [`v4.0.17`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4017---2025-03-26) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.0.16...v4.0.17) ##### Fixed - Fix an issue causing the CLI to hang when processing Ruby files ([#&#8203;17383](https://github.com/tailwindlabs/tailwindcss/pull/17383)) ### [`v4.0.16`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4016---2025-03-25) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.0.15...v4.0.16) ##### Added - Add support for literal values in `--value('…')` and `--modifier('…')` ([#&#8203;17304](https://github.com/tailwindlabs/tailwindcss/pull/17304)) ##### Fixed - Fix class extraction followed by `(` in Pug ([#&#8203;17320](https://github.com/tailwindlabs/tailwindcss/pull/17320)) - Ensure `@keyframes` for theme animations are emitted if they are referenced following a comma ([#&#8203;17352](https://github.com/tailwindlabs/tailwindcss/pull/17352)) - Vite: Ensure that updates to an imported CSS file are properly propagated after updating source files ([#&#8203;17347](https://github.com/tailwindlabs/tailwindcss/pull/17347)) - Pre process `Slim` templates embedded in Ruby files ([#&#8203;17336](https://github.com/tailwindlabs/tailwindcss/pull/17336)) - Error when input and output files resolve to the same file when using the CLI ([#&#8203;17311](https://github.com/tailwindlabs/tailwindcss/pull/17311)) - Add missing suggestions when `--spacing(--value(integer, number))` is used ([#&#8203;17308](https://github.com/tailwindlabs/tailwindcss/pull/17308)) - Add `::-webkit-details-marker` pseudo to `marker` variant ([#&#8203;17362](https://github.com/tailwindlabs/tailwindcss/pull/17362)) ### [`v4.0.15`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4015---2025-03-20) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.0.14...v4.0.15) ##### Fixed - Fix incorrect angle in `-bg-conic-*` utilities ([#&#8203;17174](https://github.com/tailwindlabs/tailwindcss/pull/17174)) - Fix `border-[12px_4px]` being interpreted as a `border-color` instead of a `border-width` ([#&#8203;17248](https://github.com/tailwindlabs/tailwindcss/pull/17248)) - Work around a crash in Safari 16.4 and 16.5 when using the default Preflight styles ([#&#8203;17306](https://github.com/tailwindlabs/tailwindcss/pull/17306)) - Pre-process `<template lang="…">` in Vue files ([#&#8203;17252](https://github.com/tailwindlabs/tailwindcss/pull/17252)) - Ensure that all CSS variables used by Preflight are prefixed ([#&#8203;17036](https://github.com/tailwindlabs/tailwindcss/pull/17036)) - Prevent segfault when loaded in a worker thread on Linux ([#&#8203;17276](https://github.com/tailwindlabs/tailwindcss/pull/17276)) - Ensure multiple `--value(…)` or `--modifier(…)` calls don't delete subsequent declarations ([#&#8203;17273](https://github.com/tailwindlabs/tailwindcss/pull/17273)) - Fix class extraction followed by `(` in Slim ([#&#8203;17278](https://github.com/tailwindlabs/tailwindcss/pull/17278)) - Export `PluginUtils` from `tailwindcss/plugin` for compatibility with v3 ([#&#8203;17299](https://github.com/tailwindlabs/tailwindcss/pull/17299)) - Remove redundant `line-height: initial` from Preflight ([#&#8203;15212](https://github.com/tailwindlabs/tailwindcss/pull/15212)) - Increase Standalone hardware compatibility on macOS x64 builds ([#&#8203;17267](https://github.com/tailwindlabs/tailwindcss/pull/17267)) - Ensure that the CSS file rebuilds if a new CSS variable is used from templates ([#&#8203;17301](https://github.com/tailwindlabs/tailwindcss/pull/17301)) ##### Changed - The `--theme(…)` function now returns CSS variables from your theme variables unless used inside positions where CSS variables are invalid (e.g. inside `@media` queries) ([#&#8203;17036](https://github.com/tailwindlabs/tailwindcss/pull/17036)) ### [`v4.0.14`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4014---2025-03-13) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.0.13...v4.0.14) ##### Fixed - Do not extract candidates with JS string interpolation `${` ([#&#8203;17142](https://github.com/tailwindlabs/tailwindcss/pull/17142)) - Fix extraction of variants containing `.` character ([#&#8203;17153](https://github.com/tailwindlabs/tailwindcss/pull/17153)) - Fix extracting candidates in Clojure/ClojureScript ([#&#8203;17087](https://github.com/tailwindlabs/tailwindcss/pull/17087)) ### [`v4.0.13`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4013---2025-03-11) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.0.12...v4.0.13) ##### Fixed - Fix Haml pre-processing ([#&#8203;17051](https://github.com/tailwindlabs/tailwindcss/pull/17051)) - Ensure `.node` and `.wasm` files are not scanned for utilities ([#&#8203;17123](https://github.com/tailwindlabs/tailwindcss/pull/17123)) - Improve performance when scanning JSON files ([#&#8203;17125](https://github.com/tailwindlabs/tailwindcss/pull/17125)) - Fix extracting candidates containing dots in Haml, Pug, and Slim pre processors ([#&#8203;17094](https://github.com/tailwindlabs/tailwindcss/pull/17094), [#&#8203;17085](https://github.com/tailwindlabs/tailwindcss/pull/17085), [#&#8203;17113](https://github.com/tailwindlabs/tailwindcss/pull/17113)) - Don't create invalid CSS when encountering a link wrapped in square brackets ([#&#8203;17129](https://github.com/tailwindlabs/tailwindcss/pull/17129)) ### [`v4.0.12`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4012---2025-03-07) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.0.11...v4.0.12) ##### Fixed - Vite: Fix `url(…)` rebasing in transitively imported CSS files ([#&#8203;16965](https://github.com/tailwindlabs/tailwindcss/pull/16965)) - PostCSS: Rebase `url(…)`s in imported CSS files ([#&#8203;16965](https://github.com/tailwindlabs/tailwindcss/pull/16965)) - Ensure utilities are sorted based on their actual property order ([#&#8203;16995](https://github.com/tailwindlabs/tailwindcss/pull/16995)) - Ensure strings in Pug and Slim templates are handled correctly ([#&#8203;17000](https://github.com/tailwindlabs/tailwindcss/pull/17000)) - Ensure classes between `}` and `{` are properly extracted ([#&#8203;17001](https://github.com/tailwindlabs/tailwindcss/pull/17001)) - Fix `razor`/`cshtml` pre-processing ([#&#8203;17027](https://github.com/tailwindlabs/tailwindcss/pull/17027)) - Ensure extracting candidates from JS embedded in a PHP string works as expected ([#&#8203;17031](https://github.com/tailwindlabs/tailwindcss/pull/17031)) ### [`v4.0.11`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4011---2025-03-06) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.0.10...v4.0.11) ##### Fixed - Ensure classes containing `--` are extracted correctly ([#&#8203;16972](https://github.com/tailwindlabs/tailwindcss/pull/16972)) - Ensure classes containing numbers followed by dash or underscore are extracted correctly ([#&#8203;16980](https://github.com/tailwindlabs/tailwindcss/pull/16980)) - Ensure arbitrary container queries are extracted correctly ([#&#8203;16984](https://github.com/tailwindlabs/tailwindcss/pull/16984)) - Ensure classes ending in `[` are extracted in Slim templating language ([#&#8203;16985](https://github.com/tailwindlabs/tailwindcss/pull/16985)) - Ensure arbitrary variables with data types are extracted correctly ([#&#8203;16986](https://github.com/tailwindlabs/tailwindcss/pull/16986)) ### [`v4.0.10`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4010---2025-03-05) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.0.9...v4.0.10) ##### Added - Add `col-<number>` and `row-<number>` utilities for `grid-column` and `grid-row` ([#&#8203;15183](https://github.com/tailwindlabs/tailwindcss/pull/15183)) ##### Fixed - Ensure `not-*` does not remove `:is(…)` from variants ([#&#8203;16825](https://github.com/tailwindlabs/tailwindcss/pull/16825)) - Ensure `@keyframes` are correctly emitted when using a prefix ([#&#8203;16850](https://github.com/tailwindlabs/tailwindcss/pull/16850)) - Don't swallow `@utility` declarations when `@apply` is used in nested rules ([#&#8203;16940](https://github.com/tailwindlabs/tailwindcss/pull/16940)) - Ensure `outline-hidden` behaves like `outline-none` outside of forced colors mode ([#&#8203;16943](https://github.com/tailwindlabs/tailwindcss/pull/16943)) - Allow `!important` on CSS variables again ([#&#8203;16873](https://github.com/tailwindlabs/tailwindcss/pull/16873)) - Vite: Do not crash when encountering an `.svg` file with `#` or `?` in the filename ([#&#8203;16957](https://github.com/tailwindlabs/tailwindcss/pull/16957)) - Ensure utilities are properly detected within square brackets ([#&#8203;16306](https://github.com/tailwindlabs/tailwindcss/pull/16306)) - Ensure utilities are properly detected using Angular's conditional class binding syntax ([#&#8203;16306](https://github.com/tailwindlabs/tailwindcss/pull/16306)) - Ensure utilities starting with numbers are properly extracted from Slim templates ([#&#8203;16306](https://github.com/tailwindlabs/tailwindcss/pull/16306)) - Discard arbitrary property candidates that have guaranteed-invalid property names ([#&#8203;16306](https://github.com/tailwindlabs/tailwindcss/pull/16306)) ##### Changed - Removed `max-w-auto` and `max-h-auto` utilities as they generate invalid CSS ([#&#8203;16917](https://github.com/tailwindlabs/tailwindcss/pull/16917)) - Replaced the existing candidate extractor with a brand new extractor to improve maintainability, correctness, and performance ([#&#8203;16306](https://github.com/tailwindlabs/tailwindcss/pull/16306)) ### [`v4.0.9`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#409---2025-02-25) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.0.8...v4.0.9) ##### Fixed - Make JS APIs available to plugins and configs in the Standalone CLI ([#&#8203;15934](https://github.com/tailwindlabs/tailwindcss/pull/15934)) - Vite: Don't crash when importing a virtual module from JavaScript that ends in `.css` ([#&#8203;16780](https://github.com/tailwindlabs/tailwindcss/pull/16780)) - Fix an issue where `@reference "…"` would sometimes omit keyframe animations ([#&#8203;16774](https://github.com/tailwindlabs/tailwindcss/pull/16774)) - Ensure `z-*!` utilities are properly marked as `!important` ([#&#8203;16795](https://github.com/tailwindlabs/tailwindcss/pull/16795)) - Read UTF-8 CSS files that start with a byte-order mark (BOM) ([#&#8203;16800](https://github.com/tailwindlabs/tailwindcss/pull/16800)) - Ensure nested functions in selectors used with JavaScript plugins are not truncated ([#&#8203;16802](https://github.com/tailwindlabs/tailwindcss/pull/16802)) ##### Changed - Emit variable fallbacks when using `@reference "…"` instead of duplicate CSS variable declarations ([#&#8203;16774](https://github.com/tailwindlabs/tailwindcss/pull/16774)) ### [`v4.0.8`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#408---2025-02-21) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.0.7...v4.0.8) ##### Added - Allow `@import` with `theme(…)` options for stylesheets that contain more than just `@theme` rules ([#&#8203;16514](https://github.com/tailwindlabs/tailwindcss/pull/16514)) ##### Fixed - Don't add `!important` to CSS variable declarations when using the important modifier ([#&#8203;16668](https://github.com/tailwindlabs/tailwindcss/pull/16668)) - Vite: Ignore files and directories specified in your `.gitignore` file when using automatic source detection([#&#8203;16631](https://github.com/tailwindlabs/tailwindcss/pull/16631)) - Vite: Don't rely on the module graph for detecting candidates to ensure setups with multiple Vite builds work as expected ([#&#8203;16631](https://github.com/tailwindlabs/tailwindcss/pull/16631)) - Vite: Ensure Astro production builds always contain classes used in client-only components ([#&#8203;16631](https://github.com/tailwindlabs/tailwindcss/pull/16631)) - Vite: Always scan raw file contents for utility classes before any other transforms have been applied to ensure utility classes are scanned without any additional escaping ([#&#8203;16631](https://github.com/tailwindlabs/tailwindcss/pull/16631)) - Ensure utilities with more declarations are always sorted before utilities with fewer declarations when utilities only define CSS variables ([#&#8203;16715](https://github.com/tailwindlabs/tailwindcss/pull/16715)) - Only include `translate-z-px` utilities once in compiled CSS ([#&#8203;16718](https://github.com/tailwindlabs/tailwindcss/pull/16718)) ##### Changed - Don't include theme variables that aren't used in compiled CSS ([#&#8203;16211](https://github.com/tailwindlabs/tailwindcss/pull/16211), [#&#8203;16676](https://github.com/tailwindlabs/tailwindcss/pull/16676)) ### [`v4.0.7`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#407---2025-02-18) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.0.6...v4.0.7) ##### Fixed - Export `tailwindcss/lib/util/flattenColorPalette.js` for backward compatibility ([#&#8203;16411](https://github.com/tailwindlabs/tailwindcss/pull/16411)) - Fix sorting of numeric utility suggestions when they have different magnitudes ([#&#8203;16414](https://github.com/tailwindlabs/tailwindcss/pull/16414)) - Show suggestions for fractions in IntelliSense ([#&#8203;16353](https://github.com/tailwindlabs/tailwindcss/pull/16353)) - Don’t replace `_` in suggested theme keys ([#&#8203;16433](https://github.com/tailwindlabs/tailwindcss/pull/16433)) - Ensure `--default-outline-width` can be used to change the `outline-width` value of the `outline` utility ([#&#8203;16469](https://github.com/tailwindlabs/tailwindcss/pull/16469)) - Ensure drop shadow utilities don't inherit unexpectedly ([#&#8203;16471](https://github.com/tailwindlabs/tailwindcss/pull/16471)) - Export config and plugin types from `tailwindcss/plugin` for backward compatibility ([#&#8203;16505](https://github.com/tailwindlabs/tailwindcss/pull/16505)) - Ensure JavaScript plugins that emit nested rules referencing the utility name work as expected ([#&#8203;16539](https://github.com/tailwindlabs/tailwindcss/pull/16539)) - Statically link Visual Studio redistributables in `@tailwindcss/oxide` Windows builds ([#&#8203;16602](https://github.com/tailwindlabs/tailwindcss/pull/16602)) - Ensure that Next.js splat routes are scanned for classes ([#&#8203;16457](https://github.com/tailwindlabs/tailwindcss/pull/16457)) - Pin exact version of `tailwindcss` in `@tailwindcss/*` packages ([#&#8203;16623](https://github.com/tailwindlabs/tailwindcss/pull/16623)) - Upgrade: Report errors when updating dependencies ([#&#8203;16504](https://github.com/tailwindlabs/tailwindcss/pull/16504)) - Upgrade: Ensure a `darkMode` JS config setting with block syntax converts to use `@slot` ([#&#8203;16507](https://github.com/tailwindlabs/tailwindcss/pull/16507)) - Upgrade: Ensure the latest version of `tailwindcss` and `@tailwindcss/postcss` are installed when upgrading ([#&#8203;16620](https://github.com/tailwindlabs/tailwindcss/pull/16620)) ### [`v4.0.6`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#406---2025-02-10) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.0.5...v4.0.6) ##### Fixed - Revert change to no longer include theme variables that aren't used in compiled CSS ([#&#8203;16403](https://github.com/tailwindlabs/tailwindcss/pull/16403)) - Upgrade: Don't migrate `blur` to `blur-sm` when used with Next.js `<Image placeholder="blur" />` ([#&#8203;16405](https://github.com/tailwindlabs/tailwindcss/pull/16405)) ### [`v4.0.5`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#405---2025-02-08) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.0.4...v4.0.5) ##### Added - Add `@theme static` option for always including theme variables in compiled CSS ([#&#8203;16211](https://github.com/tailwindlabs/tailwindcss/pull/16211)) ##### Fixed - Remove rogue `console.log` from `@tailwindcss/vite` ([#&#8203;16307](https://github.com/tailwindlabs/tailwindcss/pull/16307)) ##### Changed - Don't include theme variables that aren't used in compiled CSS ([#&#8203;16211](https://github.com/tailwindlabs/tailwindcss/pull/16211)) ### [`v4.0.4`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#404---2025-02-06) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.0.3...v4.0.4) ##### Fixed - Fix a crash when setting JS theme values to `null` ([#&#8203;16210](https://github.com/tailwindlabs/tailwindcss/pull/16210)) - Ensure escaped underscores in CSS variables in arbitrary values are properly unescaped ([#&#8203;16206](https://github.com/tailwindlabs/tailwindcss/pull/16206)) - Ensure that the `containers` JS theme key is added to the `--container-*` namespace ([#&#8203;16169](https://github.com/tailwindlabs/tailwindcss/pull/16169)) - Ensure theme `@keyframes` are generated even if an `--animation-*` variable spans multiple lines ([#&#8203;16237](https://github.com/tailwindlabs/tailwindcss/pull/16237)) - Vite: Skip parsing stylesheets with the `?commonjs-proxy` flag ([#&#8203;16238](https://github.com/tailwindlabs/tailwindcss/pull/16238)) - Fix `order-first` and `order-last` for Firefox ([#&#8203;16266](https://github.com/tailwindlabs/tailwindcss/pull/16266)) - Fix support for older instruction sets on Linux x64 builds of the standalone CLI ([#&#8203;16244](https://github.com/tailwindlabs/tailwindcss/pull/16244)) - Ensure `NODE_PATH` is respected when resolving JavaScript and CSS files ([#&#8203;16274](https://github.com/tailwindlabs/tailwindcss/pull/16274)) - Ensure Node addons are packaged correctly with FreeBSD builds ([#&#8203;16277](https://github.com/tailwindlabs/tailwindcss/pull/16277)) - Fix an issue where `@variant` inside a referenced stylesheet could cause a stack overflow ([#&#8203;16300](https://github.com/tailwindlabs/tailwindcss/pull/16300)) ### [`v4.0.3`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#403---2025-02-01) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.0.2...v4.0.3) ##### Fixed - Fix incorrect removal of `@import url();` ([#&#8203;16144](https://github.com/tailwindlabs/tailwindcss/pull/16144)) ### [`v4.0.2`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#402---2025-01-31) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.0.1...v4.0.2) ##### Fixed - Only generate positive `grid-cols-*` and `grid-rows-*` utilities ([#&#8203;16020](https://github.com/tailwindlabs/tailwindcss/pull/16020)) - Ensure escaped theme variables are handled correctly ([#&#8203;16064](https://github.com/tailwindlabs/tailwindcss/pull/16064)) - Ensure we process Tailwind CSS features when only using `@reference` or `@variant` ([#&#8203;16057](https://github.com/tailwindlabs/tailwindcss/pull/16057)) - Refactor gradient implementation to work around [prettier/prettier#17058](https://github.com/prettier/prettier/issues/17058) ([#&#8203;16072](https://github.com/tailwindlabs/tailwindcss/pull/16072)) - Vite: Ensure hot-reloading works with SolidStart setups ([#&#8203;16052](https://github.com/tailwindlabs/tailwindcss/pull/16052)) - Vite: Fix a crash when starting the development server in SolidStart setups ([#&#8203;16052](https://github.com/tailwindlabs/tailwindcss/pull/16052)) - Vite: Don't rebase URLs that appear to be aliases ([#&#8203;16078](https://github.com/tailwindlabs/tailwindcss/pull/16078)) - Vite: Transform `<style>` blocks in HTML files ([#&#8203;16069](https://github.com/tailwindlabs/tailwindcss/pull/16069)) - Prevent camel-casing CSS custom properties added by JavaScript plugins ([#&#8203;16103](https://github.com/tailwindlabs/tailwindcss/pull/16103)) - Do not emit `@keyframes` in `@theme reference` ([#&#8203;16120](https://github.com/tailwindlabs/tailwindcss/pull/16120)) - Discard invalid declarations when parsing CSS ([#&#8203;16093](https://github.com/tailwindlabs/tailwindcss/pull/16093)) - Do not emit empty CSS rules and at-rules ([#&#8203;16121](https://github.com/tailwindlabs/tailwindcss/pull/16121)) - Handle `@variant` when at the top-level of a stylesheet ([#&#8203;16129](https://github.com/tailwindlabs/tailwindcss/pull/16129)) ### [`v4.0.1`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4017---2025-03-26) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.0.0...v4.0.1) ##### Fixed - Fix an issue causing the CLI to hang when processing Ruby files ([#&#8203;17383](https://github.com/tailwindlabs/tailwindcss/pull/17383)) ### [`v4.0.0`](https://github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#400---2025-01-21) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.19...v4.0.0) ##### Added - [New high-performance engine](https://tailwindcss.com/blog/tailwindcss-v4#new-high-performance-engine) — where full builds are up to 5x faster, and incremental builds are over 100x faster — and measured in microseconds. - [Designed for the modern web](https://tailwindcss.com/blog/tailwindcss-v4#designed-for-the-modern-web) — built on cutting-edge CSS features like cascade layers, registered custom properties with `@property`, and `color-mix()`. - [Simplified installation](https://tailwindcss.com/blog/tailwindcss-v4#simplified-installation) — fewer dependencies, zero configuration, and just a single line of code in your CSS file. - [First-party Vite plugin](https://tailwindcss.com/blog/tailwindcss-v4#first-party-vite-plugin) — tight integration for maximum performance and minimum configuration. - [Automatic content detection](https://tailwindcss.com/blog/tailwindcss-v4#automatic-content-detection) — all of your template files are discovered automatically, with no configuration required. - [Built-in import support](https://tailwindcss.com/blog/tailwindcss-v4#built-in-import-support) — no additional tooling necessary to bundle multiple CSS files. - [CSS-first configuration](https://tailwindcss.com/blog/tailwindcss-v4#css-first-configuration) — a reimagined developer experience where you customize and extend the framework directly in CSS instead of a JavaScript configuration file. - [CSS theme variables](https://tailwindcss.com/blog/tailwindcss-v4#css-theme-variables) — all of your design tokens exposed as native CSS variables so you can access them anywhere. - [Dynamic utility values and variants](https://tailwindcss.com/blog/tailwindcss-v4#dynamic-utility-values-and-variants) — stop guessing what values exist in your spacing scale, or extending your configuration for things like basic data attributes. - [Modernized P3 color palette](https://tailwindcss.com/blog/tailwindcss-v4#modernized-p3-color-palette) — a redesigned, more vivid color palette that takes full advantage of modern display technology. - [Container queries](https://tailwindcss.com/blog/tailwindcss-v4#container-queries) — first-class APIs for styling elements based on their container size, no plugins required. - [New 3D transform utilities](https://tailwindcss.com/blog/tailwindcss-v4#new-3d-transform-utilities) — transform elements in 3D space directly in your HTML. - [Expanded gradient APIs](https://tailwindcss.com/blog/tailwindcss-v4#expanded-gradient-apis) — radial and conic gradients, interpolation modes, and more. - [@&#8203;starting-style support](https://tailwindcss.com/blog/tailwindcss-v4#starting-style-support) — a new variant you can use to create enter and exit transitions, without the need for JavaScript. - [not-\* variant](https://tailwindcss.com/blog/tailwindcss-v4#not-variant) — style an element only when it doesn't match another variant, custom selector, or media or feature query. - [Even more new utilities and variants](https://tailwindcss.com/blog/tailwindcss-v4#even-more-new-utilities-and-variants) — including support for `color-scheme`, `field-sizing`, complex shadows, `inert`, and more. Start using Tailwind CSS v4.0 today by [installing it in a new project](https://tailwindcss.com/docs/installation/), or playing with it directly in the browser on [Tailwind Play](https://play.tailwindcss.com/). For existing projects, we've published a comprehensive [upgrade guide](https://tailwindcss.com/docs/upgrade-guide) and built an [automated upgrade tool](https://tailwindcss.com/docs/upgrade-guide#using-the-upgrade-tool) to get you on the latest version as quickly and painlessly as possible. For a deep-dive into everything that's new, [check out the announcement post](https://tailwindcss.com/blog/tailwindcss-v4). </details> <details> <summary>microsoft/TypeScript (typescript)</summary> ### [`v6.0.3`](https://github.com/microsoft/TypeScript/releases/tag/v6.0.3): TypeScript 6.0.3 [Compare Source](https://github.com/microsoft/TypeScript/compare/v6.0.2...v6.0.3) For release notes, check out the [release announcement blog post](https://devblogs.microsoft.com/typescript/announcing-typescript-6-0/). - [fixed issues query for TypeScript 6.0.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+6.0.0%22). - [fixed issues query for TypeScript 6.0.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+6.0.1%22). - [fixed issues query for TypeScript 6.0.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+6.0.2%22). - [fixed issues query for TypeScript 6.0.3 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+6.0.3%22). Downloads are available on: - [npm](https://www.npmjs.com/package/typescript) ### [`v6.0.2`](https://github.com/microsoft/TypeScript/releases/tag/v6.0.2): TypeScript 6.0 [Compare Source](https://github.com/microsoft/TypeScript/compare/v5.9.3...v6.0.2) For release notes, check out the [release announcement blog post](https://devblogs.microsoft.com/typescript/announcing-typescript-6-0/). - [fixed issues query for TypeScript 6.0.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+6.0.0%22). - [fixed issues query for TypeScript 6.0.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+6.0.1%22). - [fixed issues query for TypeScript 6.0.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+6.0.2%22). Downloads are available on: - [npm](https://www.npmjs.com/package/typescript) </details> <details> <summary>emilkowalski/vaul (vaul)</summary> ### [`v1.1.2`](https://github.com/emilkowalski/vaul/releases/tag/v1.1.2) [Compare Source](https://github.com/emilkowalski/vaul/compare/v1.1.1...v1.1.2) #### What's Changed - fix: update peer deps for react and react-dom by [@&#8203;shadcn](https://github.com/shadcn) in [#&#8203;504](https://github.com/emilkowalski/vaul/pull/504) - fix: nested drawer onOpenChange issue by [@&#8203;chrism](https://github.com/chrism) in [#&#8203;516](https://github.com/emilkowalski/vaul/pull/516) #### New Contributors - [@&#8203;chrism](https://github.com/chrism) made their first contribution in [#&#8203;516](https://github.com/emilkowalski/vaul/pull/516) **Full Changelog**: <https://github.com/emilkowalski/vaul/compare/v1.1.1...v1.1.2> ### [`v1.1.1`](https://github.com/emilkowalski/vaul/releases/tag/v1.1.1) [Compare Source](https://github.com/emilkowalski/vaul/compare/v1.1.0...v1.1.1) #### What's Changed - feat: add React 19 to peer deps by [@&#8203;shadcn](https://github.com/shadcn) in [#&#8203;498](https://github.com/emilkowalski/vaul/pull/498) - fix: initial nested transform by [@&#8203;jeremiasjutz](https://github.com/jeremiasjutz) in [#&#8203;491](https://github.com/emilkowalski/vaul/pull/491) #### New Contributors - [@&#8203;shadcn](https://github.com/shadcn) made their first contribution in [#&#8203;498](https://github.com/emilkowalski/vaul/pull/498) - [@&#8203;jeremiasjutz](https://github.com/jeremiasjutz) made their first contribution in [#&#8203;491](https://github.com/emilkowalski/vaul/pull/491) **Full Changelog**: <https://github.com/emilkowalski/vaul/compare/v1.1.0...v1.1.1> ### [`v1.1.0`](https://github.com/emilkowalski/vaul/releases/tag/v1.1.0) [Compare Source](https://github.com/emilkowalski/vaul/compare/v1.0.0...v1.1.0) #### What's Changed - fix: Fix non-modal drawers without overlay to properly set body pointer events by [@&#8203;KajSzy](https://github.com/KajSzy) in [#&#8203;460](https://github.com/emilkowalski/vaul/pull/460) - fix: restore position settings on drawer unmount by [@&#8203;maiconcarraro](https://github.com/maiconcarraro) in [#&#8203;462](https://github.com/emilkowalski/vaul/pull/462) - fix(docs): readme jsx tag by [@&#8203;Innei](https://github.com/Innei) in [#&#8203;474](https://github.com/emilkowalski/vaul/pull/474) - fix: typescript strict on to prevent null calls by [@&#8203;maiconcarraro](https://github.com/maiconcarraro) in [#&#8203;477](https://github.com/emilkowalski/vaul/pull/477) - Fix: Ensure drawer opens at the specified active snap point on initial render by [@&#8203;KhalafAbdi](https://github.com/KhalafAbdi) in [#&#8203;473](https://github.com/emilkowalski/vaul/pull/473) - fix: long press by [@&#8203;emilkowalski](https://github.com/emilkowalski) in [#&#8203;485](https://github.com/emilkowalski/vaul/pull/485) - feat: add initial transform css variable by [@&#8203;emilkowalski](https://github.com/emilkowalski) in [#&#8203;486](https://github.com/emilkowalski/vaul/pull/486) - fix: don't animate initially if defaultOpen is set to true by [@&#8203;emilkowalski](https://github.com/emilkowalski) in [#&#8203;488](https://github.com/emilkowalski/vaul/pull/488) - fix: mobile firefox inputs by [@&#8203;emilkowalski](https://github.com/emilkowalski) in [#&#8203;489](https://github.com/emilkowalski/vaul/pull/489) #### New Contributors - [@&#8203;maiconcarraro](https://github.com/maiconcarraro) made their first contribution in [#&#8203;462](https://github.com/emilkowalski/vaul/pull/462) - [@&#8203;KhalafAbdi](https://github.com/KhalafAbdi) made their first contribution in [#&#8203;473](https://github.com/emilkowalski/vaul/pull/473) **Full Changelog**: <https://github.com/emilkowalski/vaul/compare/v1.0.0...v1.1.0> ### [`v1.0.0`](https://github.com/emilkowalski/vaul/releases/tag/v1.0.0) [Compare Source](https://github.com/emilkowalski/vaul/compare/a60e76abeefd58232dd46b470736f0d6371dc583...v1.0.0) ### New Docs <https://vaul.emilkowal.ski/getting-started> #### What's Changed - fix: undefined window by [@&#8203;emilkowalski](https://github.com/emilkowalski) in [#&#8203;452](https://github.com/emilkowalski/vaul/pull/452) - fix: prevent undefined window by [@&#8203;emilkowalski](https://github.com/emilkowalski) in [#&#8203;453](https://github.com/emilkowalski/vaul/pull/453) - feat: documentation by [@&#8203;emilkowalski](https://github.com/emilkowalski) in [#&#8203;454](https://github.com/emilkowalski/vaul/pull/454) - feat: Add JSDocs by [@&#8203;KajSzy](https://github.com/KajSzy) in [#&#8203;459](https://github.com/emilkowalski/vaul/pull/459) **Full Changelog**: <https://github.com/emilkowalski/vaul/compare/v0.9.7...v1.0.0> </details> <details> <summary>colinhacks/zod (zod)</summary> ### [`v4.3.6`](https://github.com/colinhacks/zod/releases/tag/v4.3.6) [Compare Source](https://github.com/colinhacks/zod/compare/v4.3.5...v4.3.6) #### Commits: - [`9977fb0`](https://github.com/colinhacks/zod/commit/9977fb0868432461de265a773319e80a90ba3e37) Add brand.dev to sponsors - [`f4b7bae`](https://github.com/colinhacks/zod/commit/f4b7bae3468f6188b8f004e007d722148fc91d77) Update pullfrog.yml ([#&#8203;5634](https://github.com/colinhacks/zod/issues/5634)) - [`251d716`](https://github.com/colinhacks/zod/commit/251d7163a0ac7740fee741428d913e3c55702ace) Clean up workflow\_call - [`edd4132`](https://github.com/colinhacks/zod/commit/edd4132466da0f5065a8e051b599d01fdd1081d8) fix: add missing User-agent to robots.txt and allow all ([#&#8203;5646](https://github.com/colinhacks/zod/issues/5646)) - [`85db85e`](https://github.com/colinhacks/zod/commit/85db85e9091d0706910d60c7eb2e9c181edd87bd) fix: typo in codec.test.ts file ([#&#8203;5628](https://github.com/colinhacks/zod/issues/5628)) - [`cbf77bb`](https://github.com/colinhacks/zod/commit/cbf77bb12bdfda2e054818e79001f5cb3798ce76) Avoid non null assertion ([#&#8203;5638](https://github.com/colinhacks/zod/issues/5638)) - [`dfbbf1c`](https://github.com/colinhacks/zod/commit/dfbbf1c1ae0c224b8131d80ddf0a264262144086) Avoid re-exported star modules ([#&#8203;5656](https://github.com/colinhacks/zod/issues/5656)) - [`762e911`](https://github.com/colinhacks/zod/commit/762e911e5773f949452fd6dd4e360f2362110e8e) Generalize numeric key handling - [`ca3c862`](https://github.com/colinhacks/zod/commit/ca3c8629c0c2715571f70b44c2433cad3db7fe4e) v4.3.6 ### [`v4.3.5`](https://github.com/colinhacks/zod/releases/tag/v4.3.5) [Compare Source](https://github.com/colinhacks/zod/compare/v4.3.4...v4.3.5) #### Commits: - [`21afffd`](https://github.com/colinhacks/zod/commit/21afffdb42ccab554036312e33fed0ea3cb8f982) \[Docs] Update migration guide docs for deprecation of message ([#&#8203;5595](https://github.com/colinhacks/zod/issues/5595)) - [`e36743e`](https://github.com/colinhacks/zod/commit/e36743e513aadb307b29949a80d6eb0dcc8fc278) Improve mini treeshaking - [`0cdc0b8`](https://github.com/colinhacks/zod/commit/0cdc0b8597999fd9ca99767b912c1e82c1ff2d6c) 4.3.5 ### [`v4.3.4`](https://github.com/colinhacks/zod/releases/tag/v4.3.4) [Compare Source](https://github.com/colinhacks/zod/compare/v4.3.3...v4.3.4) #### Commits: - [`1a8bea3`](https://github.com/colinhacks/zod/commit/1a8bea3b474eada6f219c163d0d3ad09fadabe72) Add integration tests - [`e01cd02`](https://github.com/colinhacks/zod/commit/e01cd02b2f23d7e9078d3813830b146f8a2258b4) Support patternProperties for looserecord ([#&#8203;5592](https://github.com/colinhacks/zod/issues/5592)) - [`089e5fb`](https://github.com/colinhacks/zod/commit/089e5fbb0f58ce96d2c4fb34cd91724c78df4af5) Improve looseRecord docs - [`decef9c`](https://github.com/colinhacks/zod/commit/decef9c418d9a598c3f1bada06891ba5d922c5cd) Fix lint - [`9443aab`](https://github.com/colinhacks/zod/commit/9443aab00d44d5d5f4a7eada65fc0fc851781042) Drop iso time in fromJSONSchema - [`66bda74`](https://github.com/colinhacks/zod/commit/66bda7491a1b9eab83bdeec0c12f4efc7290bd48) Remove .refine() from ZodMiniType - [`b4ab94c`](https://github.com/colinhacks/zod/commit/b4ab94ca608cd5b581bfc12b20dd8d95b35b3009) 4.3.4 ### [`v4.3.3`](https://github.com/colinhacks/zod/releases/tag/v4.3.3) [Compare Source](https://github.com/colinhacks/zod/compare/v4.3.2...v4.3.3) #### Commits: - [`f3b2151`](https://github.com/colinhacks/zod/commit/f3b2151959d215d405f54dff3c7ab3bf1fd887ca) v4.3.3 ### [`v4.3.2`](https://github.com/colinhacks/zod/releases/tag/v4.3.2) [Compare Source](https://github.com/colinhacks/zod/compare/v4.3.1...v4.3.2) #### Commits: - [`bf96635`](https://github.com/colinhacks/zod/commit/bf96635d243118de6e4f260077aa137453790bf6) Loosen strictObjectinside intersection ([#&#8203;5587](https://github.com/colinhacks/zod/issues/5587)) - [`f71dc01`](https://github.com/colinhacks/zod/commit/f71dc0182ab0f0f9a6be6295b07faca269e10179) Remove Juno ([#&#8203;5590](https://github.com/colinhacks/zod/issues/5590)) - [`0f41e5a`](https://github.com/colinhacks/zod/commit/0f41e5a12a43e6913c9dcb501b2b5136ea86500d) 4.3.2 ### [`v4.3.1`](https://github.com/colinhacks/zod/releases/tag/v4.3.1) [Compare Source](https://github.com/colinhacks/zod/compare/v4.3.0...v4.3.1) #### Commits: - [`0fe8840`](https://github.com/colinhacks/zod/commit/0fe88407a4149c907929b757dc6618d8afe998fc) allow non-overwriting extends with refinements. 4.3.1 ### [`v4.3.0`](https://github.com/colinhacks/zod/releases/tag/v4.3.0) [Compare Source](https://github.com/colinhacks/zod/compare/v4.2.1...v4.3.0) This is Zod's biggest release since 4.0. It addresses several of Zod's longest-standing feature requests. #### `z.fromJSONSchema()` Convert JSON Schema to Zod ([#&#8203;5534](https://github.com/colinhacks/zod/pull/5534), [#&#8203;5586](https://github.com/colinhacks/zod/pull/5586)) You can now convert JSON Schema definitions directly into Zod schemas. This function supports JSON Schema `"draft-2020-12"`, `"draft-7"`, `"draft-4"`, and OpenAPI 3.0. ```typescript import * as z from "zod"; const schema = z.fromJSONSchema({ type: "object", properties: { name: { type: "string", minLength: 1 }, age: { type: "integer", minimum: 0 }, }, required: ["name"], }); schema.parse({ name: "Alice", age: 30 }); // ✅ ``` The API should be considered experimental. There are no guarantees of 1:1 "round-trip soundness": `MySchema` > `z.toJSONSchema()` > `z.fromJSONSchema()`. There are several features of Zod that don't exist in JSON Schema and vice versa, which makes this virtually impossible. Features supported: - All primitive types (`string`, `number`, `integer`, `boolean`, `null`, `object`, `array`) - String formats (`email`, `uri`, `uuid`, `date-time`, `date`, `time`, `ipv4`, `ipv6`, and more) - Composition (`anyOf`, `oneOf`, `allOf`) - Object constraints (`additionalProperties`, `patternProperties`, `propertyNames`) - Array constraints (`prefixItems`, `items`, `minItems`, `maxItems`) - `$ref` for local references and circular schemas - Custom metadata is preserved #### `z.xor()` — exclusive union ([#&#8203;5534](https://github.com/colinhacks/zod/pull/5534)) A new exclusive union type that requires **exactly one** option to match. Unlike `z.union()` which passes if *any* option matches, `z.xor()` fails if zero or more than one option matches. ```typescript const schema = z.xor([z.string(), z.number()]); schema.parse("hello"); // ✅ schema.parse(42); // ✅ schema.parse(true); // ❌ zero matches ``` When converted to JSON Schema, `z.xor()` produces `oneOf` instead of `anyOf`. #### `z.looseRecord()` — partial record validation ([#&#8203;5534](https://github.com/colinhacks/zod/pull/5534)) A new record variant that only validates keys matching the key schema, passing through non-matching keys unchanged. This is used to represent `patternProperties` in JSON Schema. ```typescript const schema = z.looseRecord(z.string().regex(/^S_/), z.string()); schema.parse({ S_name: "John", other: 123 }); // ✅ { S_name: "John", other: 123 } // only S_name is validated, "other" passes through ``` #### `.exactOptional()` — strict optional properties ([#&#8203;5589](https://github.com/colinhacks/zod/pull/5589)) A new wrapper that makes a property *key-optional* (can be omitted) but does **not** accept `undefined` as an explicit value. ```typescript const schema = z.object({ a: z.string().optional(), // accepts `undefined` b: z.string().exactOptional(), // does not accept `undefined` }); schema.parse({}); // ✅ schema.parse({ a: undefined }); // ✅ schema.parse({ b: undefined }); // ❌ ``` This makes it possible to accurately represent the full spectrum of optionality expressible using [`exactOptionalPropertyTypes`](https://www.typescriptlang.org/tsconfig/exactOptionalPropertyTypes.html). #### `.apply()` A utility method for applying arbitrary transformations to a schema, enabling cleaner schema composition. ([#&#8203;5463](https://github.com/colinhacks/zod/pull/5463)) ```typescript const setCommonChecks = <T extends z.ZodNumber>(schema: T) => { return schema.min(0).max(100); }; const schema = z.number().apply(setCommonChecks).nullable(); ``` #### `.brand()` cardinality The `.brand()` method now accepts a second argument to control whether the brand applies to input, output, or both. Closes [#&#8203;4764](https://github.com/colinhacks/zod/issues/4764), [#&#8203;4836](https://github.com/colinhacks/zod/issues/4836). ```typescript // output only (default) z.string().brand<"UserId">(); // output is branded (default) z.string().brand<"UserId", "out">(); // output is branded z.string().brand<"UserId", "in">(); // input is branded z.string().brand<"UserId", "inout">(); // both are branded ``` #### Type predicates on `.refine()` ([#&#8203;5575](https://github.com/colinhacks/zod/pull/5575)) The `.refine()` method now supports type predicates to narrow the output type: ```typescript const schema = z.string().refine((s): s is "a" => s === "a"); type Input = z.input<typeof schema>; // string type Output = z.output<typeof schema>; // "a" ``` #### `ZodMap` methods: `min`, `max`, `nonempty`, `size` ([#&#8203;5316](https://github.com/colinhacks/zod/pull/5316)) `ZodMap` now has parity with `ZodSet` and `ZodArray`: ```typescript const schema = z.map(z.string(), z.number()) .min(1) .max(10) .nonempty(); schema.size; // access the size constraint ``` #### `.with()` alias for `.check()` ([359c0db](https://github.com/colinhacks/zod/commit/359c0db6)) A new `.with()` method has been added as a more readable alias for `.check()`. Over time, more APIs have been added that don't qualify as "checks". The new method provides a readable alternative that doesn't muddy semantics. ```typescript z.string().with( z.minLength(5), z.toLowerCase() ); // equivalent to: z.string().check( z.minLength(5), z.trim(), z.toLowerCase() ); ``` #### `z.slugify()` transform Transform strings into URL-friendly slugs. Works great with `.with()`: ```typescript // Zod z.string().slugify().parse("Hello World"); // "hello-world" // Zod Mini // using .with() for explicit check composition z.string().with(z.slugify()).parse("Hello World"); // "hello-world" ``` #### `z.meta()` and `z.describe()` in Zod Mini ([947b4eb](https://github.com/colinhacks/zod/commit/947b4eb2)) Zod Mini now exports `z.meta()` and `z.describe()` as top-level functions for adding metadata to schemas: ```typescript import * as z from "zod/mini"; // add description const schema = z.string().with( z.describe("A user's name"), ); // add arbitrary metadata const schema2 = z.number().with( z.meta({ deprecated: true }) ); ``` #### More ergonomic intersections [#&#8203;5587](https://github.com/colinhacks/zod/pull/5587) When intersecting schemas that include `z.strictObject()`, Zod 4 now only rejects keys that are unrecognized by *both* sides of the intersection. Previously, any unrecognized key from either side would cause an error. This means keys that are recognized by at least one side of the intersection will now pass validation: ```ts const A = z.strictObject({ a: z.string() }); const B = z.object({ b: z.string() }); const C = z.intersection(A, B); // Keys recognized by either side now work C.parse({ a: "foo", b: "bar" }); // ✅ { a: "foo", b: "bar" } // Extra keys are stripped (follows strip behavior from B) C.parse({ a: "foo", b: "bar", c: "extra" }); // ✅ { a: "foo", b: "bar" } ``` When both sides are strict, only keys unrecognized by *both* sides will error: ```ts const A = z.strictObject({ a: z.string() }); const B = z.strictObject({ b: z.string() }); const C = z.intersection(A, B); // Keys recognized by either side work C.parse({ a: "foo", b: "bar" }); // ✅ // Keys unrecognized by BOTH sides error C.parse({ a: "foo", b: "bar", c: "extra" }); // ❌ ZodError: Unrecognized key: "c" ``` #### New locales - Armenian (`am`) ([#&#8203;5531](https://github.com/colinhacks/zod/pull/5531)) - Uzbek (`uz`) ([#&#8203;5519](https://github.com/colinhacks/zod/pull/5519)) ```ts import * as z from "zod"; import { uz } from "zod/locales"; z.config(uz()); ``` <br/><br/><br/> #### Bug fixes All of these changes fix soundness issues in Zod. As with any bug fix there's some chance of breakage if you were intentionally or unintentionally relying on this unsound behavior. ##### ⚠️ `.pick()` and `.omit()` disallowed on object schemas containing refinements ([#&#8203;5317](https://github.com/colinhacks/zod/pull/5317)) Using `.pick()` or `.omit()` on object schemas with refinements now throws an error. Previously, this would silently drop the refinements, leading to unexpected behavior. ```typescript const schema = z.object({ password: z.string(), confirmPassword: z.string(), }).refine(data => data.password === data.confirmPassword); schema.pick({ password: true }); // 4.2: refinement silently dropped ⚠️ // 4.3: throws error ❌ ``` **Migration**: The easiest way to migrate is to create a new schema using the `shape` of the old one. ```ts const newSchema = z.object(schema.shape).pick({ ... }) ``` ##### ⚠️ overwriting properties with`.extend()` disallowed on object schemas with refinements ([#&#8203;5317](https://github.com/colinhacks/zod/pull/5317)) Similarly, `.extend()` will throws on schemas with refinements *if* you are overwriting existing properties. ```typescript const schema = z.object({ a: z.string() }).refine(/* ... */); schema.extend({ a: z.number() }); // 4.3: throws error ❌ ``` Instead you can use `.safeExtend()`, which statically ensures that you aren't changing the type signature of any pre-existing properties. ```typescript const schema = z.object({ a: z.string(), }).refine(/* ... */); schema.safeExtend({ a: z.string().min(5).max(10) }); // ✅ allows overwrite, preserves refinement ``` ##### ⚠️ Stricter object masking methods ([#&#8203;5581](https://github.com/colinhacks/zod/pull/5581)) Object masking methods (`.pick()`, `.omit()`) now validate that the keys provided actually exist in the schema: ```typescript const schema = z.object({ a: z.string() }); // 4.3: throws error for unrecognized keys schema.pick({ nonexistent: true }); // error: unrecognized key: "nonexistent" ``` <br/><br/><br/> #### Additional changes - Fixed JSON Schema generation for `z.iso.time` with minute precision ([#&#8203;5557](https://github.com/colinhacks/zod/pull/5557)) - Fixed error details for tuples with extraneous elements ([#&#8203;5555](https://github.com/colinhacks/zod/pull/5555)) - Fixed `includes` method params typing to accept `string | $ZodCheckIncludesParams` ([#&#8203;5556](https://github.com/colinhacks/zod/pull/5556)) - Fixed numeric formats error messages to be inclusive ([#&#8203;5485](https://github.com/colinhacks/zod/pull/5485)) - Fixed `implementAsync` inferred type to always be a promise ([#&#8203;5476](https://github.com/colinhacks/zod/pull/5476)) - Tightened E.164 regex to require a non-zero leading digit and 7–15 digits total ([#&#8203;5524](https://github.com/colinhacks/zod/pull/5524)) - Fixed Dutch (nl) error strings ([#&#8203;5529](https://github.com/colinhacks/zod/pull/5529)) - Convert `Date` instances to numbers in `minimum`/`maximum` checks ([#&#8203;5351](https://github.com/colinhacks/zod/pull/5351)) - Improved numeric keys handling in `z.record()` ([#&#8203;5585](https://github.com/colinhacks/zod/pull/5585)) - Lazy initialization of `~standard` schema property ([#&#8203;5363](https://github.com/colinhacks/zod/pull/5363)) - Functions marked as `@__NO_SIDE_EFFECTS__` for better tree-shaking ([#&#8203;5475](https://github.com/colinhacks/zod/pull/5475)) - Improved metadata tracking across child-parent relationships ([#&#8203;5578](https://github.com/colinhacks/zod/pull/5578)) - Improved locale translation approach ([#&#8203;5584](https://github.com/colinhacks/zod/pull/5584)) - Dropped id uniqueness enforcement at registry level ([#&#8203;5574](https://github.com/colinhacks/zod/pull/5574)) ### [`v4.2.1`](https://github.com/colinhacks/zod/releases/tag/v4.2.1) [Compare Source](https://github.com/colinhacks/zod/compare/v4.2.0...v4.2.1) #### Commits: - [`5b5b129`](https://github.com/colinhacks/zod/commit/5b5b129315fbc94a3b0d6244185eaeefcbe438d1) 4.2.1 ### [`v4.2.0`](https://github.com/colinhacks/zod/releases/tag/v4.2.0) [Compare Source](https://github.com/colinhacks/zod/compare/v4.1.13...v4.2.0) #### Features ##### Implement Standard JSON Schema [standard-schema/standard-schema#134](https://github.com/standard-schema/standard-schema/pull/134) ##### Implement `z.fromJSONSchema()` ```typescript const jsonSchema = { type: "object", properties: { name: { type: "string" }, age: { type: "number" } }, required: ["name"] }; const schema = z.fromJSONSchema(jsonSchema); ``` ##### Implement `z.xor()` ```typescript const schema = z.xor( z.object({ type: "user", name: z.string() }), z.object({ type: "admin", role: z.string() }) ); // Exactly one of the schemas must match ``` ##### Implement `z.looseRecord()` ```typescript const schema = z.looseRecord(z.string(), z.number()); // Allows additional properties beyond those defined ``` #### Commits: - [`af49c08`](https://github.com/colinhacks/zod/commit/af49c084f66339110d00e37ff71dc7b3b9f2b7ef) Update docs for JSON Schema conversion of `z.undefined()` ([#&#8203;5504](https://github.com/colinhacks/zod/issues/5504)) - [`767f320`](https://github.com/colinhacks/zod/commit/767f320318986e422f524b939f1a7174544fda2e) Add `.toJSONSchema()` method ([#&#8203;5477](https://github.com/colinhacks/zod/issues/5477)) - [`e17dcb6`](https://github.com/colinhacks/zod/commit/e17dcb63573397063e87d7c7fe10a5a78968181a) Add `z.fromJSONSchema()`, `z.looseRecord()`, `z.xor()` ([#&#8203;5534](https://github.com/colinhacks/zod/issues/5534)) ### [`v4.1.13`](https://github.com/colinhacks/zod/releases/tag/v4.1.13) [Compare Source](https://github.com/colinhacks/zod/compare/v4.1.12...v4.1.13) #### Commits: - [`5c2602c`](https://github.com/colinhacks/zod/commit/5c2602ceb8be8941c64bbe5ac7d92cc174ae6f7e) Update AI widget ([#&#8203;5318](https://github.com/colinhacks/zod/issues/5318)) - [`d3da530`](https://github.com/colinhacks/zod/commit/d3da530deb713c853e79405adddf770e156d50ac) reflect the specified regex correctly in error ([#&#8203;5338](https://github.com/colinhacks/zod/issues/5338)) - [`39f8c45`](https://github.com/colinhacks/zod/commit/39f8c45b8a29de2330b485862b83cb35849f4238) faster initialization ([#&#8203;5352](https://github.com/colinhacks/zod/issues/5352)) - [`e9e2790`](https://github.com/colinhacks/zod/commit/e9e27905cc0f37cb079ea473af8359d5e17a57a1) Clean up comment - [`8e4739f`](https://github.com/colinhacks/zod/commit/8e4739fadbd7de710eb67d34ba7e06a1029a68ab) Update inferred z.promise() type - [`2849df8`](https://github.com/colinhacks/zod/commit/2849df8907b011ab056d67ae8e3d27577ac4ed3e) fix(locales): improve Dutch (nl) localization ([#&#8203;5367](https://github.com/colinhacks/zod/issues/5367)) - [`b0d3c9f`](https://github.com/colinhacks/zod/commit/b0d3c9f628b60d358b66acf8f0ef7937fc9e8950) Run tests on windows - [`6fd61b7`](https://github.com/colinhacks/zod/commit/6fd61b71b85e4fef4c168a46c3ebcc574f26255f) feat unitest ([#&#8203;5358](https://github.com/colinhacks/zod/issues/5358)) - [`a4e4bc8`](https://github.com/colinhacks/zod/commit/a4e4bc80e204577c698cf1369dd63c2b986d35f3) Lock to node 24 - [`8de8bad`](https://github.com/colinhacks/zod/commit/8de8bad0fa84194b81efd32474462d7a236a1ee4) Fix windows build - [`b2c186b`](https://github.com/colinhacks/zod/commit/b2c186bbae3a74a12acd385c1ced3ed978235cf8) Use Node LTS - [`b73b1f6`](https://github.com/colinhacks/zod/commit/b73b1f61c798efdf497852872b4c19cd4111c1f3) Consolidate isTransforming logic - [`d85f3ea`](https://github.com/colinhacks/zod/commit/d85f3ea4da53a1b232017dd4e4a2874eca4d8d76) Fix [#&#8203;5353](https://github.com/colinhacks/zod/issues/5353) - [`1bac0f3`](https://github.com/colinhacks/zod/commit/1bac0f37b529eb9a0d833a01200f5a898e8e6220) Fix test.yml - [`86d4dad`](https://github.com/colinhacks/zod/commit/86d4dad5bc27b4b35df533c9170a552ad8c6c3bc) Fix partial record - [`5e6c0fd`](https://github.com/colinhacks/zod/commit/5e6c0fd7471636feffe5763c9b7637879da459fe) Fix attw on windows - [`27fc616`](https://github.com/colinhacks/zod/commit/27fc616b8edb93cc27a4d25b37479d6e418bbccf) Extend test timeout - [`8d336c4`](https://github.com/colinhacks/zod/commit/8d336c4d15e1917d78b67b890f7182f26633b56f) Remove windows runner - [`5be72e0`](https://github.com/colinhacks/zod/commit/5be72e0ef4dceb1387febb7981079ecdeb5e2817) chore(doc): update metadata.tsx ([#&#8203;5331](https://github.com/colinhacks/zod/issues/5331)) - [`cb0272a`](https://github.com/colinhacks/zod/commit/cb0272a0ad9962df95832a78587f54afec685351) docs: add 'cd zod' step to development setup instructions ([#&#8203;5394](https://github.com/colinhacks/zod/issues/5394)) - [`24e3325`](https://github.com/colinhacks/zod/commit/24e3325dc63010e4f74e23caf91199652e8b12a9) docs: replace 'Refinement' with 'Transform' in transforms section ([#&#8203;5397](https://github.com/colinhacks/zod/issues/5397)) - [`644a082`](https://github.com/colinhacks/zod/commit/644a08203ebb00e23484b3f9a986ae783ce26a9a) chore: add resource for validating environment variables with Zod ([#&#8203;5403](https://github.com/colinhacks/zod/issues/5403)) - [`5e1cfcf`](https://github.com/colinhacks/zod/commit/5e1cfcf578a47527044e85455e79c907fd913adc) Change doc for email validation method in Zod schema ([#&#8203;5392](https://github.com/colinhacks/zod/issues/5392)) - [`88cf944`](https://github.com/colinhacks/zod/commit/88cf9441448608d9de24b47b8a4a4ba879fc2433) Fix: Iterate over keys in catchall object using "in" operator. ([#&#8203;5376](https://github.com/colinhacks/zod/issues/5376)) - [`aa43732`](https://github.com/colinhacks/zod/commit/aa437325c5957c0cf57667cd7b8568603ee7ecd3) Emphasise that `enum` validates against values, for object literal & `enum`s ([#&#8203;5386](https://github.com/colinhacks/zod/issues/5386)) - [`3a4bd00`](https://github.com/colinhacks/zod/commit/3a4bd00aaa16276ffeb2708cc083a633bd4dd756) Improve Hebrew localization for Zod error messages ([#&#8203;5409](https://github.com/colinhacks/zod/issues/5409)) - [`c10f9d1`](https://github.com/colinhacks/zod/commit/c10f9d109874aeca6855383616c086b077d39f89) Fix typos ([#&#8203;5420](https://github.com/colinhacks/zod/issues/5420)) - [`86f0ef9`](https://github.com/colinhacks/zod/commit/86f0ef918bb24f4ab9f1ce2afc5cf2d1a4a99473) Documentation Improvements ([#&#8203;5417](https://github.com/colinhacks/zod/issues/5417)) - [`e120a48`](https://github.com/colinhacks/zod/commit/e120a4877f4d8d076abf2db5c5cceab91a046be9) Fix opt tuple - [`f9bbb50`](https://github.com/colinhacks/zod/commit/f9bbb50c48f9c07ca869d28d6a7086d7290b97a3) Improve tuple - [`0ba0f34`](https://github.com/colinhacks/zod/commit/0ba0f348f677688b69ed78473e022f5d225b41fc) Optimize docs caching/ISR ([#&#8203;5433](https://github.com/colinhacks/zod/issues/5433)) - [`c3ec66c`](https://github.com/colinhacks/zod/commit/c3ec66c74b3fbc2616e880a90751c2cad7270bb3) Improve docs caching - [`c8cce4b`](https://github.com/colinhacks/zod/commit/c8cce4b607a7c0ca99cfb454571a3948ee9e85fb) docs: fix typos and links ([#&#8203;5428](https://github.com/colinhacks/zod/issues/5428)) - [`84ec047`](https://github.com/colinhacks/zod/commit/84ec04708525d6e83e3408d5d3a21edde742bdc5) docs(ecosystem): Add react-f3 ([#&#8203;5429](https://github.com/colinhacks/zod/issues/5429)) - [`3396515`](https://github.com/colinhacks/zod/commit/3396515cc6f04f5f346a1e00256ad09998dbaeb3) Docs: Fix typo in safeExtend description ([#&#8203;5445](https://github.com/colinhacks/zod/issues/5445)) - [`3d93a7d`](https://github.com/colinhacks/zod/commit/3d93a7d593c19dc1822bc96a7c9d47312c29995e) feat: MAC address validation in v4 and mini ([#&#8203;5440](https://github.com/colinhacks/zod/issues/5440)) - [`f2f0d17`](https://github.com/colinhacks/zod/commit/f2f0d178e1c526bc00ad0385706efad318bd44b0) Fix dual package hazard for `globalRegistry` ([#&#8203;5452](https://github.com/colinhacks/zod/issues/5452)) - [`9fc493f`](https://github.com/colinhacks/zod/commit/9fc493f86f17a5fc550df78e7e261137885f51ea) fix: use oneOf for discriminated unions in JSON Schema ([#&#8203;5453](https://github.com/colinhacks/zod/issues/5453)) - [`603dbe8`](https://github.com/colinhacks/zod/commit/603dbe8dba6253c702ca8cf10b5299910dba3c88) Clean up regex, drop backreferences - [`ab69b9e`](https://github.com/colinhacks/zod/commit/ab69b9ee813713a111b56a60c2df929eaf5ba426) Update mac addr tests - [`f791052`](https://github.com/colinhacks/zod/commit/f7910528901c05293bad275fffcb54a82e28fcc9) chore: upgrade vitest to v4 ([#&#8203;5028](https://github.com/colinhacks/zod/issues/5028)) - [`f97e80d`](https://github.com/colinhacks/zod/commit/f97e80da9197064937a58167619967bee4ebb638) fix(core): prevent infinite recursion for recursive tuples ([#&#8203;5089](https://github.com/colinhacks/zod/issues/5089)) ([#&#8203;5094](https://github.com/colinhacks/zod/issues/5094)) - [`002e01a`](https://github.com/colinhacks/zod/commit/002e01ad0fcc17b17683adafc80f2a86e8d355a9) fix(record): handle non-function constructor field in isPlainObject ([#&#8203;5098](https://github.com/colinhacks/zod/issues/5098)) - [`6716517`](https://github.com/colinhacks/zod/commit/67165174eb8c7d5c6e76e760830f3109b4fdbd0e) docs(contributing): add instructions on building [@&#8203;zod/docs](https://github.com/zod/docs) ([#&#8203;5114](https://github.com/colinhacks/zod/issues/5114)) - [`8b0603d`](https://github.com/colinhacks/zod/commit/8b0603dde684f1665bb2329111ed187f73ccf0ac) Fix typo in ISO time documentation ([#&#8203;5277](https://github.com/colinhacks/zod/issues/5277)) - [`be85ecc`](https://github.com/colinhacks/zod/commit/be85ecc48a83e7f65ac0458d25f832fb4e28c9e7) docs(codecs): correct `stringToDate` safeDecode methods ([#&#8203;5302](https://github.com/colinhacks/zod/issues/5302)) - [`50bba54`](https://github.com/colinhacks/zod/commit/50bba5462546401939920a6566a81c0d9c8ef7e1) Add zodgres to ecosystem documentation ([#&#8203;5308](https://github.com/colinhacks/zod/issues/5308)) - [`377f5d1`](https://github.com/colinhacks/zod/commit/377f5d1eb05bfa2631ac1f020d118f5d3ca99c94) Add `zod-to-mongo-schema` to ecosystem documentation ([#&#8203;5457](https://github.com/colinhacks/zod/issues/5457)) - [`dea32d5`](https://github.com/colinhacks/zod/commit/dea32d52a5745eb6ed9aee2ecab4b01f4ccd0313) docs(ecosystem): add fn sphere and zod-compare ([#&#8203;5326](https://github.com/colinhacks/zod/issues/5326)) - [`02ea4c8`](https://github.com/colinhacks/zod/commit/02ea4c82ff3e71f39deaa14159f7ce486b337aa0) Add Claude Code GitHub Workflow ([#&#8203;5460](https://github.com/colinhacks/zod/issues/5460)) - [`d44253d`](https://github.com/colinhacks/zod/commit/d44253d6498564ecd24a6248ddca4e9bf4e43058) Add support for number literal and TypeScript's enum keys in `z.record` ([#&#8203;5334](https://github.com/colinhacks/zod/issues/5334)) - [`f52344e`](https://github.com/colinhacks/zod/commit/f52344e76bed0e69175ca8893c84736cf97b5d11) Fix vitest 4 - [`0f4ce73`](https://github.com/colinhacks/zod/commit/0f4ce73ad0c5610c3c53857d05ebae619d229aa3) Do not allow unsound pick/omit - [`162fe29`](https://github.com/colinhacks/zod/commit/162fe298f0ec76d7f7883afbebdd732eb3c60773) Add z.meta and z.describe - [`3de39ee`](https://github.com/colinhacks/zod/commit/3de39eea6f7ed286ae182093d0c91f3a6fdcca06) Implement slugify - [`5bfc8f2`](https://github.com/colinhacks/zod/commit/5bfc8f269a81d9edc283e7920868161e4129fb23) Fix docs - [`0e803a2`](https://github.com/colinhacks/zod/commit/0e803a29344a2f0ee637940cca96be3e6978b22e) Revert "Do not allow unsound pick/omit" - [`a774750`](https://github.com/colinhacks/zod/commit/a774750d113982da28a2768b0a7c2de1f20c04e8) v4.1.13 - [`2cdd82b`](https://github.com/colinhacks/zod/commit/2cdd82b663706fdf642d7f030841a5b278f9173c) 4.1.13 - [`4063e80`](https://github.com/colinhacks/zod/commit/4063e802d539d04182fc3e66a543ae6d1ba5658e) Update check-semver script ### [`v4.1.12`](https://github.com/colinhacks/zod/releases/tag/v4.1.12) [Compare Source](https://github.com/colinhacks/zod/compare/v4.1.11...v4.1.12) #### Commits: - [`0b109c3`](https://github.com/colinhacks/zod/commit/0b109c37c6b0b10e3901b56bcccb72e29a0b846f) docs(ecosystem): add bupkis to the ecosystem section ([#&#8203;5237](https://github.com/colinhacks/zod/issues/5237)) - [`d22ec0d`](https://github.com/colinhacks/zod/commit/d22ec0d26fab27151b0f1d1f98bffeaf8b011f57) docs(ecosystem): add upfetch ([#&#8203;5238](https://github.com/colinhacks/zod/issues/5238)) - [`c56a4f6`](https://github.com/colinhacks/zod/commit/c56a4f6fab42c542b191228af61974b2328dc52f) docs(ecosystem): add `eslint-plugin-zod-x` ([#&#8203;5261](https://github.com/colinhacks/zod/issues/5261)) - [`a0abcc0`](https://github.com/colinhacks/zod/commit/a0abcc02900a4293dd4f30cd81580efcdd5230bb) docs(metadata.mdx): fix a mistake in an example output ([#&#8203;5248](https://github.com/colinhacks/zod/issues/5248)) - [`62bf4e4`](https://github.com/colinhacks/zod/commit/62bf4e439e287e55c843245b49f8d34b1ad024ee) fix(ZodError): prevent flatten() from crashing on 'toString' key ([#&#8203;5266](https://github.com/colinhacks/zod/issues/5266)) - [`02a5840`](https://github.com/colinhacks/zod/commit/02a584010ac92ac8a351632ae5aea3983a6f17d8) refac(errors): Unify code structure and improve types ([#&#8203;5278](https://github.com/colinhacks/zod/issues/5278)) - [`4b1922a`](https://github.com/colinhacks/zod/commit/4b1922ad714e12dafaa83a40ec03275a39ac980c) docs(content/v4/index): fix zod version ([#&#8203;5289](https://github.com/colinhacks/zod/issues/5289)) - [`3fcb20f`](https://github.com/colinhacks/zod/commit/3fcb20ff348e49aec70f45e0dca3de8a61450e77) Add frrm to ecosystem ([#&#8203;5292](https://github.com/colinhacks/zod/issues/5292)) - [`fda4c7c`](https://github.com/colinhacks/zod/commit/fda4c7c2afbd7649261be1e7954f8c4d4de24a07) Make docs work without token - [`af44738`](https://github.com/colinhacks/zod/commit/af447384379faef28aa857fb53ef1da702c6d408) Fix lint - [`77c3c9f`](https://github.com/colinhacks/zod/commit/77c3c9f069a4cf168c0cbc58432803de887a6b1b) Export bg.ts - [`3b94610`](https://github.com/colinhacks/zod/commit/3b946107b6c94b2ac8ff9fb451160c34dc4dd794) v4.1.12 ### [`v4.1.11`](https://github.com/colinhacks/zod/releases/tag/v4.1.11) [Compare Source](https://github.com/colinhacks/zod/compare/v4.1.10...v4.1.11) #### Commits: - [`2bed4b3`](https://github.com/colinhacks/zod/commit/2bed4b39760d8e4d678203b5c8fcaf24c182fc9f) 4.1.11 ### [`v4.1.10`](https://github.com/colinhacks/zod/releases/tag/v4.1.10) [Compare Source](https://github.com/colinhacks/zod/compare/v4.1.9...v4.1.10) #### Commits: - [`7ffedd0`](https://github.com/colinhacks/zod/commit/7ffedd00169d8dc2e7cb7c6d878f29b03e05b3a3) Fix shape caching ([#&#8203;5263](https://github.com/colinhacks/zod/issues/5263)) - [`82cd717`](https://github.com/colinhacks/zod/commit/82cd717a0e7ee4e1737a783c7be278fa93fd8104) v4.1.10 ### [`v4.1.9`](https://github.com/colinhacks/zod/releases/tag/v4.1.9) [Compare Source](https://github.com/colinhacks/zod/compare/v4.1.8...v4.1.9) #### Commits: - [`a78716d`](https://github.com/colinhacks/zod/commit/a78716d91da7649a61016b81c27f49fd9e79a81e) Update zshy ([#&#8203;5249](https://github.com/colinhacks/zod/issues/5249)) - [`923af80`](https://github.com/colinhacks/zod/commit/923af801fde9f033cfd7e0e753b421a554fe3be8) Publish zod\@&#8203;4.1.9 ### [`v4.1.8`](https://github.com/colinhacks/zod/releases/tag/v4.1.8) [Compare Source](https://github.com/colinhacks/zod/compare/v4.1.7...v4.1.8) #### Commits: - [`36c4ee3`](https://github.com/colinhacks/zod/commit/36c4ee354d0c1f47b7311e49f6dd4b7a11de04f5) Switch back to weakmap - [`a1726d5`](https://github.com/colinhacks/zod/commit/a1726d53172ba52ecf90999df73778cf416264fd) 4.1.8 ### [`v4.1.7`](https://github.com/colinhacks/zod/releases/tag/v4.1.7) [Compare Source](https://github.com/colinhacks/zod/compare/976b43657d4aff6d47c73c1c86125623ea08752d...v4.1.7) #### Commits: - [`0cca351`](https://github.com/colinhacks/zod/commit/0cca351c8b152d7c4113ab7c2a44675efb060677) Fix variable name inconsistency in coercion documentation ([#&#8203;5188](https://github.com/colinhacks/zod/issues/5188)) - [`aa78c27`](https://github.com/colinhacks/zod/commit/aa78c270f1b43f4665339f4b61e7cb88037b8c84) Add copy/edit buttons - [`76452d4`](https://github.com/colinhacks/zod/commit/76452d4119d800a722b692755c1168627bc95f0f) Update button txt - [`937f73c`](https://github.com/colinhacks/zod/commit/937f73c90cac90bd3b99b12c792c289b50416510) Fix tsconfig issue in bench - [`976b436`](https://github.com/colinhacks/zod/commit/976b43657d4aff6d47c73c1c86125623ea08752d) v4.1.6 ([#&#8203;5222](https://github.com/colinhacks/zod/issues/5222)) - [`4309c61`](https://github.com/colinhacks/zod/commit/4309c61304daf40aab2124b5f513abe2b4df8637) Fix cidrv6 validation - cidrv6 should reject invalid strings with multiple slashes ([#&#8203;5196](https://github.com/colinhacks/zod/issues/5196)) - [`ef95a73`](https://github.com/colinhacks/zod/commit/ef95a73b6d33299743e5ff4f0645b98c1b0d6f72) feat(locales): Add Lithuanian (lt) locale ([#&#8203;5210](https://github.com/colinhacks/zod/issues/5210)) - [`3803f3f`](https://github.com/colinhacks/zod/commit/3803f3f37168212f2178e8b8deceb7bad78ed904) docs: update wrong contents in codeblocks in `api.mdx` ([#&#8203;5209](https://github.com/colinhacks/zod/issues/5209)) - [`8a47d5c`](https://github.com/colinhacks/zod/commit/8a47d5c6ba8e4fe2f934a8e55d0cba4d81d821de) docs: update coerce example in `api.mdx` ([#&#8203;5207](https://github.com/colinhacks/zod/issues/5207)) - [`e87db13`](https://github.com/colinhacks/zod/commit/e87db1322f11ff6907e1789da28933d258ab75fd) feat(locales): Add Georgian (ka) locale ([#&#8203;5203](https://github.com/colinhacks/zod/issues/5203)) - [`c54b123`](https://github.com/colinhacks/zod/commit/c54b123e399a6ab266504eb1389c724af31d5998) docs: adds `@traversable/zod` and `@traversable/zod-test` to v4 ecosystem ([#&#8203;5194](https://github.com/colinhacks/zod/issues/5194)) - [`c27a294`](https://github.com/colinhacks/zod/commit/c27a294f5b792f47b8e9dbb293a8ff8cfb287a3a) Fix two tiny grammatical errors in the docs. ([#&#8203;5193](https://github.com/colinhacks/zod/issues/5193)) - [`23a2d66`](https://github.com/colinhacks/zod/commit/23a2d6692398e3dd1ad1cdb0491b271a9f989380) docs: fix broken links in async refinements and transforms references ([#&#8203;5190](https://github.com/colinhacks/zod/issues/5190)) - [`845a230`](https://github.com/colinhacks/zod/commit/845a230bb06bff679b5f00e10153f4dbbd50d2b6) fix(locales): Add type name translations to Spanish locale ([#&#8203;5187](https://github.com/colinhacks/zod/issues/5187)) - [`27f13d6`](https://github.com/colinhacks/zod/commit/27f13d62b98cf5c501b828ba8837ff73cd6263d2) Improve regex precision and eliminate duplicates in regexes.ts ([#&#8203;5181](https://github.com/colinhacks/zod/issues/5181)) - [`a8a52b3`](https://github.com/colinhacks/zod/commit/a8a52b3ba370b761be76953fa3986aa43c4172a4) fix(v4): fix Khmer and Ukrainian locales ([#&#8203;5177](https://github.com/colinhacks/zod/issues/5177)) - [`887e37c`](https://github.com/colinhacks/zod/commit/887e37cd7568219c54f9c2f71bbfe0300ce48376) Update slugs - [`e1f1948`](https://github.com/colinhacks/zod/commit/e1f19482bbed3fbaa563a0d8e09f1a577cc58ac7) fix(v4): ensure array defaults are shallow-cloned ([#&#8203;5173](https://github.com/colinhacks/zod/issues/5173)) - [`9f65038`](https://github.com/colinhacks/zod/commit/9f650385644ae319f806a965b83f79ebd252e497) docs(ecosystem): add DRZL; fix Prisma Zod Generator placement ([#&#8203;5215](https://github.com/colinhacks/zod/issues/5215)) - [`aa6f0f0`](https://github.com/colinhacks/zod/commit/aa6f0f02c2a92a266ff1495a8d2541ae46012fcb) More fixes ([#&#8203;5223](https://github.com/colinhacks/zod/issues/5223)) - [`aab3356`](https://github.com/colinhacks/zod/commit/aab33566bdb44a651cc3e27fde729285e4312419) 4.1.7 ### [`v4.1.6`](https://github.com/colinhacks/zod/compare/v4.1.5...976b43657d4aff6d47c73c1c86125623ea08752d) [Compare Source](https://github.com/colinhacks/zod/compare/v4.1.5...976b43657d4aff6d47c73c1c86125623ea08752d) ### [`v4.1.5`](https://github.com/colinhacks/zod/releases/tag/v4.1.5) [Compare Source](https://github.com/colinhacks/zod/compare/v4.1.4...v4.1.5) #### Commits: - [`530415f`](https://github.com/colinhacks/zod/commit/530415f927a8f7fa474c96b667efdad6e771ce4d) Update docs - [`b7b081d`](https://github.com/colinhacks/zod/commit/b7b081d5cfd6fc19aeb71f9dc1b07bb333c37f9d) Update z.function() type to support array input ([#&#8203;5170](https://github.com/colinhacks/zod/issues/5170)) - [`780cf57`](https://github.com/colinhacks/zod/commit/780cf57167cbf3902efab68f19fa21ca09cb9dd6) 4.1.5 ### [`v4.1.4`](https://github.com/colinhacks/zod/releases/tag/v4.1.4) [Compare Source](https://github.com/colinhacks/zod/compare/v4.1.3...v4.1.4) #### Commits: - [`3291c61`](https://github.com/colinhacks/zod/commit/3291c61fe4bc893901027ea5d50dfc6274e49caa) fix(v4): toJSONSchema - wrong tuple with `null` output when targeting `openapi-3.0` ([#&#8203;5156](https://github.com/colinhacks/zod/issues/5156)) - [`23f41c7`](https://github.com/colinhacks/zod/commit/23f41c7e0af107026bb1732af6b4c368d82be8d2) test(v4): toJSONSchema - use `validateOpenAPI30Schema` in all relevant scenarios ([#&#8203;5163](https://github.com/colinhacks/zod/issues/5163)) - [`0a09fd2`](https://github.com/colinhacks/zod/commit/0a09fd21336202e50565a3e22baaab9a7047fcc9) Update installation instructions - [`4ea5fec`](https://github.com/colinhacks/zod/commit/4ea5fec6988eb7260bc63e0eb8b4a6a0b238c414) 4.1.4 ### [`v4.1.3`](https://github.com/colinhacks/zod/releases/tag/v4.1.3) [Compare Source](https://github.com/colinhacks/zod/compare/v4.1.2...v4.1.3) #### Commits: - [`98ff675`](https://github.com/colinhacks/zod/commit/98ff675c313c15d3fa18b2bd01f844b1e817ee79) Drop stringToBoolean - [`a410616`](https://github.com/colinhacks/zod/commit/a410616b39eedf3b4654c0c791b0ab1868996bfb) Fix typo - [`0cf4589`](https://github.com/colinhacks/zod/commit/0cf45896edf8728b57c8e7f2b5a56536760afac1) fix(v4): toJSONSchema - add missing oneOf inside items in tuple conversion ([#&#8203;5146](https://github.com/colinhacks/zod/issues/5146)) - [`8bf0c16`](https://github.com/colinhacks/zod/commit/8bf0c1639f0d3700f01fa8aaee2d8fa5d0abbe10) fix(v4): toJSONSchema tuple path handling for draft-7 with metadata IDs ([#&#8203;5152](https://github.com/colinhacks/zod/issues/5152)) - [`5c5fa90`](https://github.com/colinhacks/zod/commit/5c5fa90e47df934acf6051a3ec30516baeef2eac) fix(v4): toJSONSchema - wrong record output when targeting `openapi-3.0` ([#&#8203;5141](https://github.com/colinhacks/zod/issues/5141)) - [`87b97cc`](https://github.com/colinhacks/zod/commit/87b97ccd556e6d8dc6b4f4455762cc7405b0abc9) docs(codecs): update example to use payloadSchema ([#&#8203;5150](https://github.com/colinhacks/zod/issues/5150)) - [`309f358`](https://github.com/colinhacks/zod/commit/309f3584fd9a3856c3e0c813196210ba4b11d2a9) fix(v4): toJSONSchema - output numbers with exclusive range correctly when targeting `openapi-3.0` ([#&#8203;5139](https://github.com/colinhacks/zod/issues/5139)) - [`1e71ca9`](https://github.com/colinhacks/zod/commit/1e71ca99b92b94aac8ca45694f28864ae1654135) docs: fix refine fn to encode works properly ([#&#8203;5148](https://github.com/colinhacks/zod/issues/5148)) - [`a85ec3c`](https://github.com/colinhacks/zod/commit/a85ec3c73c6a98a496f5dd3b6fb19ebe07e227f9) fix(docs): correct example to use `LooseDog` instead of `Dog` ([#&#8203;5136](https://github.com/colinhacks/zod/issues/5136)) - [`3e98274`](https://github.com/colinhacks/zod/commit/3e982743f3abba6a421abb899670f70e49284af4) 4.1.3 ### [`v4.1.2`](https://github.com/colinhacks/zod/releases/tag/v4.1.2) [Compare Source](https://github.com/colinhacks/zod/compare/v4.1.1...v4.1.2) #### Commits: - [`e45e61b`](https://github.com/colinhacks/zod/commit/e45e61b675baf055f4a3ef2ddead21715a1e4fe3) Improve codec docs - [`25a4c37`](https://github.com/colinhacks/zod/commit/25a4c376834db90d3bb3e70d4154e3eb6d4feb7a) fix(v4): toJSONSchema - wrong record tuple output when targeting `openapi-3.0` ([#&#8203;5145](https://github.com/colinhacks/zod/issues/5145)) - [`0fa4f46`](https://github.com/colinhacks/zod/commit/0fa4f464e0e679d71b183e8811ef1e4f30aaa06a) Use method form in codecs.mdx - [`940383d`](https://github.com/colinhacks/zod/commit/940383d0523da41c4e2422b76455da39dddd6c4f) Update JSON codec and docs - [`3009fa8`](https://github.com/colinhacks/zod/commit/3009fa8aeb90e00bfc35c7124f3e6f8cad11d290) 4.1.2 ### [`v4.1.1`](https://github.com/colinhacks/zod/releases/tag/v4.1.1) [Compare Source](https://github.com/colinhacks/zod/compare/v4.1.0...v4.1.1) #### Commits: - [`648eb43`](https://github.com/colinhacks/zod/commit/648eb43c23e31f7d69ef09baba46aef4e9493b13) Remove codecs from sidebare - [`7e39a99`](https://github.com/colinhacks/zod/commit/7e39a99a88a9b7f0c9c3d5fd40fbbab494365c9a) Improve codec docs - [`e5085be`](https://github.com/colinhacks/zod/commit/e5085beb2653f1d05a14c07c79b6f3707daf09f6) Add images - [`028b289`](https://github.com/colinhacks/zod/commit/028b289a48f5589dca58b0b813a5a9f9e363a40b) Add methods - [`10cc994`](https://github.com/colinhacks/zod/commit/10cc9941daeb28b6be5be7327e034c3388d8e60b) 4.1.1 ### [`v4.1.0`](https://github.com/colinhacks/zod/releases/tag/v4.1.0) [Compare Source](https://github.com/colinhacks/zod/compare/v4.0.17...v4.1.0) The first minor version since the introduction of Zod 4 back in May. This version contains a number of features that barely missed the cut for the 4.0 release. With Zod 4 stable and widely adopted, there's more time to resume feature development. #### Codecs This is the flagship feature of this release. Codecs are a new API & schema type that encapsulates a *bi-directional transformation*. It's a huge missing piece in Zod that's finally filled, and it unlocks some totally new ways to use Zod. ```ts const stringToDate = z.codec( z.iso.datetime(), // input schema: ISO date string z.date(), // output schema: Date object { decode: (isoString) => new Date(isoString), encode: (date) => date.toISOString(), } ); ``` New top-level functions are added for processing inputs in the *forward* direction ("decoding") and *backward* direction ("encoding"). ```ts stringToDate.decode("2025-08-21T20:59:45.500Z") // => Date stringToDate.encode(new Date()) // => "2025-08-21T20:59:45.500Z" ``` > **Note** — For bundle size reasons, these new methods have not added to Zod Mini schemas. Instead, this functionality is available via equivalent top-level functions. > > ```ts > // equivalent at runtime > z.decode(stringToDate, "2024-01-15T10:30:00.000Z"); > z.encode(stringToDate, new Date()); > ``` ##### `.parse()` vs `.decode()` Both `.parse()` and `decode()` process data in the "forward" direction. They behave identically at runtime. ```ts stringToDate.parse("2025-08-21T20:59:45.500Z"); stringToDate.decode("2025-08-21T20:59:45.500Z"); ``` There is an important difference however. While `.parse()` accepts any input, `.decode()` expects a *strongly typed* input. That is, it expects an input of type `string`, whereas `.parse()` accepts `unknown`. ```ts stringToDate.parse(Symbol('not-a-string')); // => fails at runtime, but no TypeScript error stringToDate.decode(Symbol("not-a-string")); // ^ ❌ Argument of type 'symbol' is not assignable to parameter of type 'Date'. ts(2345) ``` > This is a highly requested feature unto itself: > > - [#&#8203;3860](https://github.com/colinhacks/zod/issues/3860) > - [#&#8203;1748](https://github.com/colinhacks/zod/issues/1748) > - [#&#8203;3978](https://github.com/colinhacks/zod/issues/3978) > - [#&#8203;1892](https://github.com/colinhacks/zod/issues/1892) ##### Encoding You can use any Zod schema with `.encode()`. The vast majority of Zod schemas are *non-transforming* (the input and output types are identical) so `.decode()` and `.encode()` behave identically. Only certain schema types change their behavior: - **Codecs** — runs from `B->A` and executes the `encode` transform during encoding - **Pipes** — these execute `B->A` instead of `A->B` - **Defaults and prefaults** — Only applied in the forward direction - **Catch** — Only applied in the forward direction > **Note** — To avoid increasing bundle size unnecessarily, these new methods are not available on Zod Mini schemas. For those schemas, equivalent top-level functions are provided. The usual *async* and *safe* variants exist as well: ```ts // decode methods stringToDate.decode("2024-01-15T10:30:00.000Z") await stringToDate.decodeAsync("2024-01-15T10:30:00.000Z") stringToDate.safeDecode("2024-01-15T10:30:00.000Z") await stringToDate.safeDecodeAsync("2024-01-15T10:30:00.000Z") // encode methods stringToDate.encode(new Date()) await stringToDate.encodeAsync(new Date()) stringToDate.safeEncode(new Date()) await stringToDate.safeEncodeAsync(new Date()) ``` ##### Example codecs Below are some "worked examples" for some commonly-needed codecs. These examples are all tested internally for correctness. Just copy/paste them into your project as needed. There is a more comprehensive set available at [zod.dev/codecs](https://zod.dev/codecs). ##### `stringToBigInt` Converts `bigint` into a serializable form. ``` const stringToBigInt = z.codec(z.string(), z.bigint(), { decode: (str) => BigInt(str), encode: (bigint) => bigint.toString(), }); stringToBigInt.decode("12345"); // => 12345n stringToBigInt.encode(12345n); // => "12345" ``` ##### `json` Parses/stringifies JSON data. ```ts const jsonCodec = z.codec(z.string(), z.json(), { decode: (jsonString, ctx) => { try { return JSON.parse(jsonString); } catch (err: any) { ctx.issues.push({ code: "invalid_format", format: "json_string", input: jsonString, message: err.message, }); return z.NEVER; } }, encode: (value) => JSON.stringify(value), }); ``` To further validate the data, `.pipe()` the result of this codec into another schema. ```ts const Params = z.object({ name: z.string(), age: z.number() }); const JsonToParams = jsonCodec.pipe(Params); JsonToParams.decode('{"name":"Alice","age":30}'); // => { name: "Alice", age: 30 } JsonToParams.encode({ name: "Bob", age: 25 }); // => '{"name":"Bob","age":25}' ``` ##### Further reading **For more examples and a technical breakdown of how encoding works, reads the[announcement blog post](https://colinhacks.com/essays/introducing-zod-codecs) and [new Codecs docs page](https://zod.dev/codecs)**. The docs page contains implementations for several other commonly-needed codecs: - [`stringToNumber`](https://zod.dev/codecs?id=stringtonumber) - [`stringToInt`](https://zod.dev/codecs?id=stringtoint) - [`stringToBigInt`](https://zod.dev/codecs?id=stringtobigint) - [`numberToBigInt`](https://zod.dev/codecs?id=numbertobigint) - [`isoDatetimeToDate`](https://zod.dev/codecs?id=isodatetimetodate) - [`epochSecondsToDate`](https://zod.dev/codecs?id=epochsecondstodate) - [`epochMillisToDate`](https://zod.dev/codecs?id=epochmillistodate) - [`jsonCodec`](https://zod.dev/codecs?id=jsoncodec) - [`utf8ToBytes`](https://zod.dev/codecs?id=utf8tobytes) - [`bytesToUtf8`](https://zod.dev/codecs?id=bytestoutf8) - [`base64ToBytes`](https://zod.dev/codecs?id=base64tobytes) - [`base64urlToBytes`](https://zod.dev/codecs?id=base64urltobytes) - [`hexToBytes`](https://zod.dev/codecs?id=hextobytes) - [`stringToURL`](https://zod.dev/codecs?id=stringtourl) - [`stringToHttpURL`](https://zod.dev/codecs?id=stringtohttpurl) - [`uriComponent`](https://zod.dev/codecs?id=uricomponent) - [`stringToBoolean`](https://zod.dev/codecs?id=stringtoboolean) #### `.safeExtend()` The existing way to add additional fields to an object is to use `.extend()`. ```ts const A = z.object({ a: z.string() }) const B = A.extend({ b: z.string() }) ``` Unfortunately this is a bit of a misnomer, as it allows you to overwrite existing fields. This means the result of `.extend()` may not literally `extend` the original type (in the TypeScript sense). ```ts const A = z.object({ a: z.string() }) // { a: string } const B = A.extend({ a: z.number() }) // { a: number } ``` To enforce true `extends` logic, Zod 4.1 introduces a new `.safeExtend()` method. This statically enforces that the newly added properties conform to the existing ones. ```ts z.object({ a: z.string() }).safeExtend({ a: z.number().min(5) }); // ✅ z.object({ a: z.string() }).safeExtend({ a: z.any() }); // ✅ z.object({ a: z.string() }).safeExtend({ a: z.number() }); // ^ ❌ ZodNumber is not assignable ``` Importantly, this new API allows you to safely extend objects containing refinements. ```ts const AB = z.object({ a: z.string(), b: z.string() }).refine(val => val.a === val.b); const ABC = AB.safeExtend({ c: z.string() }); // ABC includes the refinements defined on AB ``` Previously (in Zod 4.x) any refinements attached to the base schema were dropped in the extended result. This was too unexpected. It now throws an error. (Zod 3 did not support extension of refined objects either.) #### `z.hash()` A new top-level string format for validating hashes produced using various common algorithms & encodings. ```ts const md5Schema = z.hash("md5"); // => ZodCustomStringFormat<"md5_hex"> const sha256Base64 = z.hash("sha256", { enc: "base64" }); // => ZodCustomStringFormat<"sha256_base64"> ``` The following hash algorithms and encodings are supported. Each cell provides information about the expected number of characters/padding. | Algorithm / Encoding | `"hex"` | `"base64"` | `"base64url"` | | -------------------- | ------- | --------------- | ------------- | | `"md5"` | 32 | 24 (22 + "==") | 22 | | `"sha1"` | 40 | 28 (27 + "=") | 27 | | `"sha256"` | 64 | 44 (43 + "=") | 43 | | `"sha384"` | 96 | 64 (no padding) | 64 | | `"sha512"` | 128 | 88 (86 + "==") | 86 | #### `z.hex()` To validate hexadecimal strings of any length. ```ts const hexSchema = z.hex(); hexSchema.parse("123abc"); // ✅ "123abc" hexSchema.parse("DEADBEEF"); // ✅ "DEADBEEF" hexSchema.parse("xyz"); // ❌ ZodError ``` #### Additional changes 1. **z.uuid()** now supports the "Max UUID" (`FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF`) per the [RFC](https://www.rfc-editor.org/rfc/rfc9562.html) 2. `$ZodFunction` is now a subtype of `$ZodType` *** #### Commits - [`edd4fea`](https://github.com/colinhacks/zod/commit/edd4feaa) - Closes [#&#8203;5127](https://github.com/colinhacks/zod/issues/5127) - [`5d4a315`](https://github.com/colinhacks/zod/commit/5d4a3159) - Closes [#&#8203;5116](https://github.com/colinhacks/zod/issues/5116) - [`f3f0955`](https://github.com/colinhacks/zod/commit/f3f09556) - Closes [#&#8203;5108](https://github.com/colinhacks/zod/issues/5108) - [`0114d5b`](https://github.com/colinhacks/zod/commit/0114d5bd) - [#&#8203;5122](https://github.com/colinhacks/zod/issues/5122) - [`3b077c3`](https://github.com/colinhacks/zod/commit/3b077c3a) - [#&#8203;5121](https://github.com/colinhacks/zod/issues/5121) - [`1e06af8`](https://github.com/colinhacks/zod/commit/1e06af8e) - [#&#8203;5113](https://github.com/colinhacks/zod/issues/5113) - [`b01b6f3`](https://github.com/colinhacks/zod/commit/b01b6f39) — [#&#8203;5052](https://github.com/colinhacks/zod/issues/5052) - [`571ab0c`](https://github.com/colinhacks/zod/commit/571ab0c3) — [#&#8203;5051](https://github.com/colinhacks/zod/issues/5051) - [`d3ea111`](https://github.com/colinhacks/zod/commit/d3ea1119) — [#&#8203;5049](https://github.com/colinhacks/zod/issues/5049) - [`b8e3f87`](https://github.com/colinhacks/zod/commit/b8e3f877) — [#&#8203;4865](https://github.com/colinhacks/zod/issues/4865) ### [`v4.0.17`](https://github.com/colinhacks/zod/releases/tag/v4.0.17) [Compare Source](https://github.com/colinhacks/zod/compare/v4.0.16...v4.0.17) #### Commits: - [`1cebf33`](https://github.com/colinhacks/zod/commit/1cebf336c560c87e6f806b9d02106fb623049f21) Add blog ([#&#8203;5074](https://github.com/colinhacks/zod/issues/5074)) - [`fc1e556`](https://github.com/colinhacks/zod/commit/fc1e556318159b4740ba3d6b37660e783d2a3cb7) Fixes [#&#8203;5073](https://github.com/colinhacks/zod/issues/5073) - [`cc63f95`](https://github.com/colinhacks/zod/commit/cc63f950158db212c5e9b75e7d22faca851ea624) v4.0.17 ### [`v4.0.16`](https://github.com/colinhacks/zod/releases/tag/v4.0.16) [Compare Source](https://github.com/colinhacks/zod/compare/v4.0.15...v4.0.16) #### Commits: - [`d589186`](https://github.com/colinhacks/zod/commit/d589186c20c3dc112f5a5fda23cccd4d1f74420e) fix: ensure keyof returns enum ([#&#8203;5045](https://github.com/colinhacks/zod/issues/5045)) - [`4975f3a`](https://github.com/colinhacks/zod/commit/4975f3a0e9c9f0b241499d936a02f1998c66dc01) feat: add discriminator generic ([#&#8203;5044](https://github.com/colinhacks/zod/issues/5044)) - [`0a463e3`](https://github.com/colinhacks/zod/commit/0a463e38e7f77b8036628ff911de515f9f9f6662) Update speakeasy files - [`12658af`](https://github.com/colinhacks/zod/commit/12658aff60349a87972a782b64802ec901c5ebf2) Fix Edit page buttons - [`47e6604`](https://github.com/colinhacks/zod/commit/47e6604a3555811115d05bf41e50de54192e2e14) fix: `edit this page` button, now redirects to correct url using the new path ([#&#8203;5056](https://github.com/colinhacks/zod/issues/5056)) - [`7207a2d`](https://github.com/colinhacks/zod/commit/7207a2df38caaae910551b7ecf04941b00fc10c8) Update Hey API link to Zod v3 plugin ([#&#8203;5060](https://github.com/colinhacks/zod/issues/5060)) - [`6887ff3`](https://github.com/colinhacks/zod/commit/6887ff34fb9bf5f6769152cf62ba9b69fa378aac) Update Hey API link to Zod plugin ([#&#8203;5059](https://github.com/colinhacks/zod/issues/5059)) - [`ffff1aa`](https://github.com/colinhacks/zod/commit/ffff1aac6a9a88fe6e7ad2659dbc7743275ea052) Clone POJO objects during defaulting/prefaulting - [`a227cb3`](https://github.com/colinhacks/zod/commit/a227cb3bd22aba48412a0129650b86277adc3545) v4.0.16 ### [`v4.0.15`](https://github.com/colinhacks/zod/releases/tag/v4.0.15) [Compare Source](https://github.com/colinhacks/zod/compare/v4.0.14...v4.0.15) #### Commits: - [`7e7e346`](https://github.com/colinhacks/zod/commit/7e7e3461aceecf3633e158df50d6bc852e7cdf45) Clean up docs - [`f2949a8`](https://github.com/colinhacks/zod/commit/f2949a81a06fe197c53e47c1fab024cebbd7f1f1) \[docs] Fix migration guide upgrade command ([#&#8203;5021](https://github.com/colinhacks/zod/issues/5021)) - [`d43cf19`](https://github.com/colinhacks/zod/commit/d43cf19d5cafd505f2f8e76f13e18564470f0696) Fix recursive object initialization errors with check() and other methods ([#&#8203;5018](https://github.com/colinhacks/zod/issues/5018)) - [`3de2b63`](https://github.com/colinhacks/zod/commit/3de2b6389a57a093f11ecf1820f31e5b4452c7e9) fix: remove redundant Required<> from input and output type definitions ([#&#8203;5033](https://github.com/colinhacks/zod/issues/5033)) - [`93553bd`](https://github.com/colinhacks/zod/commit/93553bd48aeac27fdeb7dcbee5b7e37628572aff) Add needs info - [`03cfa8d`](https://github.com/colinhacks/zod/commit/03cfa8d9367c56d8c29870a83af10edc91eba34a) 4.0.15 ### [`v4.0.14`](https://github.com/colinhacks/zod/releases/tag/v4.0.14) [Compare Source](https://github.com/colinhacks/zod/compare/v4.0.13...v4.0.14) #### Commits: - [`99391a8`](https://github.com/colinhacks/zod/commit/99391a844271558e0f1736c9550375e82e630bbd) Docs: Fix typo ([#&#8203;5005](https://github.com/colinhacks/zod/issues/5005)) - [`e25303e`](https://github.com/colinhacks/zod/commit/e25303e98c8d13ea96c3296507c564011f403ffe) Docs: fix typo ([#&#8203;5008](https://github.com/colinhacks/zod/issues/5008)) - [`dbb05ef`](https://github.com/colinhacks/zod/commit/dbb05ef990c86ec6b1f6eac11b91ec7572e29c89) Add JSON Schema draft-04 output ([#&#8203;4811](https://github.com/colinhacks/zod/issues/4811)) - [`b8257d7`](https://github.com/colinhacks/zod/commit/b8257d7d1f51dd3cb4033a58271bb6ac8e3678c7) Improve tuple recursive inference. - [`9bdbc2f`](https://github.com/colinhacks/zod/commit/9bdbc2f10d466050421a8e28c4b95a8a5776d150) Avoid infinite loops in defineLazy. Fixes [#&#8203;4994](https://github.com/colinhacks/zod/issues/4994). - [`af96ad4`](https://github.com/colinhacks/zod/commit/af96ad4700879b0d6e390a0c65ded4e700049cb9) 4.0.14 ### [`v4.0.13`](https://github.com/colinhacks/zod/releases/tag/v4.0.13) [Compare Source](https://github.com/colinhacks/zod/compare/v4.0.12...v4.0.13) #### Commits: - [`362eb33`](https://github.com/colinhacks/zod/commit/362eb33093e9c5f306eeec95e36985a99aba8fc7) Fix optional + pipe handling. Closes [#&#8203;5002](https://github.com/colinhacks/zod/issues/5002). v4.0.13 ### [`v4.0.12`](https://github.com/colinhacks/zod/releases/tag/v4.0.12) [Compare Source](https://github.com/colinhacks/zod/compare/v4.0.11...v4.0.12) #### Commits: - [`ff83fc9`](https://github.com/colinhacks/zod/commit/ff83fc916ec2b35c0008a48782fa14f84293149d) Add eslint-plugin-import-zod ([#&#8203;4848](https://github.com/colinhacks/zod/issues/4848)) - [`7c9ce38`](https://github.com/colinhacks/zod/commit/7c9ce388ae39b2324c5ad05420ecf4732ebca6fe) Update docs for z.property check ([#&#8203;4863](https://github.com/colinhacks/zod/issues/4863)) - [`c432577`](https://github.com/colinhacks/zod/commit/c432577ad1a7201631ae0a4d80e945fc4937bcc9) docs: add jwt schema docs ([#&#8203;4867](https://github.com/colinhacks/zod/issues/4867)) - [`35e6a6f`](https://github.com/colinhacks/zod/commit/35e6a6f6d64d7d5ba58c4cb8c80105759b977c9b) Add llms.txt ([#&#8203;4915](https://github.com/colinhacks/zod/issues/4915)) - [`3ac7bf0`](https://github.com/colinhacks/zod/commit/3ac7bf00d0d924d1afa1031b798bdd72b59117db) Clean up Edit this Page - [`60a9372`](https://github.com/colinhacks/zod/commit/60a9372414955094b84aae2f30b491a039780b7c) Implement `llms-full.txt` ([#&#8203;5004](https://github.com/colinhacks/zod/issues/5004)) - [`73a1970`](https://github.com/colinhacks/zod/commit/73a1970e7fd0cdcb2ffac3f6f7db85da849ee3d8) 4.0.12 ### [`v4.0.11`](https://github.com/colinhacks/zod/releases/tag/v4.0.11) [Compare Source](https://github.com/colinhacks/zod/compare/v4.0.10...v4.0.11) #### Commits: - [`8e6a5f8`](https://github.com/colinhacks/zod/commit/8e6a5f8e48837fb403deb4025935e97a758ad6ca) Fix “Edit on Github” link ([#&#8203;4997](https://github.com/colinhacks/zod/issues/4997)) - [`930a2f6`](https://github.com/colinhacks/zod/commit/930a2f68d799889df4c1f662dfe61934db84fdd1) Fix number of errors in doc ([#&#8203;4993](https://github.com/colinhacks/zod/issues/4993)) - [`c762dbb`](https://github.com/colinhacks/zod/commit/c762dbb4fdb249cfddccdd69812da3f4b659df67) feat(locale): Add Yoruba (yo) locale ([#&#8203;4996](https://github.com/colinhacks/zod/issues/4996)) - [`9a34a3a`](https://github.com/colinhacks/zod/commit/9a34a3a60d92c44f695b08e4c665209aa7160e24) Zod 4.0.11 ([#&#8203;4981](https://github.com/colinhacks/zod/issues/4981)) ### [`v4.0.10`](https://github.com/colinhacks/zod/releases/tag/v4.0.10) [Compare Source](https://github.com/colinhacks/zod/compare/v4.0.9...v4.0.10) #### Commits: - [`291c1ca`](https://github.com/colinhacks/zod/commit/291c1ca9864570e68a6c104d869de467f665da86) Add should-build script - [`e32d99b`](https://github.com/colinhacks/zod/commit/e32d99b54fff920c4b0b451e9099b472d20a3c4b) Move should-build script - [`d4faf71`](https://github.com/colinhacks/zod/commit/d4faf71b8cc156a49bae23fc09c4d54b88f22bd5) Add v3 docs ([#&#8203;4972](https://github.com/colinhacks/zod/issues/4972)) - [`dfae371`](https://github.com/colinhacks/zod/commit/dfae37195bed15dce84af0b17ef04cdc3704ef5e) Update Jazz img on v3 docs - [`d6cd30d`](https://github.com/colinhacks/zod/commit/d6cd30d3898aaf592c6077464c1a45fd0f6f66d3) fix [#&#8203;4973](https://github.com/colinhacks/zod/issues/4973) ([#&#8203;4974](https://github.com/colinhacks/zod/issues/4974)) - [`1850496`](https://github.com/colinhacks/zod/commit/18504960cdce29529e37415b87fed1732facf1ef) Fix typo in `valype` ([#&#8203;4960](https://github.com/colinhacks/zod/issues/4960)) - [`4ec2f87`](https://github.com/colinhacks/zod/commit/4ec2f8776193642d91814521d8a4c22bbb766cb1) Add Zod Playground to zod 4 ecosystem ([#&#8203;4975](https://github.com/colinhacks/zod/issues/4975)) - [`2b571a2`](https://github.com/colinhacks/zod/commit/2b571a21875e9e3299de261e512dad300878c3a1) Update docs z.enum with object literal example ([#&#8203;4967](https://github.com/colinhacks/zod/issues/4967)) - [`813451d`](https://github.com/colinhacks/zod/commit/813451db7fcf64c5322835984eded9bfe95be1da) v4.0.10 ([#&#8203;4978](https://github.com/colinhacks/zod/issues/4978)) ### [`v4.0.9`](https://github.com/colinhacks/zod/releases/tag/v4.0.9) [Compare Source](https://github.com/colinhacks/zod/compare/v4.0.8...v4.0.9) #### Commits: - [`4e7a3ef`](https://github.com/colinhacks/zod/commit/4e7a3ef180f6a5525d9021638e9df20b3ca50456) v4.0.9 ([#&#8203;4970](https://github.com/colinhacks/zod/issues/4970)) ### [`v4.0.8`](https://github.com/colinhacks/zod/releases/tag/v4.0.8) [Compare Source](https://github.com/colinhacks/zod/compare/v4.0.7...v4.0.8) #### Commits: - [`3048d14`](https://github.com/colinhacks/zod/commit/3048d14bc7b803507302b8ee3cd1eeeffbd27396) Fix [#&#8203;4961](https://github.com/colinhacks/zod/issues/4961) ### [`v4.0.7`](https://github.com/colinhacks/zod/releases/tag/v4.0.7) [Compare Source](https://github.com/colinhacks/zod/compare/v4.0.6...v4.0.7) #### Commits: - [`7ab1b3c`](https://github.com/colinhacks/zod/commit/7ab1b3cd2e272a74c0f7c5cde70ee23c2ef288d6) Do not continue parsing in ZodPipe if issues exists. Closes [#&#8203;4926](https://github.com/colinhacks/zod/issues/4926). - [`34b400a`](https://github.com/colinhacks/zod/commit/34b400a5422bc30b48395cdd44007ff4e811fb71) 4.0.7 ### [`v4.0.6`](https://github.com/colinhacks/zod/releases/tag/v4.0.6) [Compare Source](https://github.com/colinhacks/zod/compare/v4.0.5...v4.0.6) #### Commits: - [`a3e4391`](https://github.com/colinhacks/zod/commit/a3e43911abb980f1830b68a440c231ae52eacec0) Unwiden catch input type ([#&#8203;4870](https://github.com/colinhacks/zod/issues/4870)) - [`499df78`](https://github.com/colinhacks/zod/commit/499df780b10dfcce29afba3e811757f7eade9570) Add RFC 9562 mentions. Closes [#&#8203;4872](https://github.com/colinhacks/zod/issues/4872) - [`d0493f3`](https://github.com/colinhacks/zod/commit/d0493f3dceb117972464f01cb0765262a5ffed70) Doc tweak - spread vs destructuring ([#&#8203;4919](https://github.com/colinhacks/zod/issues/4919)) - [`8dad394`](https://github.com/colinhacks/zod/commit/8dad394b805fd18cee8e44a37dab983916e0d92c) feat: Icelandic translation ([#&#8203;4920](https://github.com/colinhacks/zod/issues/4920)) - [`2ffdae1`](https://github.com/colinhacks/zod/commit/2ffdae1faafcc34639a7a846a55776c2a886a644) Bulgarian (bg) translation ([#&#8203;4928](https://github.com/colinhacks/zod/issues/4928)) - [`0973135`](https://github.com/colinhacks/zod/commit/09731358f69bb1238f6e00e0ca82e28c095b800f) docs: add valype to xToZodConverts ([#&#8203;4930](https://github.com/colinhacks/zod/issues/4930)) - [`d257340`](https://github.com/colinhacks/zod/commit/d2573409ab02e5d0c2a644315798999d619e4c89) Remove moduleResolution callout ([#&#8203;4932](https://github.com/colinhacks/zod/issues/4932)) - [`075970d`](https://github.com/colinhacks/zod/commit/075970d2aeb50c840840cc44559b31b16d7b6504) docs: add coercion note to fix compile errors ([#&#8203;4940](https://github.com/colinhacks/zod/issues/4940)) - [`b9e8a60`](https://github.com/colinhacks/zod/commit/b9e8a60ff44aa5fffc39617eec894117132fbbac) Add `@hey-api/openapi-ts` to Zod 3 ecosystem ([#&#8203;4949](https://github.com/colinhacks/zod/issues/4949)) - [`ad7b0ff`](https://github.com/colinhacks/zod/commit/ad7b0ffd91da4f0466c97b7b5e6b60f376ae4f33) Add `@hey-api/openapi-ts` to Zod 3 ecosystem ([#&#8203;4942](https://github.com/colinhacks/zod/issues/4942)) - [`4619109`](https://github.com/colinhacks/zod/commit/4619109e7927019837a3a13d4ab8bba5c72989de) feat(locales): add Danish translations ([#&#8203;4953](https://github.com/colinhacks/zod/issues/4953)) - [`cb84a57`](https://github.com/colinhacks/zod/commit/cb84a5711b83d25c7dcf218c4c01097cf036c1f5) Point to zod-v3-to-v4 codemod in Zod 4 migration guide ([#&#8203;4954](https://github.com/colinhacks/zod/issues/4954)) - [`28a5091`](https://github.com/colinhacks/zod/commit/28a5091092b22146a26f8a4e7c18e2943f53a86a) Update api.mdx ([#&#8203;4955](https://github.com/colinhacks/zod/issues/4955)) - [`7f3cf94`](https://github.com/colinhacks/zod/commit/7f3cf946ca9aa90031cb954d6f683cb09de4d894) Fix URL sup example ([#&#8203;4959](https://github.com/colinhacks/zod/issues/4959)) - [`17e7f3b`](https://github.com/colinhacks/zod/commit/17e7f3b4e1c2c97b3c9487c97ac6703a16ed1cfb) Add `@hey-api/openapi-ts` to Zod 4 ecosystem ([#&#8203;4950](https://github.com/colinhacks/zod/issues/4950)) - [`f75d852`](https://github.com/colinhacks/zod/commit/f75d85294df2ff4ccea056e8eeb7c14750fa929f) fix: escapes decimal place in `z.literal` ([#&#8203;4895](https://github.com/colinhacks/zod/issues/4895)) - [`7dd7484`](https://github.com/colinhacks/zod/commit/7dd7484802b1351c8b81d3d523aadd876fcdf73e) v4.0.6 ([#&#8203;4941](https://github.com/colinhacks/zod/issues/4941)) ### [`v4.0.5`](https://github.com/colinhacks/zod/releases/tag/v4.0.5) [Compare Source](https://github.com/colinhacks/zod/compare/v4.0.4...v4.0.5) #### Commits: - [`f91a73e`](https://github.com/colinhacks/zod/commit/f91a73ec23f9ec28d908af2caa643a54088516c5) Support pipes in discriminated unions. Closes [#&#8203;4856](https://github.com/colinhacks/zod/issues/4856) ([#&#8203;4861](https://github.com/colinhacks/zod/issues/4861)) - [`45afab0`](https://github.com/colinhacks/zod/commit/45afab0f846dffd591362b6f770017507eb185b5) 4.0.5 ### [`v4.0.4`](https://github.com/colinhacks/zod/releases/tag/v4.0.4) [Compare Source](https://github.com/colinhacks/zod/compare/v4.0.3...v4.0.4) #### Commits: - [`9335f05`](https://github.com/colinhacks/zod/commit/9335f0543d6359f9236e3e33b78cc5b2788dbe0f) Adds `ZodFirstPartyTypeKind` stub to fix module resolution failure inside `zod-to-json-schema` ### [`v4.0.3`](https://github.com/colinhacks/zod/releases/tag/v4.0.3) [Compare Source](https://github.com/colinhacks/zod/compare/44a936cb77961e57a0988d8a3c63d9c71fce69ac...v4.0.3) #### Commits: - [`5905a8d`](https://github.com/colinhacks/zod/commit/5905a8d810eff6f4677e6aa9e557f92a676805cf) Improve check-versions script - [`f3e749b`](https://github.com/colinhacks/zod/commit/f3e749b1b057a2cf0a0bce7e07abec4e0520e0f8) Remove global File interface - [`44a936c`](https://github.com/colinhacks/zod/commit/44a936cb77961e57a0988d8a3c63d9c71fce69ac) 4.0.2 - [`74006ed`](https://github.com/colinhacks/zod/commit/74006edd49e3fe8d74010090462859593c2bd1e2) Fix JSR provenance - [`ff4af5e`](https://github.com/colinhacks/zod/commit/ff4af5e889d4ad7136a9cde7202b16261db5c83c) 4.0.3 - [`ce573e8`](https://github.com/colinhacks/zod/commit/ce573e8799f86e2f68307eba95c2d40fc92617b7) Update test badge - [`9a7161a`](https://github.com/colinhacks/zod/commit/9a7161a976d6349f738c00cb6d6528c0407a65e8) Fix versions ### [`v4.0.2`](https://github.com/colinhacks/zod/compare/v4.0.1...44a936cb77961e57a0988d8a3c63d9c71fce69ac) [Compare Source](https://github.com/colinhacks/zod/compare/v4.0.1...44a936cb77961e57a0988d8a3c63d9c71fce69ac) ### [`v4.0.1`](https://github.com/colinhacks/zod/releases/tag/v4.0.1): v4.0.0 [Compare Source](https://github.com/colinhacks/zod/compare/79d4d80e3b47f04752c5c281077b53f889551441...v4.0.1) With this release, `zod@4.0.0` has been published to `npm`. There were no code changes between 3.25.76 and 4.0.0! Zod 4 has been stable for the past 6 weeks, but it was published inside <zod@3.25.x> on npm. this transitionary window gave the ecosystem time to incrementally support for Zod 4 (without dropping support for Zod 3). As there is now near-universal support for Zod 4 in the ecosystem, ths time feels right to finally put a bow on things 🎀 To upgrade to Zod 4: ``` npm upgrade zod@^4.0.0 ``` If you’ve already migrated to Zod 4 using the subpaths, there are no changes required. however you can optionally simplify your imports (recommended) ```ts // after upgrading to zod@4.0.0: import * as z from "zod"; // Zod 4 (regular) import * as z from "zod/mini" // Zod 4 Mini // these still work, but are no longer needed import * as z from "zod/v4"; import * as z from "zod/v4-mini": // if you still need Zod 3 import * as z from "zod/v3"; // Zod 3 ``` **Library authors** — if you've already implemented Zod 4 support according to the best practices outlined in the [Library authors](/library-authors) guide, bump your peer dependency to include `zod@^4.0.0`: ```json // package.json { "peerDependencies": { "zod": "^3.25.0 || ^4.0.0" } } ``` *There should be no other code changes necessary.* No code changes were made between the latest `3.25.x` release and `4.0.0`. This does not require a major version bump. ### [`v4.0.0`](https://github.com/colinhacks/zod/compare/v3.25.76...79d4d80e3b47f04752c5c281077b53f889551441) [Compare Source](https://github.com/colinhacks/zod/compare/v3.25.76...79d4d80e3b47f04752c5c281077b53f889551441) </details> --- ### Configuration 📅 **Schedule**: (in timezone Asia/Riyadh) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzIuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMi4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
c merged commit d985bedd04 into main 2026-04-29 21:00:22 +03:00
c deleted branch renovate/all 2026-04-29 21:00:22 +03:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
c/web-salawat!4
No description provided.