releases.shpreview

v3.21.3/3.21.4

v3.21.3

3.21.3 is the next patch release. v3.21.4 was published with no changes due to an issue running the release script for v3.21.3.

πŸ‘‰ Changelog

compare changes

πŸ”₯ Performance

  • nuxt: Batch-resolve typescript hoist paths with cached base roots (#34862)
  • vite,webpack: Use vfs for manifest + vite node server (#34666)

🩹 Fixes

  • nuxt: Handle negative zero in getUserTrace slice boundary (#34524)
  • nuxt: Signal error state and clear timers in loading indicator cleanup (#34523)
  • nuxt: Fix broken hook cleanup in route announcer (#34525)
  • nuxt: Filter clearNuxtState key enumeration by useState prefix (#34541)
  • nuxt: Correct useFetch cache options type (#34551)
  • nuxt: Prevent in-flight requests from overwriting cleared async data (#34553)
  • nuxt: Check response status before parsing payload (#34555)
  • nuxt: Handle TS type assertions on member expression callees in keyed functions parser (#34558)
  • nitro: Resolve h3 export path in nitro vfs (#34566)
  • nitro: Use hash-based cache for dev payloads (#34569)
  • nuxt: Await parcel watcher subscription before registering close hook (#34573)
  • nuxt: Self-remove hydration error guards after first navigation (#34572)
  • nuxt: Mark portal properties as configurable (#34574)
  • nuxt: Retry manifest fetch after transient failure (#34570)
  • kit: Add PackagePreset type to addImportsSources (#34582)
  • nuxt: Avoid any return type from callHookWith in vue:setup (#34584)
  • nuxt: Strip DevOnly components with attributes in production builds (#34585)
  • nuxt: Move parcel watcher debug timer outside subscription loop (#34590)
  • nuxt: Preserve falsy prop values in NuxtTime data attribute serialization (#34600)
  • nuxt: Clear cached rejected promise in callOnce (#34614)
  • nitro: Set __buildAssetsURL before server entry import (#34607)
  • nuxt: Use consistent [nuxt] prefix in console warnings (#34668)
  • nitro: Do not add import condition for ssr resolve conditions (#34739)
  • rspack,webpack: Emit styles.mjs when inline styles off (#34697)
  • nuxt: Fix FormData body hashing in useFetch deduplication key (#34546)
  • nuxt,nitro: Add Symbol serialization for dev server logs (#34575)
  • vite: Ensure leading slash in /@fs URLs for Windows (#34810)
  • vite: Preserve server-origin errors and surface them via Youch (#34820)
  • nuxt: Fix callOnce navigation mode alternating execution (#34718)
  • schema,rspack,webpack: Respect configured test option (#34827)
  • nitro: Restore 'import' condition for ssr resolve (247254652)
  • nuxt: Propagate unexpected errors from isDirectorySync (#34900)
  • nitro: Re-encode ssrContext.url to match vue-router (#34902)
  • vite: Remove obsolete writeDevServer + handle vite-node precomputed (c45b45b9c)
  • nitro: Avoid double-decoding of url (93e731ba3)
  • nuxt: Sync _route when navigating up the route tree (#34918)
  • nuxt: Skip <NuxtPage> cached vnode when its suspense is unmounted (#34899)
  • nitro: Only recommend payload extraction when ssr is enabled (#34924)
  • nuxt: Flatten buffer before filtering promises and fix rendering of content (#34863)
  • nuxt: Avoid transforming NuxtTeleportIslandComponent with nuxt-client directive (#34817)
  • nuxt: Resolve layer aliases in css files (#34940)
  • nuxt: Invoke user-supplied error handler when suppressing render errors (#34938)

πŸ“– Documentation

  • Document that component props are sent in query string (1bf4fa87c)
  • Fix page:loading:start description to match implementation (#34617)
  • Add missing jsdoc strings (30a9a49aa)
  • Work around upstream bun bug (#34792)
  • Use new object boolean syntax when prefetchOn interaction (#34825)
  • Remove @nuxt/scripts from core modules roadmap (#34835)
  • Remove @nuxt/hints from core modules roadmap (#34867)
  • Correct URL (#34907)
  • Set NODE_ENV to production in deployment examples (#34937)

🏑 Chore

  • Do not ship devDependencies when publishing (07f05c1a2)
  • Remove unused field 🀦 (5644951b5)
  • Remove explicit copilot instructions (240721d38)
  • Use single renovate PR for 3.x and 4.x branches (8193a6025)
  • Use top level vulnerabilityAlerts config (1975bf748)
  • Dedupe security update prs after update (df17b0aec)
  • Throttle per host to reduce rate limits in link checking (#34488)
  • Drop redundant as const (#34909)
  • Pin typescript (e94ed7ac5)

βœ… Tests

  • Use toThrow instead of toThrowError (60d5c8d21)
  • Reduce matrices in ci (#34704)
  • Add scroll behavior tests for fixed page key with scrollToTop (#34761)
  • Update deprecated error assertions (9ba7ca7b6)

πŸ€– CI

  • Ensure latest tag is published first + manual oidc exchange for dist-tag (7339257f8)
  • Add bot workflow (#34677)
  • Fix bot label (a222917b2)
  • Don't run ossf workflow on 4.x branch (c183f341b)
  • Add agent-scan workflow (#34681)
  • Correct renovate bot name in workflow (#34708)
  • Correct dependabot bot name in workflow (#34709)
  • Drop stackblitz link issue commenter (884ab3757)
  • Inline actions triggered by labels into triage actions (124f65c5f)
  • Update workflows to use renamed type labels (#34933)

❀️ Contributors

Fetched June 1, 2026