Skip to content

4.1.21 (September 17, 2026)

Choose a tag to compare

@github-actions github-actions released this 17 Sep 16:49
· 272 commits to main since this release
  • Bun as a runtime, bunx --bun extension@latest dev runs the CLI on Bun 1.2 or newer, judged on Bun's own version. Older Bun gets one clear line and the Node.js path. Docs
  • Runtime loaded modules know their own URL, a file reached through chrome.runtime.getURL, importScripts or a root-absolute <script src> now reads its own emitted path from import.meta.url, so wasm, model and worker glue that resolves siblings from it finds them. Docs
  • No more manifests without a manifest_version, since 4.1.19 chrome: and edge: apply to one browser each, so a manifest that scoped every manifest_version to a vendor could build for another target with none. That build is now refused with the fix named. Use a plain manifest_version or chromium:manifest_version for the whole family. Docs

Features

  • Add the runtime category to the public perfBudgets type (#582) (891d101e)

Fixes

  • Restore the published develop type docs and exempt them from lint (#574) (dac16bc1)
  • Guard the shipped runtime against innerHTML assignments (#549) (78436890)
Other changes (38)
  • Sync the npm README copy to main automatically when README changes (#589) (b08a370d)
  • Rename the badge, separate package managers, add a YouTube link (#588) (b2c41050)
  • Escape the emit path literal in the import.meta.url define (#587) (d0148b4c)
  • Skip the Safari converter on the first resync after a full package (#586) (83d805a6)
  • Keep the MAIN world inlined stylesheet when the polyfill is on (#585) (1c4804b8)
  • Run the Safari pipeline in specs through an injected tool host (#576) (7cfdc17b)
  • Resync the bundled template and pin the catalog to the budget fix (#584) (94ea9a07)
  • Say what extension open did instead of printing its result object (#581) (569e2ef1)
  • Color the logs level token by severity (#580) (f5565f55)
  • Color the doctor check glyphs by state (#579) (4daf8330)
  • Reduce the derived Safari bundle id note to one line at completion (#578) (96870773)
  • Print the remote project download as one glyph line with a URL row (#577) (5787c463)
  • Spawn npm and pnpm for real in one spec per package manager runner (#575) (7568e6aa)
  • Repin the template catalog to the Firefox sidebar fix (#573) (28fd62af)
  • Write ready.json stamps atomically and run smokes on the built CLI (#569) (829c01a9)
  • Cover the Vue runtime build and Edge key drop with real specs (#568) (fe21ac68)
  • Sharpen the worker, Safari and reconnect warnings and note Solid (#567) (b18323df)
  • Emit the dev reload background as scripts on Safari builds (#566) (2871bc2f)
  • Keep unused CSS module classes through minification (#565) (95e19c45)
  • Write the 4.1.21 release highlights (#564) (e35e77d5)
  • Give runtime loaded modules their own import.meta.url (#563) (ad583144)
  • Refuse a build whose resolved manifest lost its manifest_version (#562) (b4d3c191)
  • Detect a pnpm workspace member from a zero indent packages list (#561) (387d6ed6)
  • Keep the nightly green in author mode and report red nightly lanes (#560) (ca4c32cd)
  • Keep the release deploy key out of every step that runs tree code (#559) (fe0e5059)
  • Make pnpm format leave the tree lint-clean (#557) (5fa7be0f)
  • Keep waiting when the ready contract is read mid-write (#558) (313c6f9e)
  • Launch a real browser on Bun and Deno in the nightly (#556) (19afbb0a)
  • Say when an AMO warning comes from a bundled dependency (#555) (15b92774)
  • Make the content-reload smoke run the CLI it says it is testing (#554) (b0cc4c6b)
  • Take Bun as a runtime from 1.2 and judge it on its own version (#553) (8e54d2e5)
  • Warn about a missing permission only when it reaches the output (#552) (f809fff7)
  • Ship one solid-js runtime and stop listing Solid as supported (#550) (73829f5e)
  • Warn when a content script starts a worker from an extension URL (#551) (d8b4526d)
  • Widen the wait contract budgets on CI runners (#548) (6166da3a)
  • Match dev web_accessible_resources to what the build emits (#547) (27ff715c)
  • Say native file events are the default watch mode, not polling (#546) (54ba9d5d)
  • Resync the bundled javascript template to the sidebar change (#545) (a044bee3)