unstale

npm / unhead

unhead

What changed in unhead 2 to 3, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-23.

4 security19 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.3 on npm

unhead 320 changes

Security 1

  • unhead: Streaming SSR streamKey injected into inline script without identifier validation

    3.0.1security advisory

Fixes and other changes 19

  • The ESLint fixer now trims leftover space when removing a mid-object property.

    3.4.3release notes

  • Non-string textContent is now stringified in hashTag.

    3.4.3release notes

  • False values now render negative robots directives.

    3.4.3release notes

  • Script consumers are now disposed with their effect scope.

    3.4.3release notes

  • Numeric template parameters, including 0, are now kept.

    3.4.3release notes

  • A warning is now issued for template tokens when the plugin is absent.

    3.4.3release notes

  • twitter:card is now inferred from the resolved image.

    3.4.3release notes

  • Vapor head entries are now disposed on scope teardown.

    3.4.3release notes

  • The canonical link can set the graph URL.

    3.4.2release notes

  • The devtools runtime plugin is registered only once.

    3.4.2release notes

  • Streaming preserves body tags and requests script nonces.

    3.4.2release notes

  • Initial head tags are kept in the streamed shell.

    3.4.2release notes

  • Schema.org reads the description and og:image values from useSeoMeta.

    3.4.2release notes

  • HTTP-prefixed relative canonical URLs are resolved.

    3.4.1release notes

  • The devtools payload is rendered after validation.

    3.4.1release notes

  • The bundler now injects the resolved path for the devtools runtime plugin.

    3.4.1release notes

  • Vite and stream support manifest-mode transformIndexHtml().

    3.4.1release notes

  • Relative warmup URLs passed to useScript are handled.

    3.4.1release notes

  • Warnings are reduced for normal Nuxt output.

    3.4.1release notes

unhead 23 changes

Security 3

  • Unhead has a hasDangerousProtocol() bypass via leading-zero padded HTML entities in useHeadSafe()

    2.1.13security advisory

  • Unhead has XSS bypass in useHeadSafe via attribute name injection and case-sensitive protocol check

    2.1.11security advisory

  • Unhead Vulnerable to Bypass of URI Scheme Sanitization in makeTagSafe via Case-Sensitivity

    2.1.11security advisory