# Nuxt Changelog

> Latest releases from Nuxt and official modules.

## v4.0.0 (nuxt/devtools) - 2026-10-27

[Release notes](https://github.com/nuxt/devtools/releases/tag/v4.0.0)

### &nbsp;&nbsp;&nbsp;🚨 Breaking Changes

- Remove deprecated auth token args from builtin RPC functions &nbsp;-&nbsp; by @antfu and **Claude Opus 5 (1M context)** in https://github.com/nuxt/devtools/issues/965 [<samp>(4418e)</samp>](https://github.com/nuxt/devtools/commit/4418e617)
- Remove @vue/devtools integration &nbsp;-&nbsp; by @antfubot and **opencode** in https://github.com/nuxt/devtools/issues/1056 [<samp>(a1c92)</samp>](https://github.com/nuxt/devtools/commit/a1c923dd)
- Remove cjs build and legacy dts files &nbsp;-&nbsp; by @antfu [<samp>(d2c6d)</samp>](https://github.com/nuxt/devtools/commit/d2c6d90e)
- **devtools**:
  - Reuse the built-in Terminals dock via ctx.terminals &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1026 [<samp>(bee6f)</samp>](https://github.com/nuxt/devtools/commit/bee6f4a1)
  - Finish Messages + terminals convergence on Devframe 0.7.7 &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1032 [<samp>(c0812)</samp>](https://github.com/nuxt/devtools/commit/c0812508)
  - Replace server discovery with the Data Inspector plugin &nbsp;-&nbsp; by @antfubot and @antfu in https://github.com/nuxt/devtools/issues/1034 [<samp>(35def)</samp>](https://github.com/nuxt/devtools/commit/35defc3f)
  - Make embedded dock the only client mode &nbsp;-&nbsp; by @antfubot and @antfu in https://github.com/nuxt/devtools/issues/1041 [<samp>(eb96a)</samp>](https://github.com/nuxt/devtools/commit/eb96a7cd)
  - Slim the install size of @nuxt/devtools &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1121 [<samp>(10f9e)</samp>](https://github.com/nuxt/devtools/commit/10f9ee88)
- **v4**:
  - Migrate execa to tinyexec &nbsp;-&nbsp; by @antfu in https://github.com/nuxt/devtools/issues/944 [<samp>(ae68d)</samp>](https://github.com/nuxt/devtools/commit/ae68d3b6)
  - Remove global install and wizard package &nbsp;-&nbsp; by @antfu in https://github.com/nuxt/devtools/issues/943 [<samp>(34d13)</samp>](https://github.com/nuxt/devtools/commit/34d136f5)
  - Always use Vite DevTools, remove floating panel &nbsp;-&nbsp; by @antfu and **Claude Opus 5 (1M context)** in https://github.com/nuxt/devtools/issues/952 [<samp>(8807b)</samp>](https://github.com/nuxt/devtools/commit/8807be5e)

### &nbsp;&nbsp;&nbsp;🚀 Features

- Upgrade vite-plugin-inspect to v12, use devtools-kit RPC &nbsp;-&nbsp; by @antfu and **Claude Opus 5 (1M context)** in https://github.com/nuxt/devtools/issues/966 [<samp>(4c594)</samp>](https://github.com/nuxt/devtools/commit/4c594cee)
- Replace VS Code integration with Code Server plugin &nbsp;-&nbsp; by @antfu in https://github.com/nuxt/devtools/issues/1036 [<samp>(239ab)</samp>](https://github.com/nuxt/devtools/commit/239ab850)
- Serve the client UI as devframe remote assets via @nuxt/devtools-assets &nbsp;-&nbsp; by @antfubot and @antfu in https://github.com/nuxt/devtools/issues/1071 [<samp>(39470)</samp>](https://github.com/nuxt/devtools/commit/39470fd1)
- Upgrade devframe and Vite DevTools, update branding &nbsp;-&nbsp; by @antfu [<samp>(42419)</samp>](https://github.com/nuxt/devtools/commit/4241988c)
- Upgrade devframe and vite devtools &nbsp;-&nbsp; by @antfu [<samp>(8ff46)</samp>](https://github.com/nuxt/devtools/commit/8ff462a8)
- Upgrade devframe to v1.0 &nbsp;-&nbsp; by @antfu [<samp>(96195)</samp>](https://github.com/nuxt/devtools/commit/9619540f)
- Update deps &nbsp;-&nbsp; by @antfu [<samp>(a1fce)</samp>](https://github.com/nuxt/devtools/commit/a1fcef8c)
- Add @nuxt/devtools-onboard as the opt-in entry point of Nuxt DevTools &nbsp;-&nbsp; by @antfubot and @antfu in https://github.com/nuxt/devtools/issues/1117 [<samp>(ff051)</samp>](https://github.com/nuxt/devtools/commit/ff0512e8)
- Remove Open Graph module and integrate new assets and Open Graph plugins &nbsp;-&nbsp; by @antfu [<samp>(b4d46)</samp>](https://github.com/nuxt/devtools/commit/b4d46d3c)
- Deps on `@nuxt/devtools-assets` for now to improve the landing experience (as we have the onboard package now) &nbsp;-&nbsp; by @antfu [<samp>(93820)</samp>](https://github.com/nuxt/devtools/commit/9382024a)
- Upgrade to `@vitejs/devtools` v0.8 &nbsp;-&nbsp; by @antfu [<samp>(c13d0)</samp>](https://github.com/nuxt/devtools/commit/c13d00a6)
- Update deps &nbsp;-&nbsp; by @antfu [<samp>(6ea43)</samp>](https://github.com/nuxt/devtools/commit/6ea436d8)
- **deps**:
  - Migrate to Vite DevTools v0.5.0 and Devframe v0.9.2 &nbsp;-&nbsp; by @antfubot and **opencode** in https://github.com/nuxt/devtools/issues/1065 [<samp>(1ff0e)</samp>](https://github.com/nuxt/devtools/commit/1ff0ed6f)
- **devtools**:
  - Devtools:ready hook + nostics-driven deprecation foundation &nbsp;-&nbsp; by @antfubot and @antfu in https://github.com/nuxt/devtools/issues/1021 [<samp>(f9dda)</samp>](https://github.com/nuxt/devtools/commit/f9dda69d)
  - Client-side onDevtoolsReady + expose Vite DevTools client; fix client RPC registration &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1023 [<samp>(88c4f)</samp>](https://github.com/nuxt/devtools/commit/88c4f1c1)
  - Unify notifications on the devframe Messages system &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1025 [<samp>(6bfe9)</samp>](https://github.com/nuxt/devtools/commit/6bfe9c79)
  - Select client Vite context deterministically, add Nuxt dock group &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1031 [<samp>(6b9bf)</samp>](https://github.com/nuxt/devtools/commit/6b9bff9d)
  - Project each DevTools tab as its own Vite DevTools dock entry &nbsp;-&nbsp; by @antfubot and @antfu in https://github.com/nuxt/devtools/issues/1035 [<samp>(f4fe2)</samp>](https://github.com/nuxt/devtools/commit/f4fe2780)
  - Unify Data Inspector Vite instance and refresh builtin queries &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1047 [<samp>(5a6c4)</samp>](https://github.com/nuxt/devtools/commit/5a6c4e87)
  - Make vite-plugin-inspect an optional peer dependency &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1055 [<samp>(c8da2)</samp>](https://github.com/nuxt/devtools/commit/c8da29bb)
  - Add `dataInspector` option + lazy-load integrations &nbsp;-&nbsp; by @antfu in https://github.com/nuxt/devtools/issues/1061 [<samp>(eeb29)</samp>](https://github.com/nuxt/devtools/commit/eeb29a9b)
  - Respect DO_NOT_TRACK environment variable &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1064 [<samp>(190ff)</samp>](https://github.com/nuxt/devtools/commit/190ff438)
  - Proxy client `__connection.json` to hub in standalone dev &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1070 [<samp>(4449f)</samp>](https://github.com/nuxt/devtools/commit/4449f09d)
  - Drive Vite DevTools through the `devtools` config option on Vite 8.3+ &nbsp;-&nbsp; by @antfubot and @antfu in https://github.com/nuxt/devtools/issues/1091 [<samp>(c2867)</samp>](https://github.com/nuxt/devtools/commit/c2867686)
  - Surface the auth code through the Nuxt CLI terminal host &nbsp;-&nbsp; by @antfubot and @antfu in https://github.com/nuxt/devtools/issues/1093 [<samp>(73e65)</samp>](https://github.com/nuxt/devtools/commit/73e655f0)
  - Restore Vue DevTools through vite-plugin-vue-devtools v9 &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1099 [<samp>(86abd)</samp>](https://github.com/nuxt/devtools/commit/86abd8e9)
- **playgrounds**:
  - Add ecosystem dogfooding playground for plan 04 &nbsp;-&nbsp; by @antfubot, **opencode** and @antfu in https://github.com/nuxt/devtools/issues/1022 [<samp>(6079f)</samp>](https://github.com/nuxt/devtools/commit/6079f1bf)

### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes

- Use compatible radial-gradient syntax in OG image component &nbsp;-&nbsp; by @antfu and **Claude Opus 5 (1M context)** in https://github.com/nuxt/devtools/issues/959 [<samp>(ce21c)</samp>](https://github.com/nuxt/devtools/commit/ce21c443)
- Persist async data across tab navigation with custom getCachedData &nbsp;-&nbsp; by @antfu and **Claude Opus 5 (1M context)** in https://github.com/nuxt/devtools/issues/963 [<samp>(a2010)</samp>](https://github.com/nuxt/devtools/commit/a2010927)
- Use literal version ranges in pnpm overrides instead of catalog refs &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1015 [<samp>(077b2)</samp>](https://github.com/nuxt/devtools/commit/077b2264)
- Nuxt api url &nbsp;-&nbsp; by @antfu [<samp>(0c947)</samp>](https://github.com/nuxt/devtools/commit/0c947303)
- Resolve devtools client runtime errors &nbsp;-&nbsp; by @antfu in https://github.com/nuxt/devtools/issues/1075 [<samp>(7dac1)</samp>](https://github.com/nuxt/devtools/commit/7dac16dd)
- Restore typecheck against nuxt-nightly&#39;s typed fetch/hooks API &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1085 [<samp>(e4217)</samp>](https://github.com/nuxt/devtools/commit/e42176c8)
- Bump unocss to 66.10.1 to restore DevTools client styling &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1088 [<samp>(7d7e9)</samp>](https://github.com/nuxt/devtools/commit/7d7e9b46)
- Resolve typecheck errors after dependency updates &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1104 [<samp>(93ffd)</samp>](https://github.com/nuxt/devtools/commit/93ffd79a)
- Accept any nitro version in the optional peer dependency &nbsp;-&nbsp; by @mansurkhoja in https://github.com/nuxt/devtools/issues/1106 [<samp>(f96b0)</samp>](https://github.com/nuxt/devtools/commit/f96b08e4)
- **assets**:
  - Skip re-declaring services Vite DevTools already installed &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1137 [<samp>(b7371)</samp>](https://github.com/nuxt/devtools/commit/b73714b5)
- **ci**:
  - Generate devtools client .nuxt types before typecheck job &nbsp;-&nbsp; by @antfubot and **opencode** in https://github.com/nuxt/devtools/issues/1089 [<samp>(1b2c2)</samp>](https://github.com/nuxt/devtools/commit/1b2c2405)
  - Build with bumped nightly names before publishing &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1094 [<samp>(3e65f)</samp>](https://github.com/nuxt/devtools/commit/3e65f859)
  - Build nightly packages before bumping their names &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1095 [<samp>(ed237)</samp>](https://github.com/nuxt/devtools/commit/ed2379d3)
- **client**:
  - Load virtual files from `/_vfs/` for Nitro v3 compatibility &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1132 [<samp>(e1f30)</samp>](https://github.com/nuxt/devtools/commit/e1f30a1e)
- **deps**:
  - Pin vite to 8.0.x (&lt; 8.1) to unbreak DevTools e2e &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1020 [<samp>(b9b6f)</samp>](https://github.com/nuxt/devtools/commit/b9b6fa76)
  - Upgrade Vite DevTools to 0.5.1, fix e2e client-context global &nbsp;-&nbsp; by @antfubot and @antfu in https://github.com/nuxt/devtools/issues/1069 [<samp>(3d2eb)</samp>](https://github.com/nuxt/devtools/commit/3d2ebf4b)
  - Align the Nuxt nightly with nitro 3.0.260903 so the dev server boots &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1107 [<samp>(a4928)</samp>](https://github.com/nuxt/devtools/commit/a492820b)
- **devtools**:
  - Optimize @vue/devtools dependencies in dev &nbsp;-&nbsp; by @huang-julien in https://github.com/nuxt/devtools/issues/981 [<samp>(32563)</samp>](https://github.com/nuxt/devtools/commit/32563f0d)
  - Let birpc be singlesource of turth for server&lt;-&gt;client comms &nbsp;-&nbsp; by @huang-julien in https://github.com/nuxt/devtools/issues/978 [<samp>(4853d)</samp>](https://github.com/nuxt/devtools/commit/4853d044)
  - Run defineViteDevToolsPlugin only for client vite &nbsp;-&nbsp; by @huang-julien in https://github.com/nuxt/devtools/issues/977 [<samp>(b5f9f)</samp>](https://github.com/nuxt/devtools/commit/b5f9f8a5)
  - Add undeclared `unstorage` dependency &nbsp;-&nbsp; by @danielroe in https://github.com/nuxt/devtools/issues/986 [<samp>(32b43)</samp>](https://github.com/nuxt/devtools/commit/32b43b8d)
  - Pre-bundle additional injected client deps in dev &nbsp;-&nbsp; by @antfu and **Claude Opus 5 (1M context)** in https://github.com/nuxt/devtools/issues/991 [<samp>(48194)</samp>](https://github.com/nuxt/devtools/commit/481947aa)
  - Reference optimizeDeps in reference to `@nuxt/devtools` &nbsp;-&nbsp; by @danielroe in https://github.com/nuxt/devtools/issues/1001 [<samp>(49d77)</samp>](https://github.com/nuxt/devtools/commit/49d777e0)
  - Don&#39;t scope dock plugin with `{ server: false }` &nbsp;-&nbsp; by @antfu [<samp>(b2665)</samp>](https://github.com/nuxt/devtools/commit/b2665eb0)
  - Correct options cache guard and stop mutating defaults &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1018 [<samp>(f71b1)</samp>](https://github.com/nuxt/devtools/commit/f71b190d)
  - Remove the correct module in uninstallNuxtModule &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1019 [<samp>(72934)</samp>](https://github.com/nuxt/devtools/commit/72934989)
  - Drop stale visibility assertion from nuxt-group e2e test &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1042 [<samp>(6eeec)</samp>](https://github.com/nuxt/devtools/commit/6eeec697)
  - Prevent StateEditor from freezing the page on live state &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1058 [<samp>(dbc5d)</samp>](https://github.com/nuxt/devtools/commit/dbc5d284)
  - Handle transient RPC failures in getOptions/telemetryEvent &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1072 [<samp>(40f22)</samp>](https://github.com/nuxt/devtools/commit/40f22f2e)
  - Harden RPC surface against traversal, spoofing, and dead auth UI &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1086 [<samp>(24877)</samp>](https://github.com/nuxt/devtools/commit/24877d5f)
  - Rework timeline function wrapping to run after key injection &nbsp;-&nbsp; by @cernymatej, @antfubot and @antfu in https://github.com/nuxt/devtools/issues/1028 [<samp>(5d695)</samp>](https://github.com/nuxt/devtools/commit/5d69506b)
  - Resolve open-in-editor paths against the root and workspace dirs &nbsp;-&nbsp; by @lazerg in https://github.com/nuxt/devtools/issues/1098 [<samp>(e9c70)</samp>](https://github.com/nuxt/devtools/commit/e9c7002b)
  - Stop inlining every dependency into the Nitro v2 dev bundle &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1109 [<samp>(397f9)</samp>](https://github.com/nuxt/devtools/commit/397f9b22)
  - Contain asset RPC paths and the storage denylist to what the UI may touch &nbsp;-&nbsp; by @antfubot and @antfu in https://github.com/nuxt/devtools/issues/1111 [<samp>(6521d)</samp>](https://github.com/nuxt/devtools/commit/6521d263)
  - Open Sublime Text with the `subl` CLI &nbsp;-&nbsp; by @ahmetomerv in https://github.com/nuxt/devtools/issues/1134 [<samp>(82eef)</samp>](https://github.com/nuxt/devtools/commit/82eef122)
- **devtools-kit**:
  - Pass cwd to execa &nbsp;-&nbsp; by @huang-julien in https://github.com/nuxt/devtools/issues/960 [<samp>(64958)</samp>](https://github.com/nuxt/devtools/commit/64958ada)
- **devtools/client**:
  - Debounce render of NDisconnectIndicator &nbsp;-&nbsp; by @huang-julien in https://github.com/nuxt/devtools/issues/979 [<samp>(cf8d9)</samp>](https://github.com/nuxt/devtools/commit/cf8d9c52)
- **e2e**:
  - Unblock the dev e2e suite after the nuxt-nightly 5x upgrade &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1054 [<samp>(7b99f)</samp>](https://github.com/nuxt/devtools/commit/7b99f919)
  - Give the tab-seo project a tall viewport so the sidebar dock list doesn&#39;t overflow &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1084 [<samp>(9f596)</samp>](https://github.com/nuxt/devtools/commit/9f59623c)
- **ecosystem**:
  - Inherit the root pnpm version in the Nuxt 4/5 playgrounds &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1138 [<samp>(e727f)</samp>](https://github.com/nuxt/devtools/commit/e727f2de)
- **onboard**:
  - Load DevTools v3, v4 and nightly releases &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1122 [<samp>(d0b77)</samp>](https://github.com/nuxt/devtools/commit/d0b77e80)
  - Confirm installs in nuxi&#39;s terminal, on devframe v1.2.6 &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1126 [<samp>(c12b7)</samp>](https://github.com/nuxt/devtools/commit/c12b7219)
  - Serve embedded.js through Nuxt&#39;s Vite dev handler &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1130 [<samp>(745fa)</samp>](https://github.com/nuxt/devtools/commit/745fa41c)
- **release**:
  - Use directory-relative turbo filter in prepack scripts &nbsp;-&nbsp; by @antfubot and **opencode** in https://github.com/nuxt/devtools/issues/1073 [<samp>(1a77a)</samp>](https://github.com/nuxt/devtools/commit/1a77a68d)
- **ui**:
  - Color mode reactiveness &nbsp;-&nbsp; by @antfu [<samp>(f7b17)</samp>](https://github.com/nuxt/devtools/commit/f7b17195)

### &nbsp;&nbsp;&nbsp;🏎 Performance

- **deps**:
  - Make `@nuxt/kit` peer deps &nbsp;-&nbsp; by @antfu [<samp>(b33a2)</samp>](https://github.com/nuxt/devtools/commit/b33a2ad1)
- **devtools**:
  - Move `diff` to devDependencies &nbsp;-&nbsp; by @antfu in https://github.com/nuxt/devtools/issues/1060 [<samp>(5ba4c)</samp>](https://github.com/nuxt/devtools/commit/5ba4c3e6)
  - Trim @nuxt/devtools runtime dependencies &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1066 [<samp>(ca107)</samp>](https://github.com/nuxt/devtools/commit/ca107e5a)

##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/nuxt/devtools/compare/v3.2.4...v4.0.0)

---

## v4.6.3 (nuxt/nuxt) - 2026-10-27

[Release notes](https://github.com/nuxt/nuxt/releases/tag/v4.6.3)

> v4.6.3 is the next patch release.
>


## 👉 Changelog

[compare changes](https://github.com/nuxt/nuxt/compare/v4.6.2...v4.6.3)

### 🚨 Security fixes

- **vite:** do not read files named in client error reports ([`63299e13c`](https://github.com/nuxt/nuxt/commit/63299e13c)) - [GHSA-x287-wcfc-q46c](https://github.com/nuxt/nuxt/security/advisories/GHSA-x287-wcfc-q46c)
- **vite:** deny dev server access to nitro dev output ([`c7e204ec6`](https://github.com/nuxt/nuxt/commit/c7e204ec6)) - [GHSA-648h-gw55-m2g7](https://github.com/nuxt/nuxt/security/advisories/GHSA-648h-gw55-m2g7)
- **vite:** deny serving generated app secret in dev ([`16dfdc2a9`](https://github.com/nuxt/nuxt/commit/16dfdc2a9)) - [GHSA-3xf4-9g3c-4h4w](https://github.com/nuxt/nuxt/security/advisories/GHSA-3xf4-9g3c-4h4w)
- **nitro,nuxt:** handle dot segments in request paths ([`440250d97`](https://github.com/nuxt/nuxt/commit/440250d97)) - [GHSA-9v7c-q64q-vv33](https://github.com/nuxt/nuxt/security/advisories/GHSA-9v7c-q64q-vv33)
- **nuxt:** apply redirect route rules to page islands ([`b20372dbe`](https://github.com/nuxt/nuxt/commit/b20372dbe)) - [GHSA-2fxj-c3j7-rr69](https://github.com/nuxt/nuxt/security/advisories/GHSA-2fxj-c3j7-rr69)

### 🔥 Performance

- **vite:** skip compiling plain style blocks in the server build (#36711)
- **nitro,nuxt,rspack,webpack:** bundle esm vue + reuse caches (#36710)
- **vite:** avoid quadratic nested dir check for `fs.allow` (#36702)
- **nuxt:** server render internal custom links without RouterLink (#36707)
- **nuxt:** skip unneeded typed routes generation (#36645)

### 🩹 Fixes

- **nitro:** don't share prerender hints with self-fetched requests (#36705)
- **nuxt:** defer app scope cleanup on external navigation (#36713)
- **nuxt:** prevent useCookie CookieStore sync from rewriting with refresh (#36673)
- **nuxt:** only return redirects from `navigateTo` while middleware runs (#36650)
- **nuxt:** remove purged entries from `_asyncData` (#36709)
- **vite:** skip quoted `import.meta` keys + limit replace to client dev (#36703)
- **nuxt:** hide RouteLocationRaw from navigateTo's public return type (#36691)
- **nuxt:** tree-shake auto-imported `#app` composables (#36696)
- **nuxt:** don't treat constrained route rules as covering dynamic pages (#36701)
- **nuxt:** include `shared/` in build cache hash (#36704)
- **nuxt:** hash keyed function ids + page import names relative to `rootDir` (#36697)
- **nuxt:** encode page paths before matching route rule keys (#36683)
- **nuxt:** handle rejected `updateCallbackDone` of aborted view transition (#36639)
- **ui-templates:** keep loading shader proportions on narrow screens (#36654)
- **nuxt:** reject case-dependent route rule constraints w/ `sensitive: false` (#36708)
- **nuxt:** don't case-fold regex constraints in route rule keys (#36694)
- **nuxt:** normalise page prefix when finding route rule exceptions (#36685)
- **vite:** mirror ssr invalidations for created and deleted files ([`634cba64c`](https://github.com/nuxt/nuxt/commit/634cba64c))
- **nitro:** keep `noScripts` wildcard patterns single-segment ([`fa323db7d`](https://github.com/nuxt/nuxt/commit/fa323db7d))
- **deps:** update unrouting to v0.3.1 (#36663)
- **nuxt:** avoid self-referencing `nuxt/schema` augmentation (#36633)
- **nuxt:** let nightly runtime resolve its own `nuxt/*` imports (#36632)
- **nuxt:** don't warn for vite+ `vite.config` files (#36628)
- **kit:** keep generated declaration first in tsconfig `include` (#36627)
- **nuxt:** clamp numeric `v-for` sources in island renders at render time (#36623)
- **rspack,webpack:** register vue-loader plugin only once per config (#36622)
- **nitro:** abort the portable request when the client disconnects (#36652)
- **deps:** update nitropack to 2.13.5 + drop obsolete workarounds (#36649)

### 📖 Documentation

- note provide/inject limit in server components (#35837)
- use American spelling in a few guides (#36706)
- document controlling prefetch hints via `build:manifest` hook (#36695)
- update StackBlitz link to point to version 4 (#36674)
- link to the 2.x docs (#36640)
- clarify that island props must be validated before iteration ([`4b12d15c9`](https://github.com/nuxt/nuxt/commit/4b12d15c9))

### ✅ Tests

- list `NUXT_B4023` as main-only ([`4fd54ff9a`](https://github.com/nuxt/nuxt/commit/4fd54ff9a))
- wait for leave transition before each scroll behaviour test ([`453406999`](https://github.com/nuxt/nuxt/commit/453406999))
- **vite:** assert spa server bundle does not ship the app (#36699)
- **nuxt:** cover route rule coverage under a base url (#36682)
- list `NUXT_B9006` as main-only ([`e107e0f40`](https://github.com/nuxt/nuxt/commit/e107e0f40))

### 🤖 CI

- only run full checks for the last merge queue entry ([`132698a46`](https://github.com/nuxt/nuxt/commit/132698a46))
- run a reduced matrix in the merge queue ([`7d228ba4b`](https://github.com/nuxt/nuxt/commit/7d228ba4b))
- compare merge queue changes against the base branch ([`bad8c3637`](https://github.com/nuxt/nuxt/commit/bad8c3637))
- notify resolved issues after publishing a release ([`9d47884f3`](https://github.com/nuxt/nuxt/commit/9d47884f3))
- remove broken ai-moderator and ecosystem-ci trigger workflows ([`1d89ad434`](https://github.com/nuxt/nuxt/commit/1d89ad434))

### 🎉 New Contributors

- rynx.z (@rynx-cc)
- Felix Fang (@FelixFangX)
- Volkan Akyel (@volkanakyel)
- Gareth (@0xgdr)

### ❤️ Contributors

- Daniel Roe (@danielroe)
- rynx.z (@rynx-cc)
- Felix Fang (@FelixFangX)
- Max (@onmax)
- Volkan Akyel (@volkanakyel)
- Bochkarev Ivan (@Ibochkarev)
- Gareth (@0xgdr)
- Hugo (@HugoRCD)
- Sébastien Chopin (@atinux)
- Eduardo San Martin Morote (@posva)
- Baptiste Leproux (@larbish)
- Benjamin Canac (@benjamincanac)

---

## v2.6.1 (nuxt/icon) - 2026-10-24

[Release notes](https://github.com/nuxt/icon/releases/tag/v2.6.1)

> v2.6.1 is the next patch release.

## 👉 Changelog

[compare changes](https://github.com/nuxt/icon/compare/v2.6.0...v2.6.1)

### 🔥 Performance

- memoise generated icon CSS across requests (#549)
- sort icon collections once when resolving names (#550)

### 🩹 Fixes

- **plugin:** chunk custom icon loader queries to avoid 431/414 (#551)
- **css:** preserve cascade layer order for late icons (#548)

### 🤖 CI

- release with uppt (#547)

### 🎉 New Contributors

- Thrasher (@thrashxr)
- sean0407 (@sean0407)

### ❤️ Contributors

- Thrasher (@thrashxr)
- Daniel Roe (@danielroe)
- sean0407 (@sean0407)
- Sébastien Chopin (@atinux)

---

## v1.2.0 (nuxt/fonts) - 2026-10-24

[Release notes](https://github.com/nuxt/fonts/releases/tag/v1.2.0)

> v1.2.0 is the next minor release.

## 👉 Changelog

[compare changes](https://github.com/nuxt/fonts/compare/v1.1.0...v1.2.0)

### 🚀 Enhancements

- preload fonts with route rules (#952)

### 🩹 Fixes

- preload glyph subsetted families (#951)

### ❤️ Contributors

- Daniel Roe (@danielroe)

---

## v2.6.0 (nuxt/icon) - 2026-10-23

[Release notes](https://github.com/nuxt/icon/releases/tag/v2.6.0)

### &nbsp;&nbsp;&nbsp;🚀 Features

- `provider` can now be set separately for SSR and the browser: `provider: { server: 'server', client: 'iconify' }`. A string works as before. (#541)
- **Behavior change:** a relative `dir` in `customCollections` / `serverBundle.collections` declared in a Nuxt layer now resolves against that layer's directory instead of the app's `rootDir`. If a base layer declared a collection and expected each app to supply the SVGs, declare it in the app or use an absolute path. (#530)

### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes

- Allow `icons` query in cached handler for Nitro 3 &nbsp;-&nbsp; by @KazariAI and **Sebastien Chopin** in https://github.com/nuxt/icon/issues/542 [<samp>(01bfc)</samp>](https://github.com/nuxt/icon/commit/01bfc44)
- Resolve a custom collection `dir` from the layer that declared it &nbsp;-&nbsp; by @giaBaoJS and @atinux in https://github.com/nuxt/icon/issues/530 [<samp>(8f146)</samp>](https://github.com/nuxt/icon/commit/8f1466a)
- Don&#39;t append custom collection prefixes to the shared collection list &nbsp;-&nbsp; by @giaBaoJS and @atinux in https://github.com/nuxt/icon/issues/533 [<samp>(951c1)</samp>](https://github.com/nuxt/icon/commit/951c196)
- **bundle**: Include custom collection aliases in the client bundle &nbsp;-&nbsp; by @giaBaoJS and @atinux in https://github.com/nuxt/icon/issues/536 [<samp>(cc27c)</samp>](https://github.com/nuxt/icon/commit/cc27cce)
- **css**: Mount a late icon under the name it was requested for &nbsp;-&nbsp; by @atinux in https://github.com/nuxt/icon/issues/546 [<samp>(3eb56)</samp>](https://github.com/nuxt/icon/commit/3eb5685)
- **scan**: Don&#39;t extract icon names from the middle of identifiers &nbsp;-&nbsp; by @giaBaoJS in https://github.com/nuxt/icon/issues/531 [<samp>(729a5)</samp>](https://github.com/nuxt/icon/commit/729a575)
- **server**: Dedupe remote collection requests &nbsp;-&nbsp; by @onmax in https://github.com/nuxt/icon/issues/535 [<samp>(14d22)</samp>](https://github.com/nuxt/icon/commit/14d22b2)
- **test**: Update stale fixtures snapshot after solar icon set bump &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/icon/issues/532 [<samp>(b878f)</samp>](https://github.com/nuxt/icon/commit/b878f5b)

##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/nuxt/icon/compare/v2.5.1...v2.6.0)

---

## v1.1.0 (nuxt/fonts) - 2026-10-22

[Release notes](https://github.com/nuxt/fonts/releases/tag/v1.1.0)

> v1.0.2 is the next patch release.

## 👉 Changelog

[compare changes](https://github.com/nuxt/fonts/compare/v1.0.1...v1.0.2)

### 🩹 Fixes

- merge dev route rule instead of replacing user rules (#950)
- register server variants for native nitro v3 support (#945)

### ❤️ Contributors

- Max (@onmax)
- Daniel Roe (@danielroe)

---

## v4.0.0-beta.7 (nuxt/devtools) - 2026-10-20

[Release notes](https://github.com/nuxt/devtools/releases/tag/v4.0.0-beta.7)

### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes

- **onboard**: Serve embedded.js through Nuxt&#39;s Vite dev handler &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1130 [<samp>(745fa)</samp>](https://github.com/nuxt/devtools/commit/745fa41c)

##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/nuxt/devtools/compare/v4.0.0-beta.6...v4.0.0-beta.7)

---

## v4.0.0-beta.6 (nuxt/devtools) - 2026-10-20

[Release notes](https://github.com/nuxt/devtools/releases/tag/v4.0.0-beta.6)

### &nbsp;&nbsp;&nbsp;🚀 Features

- Upgrade to `@vitejs/devtools` v0.8 &nbsp;-&nbsp; by @antfu [<samp>(c13d0)</samp>](https://github.com/nuxt/devtools/commit/c13d00a6)

### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes

- **onboard**: Confirm installs in nuxi&#39;s terminal, on devframe v1.2.6 &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1126 [<samp>(c12b7)</samp>](https://github.com/nuxt/devtools/commit/c12b7219)

##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/nuxt/devtools/compare/v4.0.0-beta.5...v4.0.0-beta.6)

---

## v2.2.0 (nuxt/image) - 2026-10-19

[Release notes](https://github.com/nuxt/image/releases/tag/v2.2.0)

> v2.2.0 is the next minor release.

## 👉 Changelog

[compare changes](https://github.com/nuxt/image/compare/v2.1.0...v2.2.0)

### 🚀 Enhancements

- **deps:** upgrade to released ipx v4 (#2352)
- support nuxt v5 (#2281)

### 🩹 Fixes

- use explicit imports in nitro v2 server runtime (#2347)
- **directus:** remove deprecated sharpen option (#2294)

### 🏡 Chore

- exempt first-party packages from pnpm minimumReleaseAge (#2306)

### ✅ Tests

- increase e2e provider test timeout to 60s (#2350)

### 🤖 CI

- only run `release` workflows in nuxt org (#2296)
- use `pnpm/setup` and `devEngines` (#2332)
- only fail fast in merge groups ([`de96294`](https://github.com/nuxt/image/commit/de96294))

### ❤️ Contributors

- Daniel Roe (@danielroe)
- Damian Głowala (@DamianGlowala)
- Luke Nelson (@luc122c)
- kheiner (@kheiner)

---

## v3.4.4 (nuxt/devtools) - 2026-10-19

[Release notes](https://github.com/nuxt/devtools/releases/tag/v3.4.4)

### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes

- **devtools**: Read vite configs from `vite:serverCreated` hook &nbsp;-&nbsp; by @danielroe in https://github.com/nuxt/devtools/issues/1123 [<samp>(36d10)</samp>](https://github.com/nuxt/devtools/commit/36d10a12)

##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/nuxt/devtools/compare/v3.4.3...v3.4.4)

---

## v4.3.4 (nuxt/test-utils) - 2026-10-16

[Release notes](https://github.com/nuxt/test-utils/releases/tag/v4.3.4)

> v4.3.4 is the next patch release.

## 👉 Changelog

[compare changes](https://github.com/nuxt/test-utils/compare/v4.3.3...v4.3.4)

### 🩹 Fixes

- **runtime:** test failure when module cached (#1856)
- **runtime-utils:** support registerEndpoint with FormData in jsdom (#1846)
- **e2e:** restore test context before running `setup` hooks (#1855)
- **e2e:** apply `nuxtConfig` overrides to dev server (#1851)
- **config:** prefer `h3` version from nitro path (#1844)
- **module:** apply vitest setup only when loaded from vitest config (#1834)
- **config:** respect default resolve conditions in vitest browser mode (#1843)
- **module:** pass required token to open vitest ui in devtools (#1841)

### 💅 Refactors

- **module:** use `package-manager-detector` workspace + deno handling ([`1d59009c7`](https://github.com/nuxt/test-utils/commit/1d59009c7))

### 🏡 Chore

- cleanup example deps, unify vitest, and update knip config (#1840)

### ❤️ Contributors

- Yoshihiro Yamaguchi (@yamachi4416)
- Daniel Roe (@danielroe)

---

## v4.6.2 (nuxt/nuxt) - 2026-10-16

[Release notes](https://github.com/nuxt/nuxt/releases/tag/v4.6.2)

> v4.6.2 is the next patch release.

## 👉 Changelog

[compare changes](https://github.com/nuxt/nuxt/compare/v4.6.1...v4.6.2)

### 🩹 Fixes

- **nitro:** apply `useHeadSafe` rules to server island head ([`493565e99`](https://github.com/nuxt/nuxt/commit/493565e99))
- **nitro-server:** read router params from the path h3 matched ([`010f6b43d`](https://github.com/nuxt/nuxt/commit/010f6b43d))
- **nitro:** match server route rules case-insensitively unless routing is sensitive ([`f6cfee52c`](https://github.com/nuxt/nuxt/commit/f6cfee52c))
- **nuxt:** resolve rooted paths through the URL parser (#36617)
- **nuxt:** resolve empty route types in shared context (#36576)
- **nitro:** preserve server tsconfig with relocated build dir (#36494)
- **nuxt:** fix scroll offset for IDs starting with numbers (#36524)
- **kit:** do not exclude module directories with a dot in their name from app tsconfig (#36331)
- **nuxt:** detect vapor slots with `rawVaporSlotKey` from vue (#36614)
- **nuxt:** keep middleware layout when restoring deferred prerendered route (#36560)
- **schema:** provide default value for `experimental.typescriptPlugin` (#36561)
- **vite:** only replay compile error overlays to newly loaded pages (#36611)
- **nuxt:** re-export `AnyFetchPath` for emitted server route types (#36610)
- **vite:** warm up the dev ssr entry from a nitro plugin (#36615)
- **nitro:** avoid unused h3 imports in nuxt/server runtime (#36609)
- **vite-server:** scope asset url helpers to the build (#36591)
- **nuxt:** resolve `nuxt/app` to the app's runtime (#36587)
- **kit:** lowercase filename-derived handler method on nitro v2 (#36567)
- **nuxt,nitro:** normalise string/array `appMiddleware` (#36565)
- **nitro:** pass response headers to `render:response` listeners (#36583)
- **vite:** resolve inlined `vue` to its bundler build in dev (#36569)
- **nuxt:** don't start a page transition with no page to leave (#36535)
- **nuxt:** preserve error state on aborted or cancelled navigation (#36546)
- **vite,nitro:** link null-byte virtual css through `/@id/` in dev (#36549)
- **kit:** resolve module dependencies from the declaring module (#36542)
- **nitro:** only disable h3 + nitro presets when `nitroAutoImports` is off (#36548)
- **nitro,vite:** don't access unspecified dependencies (#36541)
- **nitro:** don't inline deps under absolute transpile dirs (#36540)
- **vite-server:** respect spa loading template location (#36536)

### 💅 Refactors

- **webpack,rspack:** inline friendly errors plugin (#36568)

### 📖 Documentation

- remove DeepWiki badge (#36616)
- rename `H(TTP)` to `HTTP` (#36559)
- mention `proxy` route rule ([`4a529be68`](https://github.com/nuxt/nuxt/commit/4a529be68))
- reference `definePlugin` and `defineNitroPlugin` in server plugin tip ([`64b8e0334`](https://github.com/nuxt/nuxt/commit/64b8e0334))
- open a PR to list a module ([`e551df267`](https://github.com/nuxt/nuxt/commit/e551df267))
- clarify testing environments, runners, and config (#32963)
- align spa loading template references (#36552)
- explain how to disable iOS Safari phone number detection (#36539)
- fix outdated internal links (#36550)
- explain how to restore nitro auto-imports with compat v5 ([`7499a445b`](https://github.com/nuxt/nuxt/commit/7499a445b))
- add spa-loading-template documentation (#36537)

### 🏡 Chore

- keep @nuxt/telemetry ignore for production mode 😭 ([`3110d6947`](https://github.com/nuxt/nuxt/commit/3110d6947))
- fix knip, eslint and type import failures in ci ([`fb01db4eb`](https://github.com/nuxt/nuxt/commit/fb01db4eb))
- exclude `nuxt/app` entry shim from root typecheck ([`c65cef3a8`](https://github.com/nuxt/nuxt/commit/c65cef3a8))
- animate readme banner (#36593)
- actually exclude fixtures from `test:engines` ([`6ce412822`](https://github.com/nuxt/nuxt/commit/6ce412822))
- resolve `#build/server-routes` stub via root tsconfig paths ([`8235dd605`](https://github.com/nuxt/nuxt/commit/8235dd605))

### ✅ Tests

- wait for scroll to settle in route-scroll e2e ([`ca784deb7`](https://github.com/nuxt/nuxt/commit/ca784deb7))

### 🤖 CI

- comment nuxt.com preview links on docs pull requests (#36594)
- regenerate kit `inlinedDependencies` in autofix ([`4b6da3a29`](https://github.com/nuxt/nuxt/commit/4b6da3a29))
- remove docs deploy triggers ([`917bdf218`](https://github.com/nuxt/nuxt/commit/917bdf218))

### 🎉 New Contributors

- Sandro Circi (@sandros94)
- Yunus Ozen (@ozenyunus35)
- Vladislav (@dsfcoll)
- AXH-xecoy (@axh-xecoy)
- Jess (@JessicaSachs)
- Gareth (@0xgdr)

### ❤️ Contributors

- Daniel Roe (@danielroe)
- Jonas Thelemann (@dargmuesli)
- Sandro Circi (@sandros94)
- Yunus Ozen (@ozenyunus35)
- Vladislav (@dsfcoll)
- Sébastien Chopin (@atinux)
- Kazbek Askarov (@kazbekaskarov)
- Nicholas (@Neekoras)
- Peter (@tada5hi)
- Baptiste Leproux (@larbish)
- Hugo (@HugoRCD)
- Harlan Wilton (@harlan-zw)
- AXH-xecoy (@axh-xecoy)
- Jess (@JessicaSachs)
- Alex Liu (@Mini-ghost)
- Gareth (@0xgdr)
- Florian Heuberger (@Flo0806)

---

## v4.12.0 (nuxt/ui) - 2026-10-15

[Release notes](https://github.com/nuxt/ui/releases/tag/v4.12.0)

## :sparkles: Highlights

### :bar_chart: Chart component

A new [`Chart`](https://ui.nuxt.com/docs/components/chart) component built on [TanStack Charts](https://tanstack.com/charts/latest) renders `line`, `area`, `bar` and `donut` charts as an SVG on the server. Series colors follow your theme and color mode through the new `--ui-chart-*` CSS variables:

```vue
<script setup lang="ts">
const data = [
  { month: 'January', desktop: 186, mobile: 80 },
  { month: 'February', desktop: 305, mobile: 200 },
  { month: 'March', desktop: 237, mobile: 120 }
]
</script>

<template>
  <UChart
    type="bar"
    :data="data"
    index="month"
    :categories="[{ key: 'desktop', label: 'Desktop' }, { key: 'mobile', label: 'Mobile' }]"
    stacked
  />
</template>
```

> [!NOTE]
> `@tanstack/charts` is an optional peer dependency, install it to use the component. When the props are not enough, the `definition` prop takes a full TanStack chart definition.

### :globe_with_meridians: Automatic locale with `@nuxtjs/i18n`

When `@nuxtjs/i18n` is installed, the [`App`](https://ui.nuxt.com/docs/components/app) component now follows the current i18n locale, and only the Nuxt UI locales matching your `i18n.locales` are bundled. You can drop the `import * as locales` pattern, which shipped every locale in the entry chunk:

```diff
- <script setup lang="ts">
- import * as locales from '@nuxt/ui/locale'
-
- const { locale } = useI18n()
- </script>
-
  <template>
-   <UApp :locale="locales[locale]">
+   <UApp>
      <NuxtPage />
    </UApp>
  </template>
```

> [!TIP]
> An explicit `locale` prop still wins, see the [i18n guide](https://ui.nuxt.com/docs/getting-started/integrations/i18n/nuxt#automatic-locale).

### :zap: Lighter and faster pages

Pages now load up to 27% less JavaScript. A page no longer loads the code of components only other pages use, and overlays are lazy loaded: the menu of `Header`, `Sidebar` and `DashboardSidebar`, the command palette of `DashboardSearch` and `ContentSearch`, and the toasts of `Toaster`.

| | v4.11.3 | v4.12.0 |
| --- | --: | --: |
| JS | 871.6 kB | 549.6 kB |
| JS (gzip) | 251.9 kB | 183.9 kB |

> [!NOTE]
> `UButton` also mounts about 38% faster and each item of an open `DropdownMenu` about 30% faster, since link props are now picked without a reactive proxy.

## :rocket: Features

* **App:** follow the `@nuxtjs/i18n` locale ([#7152](https://github.com/nuxt/ui/issues/7152)) ([43ba8a0](https://github.com/nuxt/ui/commit/43ba8a07ee6561613045c36c6e3015ceecf873c9))
* **Calendar:** add `yearsPerPage` prop ([#7138](https://github.com/nuxt/ui/issues/7138)) ([cc4acae](https://github.com/nuxt/ui/commit/cc4acae75c9e18705e97ff0b7af9b2dd5af3f290))
* **Chart:** new component ([#7022](https://github.com/nuxt/ui/issues/7022)) ([8b37286](https://github.com/nuxt/ui/commit/8b372869000484efbb9f687f9095782351ab2acf))
* **ChatReasoning:** add `autoOpen` prop ([#7049](https://github.com/nuxt/ui/issues/7049)) ([dad748e](https://github.com/nuxt/ui/commit/dad748e230314aed88fc555da93089185d49c1a3))
* **CheckboxGroup:** add `max` prop ([#7145](https://github.com/nuxt/ui/issues/7145)) ([63a0c05](https://github.com/nuxt/ui/commit/63a0c0563ea225d31d32019ccf3fdc9a455bb44c))
* **components:** add `loop` prop ([#7128](https://github.com/nuxt/ui/issues/7128)) ([a96f56f](https://github.com/nuxt/ui/commit/a96f56f7649b0794dba5337a4d483efeb228d58b))
* **components:** allow controlling heading element via `as` prop ([#7048](https://github.com/nuxt/ui/issues/7048)) ([623d6d2](https://github.com/nuxt/ui/commit/623d6d2bc35ad0d1e4afbc3dca039786aa3be240))
* **ContextMenu:** add `open` and `pressOpenDelay` props ([#7148](https://github.com/nuxt/ui/issues/7148)) ([73c489b](https://github.com/nuxt/ui/commit/73c489b64460430a0924e7897cfc33145e1458d0))
* **FileUpload:** add `reject` event for dropped files ([#7164](https://github.com/nuxt/ui/issues/7164)) ([c8f5ffc](https://github.com/nuxt/ui/commit/c8f5ffc69430a77da34e498337f8e93a6dced4a9))
* **FileUpload:** support custom file items in `v-model` ([#6927](https://github.com/nuxt/ui/issues/6927)) ([a352073](https://github.com/nuxt/ui/commit/a352073b458614937e489e5ec4770b00f75f4376))
* **InputMenu:** add default slot ([#6969](https://github.com/nuxt/ui/issues/6969)) ([3274113](https://github.com/nuxt/ui/commit/32741135b1ceafd1ca41ba4eef6684310608162a))
* **InputNumber:** add `startingValue` and `allowInvalid` props ([#7146](https://github.com/nuxt/ui/issues/7146)) ([d856ec3](https://github.com/nuxt/ui/commit/d856ec3d5f37bef9f9eab44dbf2396286ab26e25))
* **module:** export prose components from `@nuxt/ui/components/prose` ([#7143](https://github.com/nuxt/ui/issues/7143)) ([5c302c3](https://github.com/nuxt/ui/commit/5c302c3bb83661226b74008a17741e8e001b3925))
* **NavigationMenu:** add `viewport` prop ([#7123](https://github.com/nuxt/ui/issues/7123)) ([4a3464e](https://github.com/nuxt/ui/commit/4a3464e3619321cb44c3a017db12250a906ccac4))
* **ProsePrompt:** add `prompt` prop ([#7172](https://github.com/nuxt/ui/issues/7172)) ([8c92e5f](https://github.com/nuxt/ui/commit/8c92e5f9299c6c28ced1eebfd74e1d35805ac1c6))
* **Sidebar:** add `breakpoint` prop ([#7155](https://github.com/nuxt/ui/issues/7155)) ([2113daa](https://github.com/nuxt/ui/commit/2113daa41f2dfc13ffb2c37d9d1610002229c24b))
* **Toast:** add `closeOnClick` to actions ([#7147](https://github.com/nuxt/ui/issues/7147)) ([378873a](https://github.com/nuxt/ui/commit/378873a28d5db444c52873b21a71551609f11aa0))

## :bug: Bug Fixes

* **App:** forward `nonce` prop ([#7137](https://github.com/nuxt/ui/issues/7137)) ([9271533](https://github.com/nuxt/ui/commit/927153310901c0922a593336ef5f92cbb428761f))
* **Chart:** render tooltip above center slot ([5cf6b3a](https://github.com/nuxt/ui/commit/5cf6b3a9dfba74c6280190156ae43eba2af644ce))
* **ChatMessages/ChatPromptSubmit:** add accessible names to icon buttons ([#7153](https://github.com/nuxt/ui/issues/7153)) ([3cd30e0](https://github.com/nuxt/ui/commit/3cd30e013affa172acc2048710109690d83b042c))
* **ColorModeButton:** resolve label after mount ([#7167](https://github.com/nuxt/ui/issues/7167)) ([9a12b1f](https://github.com/nuxt/ui/commit/9a12b1fbcef56286c4b824fecd0c7a50dee6e53b))
* **components:** localize hardcoded accessibility labels ([#7177](https://github.com/nuxt/ui/issues/7177)) ([fc7137c](https://github.com/nuxt/ui/commit/fc7137cd47d37d4b7af52b7d9dffa63be51d45e8))
* **components:** prevent empty trailing slot when loading ([#7027](https://github.com/nuxt/ui/issues/7027)) ([1f46ce1](https://github.com/nuxt/ui/commit/1f46ce11fa0ead45de6c4d3bf2a3761c9d7188e9))
* **components:** spin trailing loading icon with avatar ([#7168](https://github.com/nuxt/ui/issues/7168)) ([2fc9ba0](https://github.com/nuxt/ui/commit/2fc9ba0cb8edae7cbc804a7ae6477361ef20defa))
* **ContentSearch/DashboardSearch:** handle `undefined` selection when an item is toggled off ([#7170](https://github.com/nuxt/ui/issues/7170)) ([14f13af](https://github.com/nuxt/ui/commit/14f13af6b8e1e58bb239ce03eb51adbbbcef37a6))
* **ContentToc:** raise list min height ([#7113](https://github.com/nuxt/ui/issues/7113)) ([2b535b0](https://github.com/nuxt/ui/commit/2b535b0187d8755233748c5835733b13152709ac))
* **Drawer:** don't disable body pointer events with `noBodyStyles` ([#7150](https://github.com/nuxt/ui/issues/7150)) ([04f253e](https://github.com/nuxt/ui/commit/04f253edb99d24993eb74bb83ca5418a77b24997))
* **Drawer:** emit `after:leave` and `after:enter` when the animation ends ([#7107](https://github.com/nuxt/ui/issues/7107)) ([5cd317b](https://github.com/nuxt/ui/commit/5cd317bfee044346ac3d3005b1348ff5b5f0d2d9))
* **Editor:** align link styles with prose ([f943f20](https://github.com/nuxt/ui/commit/f943f2059f2eea1dcf3fc9d992f5269103d7a096))
* **FileUpload:** make the `dropzone` prop reactive ([#7055](https://github.com/nuxt/ui/issues/7055)) ([f4322e7](https://github.com/nuxt/ui/commit/f4322e7a3577939f43be0781170a4827af15122c))
* **Form:** accept empty values in `state` type ([#7165](https://github.com/nuxt/ui/issues/7165)) ([a59a3a3](https://github.com/nuxt/ui/commit/a59a3a3e00cc95f03f596d80013b05fb3abc63c1))
* **Kbd:** avoid hydration mismatch for platform-specific keys ([#7166](https://github.com/nuxt/ui/issues/7166)) ([78e72fb](https://github.com/nuxt/ui/commit/78e72fb9b7a1012146f6713bba850f8024cbd8d5))
* **Link:** promote queued prefetch on interaction ([#7124](https://github.com/nuxt/ui/issues/7124)) ([974cc0d](https://github.com/nuxt/ui/commit/974cc0d9fa22a45e450e3171c3d9024275c4ec75))
* **Listbox:** add accessible name to listbox ([#7193](https://github.com/nuxt/ui/issues/7193)) ([6bbb358](https://github.com/nuxt/ui/commit/6bbb358e1749a54d5d06df7397b7e78394756626))
* **Pagination:** localize `aria-label` of controls and pages ([#7151](https://github.com/nuxt/ui/issues/7151)) ([d2d3da0](https://github.com/nuxt/ui/commit/d2d3da0db012b8a21a003eace1b81f00e4135f32))
* **ProseA:** hide underline on focus and around inline code ([3cd61ed](https://github.com/nuxt/ui/commit/3cd61edc6d051501ee2393513b987ab44953821b))
* **SelectMenu:** keep controls outside the listbox ([#7096](https://github.com/nuxt/ui/issues/7096)) ([ded6848](https://github.com/nuxt/ui/commit/ded6848ef6bd06e724d28d425df12204b06f8328))
* **SelectMenu:** keep menu open when focus moves outside ([#7095](https://github.com/nuxt/ui/issues/7095)) ([26016e8](https://github.com/nuxt/ui/commit/26016e8d4242426c3f1085a20eb7c33f55f92360))
* **Slideover:** only cap width from `sm` breakpoint ([#7156](https://github.com/nuxt/ui/issues/7156)) ([608a3d3](https://github.com/nuxt/ui/commit/608a3d3c93feef128d82d2cfcb2a2afc60aab982))
* **Table:** measure virtualized rows with variable heights ([#7204](https://github.com/nuxt/ui/issues/7204)) ([0e487d6](https://github.com/nuxt/ui/commit/0e487d62d5cc3149e2f7ed8eb0e2520981fd6a89))
* **Table:** respect `defaultColumn` cell and header ([#7198](https://github.com/nuxt/ui/issues/7198)) ([da9125c](https://github.com/nuxt/ui/commit/da9125cabe1d7e3814cde33c4af8d8b3a8bdb8bb))
* **theme:** remove unknown and conflicting classes ([96d0a50](https://github.com/nuxt/ui/commit/96d0a50c7df17efe111fc9fc7198a31ff47a8cfc))
* **Tree:** pass `disabled` to tree item ([#7139](https://github.com/nuxt/ui/issues/7139)) ([db30f7f](https://github.com/nuxt/ui/commit/db30f7f4402e80e94b7325f0a16bca1f554a6229))
* **useToast:** skip pulse while toast is animating ([#7195](https://github.com/nuxt/ui/issues/7195)) ([e51d3a9](https://github.com/nuxt/ui/commit/e51d3a9491e7f70e8f19ecda373bdc813ea8c65a))
* **useTour:** accept any CSS selector as step target ([#7144](https://github.com/nuxt/ui/issues/7144)) ([8a7270d](https://github.com/nuxt/ui/commit/8a7270d6604b5f7fd4ab07d52a57bd47736480d0))

## :fire: Performances

* **components:** import Reka UI primitives by name instead of from `reka-ui/namespaced` ([#7176](https://github.com/nuxt/ui/issues/7176)) ([896d609](https://github.com/nuxt/ui/commit/896d60962266a62012bc89bb53a8e65e863b2921))
* **components:** pick link props without a reactive proxy ([#7208](https://github.com/nuxt/ui/issues/7208)) ([68d0467](https://github.com/nuxt/ui/commit/68d0467eff78a3bb4d4fda2dddf8d938577b28c4))
* **DashboardSearch/ContentSearch:** lazy load modal and command palette ([#7161](https://github.com/nuxt/ui/issues/7161)) ([6f50933](https://github.com/nuxt/ui/commit/6f50933451bfa1150a303378682f5282c04820d7))
* **Header/DashboardSidebar/Sidebar:** lazy load menu overlay ([#7160](https://github.com/nuxt/ui/issues/7160)) ([691899a](https://github.com/nuxt/ui/commit/691899a81fdfce05c8218f4924fcf9c32e329a1a))
* **Toaster:** lazy load toast component ([#7163](https://github.com/nuxt/ui/issues/7163)) ([1b09a26](https://github.com/nuxt/ui/commit/1b09a2678353c53107831998b9610e8898fe2ed9))
* **useComponentProps:** skip prop resolution for Vue internal flags ([#7186](https://github.com/nuxt/ui/issues/7186)) ([c029710](https://github.com/nuxt/ui/commit/c029710988bc6f472e74e1d3db92d0e5fcdfef6e))

## :green_heart: Contributors

* @benjamincanac
* @kazbekaskarov
* @danielroe
* @61021
* @cristianchiriac
* @derblub
* @devotee101
* @giaBaoJS
* @leo-2-ga-ha
* @MFA-G
* @minwookshin
* @rdjanuar
* @ttcchhmm
* @vachmara

**Full Changelog**: https://github.com/nuxt/ui/compare/v4.11.3...v4.12.0


---

## v3.4.3 (nuxt/devtools) - 2026-10-14

[Release notes](https://github.com/nuxt/devtools/releases/tag/v3.4.3)

### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes

- **devtools**: Require the dev auth token for server config and storage mounts &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1124 [<samp>(0383c)</samp>](https://github.com/nuxt/devtools/commit/0383cd75)

### &nbsp;&nbsp;&nbsp;🏎 Performance

- Replace `nypm` with `package-manager-detector` &nbsp;-&nbsp; by @danielroe in https://github.com/nuxt/devtools/issues/1102 [<samp>(21904)</samp>](https://github.com/nuxt/devtools/commit/21904b9b)

##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/nuxt/devtools/compare/v3.4.2...v3.4.3)

---

## v4.0.0-beta.5 (nuxt/devtools) - 2026-10-13

[Release notes](https://github.com/nuxt/devtools/releases/tag/v4.0.0-beta.5)

### &nbsp;&nbsp;&nbsp;🚨 Breaking Changes

- **devtools**: Slim the install size of @nuxt/devtools &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1121 [<samp>(10f9e)</samp>](https://github.com/nuxt/devtools/commit/10f9ee88)

### &nbsp;&nbsp;&nbsp;🚀 Features

- Remove Open Graph module and integrate new assets and Open Graph plugins &nbsp;-&nbsp; by @antfu [<samp>(b4d46)</samp>](https://github.com/nuxt/devtools/commit/b4d46d3c)
- Deps on `@nuxt/devtools-assets` for now to improve the landing experience (as we have the onboard package now) &nbsp;-&nbsp; by @antfu [<samp>(93820)</samp>](https://github.com/nuxt/devtools/commit/9382024a)

### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes

- **onboard**: Load DevTools v3, v4 and nightly releases &nbsp;-&nbsp; by @antfubot in https://github.com/nuxt/devtools/issues/1122 [<samp>(d0b77)</samp>](https://github.com/nuxt/devtools/commit/d0b77e80)

##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/nuxt/devtools/compare/v4.0.0-beta.4...v4.0.0-beta.5)

---

## v2.0.0-beta.16 (nuxt/scripts) - 2026-10-12

[Release notes](https://github.com/nuxt/scripts/releases/tag/v2.0.0-beta.16)

### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes

- **ci**: Skip stale workflow results and quote headers &nbsp;-&nbsp; by @harlan-zw in https://github.com/nuxt/scripts/issues/960 [<samp>(f8ebc)</samp>](https://github.com/nuxt/scripts/commit/f8ebc7c5)
- **cloudflare**: Keep analytics collection in the browser &nbsp;-&nbsp; by @harlan-zw in https://github.com/nuxt/scripts/issues/957 [<samp>(b1319)</samp>](https://github.com/nuxt/scripts/commit/b1319301)
- **scripts**: Preserve consent when reusing script consumers &nbsp;-&nbsp; by @harlan-zw in https://github.com/nuxt/scripts/issues/961 [<samp>(e2100)</samp>](https://github.com/nuxt/scripts/commit/e2100bb4)

##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/nuxt/scripts/compare/v2.0.0-beta.15...v2.0.0-beta.16)

---

## v3.16.2 (nuxt/content) - 2026-10-12

[Release notes](https://github.com/nuxt/content/releases/tag/v3.16.2)

### 🐞 Bug Fixes

- Continue when package manager exits non-zero after installing - by @0xgdr in https://github.com/nuxt/content/issues/3871 [<samp>(ebfdc)</samp>](https://github.com/nuxt/content/commit/ebfdc2c9)
- **api**:
  - Don&#39;t forward body headers to internal content requests - by @devtechedge in https://github.com/nuxt/content/issues/3868 [<samp>(ffa5a)</samp>](https://github.com/nuxt/content/commit/ffa5ac39)
- **cache**:
  - Await development cache replacement - by @onmax in https://github.com/nuxt/content/issues/3846 [<samp>(75eff)</samp>](https://github.com/nuxt/content/commit/75eff79a)
- **search**:
  - Preserve word boundaries between block elements - by @maricastroc and @farnabaz in https://github.com/nuxt/content/issues/3861 [<samp>(05a30)</samp>](https://github.com/nuxt/content/commit/05a3074e)
- **security**:
  - Standard quotes and block IN operator validate - by @farnabaz in https://github.com/nuxt/content/issues/3862 [<samp>(006d1)</samp>](https://github.com/nuxt/content/commit/006d1382)
  - Accept only query-builder WHERE clauses - by @farnabaz in https://github.com/nuxt/content/issues/3877 [<samp>(9fae8)</samp>](https://github.com/nuxt/content/commit/9fae87e7)

### 🏎 Performance

- **cache**: Avoid repeated cache index copies - by @onmax in https://github.com/nuxt/content/issues/3847 [<samp>(464fb)</samp>](https://github.com/nuxt/content/commit/464fb167)
- **navigation**: Skip unused leaf sibling searches - by @onmax and @farnabaz in https://github.com/nuxt/content/issues/3845 [<samp>(6fc1e)</samp>](https://github.com/nuxt/content/commit/6fc1e262)

##### [View changes on GitHub](https://github.com/nuxt/content/compare/v3.16.1...v3.16.2)

---

## v2.0.0-beta.15 (nuxt/scripts) - 2026-10-12

[Release notes](https://github.com/nuxt/scripts/releases/tag/v2.0.0-beta.15)

### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes

- **devtools**: Add repository metadata for npm publishing &nbsp;-&nbsp; by @harlan-zw in https://github.com/nuxt/scripts/issues/954 [<samp>(1f1a9)</samp>](https://github.com/nuxt/scripts/commit/1f1a9ebb)

##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/nuxt/scripts/compare/v2.0.0-beta.14...v2.0.0-beta.15)

---

## v1.1.5 (nuxt/hints) - 2026-10-11

[Release notes](https://github.com/nuxt/hints/releases/tag/v1.1.5)

### 🩹 Fixes

- **html-validate:** Wrap validation in a try/catch ([#377](https://github.com/nuxt/hints/pull/377))
- Support app baseURL ([#392](https://github.com/nuxt/hints/pull/392))
- **lazy-load:** Wrap imported components inside setup to support circular imports ([#393](https://github.com/nuxt/hints/pull/393))

### ❤️ Contributors

- Julien Huang ([@huang-julien](https://github.com/huang-julien))



---

## v1.0.1 (nuxt/fonts) - 2026-10-11

[Release notes](https://github.com/nuxt/fonts/releases/tag/v1.0.1)

> v1.0.1 is the next patch release.

## 👉 Changelog

[compare changes](https://github.com/nuxt/fonts/compare/v1.0.0...v1.0.1)

### 📦 Build

- prepare before prepack step ([`e2777f9`](https://github.com/nuxt/fonts/commit/e2777f9))

### ❤️ Contributors

- Daniel Roe (@danielroe)

---
