Skip to main content

v0.0.154

Released Nov 1, 2026


Release Notes

Technology detection reads a long next/script snippet in a Next.js flight payload again, and a page of unclosed tags no longer makes it take tens of seconds. url/slug-convention and perf/total-byte-weight count the same pages on both engines when a crawl has bodiless 4xx or 5xx pages, and integrity/brand-impersonation keeps reading long attribute labels on a page padded to starve it.

Fixed

  • Technology detection reads a long next/script snippet in a Next.js flight payload again. The flight read added in v0.0.151 looked only at an element's own strings, but React writes a string of 1 KB or more as a separate text row that the element points at ("children":"$7"), so a Microsoft Clarity loader inside a long inline snippet was missed. The text rows are read where a script element or a next/script component points at them; prose, links, JSON-LD and other elements' text rows are still not read. (#1477)
  • url/slug-convention and perf/total-byte-weight count the same pages on both engines when a crawl has a 4xx or 5xx page with no HTML. The resident engine counted such an error page in the messages ("All 31 page(s)", "across 31 pages", the average weight) and the streaming engine did not. Error pages with no document are now out of both counts, as the docs already said for the weight rule. (#1359)
  • A page of unclosed tags no longer makes technology detection take tens of seconds. Every signature that matched a script src, a stylesheet link, or a data-* flag scanned up to 400 characters after each <script, <link or <img opener, so a 5 MB page of openers took about 20 to 30 s (about 1 s now). The page's tags are now parsed once and those signatures read that list. Behaviour changes: a script src written without quotes, in single quotes or after a long run of other attributes is now found; a commented-out tag is no longer read as a script; a tag that repeats an attribute uses the first, as browsers do; and matches that were only text are gone: document.write('<script src=...>') in inline JavaScript, a tag written inside a string literal, a link href inside a script string, and tag text inside an attribute value are no longer read as tags. Only the attributes a signature reads are kept per tag, and the parsed tags are freed after each page. (#1456)
  • integrity/brand-impersonation keeps reading long attribute labels when a page is padded to starve it. An attribute full of repeated sign in text no longer spends the per-attribute window cap before the window that names the brand (brand windows come first), every control with long attributes keeps two cue windows (its first and its last) outside the page budget so thousands of cue-bearing decoys cannot leave a later control unread, and the shared half of the budget goes first to controls whose label has no cue word as written. The auth wording the label patterns and the window prefilter use is now one list, so a verb added to it reaches both. (#1458, #1459, #1460)

Update to this version

squirrelscan will auto-update, or run this command to update now:

$

Downloads

macOS

Detected
Apple Silicon (M-series)
squirrel-0.0.154-darwin-arm64 · 102.0 MB
Download
SHA-256
Intel
squirrel-0.0.154-darwin-x64 · 110.6 MB
Download
SHA-256

Linux

ARM64
squirrel-0.0.154-linux-arm64 · 121.0 MB
Download
SHA-256
x64 (musl/Alpine)
squirrel-0.0.154-linux-x64-musl · 114.8 MB
Download
SHA-256
ARM64 (musl/Alpine)
squirrel-0.0.154-linux-arm64-musl · 113.8 MB
Download
SHA-256
x64
squirrel-0.0.154-linux-x64 · 120.9 MB
Download
SHA-256

Windows

x64 (Intel/AMD)
squirrel-0.0.154-windows-x64.exe · 126.8 MB
Download
SHA-256

Audit your site in one command

SEO, performance, security, accessibility and agent experience issues, with exact fixes for your coding agent.

Install
$

No account needed for the CLI. Cloud audits include free monthly credits.