# Nuxt Changelog

> Latest releases from Nuxt and official modules.

## v4.4.7 (nuxt/nuxt) - 2026-06-02

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

> 4.4.7 is the a security hotfix release.

👉 make sure to check https://github.com/nuxt/nuxt/security/advisories to view open advisories resolved by this release.

## 👉 Changelog

[compare changes](https://github.com/nuxt/nuxt/compare/v4.4.6...v4.4.7)
### 🩹 Fixes
- **nitro:** Assign `noSSR` before deciding payload extraction ([#35108](https://github.com/nuxt/nuxt/pull/35108))
- **vite:** Avoid filtering out dirs with shared prefix from `allowDirs` ([#35112](https://github.com/nuxt/nuxt/pull/35112))
- **nuxt:** Use resolve from `pathe` for buildCache path boundary check ([#35111](https://github.com/nuxt/nuxt/pull/35111))
- **nuxt:** Prevent sibling-directory traversal in test component wrapper ([#35110](https://github.com/nuxt/nuxt/pull/35110))
- **nitro:** Pass event data to `isValid` in dev clipboard-copy listener ([#35109](https://github.com/nuxt/nuxt/pull/35109))
- **nuxt:** Validate protocols in `reloadNuxtApp` path before reload ([#35115](https://github.com/nuxt/nuxt/pull/35115))
- **vite:** Prefix public asset virtuals with null byte ([9e303b438](https://github.com/nuxt/nuxt/commit/9e303b438))
- **nuxt:** Re-run `getCachedData` after initial fetch ([#35122](https://github.com/nuxt/nuxt/pull/35122))
- **nuxt:** Propagate `useFetch`/`useAsyncData` factory types ([#35133](https://github.com/nuxt/nuxt/pull/35133))
- **vite:** Close vite dev server on nuxt close ([a10a68abc](https://github.com/nuxt/nuxt/commit/a10a68abc))
- **kit,nuxt:** Handle cancelling prompts to install packages ([e84813229](https://github.com/nuxt/nuxt/commit/e84813229))
- **kit:** Avoid excluding node-context files in legacy tsconfig ([#35152](https://github.com/nuxt/nuxt/pull/35152))
- **nuxt:** Handle missing payload in chunkError listener ([#35155](https://github.com/nuxt/nuxt/pull/35155))
- **nuxt:** Await in-lifght template generation when closing nuxt ([#35181](https://github.com/nuxt/nuxt/pull/35181))
- **nuxt:** Clarify page and layout usage warnings ([#35184](https://github.com/nuxt/nuxt/pull/35184))
- **webpack:** Surface compilation errors when stats.toString is empty ([073b07851](https://github.com/nuxt/nuxt/commit/073b07851))
- **nuxt:** Reject prototype-chain keys in the island registry ([#35205](https://github.com/nuxt/nuxt/pull/35205))
- **nuxt:** Apply `isScriptProtocol` guard to `navigateTo` open option ([#35206](https://github.com/nuxt/nuxt/pull/35206))
- **nuxt:** Prevent server-only page island from recursing via `<NuxtPage>` ([#35198](https://github.com/nuxt/nuxt/pull/35198))
- **rspack,webpack:** Require loopback host when missing same-origin signals ([#35200](https://github.com/nuxt/nuxt/pull/35200))
- **nitro:** Gate chrome devtools workspace endpoint to local requests ([#35201](https://github.com/nuxt/nuxt/pull/35201))
- **nuxt:** Escape props in `<NuxtClientFallback>` ssr output ([#35199](https://github.com/nuxt/nuxt/pull/35199))
- **kit:** Improve TS extension stripping/substitutions ([#35233](https://github.com/nuxt/nuxt/pull/35233))
- **nuxt:** Preserve `.d.mts`/`.d.cts` in `resolveTypePaths` ([#35235](https://github.com/nuxt/nuxt/pull/35235))
- **nuxt:** Escape `<NoScript>` slot content ([4b054e9d9](https://github.com/nuxt/nuxt/commit/4b054e9d9))
- **nuxt:** Match route rules case-insensitively to mirror `vue-router` ([07e39cd6f](https://github.com/nuxt/nuxt/commit/07e39cd6f))
- **nuxt:** Reject script-capable protocols in `<NuxtLink>` href ([0103ce06f](https://github.com/nuxt/nuxt/commit/0103ce06f))
- **nuxt:** Block path-normalization open redirect in `navigateTo` ([2cce6fb02](https://github.com/nuxt/nuxt/commit/2cce6fb02))
- **nuxt:** Reject cross-origin paths in `reloadNuxtApp` ([e447a793c](https://github.com/nuxt/nuxt/commit/e447a793c))
- **vite:** Bind vite-node IPC to a permissioned filesystem socket ([1f9f4767a](https://github.com/nuxt/nuxt/commit/1f9f4767a))
### 💅 Refactors
- **kit,nuxt,vite:** Use `es2023` array methods ([#34980](https://github.com/nuxt/nuxt/pull/34980))
- **nuxt:** Replace `runInNewContext` with AST walker ([d72a89ef4](https://github.com/nuxt/nuxt/commit/d72a89ef4))
### 📖 Documentation
- Document vite client and server options ([#35090](https://github.com/nuxt/nuxt/pull/35090))
- Add dedicated module dependencies page ([#35171](https://github.com/nuxt/nuxt/pull/35171))
- Add nodeTsConfig and sharedTsConfig options ([#35231](https://github.com/nuxt/nuxt/pull/35231))
- Edit for clarity and grammar ([#35214](https://github.com/nuxt/nuxt/pull/35214))
### 🏡 Chore
- Use `execFileSync` for safety in release scripts ([1d7baaf01](https://github.com/nuxt/nuxt/commit/1d7baaf01))
- Assert there is always a tag ([e98c47c3c](https://github.com/nuxt/nuxt/commit/e98c47c3c))
- Add autofix action tag in comment ([ffa5c0098](https://github.com/nuxt/nuxt/commit/ffa5c0098))
- Fix type in test ([a549652e2](https://github.com/nuxt/nuxt/commit/a549652e2))
- Update renovate minimum release age ([d12d5e58a](https://github.com/nuxt/nuxt/commit/d12d5e58a))
- Fix lychee dynamic composable exclude ([#35119](https://github.com/nuxt/nuxt/pull/35119))
- Update lockfile ([91186dc51](https://github.com/nuxt/nuxt/commit/91186dc51))
- Lint ([dbc58965c](https://github.com/nuxt/nuxt/commit/dbc58965c))
### ✅ Tests
- Update test for js payload rendering ([bdcb81536](https://github.com/nuxt/nuxt/commit/bdcb81536))
- Cover add regression test for hmr in sibling local layers ([#35125](https://github.com/nuxt/nuxt/pull/35125))
- Improve reliability of hmr test ([1d709b3cc](https://github.com/nuxt/nuxt/commit/1d709b3cc))
### 🤖 CI
- Always run all tests for 4.x/3.x ([0dc4665cf](https://github.com/nuxt/nuxt/commit/0dc4665cf))
- Migrate from tibdex ([ded29dc0f](https://github.com/nuxt/nuxt/commit/ded29dc0f))
- Add zizmor github actions check ([#35089](https://github.com/nuxt/nuxt/pull/35089))
- Update to agentscan v1.8.0 ([#35120](https://github.com/nuxt/nuxt/pull/35120))
- Automatically close PRs from automated accounts ([#35161](https://github.com/nuxt/nuxt/pull/35161))
- Disable provenance-change enforcement in dependency-review ([a2cf43e68](https://github.com/nuxt/nuxt/commit/a2cf43e68))

### ❤️ Contributors
- Daniel Roe (@danielroe)
- David Stack (@davidstackio)
- David De Sloovere (@DavidDeSloovere)
- anton-gor-dev (@anton-gor-dev)
- Noah3521 (@Noah3521)
- Shahar Aviram (@ShaharAviram1)
- Matej Černý (@cernymatej)
- Mohit Kumar (@mohitkum4r)
- Matteo Gabriele (@MatteoGabriele)
- Julien Huang (@huang-julien)
- Damian Głowala (@DamianGlowala)

---

## v3.21.7 (nuxt/nuxt) - 2026-06-02

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

> 3.21.7 is the a security hotfix release.

👉 make sure to check https://github.com/nuxt/nuxt/security/advisories to view open advisories resolved by this release.

## 👉 Changelog

[compare changes](https://github.com/nuxt/nuxt/compare/v3.21.6...v3.21.7)
### 🩹 Fixes
- **nitro:** Assign `noSSR` before deciding payload extraction ([#35108](https://github.com/nuxt/nuxt/pull/35108))
- **vite:** Avoid filtering out dirs with shared prefix from `allowDirs` ([#35112](https://github.com/nuxt/nuxt/pull/35112))
- **nuxt:** Use resolve from `pathe` for buildCache path boundary check ([#35111](https://github.com/nuxt/nuxt/pull/35111))
- **nuxt:** Prevent sibling-directory traversal in test component wrapper ([#35110](https://github.com/nuxt/nuxt/pull/35110))
- **nitro:** Pass event data to `isValid` in dev clipboard-copy listener ([#35109](https://github.com/nuxt/nuxt/pull/35109))
- **nuxt:** Validate protocols in `reloadNuxtApp` path before reload ([#35115](https://github.com/nuxt/nuxt/pull/35115))
- **vite:** Resolve vite `clientServer` with `ssr: false` ([#34959](https://github.com/nuxt/nuxt/pull/34959))
- **vite:** Prefix public asset virtuals with null byte ([38d330179](https://github.com/nuxt/nuxt/commit/38d330179))
- **nuxt:** Handle missing payload in chunkError listener ([#35155](https://github.com/nuxt/nuxt/pull/35155))
- **vite:** Close vite dev server on nuxt close ([d007d7060](https://github.com/nuxt/nuxt/commit/d007d7060))
- **kit,nuxt:** Handle cancelling prompts to install packages ([59821a5ca](https://github.com/nuxt/nuxt/commit/59821a5ca))
- **nuxt:** Await in-lifght template generation when closing nuxt ([#35181](https://github.com/nuxt/nuxt/pull/35181))
- **webpack:** Surface compilation errors when stats.toString is empty ([71dccff2b](https://github.com/nuxt/nuxt/commit/71dccff2b))
- **kit:** Improve TS extension stripping/substitutions ([#35233](https://github.com/nuxt/nuxt/pull/35233))
- **nuxt:** Preserve `.d.mts`/`.d.cts` in `resolveTypePaths` ([#35235](https://github.com/nuxt/nuxt/pull/35235))
- **nuxt:** Reject prototype-chain keys in the island registry ([#35205](https://github.com/nuxt/nuxt/pull/35205))
- **nitro:** Gate chrome devtools workspace endpoint to local requests ([#35201](https://github.com/nuxt/nuxt/pull/35201))
- **nuxt:** Escape props in `<NuxtClientFallback>` ssr output ([#35199](https://github.com/nuxt/nuxt/pull/35199))
- **nuxt:** Apply `isScriptProtocol` guard to `navigateTo` open option ([#35206](https://github.com/nuxt/nuxt/pull/35206))
- **rspack,webpack:** Require loopback host when missing same-origin signals ([#35200](https://github.com/nuxt/nuxt/pull/35200))
- **nuxt:** Absolutely resolve `defu` in app config template ([40bedf0db](https://github.com/nuxt/nuxt/commit/40bedf0db))
- **nuxt:** Match route rules case-insensitively to mirror `vue-router` ([3f3e3fa7b](https://github.com/nuxt/nuxt/commit/3f3e3fa7b))
- **nuxt:** Escape `<NoScript>` slot content ([7fea9fd68](https://github.com/nuxt/nuxt/commit/7fea9fd68))
- **nuxt:** Block path-normalization open redirect in `navigateTo` ([1f2dd5e78](https://github.com/nuxt/nuxt/commit/1f2dd5e78))
- **nuxt:** Reject cross-origin paths in `reloadNuxtApp` ([6497d99dd](https://github.com/nuxt/nuxt/commit/6497d99dd))
- **vite:** Bind vite-node IPC to a permissioned filesystem socket ([c293bf950](https://github.com/nuxt/nuxt/commit/c293bf950))
- **nuxt:** Reject script-capable protocols in `<NuxtLink>` href ([53284043d](https://github.com/nuxt/nuxt/commit/53284043d))
- **nuxt:** Clarify page and layout usage warnings ([#35184](https://github.com/nuxt/nuxt/pull/35184))
- **nuxt:** Do not absolutely resolve `defu` ([d11d7b1b5](https://github.com/nuxt/nuxt/commit/d11d7b1b5))
### 📖 Documentation
- Edit for clarity and grammar ([#35214](https://github.com/nuxt/nuxt/pull/35214))
- Add dedicated module dependencies page ([#35171](https://github.com/nuxt/nuxt/pull/35171))
### 🏡 Chore
- Use `execFileSync` for safety in release scripts ([9a455a658](https://github.com/nuxt/nuxt/commit/9a455a658))
- Assert there is always a tag ([8da21fba8](https://github.com/nuxt/nuxt/commit/8da21fba8))
- Fix type in test ([bc2837125](https://github.com/nuxt/nuxt/commit/bc2837125))
- Fix lychee dynamic composable exclude ([#35119](https://github.com/nuxt/nuxt/pull/35119))
- Add autofix action tag in comment ([70eba297f](https://github.com/nuxt/nuxt/commit/70eba297f))
- Update renovate minimum release age ([27a6821a1](https://github.com/nuxt/nuxt/commit/27a6821a1))
### ✅ Tests
- Update test for js payload rendering ([b51a80840](https://github.com/nuxt/nuxt/commit/b51a80840))
- Improve reliability of hmr test ([0078499f0](https://github.com/nuxt/nuxt/commit/0078499f0))
### 🤖 CI
- Always run all tests for 4.x/3.x ([0519c0ade](https://github.com/nuxt/nuxt/commit/0519c0ade))
- Update to agentscan v1.8.0 ([#35120](https://github.com/nuxt/nuxt/pull/35120))
- Automatically close PRs from automated accounts ([#35161](https://github.com/nuxt/nuxt/pull/35161))
- Migrate from tibdex ([6277aedcb](https://github.com/nuxt/nuxt/commit/6277aedcb))
- Disable provenance-change enforcement in dependency-review ([1d4910eed](https://github.com/nuxt/nuxt/commit/1d4910eed))
- Add zizmor github actions check ([#35089](https://github.com/nuxt/nuxt/pull/35089))

### ❤️ Contributors
- Daniel Roe (@danielroe)
- Matej Černý (@cernymatej)
- anton-gor-dev (@anton-gor-dev)
- Julien Huang (@huang-julien)
- David Stack (@davidstackio)
- Noah3521 (@Noah3521)
- Matteo Gabriele (@MatteoGabriele)
- Mohit Kumar (@mohitkum4r)
- Florian Heuberger (@Flo0806)

---

## v4.0.0-alpha.7 (nuxt/devtools) - 2026-06-02

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

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

- **devtools**: Don't scope dock plugin with `{ server: false }` &nbsp;-&nbsp; by @antfu [<samp>(b2665)</samp>](https://github.com/nuxt/devtools/commit/b2665eb0)

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

---

## v4.0.0-alpha.6 (nuxt/devtools) - 2026-05-29

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

*No significant changes*

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

---

## v4.8.1 (nuxt/ui) - 2026-05-28

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

## :bug: Bug Fixes

* **ContentSearch/DashboardSearch:** proxy missing CommandPalette props ([#6505](https://github.com/nuxt/ui/issues/6505)) ([631f5dc](https://github.com/nuxt/ui/commit/631f5dc543fecaa36d5090a10a3db3223e9671b5))
* **Form:** add `method="post"` to prevent credential leaking via GET before hydration ([#6512](https://github.com/nuxt/ui/issues/6512)) ([7a0825a](https://github.com/nuxt/ui/commit/7a0825ad6a17627ce4c6dd860df3cebb7cf1d813))
* **Icon:** avoid recursive icon resolution ([#6495](https://github.com/nuxt/ui/issues/6495)) ([d50c121](https://github.com/nuxt/ui/commit/d50c121c05372082a7414d205d612513e89d3af7))
* **locale:** improve Thai translation accuracy and consistency ([#6509](https://github.com/nuxt/ui/issues/6509)) ([5d82418](https://github.com/nuxt/ui/commit/5d82418c56e956a9f1b684b48f9bf40197cdf3aa))
* **module:** expose component theme keys in AppConfig type ([#6520](https://github.com/nuxt/ui/issues/6520)) ([ffaf163](https://github.com/nuxt/ui/commit/ffaf163f77601015e4fa9e29bc18a33ca7dcb93d))
* **Select/SelectMenu/InputMenu:** add fallback for `max-height` ([#6503](https://github.com/nuxt/ui/issues/6503)) ([f4d7cbe](https://github.com/nuxt/ui/commit/f4d7cbe71f3cb62eaf8b92a4da73f115324fcf6a))

## :wave: Contributors

* @Akur1a
* @bansal
* @benjamincanac
* @maximepvrt
* @thanet-s

**Full Changelog**: https://github.com/nuxt/ui/compare/v4.8.0...v4.8.1

---

## v4.8.0 (nuxt/ui) - 2026-05-21

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

## ✨ Highlights

### 🎨 Theme component prop defaults

The [`Theme`](https://ui.nuxt.com/docs/components/theme#prop-defaults) component can now override **default prop values** for all descendant components. Pass a `props` object where keys are component names and values are their prop overrides:

```vue
<template>
  <UTheme
    :props="{
      tooltip: { delayDuration: 0, arrow: true },
      button: { color: 'neutral', variant: 'subtle', size: 'lg' },
      input: { size: 'lg' }
    }"
  >
    <UTooltip text="Tooltip">
      <UButton label="Save" />
    </UTooltip>

    <UInput placeholder="Search..." />
  </UTheme>
</template>
```

Explicit props on a component always take priority. Theme components can be nested (innermost wins) and propagate through the entire tree via `provide` / `inject`.

### 🔍 ContentSearch async search

The [`ContentSearch`](https://ui.nuxt.com/docs/components/content-search#search) component now supports [FTS5 full-text search](https://www.sqlite.org/fts5.html) via the new `search` prop and the [`useSearchCollection`](https://content.nuxt.com/docs/utils/use-search-collection) composable ([nuxt/content#3787](https://github.com/nuxt/content/pull/3787), released in [`@nuxt/content` v3.14.0](https://github.com/nuxt/content/releases/tag/v3.14.0)). Instead of loading all content upfront with `files` and filtering client-side with Fuse.js, you can now run async queries with highlighted snippets:

```vue
<script setup lang="ts">
const { search, status, init } = useSearchCollection('content', {
  immediate: false,
  ignoredTags: ['style']
})

const { open } = useContentSearch()

watch(open, (value) => {
  if (value && status.value === 'idle') {
    init()
  }
})
</script>

<template>
  <UContentSearch :search="search" :search-status="status" />
</template>
```

> You can check out the new search on https://ui.nuxt.com or https://nuxt.com.

## 🚨 Breaking Changes

* **InputMenu:** rename `autocomplete` prop to `mode` to free up HTML attribute (#6474)

The boolean `autocomplete` prop introduced in [v4.6.0](https://github.com/nuxt/ui/releases/tag/v4.6.0) collided with the standard HTML `autocomplete` attribute used for browser autofill (`address-line1`, `one-time-code`, `email`, etc.). It has been renamed to `mode` which accepts `'combobox' | 'autocomplete'` (defaults to `combobox`). The HTML `autocomplete` attribute now falls through to the inner input like other form components.

```diff
- <UInputMenu autocomplete :items="items" />
+ <UInputMenu mode="autocomplete" :items="items" />
```

## 🚀 Features

* **Avatar/AvatarGroup:** add `color` prop (#6405) (6f2396f)
* **Breadcrumb:** add `color` prop (#6406) (955dac1)
* **ChatMessage:** add `body` slot and improve actions alignment (#6460) (48685b6)
* **ChatMessage:** add `color` prop and `header` slot (#6407) (c6ce8ca)
* **ChatPrompt:** add `submitOnEnter` prop to control Enter behavior (b597f90)
* **Checkbox/RadioGroup/Switch:** add `highlight` prop for error ring styling (a0deee4)
* **CommandPalette:** search and highlight description field (524c34d)
* **ContentSearch/DashboardSearch:** enable Fuse.js token search by default (ba08220)
* **ContentSearch:** add async search support via `useSearchCollection` (#6432) (a1bef8b)
* **DashboardGroup:** add `storageOptions` prop (8f0101b)
* **Error:** add `icon` prop and `leading` slot (e6ea707)
* **Separator:** add `position` prop (#6415) (844660a)
* **Theme:** override component prop defaults (#6031) (71c008e)

## 🐛 Bug Fixes

* **ChatMessage:** add `wrap-break-word` to content slot (#6476) (eb468e6)
* **CommandPalette:** only split tokens in highlight when `useTokenSearch` is enabled (898fbce)
* **CommandPalette:** preserve relative order of ignoreFilter groups (e4c1787)
* **CommandPalette:** re-highlight first item after debounced results render (efd7b8e)
* **CommandPalette:** update default fuse keys in docs and search components (0d9cc0d)
* **components:** apply `theme.prefix` to hardcoded utility classes (f51b1e8)
* **components:** constrain popper content to available viewport height (007b136)
* **ContentSearch:** preserve intermediate ancestors in breadcrumb prefix (#6466) (f639b19)
* **ContentToc:** apply `ui.trigger` prop to trigger elements (252b906)
* **defineShortcuts:** use `e.code` for alt shortcuts to handle macOS key remapping (231f156)
* **FileUpload:** pass `disabled` attribute to button variant (2890c83)
* **Form:** improve errors type (#6208) (c1090ab)
* **InputMenu/Select/SelectMenu:** respect `trailing: false` over default `trailingIcon` (#6457) (65b47ce)
* **InputMenu:** rename `autocomplete` prop to `mode` to free up HTML attribute (#6474) (2799fa6)
* **module:** don't require `@nuxtjs/mdc` when using `content` option (89f7778)
* **module:** pass computed ref directly to useHead innerHTML (00b7476)
* **module:** ship stripped `#build/ui.css` fallback for tooling (083c2a9)
* **ProseKbd:** add default slot and make `value` optional (f317c7f)
* **Textarea:** autoresize on mount with pre-filled value (e96a0b6)
* **useComponentProps:** treat array-typed theme values as `ClassValue` leaves (cac3860)

## 👋 Contributors

* @benjamincanac
* @Bobakanoosh
* @maximepvrt
* @zAlweNy26
* @Akur1a

**Full Changelog**: https://github.com/nuxt/ui/compare/v4.7.1...v4.8.0

---

## v1.1.1 (nuxt/scripts) - 2026-05-21

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

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

- **security**:
  - Allow opting out of proxy page token in SSR payload &nbsp;-&nbsp; by @harlan-zw in https://github.com/nuxt/scripts/issues/789 [<samp>(4738a)</samp>](https://github.com/nuxt/scripts/commit/4738a27)
  - Allow disabling proxy signing with `security: false` &nbsp;-&nbsp; by @harlan-zw in https://github.com/nuxt/scripts/issues/790 [<samp>(dc11a)</samp>](https://github.com/nuxt/scripts/commit/dc11ae0)
- **tiktok-pixel**:
  - Use TikTok's array snippet protocol &nbsp;-&nbsp; by @harlan-zw in https://github.com/nuxt/scripts/issues/786 [<samp>(f46cc)</samp>](https://github.com/nuxt/scripts/commit/f46ccb6)

##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/nuxt/scripts/compare/v1.1.0...v1.1.1)

---

## v1.1.2 (nuxt/hints) - 2026-05-18

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

### 🚀 Enhancements

- **rpc:** Implement wrapBroadcast function to enhance RPC error handling ([#343](https://github.com/nuxt/hints/pull/343))

### ❤️ Contributors

- Julien Huang ([@huang-julien](https://github.com/huang-julien))

---

## v3.14.0 (nuxt/content) - 2026-05-18

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

### 🚀 Features

- **search**:
  - Add `useSearchCollection` composable with FTS5 full-text search - by @benjamincanac and @atinux in https://github.com/nuxt/content/issues/3787 [<samp>(2a1a5)</samp>](https://github.com/nuxt/content/commit/2a1a585a)
- **types**:
  - Add custom properties on ContentConfig - by @TotomInc in https://github.com/nuxt/content/issues/3761 [<samp>(ea196)</samp>](https://github.com/nuxt/content/commit/ea196c54)
  - Add NOT IN to SQLOperator type - by @surohak in https://github.com/nuxt/content/issues/3785 [<samp>(ab88e)</samp>](https://github.com/nuxt/content/commit/ab88eb3c)

### 🐞 Bug Fixes

- **docs**: Update Nuxt version from 3 to 4 in template features - by @rudrokhanpro in https://github.com/nuxt/content/issues/3780 [<samp>(1f240)</samp>](https://github.com/nuxt/content/commit/1f24029b)
- **path-meta**: Slugify options did not pass to transformer - by @farnabaz in https://github.com/nuxt/content/issues/3794 [<samp>(778d7)</samp>](https://github.com/nuxt/content/commit/778d7dbb)
- **preview**: Skip collections without source in preview template - by @humanbird and @larbish in https://github.com/nuxt/content/issues/3771 [<samp>(8aabe)</samp>](https://github.com/nuxt/content/commit/8aabefd2)

##### [View changes on GitHub](https://github.com/nuxt/content/compare/v3.13.0...v3.14.0)

---

## v4.4.6 (nuxt/nuxt) - 2026-05-18

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

> 4.4.6 is the next patch release.


## 👉 Changelog

[compare changes](https://github.com/nuxt/nuxt/compare/v4.4.5...v4.4.6)
### 🩹 Fixes
- **vite:** Use spa entry for vite-node fallback ([#35037](https://github.com/nuxt/nuxt/pull/35037))
- **vite:** Invalidate SSR module cache when modules are invalidated via plugin hooks ([a86657a0e](https://github.com/nuxt/nuxt/commit/a86657a0e))
- **nuxt:** Match deduplicated `resolveComponent` calls in jsx blocks ([#35028](https://github.com/nuxt/nuxt/pull/35028))
- **nuxt:** Prefer our own builder/server deps ([#35029](https://github.com/nuxt/nuxt/pull/35029))
- **nuxt:** Update `useFetch` key even with `watch: false` ([#35002](https://github.com/nuxt/nuxt/pull/35002))
- **nitro:** Mark `@babel/plugin-syntax-typescript` as optional peer dep ([#35041](https://github.com/nuxt/nuxt/pull/35041))
- **nitro:** Add json extension to payload cache items ([#35043](https://github.com/nuxt/nuxt/pull/35043))
- **nuxt:** Handle errors fetching app manifest ([#35050](https://github.com/nuxt/nuxt/pull/35050))
- **nuxt:** Encode html-significant characters in external redirect body ([#35052](https://github.com/nuxt/nuxt/pull/35052))
- **nuxt:** Preserve `setPageLayout` props on same-path navigation ([#35055](https://github.com/nuxt/nuxt/pull/35055))
- **vite:** Don't strip buildAssetsDir from vite-node SSR ids ([#35040](https://github.com/nuxt/nuxt/pull/35040))
- **nuxt:** Mark `useLoadingIndicator` properties as readonly ([#35062](https://github.com/nuxt/nuxt/pull/35062))
- **vite:** Strip queries in css inline styles map ([#35067](https://github.com/nuxt/nuxt/pull/35067))
- **nitro:** Validate island request hash matches props ([#35077](https://github.com/nuxt/nuxt/pull/35077))
- **nitro:** Use regexp to strip query ([163e18d4b](https://github.com/nuxt/nuxt/commit/163e18d4b))
- **nitro:** Use `statusCode` for nitro v2 compatibility ([952f6841e](https://github.com/nuxt/nuxt/commit/952f6841e))
- **nitro-server:** Re-export h3 named symbols statically ([cd99001c8](https://github.com/nuxt/nuxt/commit/cd99001c8))
- **nuxt:** Render component-less parent routes during client-side nav ([#35036](https://github.com/nuxt/nuxt/pull/35036))
- **kit:** Respect `tsConfig.exclude` in legacy `tsconfig.json` ([#35079](https://github.com/nuxt/nuxt/pull/35079))
- **nuxt:** Run middleware for page islands ([#35092](https://github.com/nuxt/nuxt/pull/35092))
### 💅 Refactors
- **rspack,webpack:** Extract same-origin check for dev middleware ([#35051](https://github.com/nuxt/nuxt/pull/35051))
### 📖 Documentation
- Remove CSB, set node 22 and use steps for clarity ([#35066](https://github.com/nuxt/nuxt/pull/35066))
### 🏡 Chore
- One more type, one more ([50dcf15bb](https://github.com/nuxt/nuxt/commit/50dcf15bb))
- Remove unneeded (?) overrides ([6997093af](https://github.com/nuxt/nuxt/commit/6997093af))
- Use explicit versions for fixture dependencies ([294a734d4](https://github.com/nuxt/nuxt/commit/294a734d4))
- Ignore link-like syntax in code ([2584a549c](https://github.com/nuxt/nuxt/commit/2584a549c))
- Narrow engines.node in test ([5bb17fb47](https://github.com/nuxt/nuxt/commit/5bb17fb47))
- Remove unused import ([a52d78626](https://github.com/nuxt/nuxt/commit/a52d78626))
### ✅ Tests
- Relax relative time assertion ([c3dcd16f9](https://github.com/nuxt/nuxt/commit/c3dcd16f9))
- Add type ([732d844ad](https://github.com/nuxt/nuxt/commit/732d844ad))
- Drop h3 v2 types ([8286e5fcd](https://github.com/nuxt/nuxt/commit/8286e5fcd))
### 🤖 CI
- Clean up agent-scan workflow ([ab8317547](https://github.com/nuxt/nuxt/commit/ab8317547))
- Continue autofix workflow when `test:engines` fails ([3025e561e](https://github.com/nuxt/nuxt/commit/3025e561e))
- Improve workflows ([#35088](https://github.com/nuxt/nuxt/pull/35088))

### ❤️ Contributors
- Daniel Roe (@danielroe)
- Tim (@timhn-bm)
- Julien Huang (@huang-julien)
- Damian Głowala (@DamianGlowala)
- Sébastien Chopin (@atinux)
- Adrien Foulon (@Tofandel)
- Sami El Achi (@samiashi)

---

## v3.21.6 (nuxt/nuxt) - 2026-05-18

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

> 3.21.6 is the next patch release.

## 👉 Changelog

[compare changes](https://github.com/nuxt/nuxt/compare/v3.21.5...v3.21.6)
### 🩹 Fixes
- **nuxt:** Prefer our own builder/server deps ([#35029](https://github.com/nuxt/nuxt/pull/35029))
- **nitro:** Add json extension to payload cache items ([#35043](https://github.com/nuxt/nuxt/pull/35043))
- **nuxt:** Handle errors fetching app manifest ([#35050](https://github.com/nuxt/nuxt/pull/35050))
- **nuxt:** Preserve `setPageLayout` props on same-path navigation ([#35055](https://github.com/nuxt/nuxt/pull/35055))
- **vite:** Don't strip buildAssetsDir from vite-node SSR ids ([#35040](https://github.com/nuxt/nuxt/pull/35040))
- **nuxt:** Mark `useLoadingIndicator` properties as readonly ([#35062](https://github.com/nuxt/nuxt/pull/35062))
- **vite:** Strip queries in css inline styles map ([#35067](https://github.com/nuxt/nuxt/pull/35067))
- **nuxt:** Encode html-significant characters in external redirect body ([#35052](https://github.com/nuxt/nuxt/pull/35052))
- **nitro:** Validate island request hash matches props ([#35077](https://github.com/nuxt/nuxt/pull/35077))
- **nitro:** Use regexp to strip query ([042b615e6](https://github.com/nuxt/nuxt/commit/042b615e6))
- **nitro:** Use `statusCode` for nitro v2 compatibility ([82dcd6a31](https://github.com/nuxt/nuxt/commit/82dcd6a31))
- **nuxt:** Render component-less parent routes during client-side nav ([#35036](https://github.com/nuxt/nuxt/pull/35036))
- **nuxt:** Run middleware for page islands ([#35092](https://github.com/nuxt/nuxt/pull/35092))
### 💅 Refactors
- **rspack,webpack:** Extract same-origin check for dev middleware ([#35051](https://github.com/nuxt/nuxt/pull/35051))
### 📖 Documentation
- Remove CSB, set node 22 and use steps for clarity ([#35066](https://github.com/nuxt/nuxt/pull/35066))
### 🏡 Chore
- Ignore link-like syntax in code ([f9bf11b11](https://github.com/nuxt/nuxt/commit/f9bf11b11))
- Narrow engines.node in test ([5ed9a2691](https://github.com/nuxt/nuxt/commit/5ed9a2691))
- Remove unused import ([3a8bb0030](https://github.com/nuxt/nuxt/commit/3a8bb0030))
### ✅ Tests
- Relax relative time assertion ([256513eb0](https://github.com/nuxt/nuxt/commit/256513eb0))
- Move build assets dir fixture out of `app/` ([6d2ac69ff](https://github.com/nuxt/nuxt/commit/6d2ac69ff))
### 🤖 CI
- Clean up agent-scan workflow ([31590cf07](https://github.com/nuxt/nuxt/commit/31590cf07))
- Continue autofix workflow when `test:engines` fails ([958abb882](https://github.com/nuxt/nuxt/commit/958abb882))
- Improve workflows ([#35088](https://github.com/nuxt/nuxt/pull/35088))

### ❤️ Contributors
- Daniel Roe (@danielroe)
- Julien Huang (@huang-julien)
- Damian Głowala (@DamianGlowala)
- Sébastien Chopin (@atinux)
- Adrien Foulon (@Tofandel)

---

## v1.1.0 (nuxt/scripts) - 2026-05-14

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

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

- LinkedIn Insight Tag &nbsp;-&nbsp; by @zizzfizzix in https://github.com/nuxt/scripts/issues/741 [<samp>(fb922)</samp>](https://github.com/nuxt/scripts/commit/fb92206)
- Ahrefs Web Analytics &nbsp;-&nbsp; by @harlan-zw in https://github.com/nuxt/scripts/issues/751 [<samp>(ceb4b)</samp>](https://github.com/nuxt/scripts/commit/ceb4ba0)
- Usercentrics CMP &nbsp;-&nbsp; by @harlan-zw in https://github.com/nuxt/scripts/issues/749 [<samp>(d2114)</samp>](https://github.com/nuxt/scripts/commit/d2114c5)
- Calendly &nbsp;-&nbsp; by @harlan-zw in https://github.com/nuxt/scripts/issues/750 [<samp>(e8524)</samp>](https://github.com/nuxt/scripts/commit/e852443)
- Build-time debug flag with script-lifecycle tracing &nbsp;-&nbsp; by @harlan-zw in https://github.com/nuxt/scripts/issues/760 [<samp>(f6c25)</samp>](https://github.com/nuxt/scripts/commit/f6c25a5)
- Warn on misconfigured NUXT_PUBLIC_SCRIPTS_* env vars &nbsp;-&nbsp; by @harlan-zw in https://github.com/nuxt/scripts/issues/778 [<samp>(05d32)</samp>](https://github.com/nuxt/scripts/commit/05d3250)
- Env-var overrides for scripts.globals (single-build, multi-deploy) &nbsp;-&nbsp; by @harlan-zw in https://github.com/nuxt/scripts/issues/780 [<samp>(88869)</samp>](https://github.com/nuxt/scripts/commit/8886903)
- **gtm,ga**: Consent.default() + strict GCMv2 validation &nbsp;-&nbsp; by @harlan-zw in https://github.com/nuxt/scripts/issues/772 [<samp>(6f74a)</samp>](https://github.com/nuxt/scripts/commit/6f74a6c)
- **tiktokPixel**: Production hardening - region, CAPI dedup, advanced matching &nbsp;-&nbsp; by @harlan-zw in https://github.com/nuxt/scripts/issues/776 [<samp>(c5b69)</samp>](https://github.com/nuxt/scripts/commit/c5b6905)

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

- Add `--pnpm` flag to `pkg-pr-new publish` command in nightly workflow &nbsp;-&nbsp; by @DamianGlowala and **Damian Głowala** in https://github.com/nuxt/scripts/issues/755 [<samp>(53810)</samp>](https://github.com/nuxt/scripts/commit/53810dd)
- Validate required registry fields after runtime merge &nbsp;-&nbsp; by @tsukiyama-3 and @harlan-zw in https://github.com/nuxt/scripts/issues/762 [<samp>(61293)</samp>](https://github.com/nuxt/scripts/commit/6129314)
- **assets**:
  - Set js content-type on dev bundled asset handler &nbsp;-&nbsp; by @harlan-zw in https://github.com/nuxt/scripts/issues/748 [<samp>(6ddc9)</samp>](https://github.com/nuxt/scripts/commit/6ddc9f6)
- **google-maps**:
  - Avoid recentering on inline options &nbsp;-&nbsp; by @harlan-zw in https://github.com/nuxt/scripts/issues/747 [<samp>(65c3b)</samp>](https://github.com/nuxt/scripts/commit/65c3b56)
- **googleTagManager**:
  - Push consent as arguments to dataLayer &nbsp;-&nbsp; by @buffalom and **motion-work** in https://github.com/nuxt/scripts/issues/771 [<samp>(fc398)</samp>](https://github.com/nuxt/scripts/commit/fc3981b)
- **plausible**:
  - Honor scriptInput.src in bundle.resolve for self-hosted &nbsp;-&nbsp; by @harlan-zw in https://github.com/nuxt/scripts/issues/775 [<samp>(fb50b)</samp>](https://github.com/nuxt/scripts/commit/fb50b0a)
- **proxy**:
  - Allow `region1.google-analytics.com` &nbsp;-&nbsp; by @captnCC in https://github.com/nuxt/scripts/issues/753 [<samp>(58f81)</samp>](https://github.com/nuxt/scripts/commit/58f81ad)
  - Surface upstream error cause and distinguish timeouts &nbsp;-&nbsp; by @harlan-zw in https://github.com/nuxt/scripts/issues/757 [<samp>(0cb62)</samp>](https://github.com/nuxt/scripts/commit/0cb62af)
- **tiktokPixel**:
  - Missing types &nbsp;-&nbsp; by @harlan-zw in https://github.com/nuxt/scripts/issues/773 [<samp>(f73a0)</samp>](https://github.com/nuxt/scripts/commit/f73a0ce)

##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/nuxt/scripts/compare/v1.0.6...v1.1.0)

---

## v4.4.5 (nuxt/nuxt) - 2026-05-10

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

> 4.4.5 is the next patch release.


## 👉 Changelog

[compare changes](https://github.com/nuxt/nuxt/compare/v4.4.4...v4.4.5)
### 🔥 Performance
- **kit:** Cache layer roots and short-circuit `isIgnored` relative ([#35015](https://github.com/nuxt/nuxt/pull/35015))
### 🩹 Fixes
- **vite:** Resolve vite `clientServer` with `ssr: false` ([#34959](https://github.com/nuxt/nuxt/pull/34959))
- **nitro:** Correct payload route rule for `/` + override `ssr: true` ([#34990](https://github.com/nuxt/nuxt/pull/34990))
- **nitro:** Break recursive rendering deadlocks during prerender ([#34939](https://github.com/nuxt/nuxt/pull/34939))
- **vite:** Drop redundant css link when entry styles are inlined ([#34950](https://github.com/nuxt/nuxt/pull/34950))
- **vite:** Sort `optimizeDeps.include` in pre-bundle hint ([#34976](https://github.com/nuxt/nuxt/pull/34976))
- **nuxt:** Only force suspense remount after first resolve ([#34949](https://github.com/nuxt/nuxt/pull/34949))
- **kit:** Read `.env` before resolving nuxt schema ([#34958](https://github.com/nuxt/nuxt/pull/34958))
- **nitro:** Preserve `serverHandlers` array after `nitro:config` ([#34985](https://github.com/nuxt/nuxt/pull/34985))
- **nuxt:** Cast partial nitro handlers when prepending to server arrays ([61dcde4db](https://github.com/nuxt/nuxt/commit/61dcde4db))
- **vite:** Only consider CSS inlined when styles are actually emitted ([#35006](https://github.com/nuxt/nuxt/pull/35006))
- **nuxt:** Dedupe `getCachedData` for concurrent callers sharing a key ([#34999](https://github.com/nuxt/nuxt/pull/34999))
- **nuxt:** Respect factory fetch/baseURL options in server `useFetch` ([#35003](https://github.com/nuxt/nuxt/pull/35003))
- **nuxt:** Handle string presets in auto-imports ([#35013](https://github.com/nuxt/nuxt/pull/35013))
- **nuxt:** Correct island transform for server pages and 'deep' mode ([#35005](https://github.com/nuxt/nuxt/pull/35005))
- **vite:** Inline css for non-island children of server components ([#35001](https://github.com/nuxt/nuxt/pull/35001))
- **nuxt:** Defer head DOM updates until page transition finishes ([#35016](https://github.com/nuxt/nuxt/pull/35016))
- **nuxt:** Explicitly freeze head during island plugin phase ([#35010](https://github.com/nuxt/nuxt/pull/35010))
- **vite:** Inline css imported from non-vue js modules ([#35020](https://github.com/nuxt/nuxt/pull/35020))
### 📖 Documentation
- Add warning about routing in server components ([#34994](https://github.com/nuxt/nuxt/pull/34994))
### 🏡 Chore
- Fix lockfile ([c3ee07801](https://github.com/nuxt/nuxt/commit/c3ee07801))
- Pin `jiti` ([c8102228f](https://github.com/nuxt/nuxt/commit/c8102228f))
- Lint ([39422b6d2](https://github.com/nuxt/nuxt/commit/39422b6d2))
- Pin `@vue/compiler-sfc` ([cd404a14c](https://github.com/nuxt/nuxt/commit/cd404a14c))
- Ignore pnpm cyclic workspace deps warn ([#34998](https://github.com/nuxt/nuxt/pull/34998))
- Remove jiti from build steps ([#35004](https://github.com/nuxt/nuxt/pull/35004))
### ✅ Tests
- Extract server components fixture + add some failing tests ([#34995](https://github.com/nuxt/nuxt/pull/34995))
- Isolate `buildDir` per matrix project for shared fixtures ([#35007](https://github.com/nuxt/nuxt/pull/35007))
- Remove tests for 5.x runtimeBaseURL fature ([816c25487](https://github.com/nuxt/nuxt/commit/816c25487))

### ❤️ Contributors
- Daniel Roe (@danielroe)
- Harlan Wilton (@harlan-zw)
- Jonazzzz (@Bombastickj)
- Damian Głowala (@DamianGlowala)
- Florian Heuberger (@Flo0806)

---

## v3.21.5 (nuxt/nuxt) - 2026-05-10

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

> 3.21.5 is the next patch release.



## 👉 Changelog

[compare changes](https://github.com/nuxt/nuxt/compare/v3.21.4...v3.21.5)
### 🔥 Performance
- **kit:** Cache layer roots and short-circuit `isIgnored` relative ([#35015](https://github.com/nuxt/nuxt/pull/35015))
### 🩹 Fixes
- **nitro:** Correct payload route rule for `/` + override `ssr: true` ([#34990](https://github.com/nuxt/nuxt/pull/34990))
- **nitro:** Break recursive rendering deadlocks during prerender ([#34939](https://github.com/nuxt/nuxt/pull/34939))
- **vite:** Drop redundant css link when entry styles are inlined ([#34950](https://github.com/nuxt/nuxt/pull/34950))
- **nuxt:** Only force suspense remount after first resolve ([#34949](https://github.com/nuxt/nuxt/pull/34949))
- **kit:** Read `.env` before resolving nuxt schema ([#34958](https://github.com/nuxt/nuxt/pull/34958))
- **nitro:** Preserve `serverHandlers` array after `nitro:config` ([#34985](https://github.com/nuxt/nuxt/pull/34985))
- **vite:** Only consider CSS inlined when styles are actually emitted ([#35006](https://github.com/nuxt/nuxt/pull/35006))
- **nuxt:** Handle string presets in auto-imports ([#35013](https://github.com/nuxt/nuxt/pull/35013))
- **nuxt:** Correct island transform for server pages and 'deep' mode ([#35005](https://github.com/nuxt/nuxt/pull/35005))
- **vite:** Inline css for non-island children of server components ([#35001](https://github.com/nuxt/nuxt/pull/35001))
- **nuxt:** Defer head DOM updates until page transition finishes ([#35016](https://github.com/nuxt/nuxt/pull/35016))
- **nuxt:** Explicitly freeze head during island plugin phase ([#35010](https://github.com/nuxt/nuxt/pull/35010))
- **vite:** Inline css imported from non-vue js modules ([#35020](https://github.com/nuxt/nuxt/pull/35020))
- **nitro:** Remove unused middleware ([fe857d36b](https://github.com/nuxt/nuxt/commit/fe857d36b))
### 📖 Documentation
- Add warning about routing in server components ([#34994](https://github.com/nuxt/nuxt/pull/34994))
### 🏡 Chore
- Ignore pnpm cyclic workspace deps warn ([#34998](https://github.com/nuxt/nuxt/pull/34998))
- Remove jiti from build steps ([#35004](https://github.com/nuxt/nuxt/pull/35004))
- Fix lockfile ([48e56a509](https://github.com/nuxt/nuxt/commit/48e56a509))
- **nuxt:** Cast to nitro event handler type ([5b358ca19](https://github.com/nuxt/nuxt/commit/5b358ca19))
### ✅ Tests
- Extract server components fixture + add some failing tests ([#34995](https://github.com/nuxt/nuxt/pull/34995))
- Isolate `buildDir` per matrix project for shared fixtures ([#35007](https://github.com/nuxt/nuxt/pull/35007))
- Split env testing into separate file ([fd4019cf8](https://github.com/nuxt/nuxt/commit/fd4019cf8))
- Use 3.x style tsconfig ([86625efad](https://github.com/nuxt/nuxt/commit/86625efad))
- Use more 3.x style tsconfigs ([4a9bde3f3](https://github.com/nuxt/nuxt/commit/4a9bde3f3))
- Correct import path ([133d5f6d7](https://github.com/nuxt/nuxt/commit/133d5f6d7))
- Update snapshots ([9fc42f788](https://github.com/nuxt/nuxt/commit/9fc42f788))

### ❤️ Contributors
- Daniel Roe (@danielroe)
- Harlan Wilton (@harlan-zw)
- Jonazzzz (@Bombastickj)
- Damian Głowala (@DamianGlowala)
- Florian Heuberger (@Flo0806)

---

## v1.1.1 (nuxt/hints) - 2026-05-05

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

### 🩹 Fixes

- **module:** Make features config partial to allow selective overrides ([#331](https://github.com/nuxt/hints/pull/331))

### ❤️ Contributors

- Benjamin Canac ([@benjamincanac](https://github.com/benjamincanac))

---

## v2.2.2 (nuxt/icon) - 2026-05-04

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

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

- Detect package manager for missing collection install suggestion &nbsp;-&nbsp; by @arashsheyda in https://github.com/nuxt/icon/issues/474 [<samp>(50c3b)</samp>](https://github.com/nuxt/icon/commit/50c3b35)
- Detect installed collections from Nuxt rootDir/workspaceDir &nbsp;-&nbsp; by @benjamincanac in https://github.com/nuxt/icon/issues/477 [<samp>(90faf)</samp>](https://github.com/nuxt/icon/commit/90fafa3)

##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/nuxt/icon/compare/v2.2.1...v2.2.2)

---

## v1.1.0 (nuxt/hints) - 2026-05-03

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

### 🩹 Fixes

- Respect app.baseURL in devtools iframe src ([#322](https://github.com/nuxt/hints/pull/322))

### 💅 Refactors

- Move SSE to devtools RPC ([#314](https://github.com/nuxt/hints/pull/314))
- Move SSE to devtools RPC ([#318](https://github.com/nuxt/hints/pull/318))

### ❤️ Contributors

- Julien Huang ([@huang-julien](https://github.com/huang-julien))
- Fabian Kirchhoff ([@fabkho](https://github.com/fabkho))

---

## v1.0.6 (nuxt/scripts) - 2026-05-03

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

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

- **google-analytics, google-tag-manager**: Per-region consent defaults &nbsp;-&nbsp; by @zizzfizzix in https://github.com/nuxt/scripts/issues/739 [<samp>(ada74)</samp>](https://github.com/nuxt/scripts/commit/ada747d)
- **google-maps**: Avoid recentering google maps on inline options &nbsp;-&nbsp; by @harlan-zw in https://github.com/nuxt/scripts/issues/740 [<samp>(ab1d5)</samp>](https://github.com/nuxt/scripts/commit/ab1d5e8)

##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/nuxt/scripts/compare/v1.0.5...v1.0.6)

---

## v1.0.5 (nuxt/scripts) - 2026-05-01

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

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

- **google-maps**: Detach overlay element on unmount &nbsp;-&nbsp; by @harlan-zw in https://github.com/nuxt/scripts/issues/736 [<samp>(49b54)</samp>](https://github.com/nuxt/scripts/commit/49b5416)
- **google-sign-in**: Initialize/renderButton/prompt helpers &nbsp;-&nbsp; by @harlan-zw in https://github.com/nuxt/scripts/issues/734 [<samp>(ecd1b)</samp>](https://github.com/nuxt/scripts/commit/ecd1bec)

##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/nuxt/scripts/compare/v1.0.4...v1.0.5)

---

## v4.4.3/4.4.4 (nuxt/nuxt) - 2026-04-29

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

> 4.4.3 is the next patch release. v4.4.4 was published with no changes due to an issue running the release script for v4.4.3.

## 👉 Changelog

[compare changes](https://github.com/nuxt/nuxt/compare/v4.4.2...v4.4.3)
### 🔥 Performance
- **nitro:** Directly import nuxt package version ([#34567](https://github.com/nuxt/nuxt/pull/34567))
- **vite,webpack:** Use vfs for manifest + vite node server ([#34666](https://github.com/nuxt/nuxt/pull/34666))
- **nuxt:** Clean-up build hooks + emit gc'd snapshots ([#34587](https://github.com/nuxt/nuxt/pull/34587))
- **nuxt:** Skip key watcher when useAsyncData key is static ([#34620](https://github.com/nuxt/nuxt/pull/34620))
- **kit:** Parallelise module load + cache jiti instances ([#34842](https://github.com/nuxt/nuxt/pull/34842))
- **nuxt:** Batch-resolve typescript hoist paths with cached base roots ([#34862](https://github.com/nuxt/nuxt/pull/34862))
### 🩹 Fixes
- **nuxt:** Handle negative zero in getUserTrace slice boundary ([#34524](https://github.com/nuxt/nuxt/pull/34524))
- **nuxt:** Signal error state and clear timers in loading indicator cleanup ([#34523](https://github.com/nuxt/nuxt/pull/34523))
- **nuxt:** Fix broken hook cleanup in route announcer ([#34525](https://github.com/nuxt/nuxt/pull/34525))
- **nuxt:** Filter `clearNuxtState` key enumeration by useState prefix ([#34541](https://github.com/nuxt/nuxt/pull/34541))
- **nuxt:** Correct `useFetch` `cache` options type ([#34551](https://github.com/nuxt/nuxt/pull/34551))
- **nuxt:** Prevent in-flight requests from overwriting cleared async data ([#34553](https://github.com/nuxt/nuxt/pull/34553))
- **nuxt:** Check response status before parsing payload ([#34555](https://github.com/nuxt/nuxt/pull/34555))
- **nuxt:** Handle TS type assertions on member expression callees in keyed functions parser ([#34558](https://github.com/nuxt/nuxt/pull/34558))
- **nuxt:** Use comment as client component placeholder ([#33466](https://github.com/nuxt/nuxt/pull/33466))
- **nitro:** Resolve h3 export path in nitro vfs ([#34566](https://github.com/nuxt/nuxt/pull/34566))
- **nuxt:** Use factory resolved options everywhere in `useFetch` ([#34568](https://github.com/nuxt/nuxt/pull/34568))
- **nitro:** Use hash-based cache for dev payloads ([#34569](https://github.com/nuxt/nuxt/pull/34569))
- **nuxt:** Await parcel watcher subscription before registering close hook ([#34573](https://github.com/nuxt/nuxt/pull/34573))
- **nuxt:** Self-remove hydration error guards after first navigation ([#34572](https://github.com/nuxt/nuxt/pull/34572))
- **nuxt:** Mark portal properties as configurable ([#34574](https://github.com/nuxt/nuxt/pull/34574))
- **nuxt:** Retry manifest fetch after transient failure ([#34570](https://github.com/nuxt/nuxt/pull/34570))
- **kit:** Add PackagePreset type to addImportsSources ([#34582](https://github.com/nuxt/nuxt/pull/34582))
- **nuxt:** Avoid any return type from `callHookWith` in `vue:setup` ([#34584](https://github.com/nuxt/nuxt/pull/34584))
- **nuxt:** Strip DevOnly components with attributes in production builds ([#34585](https://github.com/nuxt/nuxt/pull/34585))
- **nuxt:** Move parcel watcher debug timer outside subscription loop ([#34590](https://github.com/nuxt/nuxt/pull/34590))
- **nuxt:** Preserve falsy prop values in `NuxtTime` data attribute serialization ([#34600](https://github.com/nuxt/nuxt/pull/34600))
- **nuxt:** Clear cached rejected promise in `callOnce` ([#34614](https://github.com/nuxt/nuxt/pull/34614))
- **nuxt:** Correct useAsyncData key type ([#34599](https://github.com/nuxt/nuxt/pull/34599))
- **nitro:** Set `__buildAssetsURL` before server entry import ([#34607](https://github.com/nuxt/nuxt/pull/34607))
- **nuxt:** Use consistent `[nuxt]` prefix in console warnings ([#34668](https://github.com/nuxt/nuxt/pull/34668))
- **vite:** Remove obsolete `writeDevServer` + handle vite-node precomputed ([f8e49b71b](https://github.com/nuxt/nuxt/commit/f8e49b71b))
- **nuxt:** Update impound protection for `nitro/*` ([ac9e25b8c](https://github.com/nuxt/nuxt/commit/ac9e25b8c))
- **nuxt,schema:** Allow disabling clearing build hooks ([#34594](https://github.com/nuxt/nuxt/pull/34594))
- **rspack,webpack:** Emit `styles.mjs` when inline styles off ([#34697](https://github.com/nuxt/nuxt/pull/34697))
- **nuxt:** Fix FormData body hashing in `useFetch` deduplication key ([#34546](https://github.com/nuxt/nuxt/pull/34546))
- **nuxt:** Generate type re-exports for shared type-only imports ([#34632](https://github.com/nuxt/nuxt/pull/34632))
- **nuxt,nitro:** Add `Symbol` serialization for dev server logs ([#34575](https://github.com/nuxt/nuxt/pull/34575))
- **vite:** Do not process css files with decorator transform ([#34769](https://github.com/nuxt/nuxt/pull/34769))
- **vite:** Ensure leading slash in `/@fs` URLs for Windows ([#34810](https://github.com/nuxt/nuxt/pull/34810))
- **vite:** Preserve server-origin errors and surface them via Youch ([#34820](https://github.com/nuxt/nuxt/pull/34820))
- **nitro:** Do not add import condition for ssr resolve conditions ([#34739](https://github.com/nuxt/nuxt/pull/34739))
- **nuxt:** Fix callOnce navigation mode alternating execution ([#34718](https://github.com/nuxt/nuxt/pull/34718))
- **schema,rspack,webpack:** Respect configured `test` option ([#34827](https://github.com/nuxt/nuxt/pull/34827))
- **nuxt:** Handle custom cookie serialisation before passing to `cookie-es` ([#34711](https://github.com/nuxt/nuxt/pull/34711))
- **nuxt:** Link to correct docs page for keyed functions ([#34854](https://github.com/nuxt/nuxt/pull/34854))
- **nuxt:** Adjust `setPageLayout` props type to allow passing arrays of objects ([#34860](https://github.com/nuxt/nuxt/pull/34860))
- **nuxt,schema:** Move config type to schema + mark type peerDeps ([#34864](https://github.com/nuxt/nuxt/pull/34864))
- **nitro:** Restore 'import' condition for ssr resolve ([af7a12725](https://github.com/nuxt/nuxt/commit/af7a12725))
- **nitro:** Re-encode `ssrContext.url` to match vue-router ([#34902](https://github.com/nuxt/nuxt/pull/34902))
- **schema:** Remove type peerDependencies ([#34894](https://github.com/nuxt/nuxt/pull/34894))
- **nuxt:** Propagate unexpected errors from `isDirectorySync` ([#34900](https://github.com/nuxt/nuxt/pull/34900))
- **nuxt:** Bridge `@nuxt/schema` augmentations into `nuxt/schema` ([#34905](https://github.com/nuxt/nuxt/pull/34905))
- **nuxt:** Sync `_route` when navigating up the route tree ([#34918](https://github.com/nuxt/nuxt/pull/34918))
- **nuxt:** Skip `<NuxtPage>` cached vnode when its suspense is unmounted ([#34899](https://github.com/nuxt/nuxt/pull/34899))
- **nitro:** Only recommend payload extraction when `ssr` is enabled ([#34924](https://github.com/nuxt/nuxt/pull/34924))
- **nitro:** Avoid double-decoding of url ([3f1a9524b](https://github.com/nuxt/nuxt/commit/3f1a9524b))
- **nuxt:** Flatten buffer before filtering promises and fix rendering of content ([#34863](https://github.com/nuxt/nuxt/pull/34863))
- **nuxt:** Correct async data type inference when using `transform` with `getCachedData` ([#34819](https://github.com/nuxt/nuxt/pull/34819))
- **nuxt:** Avoid transforming `NuxtTeleportIslandComponent` with nuxt-client directive ([#34817](https://github.com/nuxt/nuxt/pull/34817))
- **nuxt:** Resolve layer aliases in css files ([#34940](https://github.com/nuxt/nuxt/pull/34940))
- **nuxt:** Invoke user-supplied error handler when suppressing render errors ([#34938](https://github.com/nuxt/nuxt/pull/34938))
### 📖 Documentation
- Add v4.4 badge for layout props ([#34528](https://github.com/nuxt/nuxt/pull/34528))
- Document that component props are sent in query string ([619de0dd5](https://github.com/nuxt/nuxt/commit/619de0dd5))
- Clarify function signature requirement for custom `$fetch` in `createUseFetch` ([#34564](https://github.com/nuxt/nuxt/pull/34564))
- Update experimental typedPages documentation ([#34580](https://github.com/nuxt/nuxt/pull/34580))
- Fix page:loading:start description to match implementation ([#34617](https://github.com/nuxt/nuxt/pull/34617))
- Add missing jsdoc strings ([ccb53e0eb](https://github.com/nuxt/nuxt/commit/ccb53e0eb))
- Add example for route middleware setup ([#34661](https://github.com/nuxt/nuxt/pull/34661))
- Use new object boolean syntax when prefetchOn interaction ([#34825](https://github.com/nuxt/nuxt/pull/34825))
- Remove @nuxt/scripts from core modules roadmap ([#34835](https://github.com/nuxt/nuxt/pull/34835))
- Remove @nuxt/hints from core modules roadmap ([#34867](https://github.com/nuxt/nuxt/pull/34867))
- Correct URL ([#34907](https://github.com/nuxt/nuxt/pull/34907))
- Set `NODE_ENV` to `production` in deployment examples ([#34937](https://github.com/nuxt/nuxt/pull/34937))
### 🏡 Chore
- Do not ship `devDependencies` when publishing ([8018d6577](https://github.com/nuxt/nuxt/commit/8018d6577))
- Remove unused field 🤦 ([2a75ac774](https://github.com/nuxt/nuxt/commit/2a75ac774))
- Remove explicit copilot instructions ([c7237f22c](https://github.com/nuxt/nuxt/commit/c7237f22c))
- Use single renovate PR for `3.x` and `4.x` branches ([1dda87b84](https://github.com/nuxt/nuxt/commit/1dda87b84))
- Use top level `vulnerabilityAlerts` config ([39999b7b6](https://github.com/nuxt/nuxt/commit/39999b7b6))
- Dedupe security update prs after update ([4734db95c](https://github.com/nuxt/nuxt/commit/4734db95c))
- Throttle per host to reduce rate limits in link checking ([#34488](https://github.com/nuxt/nuxt/pull/34488))
- Update renovate config ([214a72bcf](https://github.com/nuxt/nuxt/commit/214a72bcf))
- Drop redundant `as const` ([#34909](https://github.com/nuxt/nuxt/pull/34909))
- Migrate resolutions to `pnpm-workspace.yaml` ([4a39b1bfa](https://github.com/nuxt/nuxt/commit/4a39b1bfa))
### ✅ Tests
- Use `toThrow` instead of `toThrowError` ([3d3d8164d](https://github.com/nuxt/nuxt/commit/3d3d8164d))
- Update bundle size ([e4b31efa4](https://github.com/nuxt/nuxt/commit/e4b31efa4))
- Reduce matrices in ci ([#34703](https://github.com/nuxt/nuxt/pull/34703))
- Add scroll behavior tests for fixed page key with scrollToTop ([#34761](https://github.com/nuxt/nuxt/pull/34761))
- Update deprecated error assertions ([a7a301095](https://github.com/nuxt/nuxt/commit/a7a301095))
### 🤖 CI
- Add bot workflow ([#34677](https://github.com/nuxt/nuxt/pull/34677))
- Fix bot label ([967eca84b](https://github.com/nuxt/nuxt/commit/967eca84b))
- Add agent-scan workflow ([#34681](https://github.com/nuxt/nuxt/pull/34681))
- Correct renovate bot name in workflow ([#34708](https://github.com/nuxt/nuxt/pull/34708))
- Correct dependabot bot name in workflow ([#34709](https://github.com/nuxt/nuxt/pull/34709))
- Drop stackblitz link issue commenter ([1e9cacacb](https://github.com/nuxt/nuxt/commit/1e9cacacb))
- Inline actions triggered by labels into triage actions ([ee5acd096](https://github.com/nuxt/nuxt/commit/ee5acd096))
- Update workflows to use renamed type labels ([#34933](https://github.com/nuxt/nuxt/pull/34933))

### ❤️ Contributors
- Daniel Roe (@danielroe)
- Sébastien Chopin (@atinux)
- Damian Głowala (@DamianGlowala)
- John (@zecar)
- Eduardo San Martin Morote (@posva)
- abeer0 (@iiio2)
- Florian Heuberger (@Flo0806)
- karl (@krlctrl)
- Idris Gadi (@IdrisGit)
- Ori (@oritwoen)
- Yoshihiro Yamaguchi (@yamachi4416)
- Kilisei (@kilisei)
- Anthony Fu (@antfu)
- edepauw (@edepauw)
- Bochkarev Ivan (@Ibochkarev)
- Matej Černý (@cernymatej)
- Matteo Gabriele (@MatteoGabriele)
- Julien Huang (@huang-julien)
- Oliver Schmidt (@Timbuktu1982)
- Om Mishra (@howwohmm)
- xjccc (@xjccc)
- mcrapts (@mcrapts)
- Louis Ramos (@wJoenn)
- 山吹色御守 (@KazariEX)
- Max (@onmax)

---
