Skip to content

[master] Michijs Dependabot changes#159

Closed
michijs[bot] wants to merge 1 commit into
masterfrom
michijs-dependabot
Closed

[master] Michijs Dependabot changes#159
michijs[bot] wants to merge 1 commit into
masterfrom
michijs-dependabot

Conversation

@michijs
Copy link
Copy Markdown
Contributor

@michijs michijs Bot commented Apr 20, 2026

@michijs
Copy link
Copy Markdown
Contributor Author

michijs Bot commented Apr 20, 2026

Bump @​michijs/shared-configs from 0.0.36 to 0.0.37

Changelog:
Sourced from releases.
        ### 0.0.37## What's Changed

Full Changelog: https://redirect.github.com/michijs/shared-configs/compare/0.0.36...0.0.37

        ### 0.0.36## What's Changed

New Contributors

Full Changelog: https://redirect.github.com/michijs/shared-configs/compare/0.0.34...0.0.36

Commit history:
  • bf294a Update tsconfig.json (Bump typescript from 5.1.6 to 5.2.2 #16)

    What is the purpose of this pull request?

    Screenshots or example usage

    Types of changes

    • Bug fix (non-breaking change which fixes an issue)
    • New feature (non-breaking change which adds functionality)
    • Quality improvement (tests or refactors)
    • Breaking change (fix or feature that would cause existing
      functionality to change)
    • Trivial change (small fix or feature that doesn't impact
      functionalities)
    • Requires change to documentation, which has been updated
      accordingly

    Signed-off-by: Lucas Segurado <lsegurado1996@​gmail.com>

  • 3c3aca chore: Release v0.0.37

@michijs
Copy link
Copy Markdown
Contributor Author

michijs Bot commented Apr 20, 2026

Bump @​vscode/vsce from 3.7.1 to 3.9.1

Changelog:
Sourced from releases.
        ### v3.9.1

Changes:

  • #1266: fix: module type mismatch

This list of changes was auto generated.

        ### v3.9.1-0

Changes:

  • #1266: fix: module type mismatch

This list of changes was auto generated.

        ### v3.9.0

Changes:

  • #1263: fix: build regressions in 3.8.1
  • #1261: Add override for serialize-javascript

This list of changes was auto generated.

        ### v3.8.2-1

Changes:

  • #1263: fix: build regressions in 3.8.1

This list of changes was auto generated.

        ### v3.8.2-0

Changes:

  • #1261: Add override for serialize-javascript

This list of changes was auto generated.

        ### v3.8.1

Changes:

  • #1259: chore: update @​azure/identity to 4.13.1 and modernize TypeScript/Node.js configuration

This list of changes was auto generated.

        ### v3.8.1-0

Changes:

  • #1259: chore: update @​azure/identity to 4.13.1 and modernize TypeScript/Node.js configuration

This list of changes was auto generated.

        ### v3.8.0

Changes:

  • #1258: fix: run npm audit fix
  • #1255: Bump brace-expansion
  • #1253: Bump picomatch from 2.3.1 to 2.3.2
  • #1252: Bump yauzl from 2.10.0 to 3.2.1
  • #1250: Bump underscore from 1.13.1 to 1.13.8
  • #1249: Bump minimatch
  • #1243: Bump markdown-it from 14.1.0 to 14.1.1
  • #1244: Bump qs from 6.14.1 to 6.14.2
  • #1239: Bump @​isaacs/brace-expansion from 5.0.0 to 5.0.1
  • #1238: Bump lodash from 4.17.21 to 4.17.23
See More
  • #1234: Bump qs from 6.11.0 to 6.14.1
  • #1233: Return non-zero exit code when signature verification fails
  • #1232: Audit npm package
  • #1228: Bump jws

This list of changes was auto generated.

        ### v3.7.2-13

Changes:

  • #1258: fix: run npm audit fix

This list of changes was auto generated.

        ### v3.7.2-12

Changes:

  • #1255: Bump brace-expansion

This list of changes was auto generated.

        ### v3.7.2-11

Changes:

  • #1253: Bump picomatch from 2.3.1 to 2.3.2

This list of changes was auto generated.

        ### v3.7.2-10

Changes:

  • #1252: Bump yauzl from 2.10.0 to 3.2.1

This list of changes was auto generated.

        ### v3.7.2-9

Changes:

  • #1250: Bump underscore from 1.13.1 to 1.13.8

This list of changes was auto generated.

        ### v3.7.2-8

Changes:

  • #1249: Bump minimatch

This list of changes was auto generated.

        ### v3.7.2-7

Changes:

  • #1243: Bump markdown-it from 14.1.0 to 14.1.1

This list of changes was auto generated.

        ### v3.7.2-6

Changes:

  • #1244: Bump qs from 6.14.1 to 6.14.2

This list of changes was auto generated.

        ### v3.7.2-5

Changes:

  • #1239: Bump @​isaacs/brace-expansion from 5.0.0 to 5.0.1

This list of changes was auto generated.

        ### v3.7.2-4

Changes:

  • #1238: Bump lodash from 4.17.21 to 4.17.23

This list of changes was auto generated.

        ### v3.7.2-3

Changes:

  • #1234: Bump qs from 6.11.0 to 6.14.1

This list of changes was auto generated.

        ### v3.7.2-2

Changes:

  • #1233: Return non-zero exit code when signature verification fails

This list of changes was auto generated.

        ### v3.7.2-1

Changes:

  • #1232: Audit npm package

This list of changes was auto generated.

        ### v3.7.2-0

Changes:

  • #1228: Bump jws

This list of changes was auto generated.

        ### v3.7.1

Changes:

  • #1223: Bump js-yaml
  • #1222: Bump glob

This list of changes was auto generated.

        ### v3.7.1-1

Changes:

  • #1223: Bump js-yaml

This list of changes was auto generated.

        ### v3.7.1-0

Changes:

  • #1222: Bump glob

This list of changes was auto generated.

Commit history:
  • 98cca9 fix: module type mismatch (#1266)

    Co-authored-by: Copilot <copilot@​redirect.github.com>

  • 9329b3 fix: build regressions in 3.8.1 (#1263)

    • chore: add serialize-javascript override

    Agent-Logs-Url: https://redirect.github.com/microsoft/vscode-vsce/sessions/542e6132-ca27-4a60-b13f-e4d127bc19db

    Co-authored-by: rzhao271 <7199958+rzhao271@​users.noreply.redirect.github.com>

    • chore: update serialize-javascript override to 7.x

    Agent-Logs-Url: https://redirect.github.com/microsoft/vscode-vsce/sessions/1a55d5b2-81b6-49f5-8caf-f6ccee37a4b5

    Co-authored-by: rzhao271 <7199958+rzhao271@​users.noreply.redirect.github.com>

    • chore: refresh lockfile after serialize-javascript override

    Agent-Logs-Url: https://redirect.github.com/microsoft/vscode-vsce/sessions/13bb15ff-ae4f-4d6f-a53e-c9794578e757

    Co-authored-by: rzhao271 <7199958+rzhao271@​users.noreply.redirect.github.com>

    • fix: downgrade engine and fix build

    Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@​users.noreply.redirect.github.com>

  • 165b0f Add override for serialize-javascript (#1261)

    • chore: add serialize-javascript override

    Agent-Logs-Url: https://redirect.github.com/microsoft/vscode-vsce/sessions/542e6132-ca27-4a60-b13f-e4d127bc19db

    Co-authored-by: rzhao271 <7199958+rzhao271@​users.noreply.redirect.github.com>

    • chore: update serialize-javascript override to 7.x

    Agent-Logs-Url: https://redirect.github.com/microsoft/vscode-vsce/sessions/1a55d5b2-81b6-49f5-8caf-f6ccee37a4b5

    Co-authored-by: rzhao271 <7199958+rzhao271@​users.noreply.redirect.github.com>

    • chore: refresh lockfile after serialize-javascript override

    Agent-Logs-Url: https://redirect.github.com/microsoft/vscode-vsce/sessions/13bb15ff-ae4f-4d6f-a53e-c9794578e757

    Co-authored-by: rzhao271 <7199958+rzhao271@​users.noreply.redirect.github.com>


    Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@​users.noreply.redirect.github.com>
    Co-authored-by: rzhao271 <7199958+rzhao271@​users.noreply.redirect.github.com>

  • 7d124a chore: update @​azure/identity to 4.13.1 and modernize TypeScript/Node.js configuration (#1259)

    • chore: update @​azure/identity to 4.13.1

    Agent-Logs-Url: https://redirect.github.com/microsoft/vscode-vsce/sessions/eaaf7c49-62dc-48e3-a4bc-f0b4286e52d5

    Co-authored-by: rzhao271 <7199958+rzhao271@​users.noreply.redirect.github.com>

    • chore: set moduleResolution to nodenext in tsconfig.json

    Agent-Logs-Url: https://redirect.github.com/microsoft/vscode-vsce/sessions/e9cc90e0-f5ea-49d7-9728-9c667e7835f4

    Co-authored-by: rzhao271 <7199958+rzhao271@​users.noreply.redirect.github.com>

    • chore: bump @​types/node to ^22, update engines and CI workflow to Node 22

    Agent-Logs-Url: https://redirect.github.com/microsoft/vscode-vsce/sessions/2dff95b2-a252-43a9-b142-ae81b52bc6d3

    Co-authored-by: rzhao271 <7199958+rzhao271@​users.noreply.redirect.github.com>


    Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@​users.noreply.redirect.github.com>
    Co-authored-by: rzhao271 <7199958+rzhao271@​users.noreply.redirect.github.com>

  • cbdd40 fix: run npm audit fix to update package-lock.json (#1258)

    Agent-Logs-Url: https://redirect.github.com/microsoft/vscode-vsce/sessions/79064f2b-a533-4e09-ac40-4f8bce617f05

    Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@​users.noreply.redirect.github.com>
    Co-authored-by: rzhao271 <7199958+rzhao271@​users.noreply.redirect.github.com>

  • 13c5fa Merge pull request #1255 from microsoft/dependabot/npm_and_yarn/multi-580a7c2f10

    Bump brace-expansion

  • c6f98d Bump brace-expansion

    Bumps and brace-expansion. These dependencies needed to be updated together.

    Updates brace-expansion from 5.0.3 to 5.0.5

    Updates brace-expansion from 1.1.12 to 1.1.13

    Updates brace-expansion from 2.0.2 to 2.0.3


    updated-dependencies:

    • dependency-name: brace-expansion
      dependency-version: 5.0.5
      dependency-type: indirect
    • dependency-name: brace-expansion
      dependency-version: 1.1.13
      dependency-type: indirect
    • dependency-name: brace-expansion
      dependency-version: 2.0.3
      dependency-type: indirect
      ...

    Signed-off-by: dependabot[bot] <support@​redirect.github.com>

  • 01da00 Bump picomatch from 2.3.1 to 2.3.2 (#1253)

    Bumps picomatch from 2.3.1 to 2.3.2.


    updated-dependencies:

    • dependency-name: picomatch
      dependency-version: 2.3.2
      dependency-type: indirect
      ...

    Signed-off-by: dependabot[bot] <support@​redirect.github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@​users.noreply.redirect.github.com>

  • bb899f Merge pull request #1252 from microsoft/dependabot/npm_and_yarn/yauzl-3.2.1

    Bump yauzl from 2.10.0 to 3.2.1

  • 3f4fa9 Bump yauzl from 2.10.0 to 3.2.1

    Bumps yauzl from 2.10.0 to 3.2.1.


    updated-dependencies:

    • dependency-name: yauzl
      dependency-version: 3.2.1
      dependency-type: direct:production
      ...

    Signed-off-by: dependabot[bot] <support@​redirect.github.com>

  • 72f319 Merge pull request #1250 from microsoft/dependabot/npm_and_yarn/underscore-1.13.8

    Bump underscore from 1.13.1 to 1.13.8

  • c65131 Bump underscore from 1.13.1 to 1.13.8

    Bumps underscore from 1.13.1 to 1.13.8.


    updated-dependencies:

    • dependency-name: underscore
      dependency-version: 1.13.8
      dependency-type: indirect
      ...

    Signed-off-by: dependabot[bot] <support@​redirect.github.com>

  • 82cd05 Merge pull request #1249 from microsoft/dependabot/npm_and_yarn/multi-3189fdc835

    Bump minimatch

  • f8e927 Bump minimatch

    Bumps minimatch to 10.2.3 and updates ancestor dependencies and minimatch. These dependencies need to be updated together.

    Updates minimatch from 10.1.1 to 10.2.3

    Updates minimatch from 3.1.2 to 3.1.4

    Updates minimatch from 9.0.5 to 9.0.7

    Updates minimatch from 5.1.6 to 5.1.8


    updated-dependencies:

    • dependency-name: minimatch
      dependency-version: 10.2.3
      dependency-type: indirect
    • dependency-name: minimatch
      dependency-version: 3.1.4
      dependency-type: direct:production
    • dependency-name: minimatch
      dependency-version: 9.0.7
      dependency-type: indirect
    • dependency-name: minimatch
      dependency-version: 5.1.8
      dependency-type: indirect
      ...

    Signed-off-by: dependabot[bot] <support@​redirect.github.com>

  • 5f09e2 Merge pull request #1243 from microsoft/dependabot/npm_and_yarn/markdown-it-14.1.1

    Bump markdown-it from 14.1.0 to 14.1.1

  • 61ad36 Merge pull request #1244 from microsoft/dependabot/npm_and_yarn/qs-6.14.2

    Bump qs from 6.14.1 to 6.14.2

  • b30d61 Bump qs from 6.14.1 to 6.14.2

    Bumps qs from 6.14.1 to 6.14.2.


    updated-dependencies:

    • dependency-name: qs
      dependency-version: 6.14.2
      dependency-type: indirect
      ...

    Signed-off-by: dependabot[bot] <support@​redirect.github.com>

  • d3230b Bump markdown-it from 14.1.0 to 14.1.1

    Bumps markdown-it from 14.1.0 to 14.1.1.


    updated-dependencies:

    • dependency-name: markdown-it
      dependency-version: 14.1.1
      dependency-type: direct:production
      ...

    Signed-off-by: dependabot[bot] <support@​redirect.github.com>

  • 2aeafb Bump @​isaacs/brace-expansion from 5.0.0 to 5.0.1 (#1239)

    Bumps @​isaacs/brace-expansion from 5.0.0 to 5.0.1.


    updated-dependencies:

    • dependency-name: "@​isaacs/brace-expansion"
      dependency-version: 5.0.1
      dependency-type: indirect
      ...

    Signed-off-by: dependabot[bot] <support@​redirect.github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@​users.noreply.redirect.github.com>

  • dea3b1 Bump lodash from 4.17.21 to 4.17.23 (#1238)

    Bumps lodash from 4.17.21 to 4.17.23.


    updated-dependencies:

    • dependency-name: lodash
      dependency-version: 4.17.23
      dependency-type: indirect
      ...

    Signed-off-by: dependabot[bot] <support@​redirect.github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@​users.noreply.redirect.github.com>

  • dc34fd Merge pull request #1234 from microsoft/dependabot/npm_and_yarn/qs-6.14.1

    Bump qs from 6.11.0 to 6.14.1

  • 5ac9b7 Bump qs from 6.11.0 to 6.14.1

    Bumps qs from 6.11.0 to 6.14.1.


    updated-dependencies:

    • dependency-name: qs
      dependency-version: 6.14.1
      dependency-type: indirect
      ...

    Signed-off-by: dependabot[bot] <support@​redirect.github.com>

  • 47330a Merge pull request #1233 from JoeRobich/dev/jorobich/set-exitcode

    Return non-zero exit code when signature verification fails

  • 7a8969 Return non-zero exit code when signature verification fails
  • d6d2ef Merge pull request #1232 from microsoft/benibenj/relevant-lamprey

    Audit npm package

  • 915bc0 audit npm package
  • 1dbea2 Merge pull request #1228 from microsoft/dependabot/npm_and_yarn/multi-d0f6e8601e

    Bump jws

  • 142aaa Bump jws

    Bumps and jws. These dependencies needed to be updated together.

    Updates jws from 3.2.2 to 3.2.3

    Updates jws from 4.0.0 to 4.0.1


    updated-dependencies:

    • dependency-name: jws
      dependency-version: 3.2.3
      dependency-type: indirect
    • dependency-name: jws
      dependency-version: 4.0.1
      dependency-type: indirect
      ...

    Signed-off-by: dependabot[bot] <support@​redirect.github.com>

  • 44181d Merge pull request #1223 from microsoft/dependabot/npm_and_yarn/multi-75e6bc5210

    Bump js-yaml

  • a83138 Bump js-yaml

    Bumps and js-yaml. These dependencies needed to be updated together.

    Updates js-yaml from 4.1.0 to 4.1.1

    Updates js-yaml from 3.14.1 to 3.14.2


    updated-dependencies:

    • dependency-name: js-yaml
      dependency-version: 4.1.1
      dependency-type: indirect
    • dependency-name: js-yaml
      dependency-version: 3.14.2
      dependency-type: indirect
      ...

    Signed-off-by: dependabot[bot] <support@​redirect.github.com>

@michijs
Copy link
Copy Markdown
Contributor Author

michijs Bot commented Apr 20, 2026

Bump typescript from 5.9.3 to 6.0.3

Changelog:
Sourced from releases.
        ### v6.0.3For release notes, check out the [release announcement blog post](https://devblogs.microsoft.com/typescript/announcing-typescript-6-0/).

Downloads are available on:

Downloads are available on:

  • npm

          ### v5.9.3Note: this tag was recreated to point at the correct commit. The npm package contained the correct content.
    

For release notes, check out the release announcement

Downloads are available on:

Commit history:
  • 55423a Update CONTRIBUTING.md with comment automation policy (#63412)
  • f1a928 Also check package name validity in InstallPackageRequest (#63401)
  • c7a0ae Harden ATA package name filtering (#63368)
  • 5f4350 Require AI disclosure in PR descriptions (#63366)
  • 38c327 Document charCodeAt edge case behavior in first line (#63344)
  • 7b8cb3 Fix redundant leading apostrophe in TS1344 diagnostic message (#63341)

    Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@​users.noreply.redirect.github.com>
    Co-authored-by: RyanCavanaugh <6685088+RyanCavanaugh@​users.noreply.redirect.github.com>

  • 0844c4 Mark class property initializers as outside of CFA containers (#63310)

    Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@​users.noreply.redirect.github.com>
    Co-authored-by: RyanCavanaugh <6685088+RyanCavanaugh@​users.noreply.redirect.github.com>

  • 71586a Bump the github-actions group with 2 updates (#63319)

    Signed-off-by: dependabot[bot] <support@​redirect.github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@​users.noreply.redirect.github.com>

  • 7881fe Add coding agent instructions: refuse PRs unless maintenance mode is acknowledged (#63305)

    Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@​users.noreply.redirect.github.com>
    Co-authored-by: RyanCavanaugh <6685088+RyanCavanaugh@​users.noreply.redirect.github.com>
    Co-authored-by: Ryan Cavanaugh <RyanCavanaugh@​users.noreply.redirect.github.com>

  • 77ddb5 Update deps (#63296)
  • 864777 Bump the github-actions group with 3 updates (#63285)

    Signed-off-by: dependabot[bot] <support@​redirect.github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@​users.noreply.redirect.github.com>

  • b103a0 Update readme to note current repo state (#63292)
  • 4f7b41 Bump the github-actions group with 2 updates (#63224)

    Signed-off-by: dependabot[bot] <support@​redirect.github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@​users.noreply.redirect.github.com>

  • 9059e5 Fix missing lib files in reused programs (#63239)
  • c9e742 Port anyFunctionType subtype fix and JSX children NonInferrableType propagation from typescript-go (#63163)

    Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@​users.noreply.redirect.github.com>
    Co-authored-by: DanielRosenwasser <972891+DanielRosenwasser@​users.noreply.redirect.github.com>

  • 206ed1 Deprecate assert in import() (#63172)
  • e688ac Update dependencies (#63156)
  • 29b300 Bump the github-actions group across 1 directory with 2 updates (#63205)

    Signed-off-by: dependabot[bot] <support@​redirect.github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@​users.noreply.redirect.github.com>

  • 0c2c7a DOM update (#63183)
  • 924810 Adds the symbol name to the error message for TS2742 (#63200)
  • 6cf817 discrete pluralizer for lib.esnext.temporal unit unions (#63190)
  • b24015 Eliminate interpolation from workflows (#63188)
  • 347254 Update DOM types (#63137)
  • ad04bf Fix crash in declaration emit with nested binding patterns (#63154)

    Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@​users.noreply.redirect.github.com>
    Co-authored-by: DanielRosenwasser <972891+DanielRosenwasser@​users.noreply.redirect.github.com>

  • 0ed1ee Fix from and with method types of Temporal.PlainMonthDay (#63142)
  • 040c20 Bump github/codeql-action from 4.32.2 to 4.32.3 in the github-actions group (#63145)

    Signed-off-by: dependabot[bot] <support@​redirect.github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@​users.noreply.redirect.github.com>

  • cdc205 Ensure node is installed in release publisher (#63127)
  • cdb583 Bump github/codeql-action from 4.32.0 to 4.32.2 in the github-actions group (#63123)

    Signed-off-by: dependabot[bot] <support@​redirect.github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@​users.noreply.redirect.github.com>

  • 87aa91 Always set up host in node builder (#62726)
  • e872a6 Un‑consolidate and fix WeakMap constructor overloads (#56713)

    Co-authored-by: Jake Bailey <5341706+jakebailey@​users.noreply.redirect.github.com>

@michijs
Copy link
Copy Markdown
Contributor Author

michijs Bot commented Apr 20, 2026

Bump bun-types from 1.3.11 to 1.3.12

Changelog:
Sourced from releases.
        ### bun-v1.3.12To install Bun v1.3.12
curl -fsSL https://bun.sh/install | bash
# or you can use npm
# npm install -g bun

Windows:

powershell -c "irm bun.sh/install.ps1|iex"

To upgrade to Bun v1.3.12:

bun upgrade

Read Bun v1.3.12's release notes on Bun's blog

Thanks to 8 contributors!

curl -fsSL https://bun.sh/install | bash
# or you can use npm
# npm install -g bun

Windows:

powershell -c "irm bun.sh/install.ps1|iex"

To upgrade to Bun v1.3.11:

bun upgrade

Read Bun v1.3.11's release notes on Bun's blog

Thanks to 15 contributors!

Commit history:
  • 0e2d20 test: fix memfd-disabled.test.ts E2BIG on Linux (#29501)

    Summary

    • The Blob-stdin test inlined a 64 KiB payload twice into the -e
      script via JSON.stringify, yielding a 131,394-byte argv entry — over
      Linux's MAX_ARG_STRLEN (32 × PAGE_SIZE = 128 KiB) — so posix_spawn
      failed with E2BIG. Now the payload is generated inside the child;
      canUseMemfd has no size gate for in-memory Blobs so the same code path
      is exercised.
    • Both tests asserted stderr === "", which fails on ASAN debug builds
      because JSC prints WARNING: ASAN interferes with JSC signal handlers….
      Added a stripAsanWarning filter (same approach as
      broadcast-channel-worker-gc.test.ts, fetch-abort-queued.test.ts,
      etc).

    Follow-up to #29465.

    Test plan

    • Reproduced original failure on Linux: E2BIG: argument list too long, posix_spawn
    • Fixed test passes on Linux ASAN debug build (2 pass / 0 fail)
    • CI: linux test suite green

    Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@​users.noreply.redirect.github.com>

  • 7e83f1 ci: don't compare binary size against release builds (#29500)

    What does this PR do?

    The binary-size step walks recent main commits looking for a build
    that uploaded binary-sizes.json to use as a baseline. Release builds
    upload that artifact too, so when the most recent main build is a
    release build, every canary PR compares against release-mode sizes.
    Windows release and canary binaries differ by several MB, so PRs
    spuriously fail the 0.5 MB threshold.

    Fix: pass --release to scripts/binary-size.ts when !options.canary
    (same release-detection check used for Windows signing), record
    release: <bool> in the uploaded binary-sizes.json, and skip any
    baseline whose release flag doesn't match the current build. Canary
    PRs now only compare against canary baselines.

    Release builds will generally show "no release comparison" since prior
    releases are well outside the 15-commit lookback window — this is
    intentional and preferable to the previous behavior of showing a
    misleading several-MB delta vs canary. Release builds are --no-fail
    regardless.

    Old artifacts without the release field are treated as canary (the
    common case), so existing baselines remain usable. The currently-stuck
    release build on main self-resolves once the next canary build lands and
    is found first in the newest-first commit walk.

    How did you verify your code works?

    Syntax/type checked both files, truth-tabled the (record.release ?? false) !== isRelease filter for all 6 release/canary/missing-field
    combinations, and confirmed !options.canary matches the existing
    release-detection pattern in ci.mjs. The script talks to Buildkite so
    it can't be exercised end-to-end locally.


    Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@​users.noreply.redirect.github.com>

  • d398bd build: add $BUN_ZIG_PATH to override the vendored zig compiler (#29492)

    What does this PR do?

    Mirrors the existing $BUN_WEBKIT_PATH env override: when set, points at
    an existing zig install (containing zig + lib/) and the zig_fetch ninja
    edge is skipped. Path resolution handles ~ expansion and anchors
    relative paths to the repo root so ninja's regen rule resolves the same
    path as the initial configure.

    I'm primarily interested in this for Arch Linux's bun package [1], which
    does this today on 1.3.12 via a patch [2]. However, one can imagine
    other use cases:

    • Worktree sharing (one compiler build across N worktrees, same reason
      $BUN_WEBKIT_PATH exists).

    • Testing zig compiler forks/patches without cutting a release or
      touching ZIG_COMMIT.

    • Air-gapped / restricted-network dev environments where the compiler is
      pre-staged.

    Configure-time validation checks that $BUN_ZIG_PATH/zig and
    $BUN_ZIG_PATH/lib/ both exist, and emits a hint pointing at the likely
    fix when they don't. Commit mismatch (user's zig differs from
    ZIG_COMMIT) is the user's problem — build.zig will error loudly if the
    compiler is too old for the options it receives.

    [1] https://archlinux.org/packages/extra/x86_64/bun/
    [2]
    https://gitlab.archlinux.org/archlinux/packaging/packages/bun/-/raw/main/bun-add-cmake-option-zig-local.patch

    Assisted-by: Claude Opus 4.7 <noreply@​anthropic.com>

    How did you verify your code works?

    Verified by regenerating build.ninja via bun scripts/build.ts --configure-only in three scenarios on Linux x64:

    1. BUN_ZIG_PATH unset (default) — build.ninja still contains the
      zig_fetch edge (build ../../vendor/zig/.zig-commit | ../../vendor/zig/zig: zig_fetch …). Regression check — default behavior
      is unchanged.
    2. BUN_ZIG_PATH=/tmp/nonexistent-zig — configure errors with
      BUN_ZIG_PATH='/tmp/nonexistent-zig' but no zig executable at /tmp/nonexistent-zig/zig plus the hint pointing at the likely fix.
    3. BUN_ZIG_PATH=vendor/zig (after pre-fetching the compiler via ninja -C build/debug zig-compiler) — no zig_fetch edge in build.ninja,
      but bun-zig.o still lists ../../vendor/zig/zig as an implicit input,
      and ninja treats the existing file as a source.

    Re-ran scenario 1 after scenario 3 to confirm the fetch edge is
    re-emitted once the env var is unset — no sticky state.

    Also typechecked with bunx tsc --noEmit -p scripts/build/tsconfig.json: no new errors introduced in zig.ts.

    Did not run a full bun bd end-to-end with BUN_ZIG_PATH set; the
    zig_build ninja edge is unchanged by this patch (it only references
    zigExecutable, which both code paths produce), so the risk surface is
    configure-time only.

  • 7a7905 build: bump parallel zig to 65b29282, enable on Linux (#29491)

    Summary

    • Bump ZIG_COMMIT_PARALLEL from 445fc0cb65b29282
      (oven-sh/zig@​65b29282)
    • Ungate Linux local builds from the parallel compiler now that the
      self-hosted ELF -r merge produces a complete bun-zig.o (closes
      #29132)
    • CI and Windows stay on the stable compiler

    The new commit also brings sharded unit_claims + dropped sema_lock
    under non-incremental for parallel sema, which speeds up darwin builds
    too.

    Test plan

    • bunx tsc --noEmit -p scripts/build/tsconfig.json
    • bun scripts/build.ts --configure-only — generated URL points at
      autobuild-65b29282…, all 12 platform assets present in the release
    • defaultZigCommit() returns PARALLEL for local darwin+linux,
      STABLE for CI and windows
    • bun bd --revision — clean build with the new compiler on
      darwin-arm64
    • bun bd test test/js/bun/util/which.test.ts — sanity test passes
    • Fresh bun run build on a Linux host (verifies the #29132 fix
      end-to-end)
    • bf2e2c Revert "webcore: fix ReadableStreamSource Strong cycle + Windows fromPipe ref (#29472)"

    This reverts commit 55b62eff1cf78b19b8dc0271e5d76a415b18cae3.

  • f53ef3 build: lower minimum glibc requirement from 2.26 to 2.17 (#29461)

    What

    Lowers the Linux glibc floor from 2.26 → 2.17 (RHEL/CentOS 7, Amazon
    Linux 1, aarch64 baseline).

    Only three symbols in the current release binaries required > 2.17. All
    three are handled with the same pattern: --wrap (or strong def) →
    dlsym glibc's real implementation at runtime when present, with a
    well-defined fallback for older glibc.

    Symbol glibc Handling
    getrandom 2.25 --wrapdlsym glibc's (preserves vDSO fast
    path on ≥ 2.41); fall back to syscall(SYS_getrandom) on < 2.25. All
    callers (BoringSSL, c-ares, highway) already handle ENOSYS.
    quick_exit 2.24 --wrapdlsym glibc's default version. On ≥
    2.24 that's the C11-correct one (skips thread_local dtors); on 2.17–2.23
    it's the only version available. Either way we call exactly what a
    natively-linked binary on that host would.
    __cxa_thread_atexit_impl 2.18 Strong definition
    (libstdc++/libc++abi/Rust std all weak-ref it, but lld doesn't propagate
    weakness to the verneed entry so the loader rejects on 2.17). dlsym
    glibc's on ≥ 2.18 (preserves DSO-refcount handling for FFI dlclose); on
    2.17 use libc++abi's fallback, ported verbatim from
    llvmorg-19.1.0/libcxxabi/src/cxa_thread_atexit.cpp
    under Apache-2.0 WITH LLVM-exception.

    2.17 is the floor for aarch64 glibc, so going lower on x64 alone has no
    value.

    Changes

    • build.zig — Zig glibc target 2.26 → 2.17
    • scripts/build/flags.ts — add --wrap=getrandom, --wrap=quick_exit
    • src/bun.js/bindings/workaround-missing-symbols.cpp — wraps +
      __cxa_thread_atexit_impl (libc++abi fallback)
    • test/js/bun/symbols.test.ts — enforce ≤ 2.17
    • docs/installation.mdx — note 2.17 minimum
    • LICENSE.md — libc++abi attribution

    Test plan

    • CI: symbols.test.ts passes on linux-x64 and linux-aarch64
      (objdump shows no GLIBC_ > 2.17)
    • CI: linux test suite green (verifies dlsym-forward paths work for
      normal exit / crypto)
    • CI: musl build unaffected

    Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@​users.noreply.redirect.github.com>

  • 91d066 sys: cache memfd_create ENOSYS + BUN_FEATURE_FLAG_DISABLE_MEMFD (#29465)

    What

    memfd_create requires kernel ≥ 3.17. A binary-level syscall audit (in
    #29461) found that every Bun caller already falls back on error — Blob →
    heap, spawn stdio → pipe, process IPC → socketpair — so kernel 3.10
    (RHEL 7) works today, but every call retries the failing syscall.

    This PR:

    • Caches ENOSYS in bun.sys.memfd_create so subsequent calls return
      immediately
    • Adds BUN_FEATURE_FLAG_DISABLE_MEMFD to force the fallback (seccomp
      environments, testing)
    • Tests that Blob and spawn-stdin work with the flag set
    • Fixes docs/installation.mdx: "minimum kernel 5.1" was never true
      (the io_uring check it referenced has zero callers). Actual floor is
      ~3.10 with degraded atomicity.

    Complements #29461 (glibc 2.17).

    Test plan

    • CI: linux test suite passes with new memfd-disabled.test.ts
    • CI: zig check on all platforms
    • 55b62e webcore: fix ReadableStreamSource Strong cycle + Windows fromPipe ref (#29472)

    Summary

    Three related fixes; the second and third are required by the first.

    1. close_jsvalue Strong → onCloseCallback cached slot

    (cross-platform)

    setOnCloseFromJS stored the callback in a jsc.Strong, which forms a
    rooted cycle: source-wrapper → close_jsvalue Strong → bound #onClose
    NativeReadableStreamSource (ReadableStreamInternals.ts:1972) →
    $stream private prop (:1959) → source-wrapper. Because a Strong is a
    global GC root, the source survives even after every JS reference
    (including the outer ReadableStream) is dropped. It only becomes
    collectable when EOF/close runs the JS-side callClose (which clears
    $stream) or at VM shutdown.

    The codegen already declares onCloseCallback in streams.classes.ts
    values; onDrain already uses its cached slot. Switch onClose to
    the same WriteBarrier-backed storage and delete the Strong field. The
    cycle becomes an ordinary intra-heap cycle that mark-sweep collects.

    2. Windows non-lazy FileReader across-read ref

    FileReader.onStart holds an incrementCount() until onReaderDone
    only on the lazy path (always) or the POSIX non-lazy path. The Windows
    non-lazy path — fromPipe, reached via Bun.spawn().stdout/.stderr
    did not. With the cycle fix above, the source is now collectable while a
    uv_read_start IOCP read is pending, and WindowsBufferedReader.deinit
    would run with a live .pipe source whose data ptr is then
    dereferenced by the queued onStreamRead. Add a Windows arm matching
    the POSIX one.

    3. Release the across-read ref in onReaderError too

    onReaderDone checks waiting_for_onReaderDone and decrements;
    onReaderError did not, so a read that ends in error (rather than EOF)
    leaked the ref taken in onStart. Pre-existing on the lazy and POSIX
    paths; commit 2 adds a Windows arm that would inherit the same gap.
    Mirror the release after pending.run().

    Verification

    On Windows, with a child that spawns a detached grandchild inheriting
    stdout (so the pipe stays open after the direct child exits), repeatedly
    accessing proc.stdout, dropping it, and forcing GC:

    | | *ReadableStreamSource heap count after 30 iters |
    WindowsBufferedReader.deinit reached with live .pipe source |
    |---|---|---|
    | baseline | 31 (linear growth; 61 at 60 iters) | no — leak masks it |
    | commit 1 only | ~14 (plateaus at live-grandchild count) | yes
    FileReader.deinit sees src=pipe, closed=false |
    | commits 1–3 | ~15 (plateaus; freed as pipes EOF; flat through 80
    iters) | no |

    Relation to #29440

    Found while verifying the review comment on #29440 about
    WindowsBufferedReader.deinit ordering. That comment correctly
    identified the buffer-free-before-detach as theoretical; this PR
    explains why (the Strong cycle pinned the source) and fixes the
    underlying leak plus the UAF that fixing the leak would have exposed.

  • 1e2290 Add missing docs
  • c2ad07 Add missing docs
  • f8d425 Migrate TCPSocket/TLSSocket from hasPendingActivity to jsc.JSRef (#29451)
  • 97d9da ci(binary-size): drop release comparison column (#29468)

    What

    Removes the "release" comparison column from the binary-size CI
    annotation. The table now compares only against canary (latest main).

    Why

    Tagged release builds are configured differently from canary/PR builds
    (less debug code baked in), so they come out ~1–2 MB smaller. That makes
    the release Δ column read as a constant "+1.x MB" on every PR regardless
    of what the PR actually changed — it's noise that looks like signal. The
    canary delta is what answers "did this PR grow the binary."

    Details

    • Dropped releaseFallback hardcoded size table
    • Dropped fetchReleaseBaseline() (git ls-remote tag lookup)
    • Dropped release field from Row and the corresponding HTML column /
      console output
    • Threshold check was already canary-only — unchanged
    • [skip size check] escape hatch — unchanged

    Net: −42 lines in scripts/binary-size.ts.

  • 40ffda deps(mimalloc): set MI_OVERRIDE=OFF on Windows (#29467)

    Summary

    Windows debug builds fail to link since the dev3 mimalloc bump (#29420 /
    #29435):

    lld-link: error: duplicate symbol: _expand
    >>> defined at mimalloc-debug.lib(alloc.c.obj)
    >>> defined at libucrtd.lib(expand.obj)
    

    Root cause: mimalloc.ts never set MI_OVERRIDE for Windows — only
    a comment claiming the upstream default was "no override". The actual
    default is ON. Pre-dev3 this was harmless because alloc-override.c's
    _MSC_VER block was an empty comment ("cannot override malloc unless
    using a dll"). Upstream
    microsoft/mimalloc#1259
    / #1263 filled it with real CRT symbol definitions (_expand, _msize,
    _msize_base, _free_base, free), so the static lib now exports them
    and collides with the debug CRT.

    Fix: explicit MI_OVERRIDE=OFF on Windows. Bun links the static CRT
    and calls mi_* directly; nothing routes through CRT malloc, so
    override has no benefit there. This restores the effective pre-dev3
    behavior.

    Not stale cache: dep_configure already uses cmake --fresh, so
    the cache was correctly regenerated — it got ON because that's the
    real default.

    Why CI didn't catch it: all ci-* profiles use buildType: "Release" (/MTlibucrt.lib). The duplicate only fires under
    /MTd because libucrtd.lib's expand.obj is pulled in for its
    debug-heap symbols. CI never builds Windows debug.

    Test plan

    • bunx tsc --noEmit -p scripts/build/tsconfig.json
    • bun scripts/build.ts --configure-only
    • Windows debug: bun bd --version1.3.13-debug (previously
      failed at link)
    • Verified build/debug/deps/mimalloc/CMakeCache.txt shows
      MI_OVERRIDE:BOOL=OFF after reconfigure
    • CI (release Windows — also flips ON→OFF; expected no-op since
      pre-dev3 override did nothing on Windows static)
    • 983ee6 debugger: block on a condvar instead of spinning while paused (#29438)

    What does this PR do?

    Fixes #21654 — Bun pegs one CPU core at 100% while paused at a
    breakpoint (or debugger; statement) in VSCode / Cursor /
    debug.bun.sh.

    Repro

    // index.js
    debugger;
    bun --inspect-wait=localhost:6499/ index.js
    # attach any inspector client, let it stop at `debugger;`
    # → ~100% of one core for as long as you're paused

    Root cause

    When JSC pauses execution, it calls
    BunInspectorConnection::runWhilePaused on the JS thread, which looped:

    while (!isDoneProcessingEvents) {
        connection->receiveMessagesOnInspectorThread(...);  // non-blocking, usually empty
    }

    receiveMessagesOnInspectorThread just swaps an almost-always-empty
    Vector under a lock and returns, so the loop spins at full speed.
    There was already a jsWaitForMessageFromInspectorLock in the file
    intended for this, but the waiting side was commented out and the lock
    was only ever unlocked, never acquired.

    Fix

    Replace the spin with a WTF::Lock + WTF::Condition wait:

    • runWhilePaused drains pending messages from each connection, then
      waits on the condition (with a 1-second safety-net timeout) until either
      a new message arrives or a connection disconnects.
    • sendMessageToInspectorFromDebuggerThread, connect() and
      disconnect() notify the condition after updating state so the paused
      thread wakes immediately — round-trips for Runtime.evaluate while
      paused stay in the low-ms range.
    • anyConnectionHasPendingWork() re-checks each connection's queue
      under pausedWaitLock before sleeping so wakeups can't be missed.
    • The single- and multi-connection branches are merged into one loop;
      when every connection is gone we continueProgram() and exit instead of
      looping forever.
    • The unused jsWaitForMessageFromInspectorLock member and its
      isLocked() / unlockFairly() dance are removed.

    Verification

    test/regression/issue/21654/21654.test.ts spawns a child with
    --inspect-wait, attaches over WebSocket, enables the debugger, hits a
    debugger; statement, sleeps 2 s while paused, then resumes. The child
    reports its own process.cpuUsage() delta across the pause.

    | | CPU while paused (2 s) | Runtime.evaluate round-trip while paused
    |
    | --- | --- | --- |
    | before | ~100% | ~1 ms |
    | after | <15% (debug+ASAN; ~0% release) | ~25 ms (debug+ASAN) |

    The test asserts <50% CPU and <500 ms round-trip. Also manually verified
    that closing the WebSocket while paused resumes the program.

    Fixes #21654

    Fixes #19347


    Co-authored-by: robobun <robobun@​users.noreply.redirect.github.com>
    Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@​users.noreply.redirect.github.com>

  • e2fd5f Fix BroadcastChannel channelToContextIdentifier locking and dispatchMessage lifetime (#29441)

    What does this PR do?

    Fixes two data races in BroadcastChannel.cpp that surface as ASAN
    heap-use-after-free in
    test/js/web/broadcastchannel/broadcast-channel-worker-gc.test.ts.

    Bug A — channelToContextIdentifier HashMap one-sided locking

    The prior ThreadSafeWeakPtr fix only covered allBroadcastChannels().
    The second global, channelToContextIdentifier(), has its own lock —
    but it was taken at only 1 of 4 call sites:

    Site Thread Lock?
    registerChannel .add() main
    unregisterChannel .remove() main
    dispatchMessageTo .get() main
    contextIdForBroadcastChannelId .get() worker (via
    ensureOnContextThreaddispatchMessage)

    When main rehashes the HashMap (add/remove during worker
    spawn/terminate) while a worker reads it, the worker walks a freed
    bucket array → ASAN heap-UAF inside WTF::HashTable. The accessor was
    also missing WTF_REQUIRES_LOCK, so -Wthread-safety never flagged
    this.

    Fix: add Locker locker { channelToContextIdentifierLock }; at the
    three unlocked sites and annotate the accessor with
    WTF_REQUIRES_LOCK(channelToContextIdentifierLock) to match
    allBroadcastChannels().

    Bug B — dispatchMessage captures raw this in async task

    dispatchMessage posts a task with [this, message = ...] — raw
    this, no Ref { *this }. The caller (dispatchMessageTo's inner
    lambda) holds a strong RefPtr from the ThreadSafeWeakPtr lookup, but
    that ref is dropped when the outer lambda returns. During worker
    terminate the JS wrapper is destroyed → refcount 0 → ~BroadcastChannel
    → the queued task reads freed this->m_isClosed and calls
    this->dispatchEvent().

    Fix: capture protectedThis = Ref { *this } in the postTaskTo
    lambda, matching the pattern in MessagePort.cpp, Performance.cpp,
    and WebSocket.cpp.

    How did you verify your code works?

    • bun bd test test/js/web/broadcastchannel/broadcast-channel-worker-gc.test.ts — 3/3
      pass, verified stable across 3 consecutive runs under debug+ASAN
    • bun bd test test/js/web/broadcastchannel/broadcast-channel.test.ts
      10/11 pass; the one failure (broadcast channel worker wait) is
      pre-existing on main under debug+ASAN (it uses Bun.sleepSync(500)
      which isn't enough for an ASAN worker to start) and is unrelated to this
      change

    Test changes

    • Added a stress test that churns channel registrations (forcing HashMap
      rehashes) while workers cross-post (reaching the worker-side map read),
      then terminates workers mid-dispatch (leaving queued tasks whose this
      would otherwise dangle).
    • Filtered the unconditional ASAN startup warning from child-process
      stderr so expect(stderr).toBe("") holds on ASAN builds — same
      pattern as fetch-abort-queued.test.ts / string-decoder.test.js.
    • Scaled timeouts for isDebug || isASAN — worker spawn under
      debug+ASAN is ~5–10× slower; the existing tests were borderline at the
      5s default.

    Note: both races are highly timing-dependent (a HashMap rehash must land
    mid-get()); 20 local ASAN runs on macOS did not repro before the fix.
    The new stress test maximises contention but is not guaranteed to fail
    without the fix on every platform.


    Co-authored-by: robobun <robobun@​users.noreply.redirect.github.com>

  • a96270 cron: don't report TerminationException as uncaught on worker terminate (#29457)
  • aa16dd sys(windows): don't panic on unnamed NTSTATUS in openDirAtWindowsNtPath (#29443)
  • 3845ee Fix segfault in Bun.pathToFileURL when URL construction fails on Windows (#29448)
  • 5dfa63 module_loader: remove undefined backing for bun:main source (#29450)
  • 7e4774 css/small_list: fix tryGrow over-allocating by @​sizeOf(T) on heap realloc (#29452)
  • 8f2519 deps: replace cloudflare/zlib with zlib-ng 2.3.3 (#29433)

    What does this PR do?

    Replaces the cloudflare/zlib fork (last commit Oct 2023) with
    zlib-ng 2.3.3 in ZLIB_COMPAT
    mode. zlib-ng is actively maintained, ships in Node 24+ and Chromium,
    and provides runtime-dispatched SIMD across
    AVX-512/AVX2/SSE2/NEON/SVE/RVV for CRC32, adler32, longest-match, and
    chunk-copy.

    Supersedes #16100, #8529.

    Benchmarks

    Xeon Platinum 8375C (Ice Lake, AVX-512), linux-x64 release build vs
    system bun 1.3.13. Run with bench/snippets/zlib-comprehensive.mjs and
    bench/snippets/zlib.mjs (both included).

    Operation cloudflare zlib-ng Speedup
    gzipSync html-128K L1 275 µs 107 µs 2.59x
    gzipSync html-1M L1 2.23 ms 892 µs 2.50x
    gzipSync json-128K L6 897 µs 483 µs 1.86x
    deflate 123K L6 (async) 373 µs 68 µs 5.48x
    gunzipSync html-1M 561 µs 522 µs 1.07x
    gunzipSync binary-128K 31.6 µs 26.7 µs 1.18x
    createGzip stream L1 1M 3.76 ms 2.68 ms 1.40x
    createGunzip stream 1M 1.24 ms 1.18 ms 1.05x
    fetch() 11KB gzip decode 42.9 µs 41.6 µs parity
    gzipSync 13B (init overhead) 5.04 µs 7.12 µs 0.71x

    The streaming-inflate regression that blocked #16100 (Jan 2025, zlib-ng
    pre-2.2) does not reproduce on 2.3.3. The only downside is ~2µs
    higher per-stream init cost from larger state structs, amortized away on
    payloads ≥4KB.

    Compression ratio at level=6 is +0.4% vs cloudflare (different
    match-finding heuristics). Negligible.

    Security hardening

    Built with -DWITH_INFLATE_STRICT=ON. zlib-ng commit 340f2f6e moved
    inflateBack()'s distance-too-far-back check behind a default-off
    #ifdef; upstream zlib has it unconditional. Bun doesn't call
    inflateBack(), but this hardens against heap OOB reads on malicious
    raw-deflate with windowBits<15 for anything else linking the same lib,
    at zero cost to inflate() proper.

    Why pin to 2.3.3 (not develop)

    Two regressions landed on zlib-ng develop after 2.3.3 that are not
    present at this commit (documented in zlib.ts):

    • 172b8544 — inverted COPY guard disables Chorba CRC32 fast-path on
      PCLMULQDQ-only x64
    • e5129cfedeflateBound() hits __builtin_unreachable() after
      Z_FINISH

    Re-audit before bumping past 2.3.3.

    Build system changes

    zlib-ng generates zlib.h at cmake-configure time into the build
    dir (it doesn't exist in source). This required:

    • provides.includesdepBuildDir(cfg, "zlib") instead of source dir
    • libarchive's -I → build dir
    • fetchDeps now resolves to the cross-dep's build outputs (lib
      files) instead of just the source .ref stamp, so libarchive's
      configure waits for zlib's configure to have run. resolveDep() takes a
      map of previously-resolved deps.

    Drops 4 cloudflare-specific vendor patches.

    How did you verify your code works?

    • linux-x64 release build: bun run build:release clean → smoke
      test passes
    • test/js/node/zlib/zlib.test.js: 376 pass, 0 fail (release
      build)
    • bun bd test test/js/node/zlib/: deflate/gzip/inflate tests pass
      (1 unrelated brotli timeout in debug — createBrotliCompress slowness,
      untouched by this PR)
    • Build-graph ordering verified: build.ninja shows libarchive
      configure has deps/zlib/libz.a as order-only input
    • bunx tsc --noEmit -p scripts/build/tsconfig.json clean
    • Windows (lib name → zlibstatic) — needs CI
    • aarch64/musl — needs CI

    🤖 Generated with Claude Code


    Co-authored-by: root <root@​ip-10-0-2-234.us-west-2.compute.internal>
    Co-authored-by: Claude Opus 4.7 <noreply@​anthropic.com>

  • 52f68d deps: bump mimalloc to 57029fb1 (upstream dev3 a3fb9498) (#29435)

    Merges upstream dev3 (22 commits) into bun-dev3-v2. With our config
    (MI_NO_OPT_ARCH=ON, MI_OSX_ZONE=OFF, MI_NO_PROCESS_DETACH=ON,
    MI_OVERRIDE=OFF on macOS/Win), only the bitmap-purge restore fixes
    (65d70e3c, d5861285) reach compiled code: when mi_arenas_try_purge
    early-exits, freed slices not yet visited are now put back on the
    purge bitmap instead of being lost, so the next scavenge cycle can
    return them to the OS.

    Also picks up oven-sh/mimalloc@​809f7f32 which extends
    MI_NO_PROCESS_DETACH (already set in #29420) to gate
    _mi_auto_process_done itself, covering Windows mi_win_main /
    .CRT$XPU paths in addition to the POSIX destructor.

  • 11ffb7 blob: clamp stat.size to max_size to avoid @​intCast panic in ReadFile (#29355)

    What does this PR do?

    Fixes a Zig safety-check panic in ReadFile.resolveSizeAndLastModified
    (called from runAsyncWithFD) when fstat reports a size larger than
    maxInt(u52).

    Fuzzer fingerprint: 6e3d2159cadcef3a

    Root cause

    this.total_size = @&ZeroWidthSpace;truncate(@&ZeroWidthSpace;as(SizeType, @&ZeroWidthSpace;intCast(@&ZeroWidthSpace;max(@&ZeroWidthSpace;as(i64, @&ZeroWidthSpace;intCast(stat.size)), 0))));

    SizeType is u52. The outer @&ZeroWidthSpace;truncate is dead code — the inner
    @&ZeroWidthSpace;intCast to u52 runs first and panics with integerOutOfBounds
    whenever the (non-negative) stat size exceeds maxInt(u52). Verified
    with objdump that resolveSizeAndLastModified contained a single call
    to debug.FullPanic.integerOutOfBounds mapping to this line.

    The fuzzer hit this via an fd-based ReadFile task scheduled on the
    thread pool in a prior REPRL iteration, which then ran after the fd
    context changed. In a standalone run of the minimized script,
    doReadFile is never invoked — the crash depends on cross-iteration
    thread-pool state, which is why it's extremely flaky and not directly
    reproducible outside the REPRL harness.

    Fix

    • Clamp stat.size to [0, Blob.max_size] before casting, so the
      @&ZeroWidthSpace;intCast is always in range. Applied to both the POSIX (ReadFile)
      and Windows (ReadFileUV) paths.
    • While here: set system_error when initCapacity fails in the POSIX
      path so OOM propagates to JS as an error instead of being silently
      treated as an empty read. This matches what ReadFileUV already does.

    How did you verify your code works?

    • objdump confirms integerOutOfBounds is no longer emitted in
      resolveSizeAndLastModified (1 → 0 call sites).
    • bun bd test test/js/bun/util/bun-stdin-slice.test.ts passes (covers
      fd-based ReadFile path).
    • bun bd test test/js/bun/util/bun-file-read.test.ts passes.
    • bun bd test test/js/bun/util/bun-file.test.ts passes.
    • Manual check: Bun.file(fd).text() on a regular file fd still works.

    No new regression test is added because triggering the original panic
    requires fstat to report a size > 4.5 PB, which is not achievable in
    the test environment; the fix is verified structurally and the affected
    code path is already covered by the existing stdin-slice tests.


    Co-authored-by: robobun <robobun@​users.noreply.redirect.github.com>

  • ee51bb libarchive: keep upstream damaged-block retry semantics on the buffered path (#29430)

    Follow-up to #29404.

    Problem

    nonblocking-read.patch routed upstream libarchive's pre-existing
    damaged-block ARCHIVE_RETRY (bad header checksum → skip this block and
    try the next one) through the same bun_retry label as a non-blocking
    yield. That left both tar->header_in_progress and
    a->read_header_in_progress set, so the next
    archive_read_next_header() call skipped archive_entry_clear,
    archive_clear_error, ++file_count and tar_reset_header_state — a
    behaviour change on the ordinary buffered extract path even when the
    reader never returns ARCHIVE_RETRY.

    Repro

    A tarball shaped [pax 'g' global header][block with bad checksum][pax 'g' global header][regular file], installed via file:./pkg.tgz
    (always buffered — PackageManagerTask.readAndExtract
    Archiver.extractToDir):

    • upstream libarchive / this PR: the damaged block is consumed,
      state is fully reset, the second g header is accepted, the file is
      extracted.
    • main (64951540d5): seen_headers = seen_g_header leaks across the
      retry → the second g header trips "Redundant 'g' header"
      ARCHIVE_FATALerror: Fail extracting tarball.

    Fix

    Make the format reader the authority on whether a header read is
    mid-flight:

    • tar_read_header's bun_retry: label now sets
      a->read_header_in_progress = 1 explicitly.
    • The damaged-block branch clears it and exits via
      TAR_HEADER_RETURN(ARCHIVE_RETRY) (which also clears
      tar->header_in_progress), so the next call runs the full upstream
      reset.
    • archive_read_next_header2 now only clears the flag on terminal
      results instead of setting it on every ARCHIVE_RETRY.
    • archive_read_format_tar_read_header only takes the early return ARCHIVE_RETRY when tar->header_in_progress is still set; a
      damaged-block retry falls through to the original post-read handling
      (sparse-list add etc.), matching upstream.

    The streaming path is unaffected — the existing drip-feed tests in
    bun-install-streaming-extract.test.ts still pass.

    On the consume_header change (point 2 in the report)

    Zeroing next_in/avail_in before inflateInit2(-15) is intentionally
    left as-is: zlib's inflateInit2_ never reads either field (verified
    against vendor/zlib/inflate.c), and gzip_filter_read re-primes them
    from __archive_read_filter_ahead before every inflate(). Removing
    the extra read-ahead is what lets consume_header avoid an
    ARCHIVE_RETRY after the header has already been consumed; it's a no-op
    on the buffered path.

    Verification

    Fix is in patches/, so the usual git stash -- src/ gate doesn't
    cover it. Verified manually:

    # main's nonblocking-read.patch
    bun bd test test/cli/install/bun-install-streaming-extract.test.ts -t damaged-block
    (fail) buffered extract: damaged-block retry resets header state (upstream semantics)
      error: expect(received).not.toContain(expected)
      Expected to not contain: "Fail extracting tarball"
      Received: "...error: Fail extracting tarball from damaged-pkg..."
    
    # this PR's patch
    bun bd test test/cli/install/bun-install-streaming-extract.test.ts -t damaged-block
    (pass) buffered extract: damaged-block retry resets header state (upstream semantics)
    

    Full bun-install-streaming-extract.test.ts (5 tests, both streaming
    and buffered paths) and test/js/bun/archive.test.ts (99 tests) pass.


    Co-authored-by: robobun <robobun@​users.noreply.redirect.github.com>
    Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@​users.noreply.redirect.github.com>

  • 50be3c zig: hoist try out of tagged-union literals to avoid partial writes (#29422)

    What

    Fixes four sites where a tagged-union assignment of the form lhs = .{ .tag = <expr> } has early-exit control flow (try, catch return)
    inside <expr>. Zig writes the union tag to the result location
    before evaluating the payload expression, so if the early-exit fires
    the union is left with the new tag and the old/garbage payload bytes.

    Minimal repro of the underlying Zig behavior:

    const Data = union(enum) { f1: u32, f2: u64 };
    fn bar() !u64 { return error.Oops; }
    fn foo(l: *Data) void {
        l.* = .{ .f2 = bar() catch return };
    }
    // l before: .{ .f1 = 0xDEADBEEF }
    // l after:  .{ .f2 = <0xDEADBEEF reinterpreted as u64> }

    The fix everywhere is to hoist the fallible expression into a temporary
    before assigning the union literal.

    Sites fixed

    • src/http/Decompressor.zigthis.* = .{ .zlib = try Zlib.init(...) } (and brotli/zstd). On init failure the tag flips with
      a garbage *Reader pointer; InternalState.reset() later calls
      decompressor.deinit() which dereferences it.
    • src/bun.js/webcore/Body.zigthis.* = .{ .Locked = .{ .readable = ...(try ReadableStream.fromJS(...)).?, ... } }. If fromJS
      throws, Body.Value (heap state on Request/Response) is left as
      .Locked with garbage Strong/*JSGlobalObject; later body access or
      GC finalize reads it.
    • src/bun.js/api/bun/socket/Listener.zig (Windows) —
      this.listener = .{ .namedPipe = listen(...) catch return throw(...) }
      with errdefer this.deinit() registered. On listen failure errdefer
      runs deinit(), which hits bun.assert(this.listener == .none) — but
      the tag was already flipped to .namedPipe.
    • src/bun.js/api/JSBundler.zigresolve.value = .{ .err = Msg.fromJS(...) catch { ...; return; } }. On JS exception the heap
      *Resolve/*Load is left with .err tag and garbage Msg.

    Test plan

    • bun bd builds
    • bun run zig:check-all passes (Listener.zig change is
      Windows-only)
    • CI green

    Co-authored-by: robobun <robobun@​users.noreply.redirect.github.com>
    Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@​users.noreply.redirect.github.com>

  • 2a3278 install: fix bunx @​anthropic-ai/claude-code + add bunx claude alias (#29428)

    What

    bunx @&ZeroWidthSpace;anthropic-ai/claude-code (2.1.113+) exits silently with code 1
    instead of running the CLI.

    Also adds bunx claude as a shorthand for bunx @&ZeroWidthSpace;anthropic-ai/claude-code, matching the existing bunx tsc
    typescript alias.

    Why

    Bun's native-binlink optimization (added for esbuild and
    @&ZeroWidthSpace;anthropic-ai/claude-code in postinstall_optimizer.zig) skips the
    package's postinstall and instead symlinks .bin/<name> directly into
    the matching platform-specific optional dependency. It reused the parent
    package's bin target path when looking inside the platform
    package, which only works if both lay the binary out the same way.

    • esbuild: parent bin: {esbuild: "bin/esbuild"}, @&ZeroWidthSpace;esbuild/linux-x64
      also ships bin/esbuild → works.
    • claude-code 2.1.113+: parent bin: {claude: "bin/claude.exe"} (a
      no-shebang placeholder the postinstall normally replaces), but
      @&ZeroWidthSpace;anthropic-ai/claude-code-linux-x64 ships the real binary at the
      package root as claude and has no bin field of its own.

    So:

    1. shouldIgnoreLifecycleScripts saw a matching platform
      optionalDependency and skipped postinstall.
    2. Bin.Linker tried
      node_modules/@&ZeroWidthSpace;anthropic-ai/claude-code-linux-x64/bin/claude.exe,
      didn't exist.
    3. Fell back to linking the parent's placeholder stub.
    4. bunx execve'd a shebang-less text file → ENOEXEC → silent exit 1.

    Fix

    • src/install/bin.zig: when Bin.Linker is redirected into a
      platform package (native binlink) and the root package's bin path
      doesn't exist there, also try the root package's bin name at the
      platform package root before abandoning the redirect. Both candidates
      come straight from the root package's bin entry (value and key
      respectively). If neither exists it still falls through to the existing
      retry-without-redirect path.
    • src/cli/bunx_command.zig: bunx claude
      @&ZeroWidthSpace;anthropic-ai/claude-code (the npm package named claude is an
      unrelated squatter with no bin). Also sets initial_bin_name = "claude" for the full package name so the fast-path lookup works.
      Skipped when --package is explicitly given.

    Verification

    $ bunx claude --version
    2.1.114 (Claude Code)
    
    $ readlink node_modules/.bin/claude     # after bun add
    ../@&ZeroWidthSpace;anthropic-ai/claude-code-linux-x64/claude     # was: ../@&ZeroWidthSpace;anthropic-ai/claude-code/bin/claude.exe
    

    Hermetic tests:

    • bun-install-native-binlink.test.ts: new fixture packages mirror the
      claude-code layout for both hoisted and isolated linkers; existing
      esbuild-style and pure-fallback tests still pass.
    • bunx.test.ts: mock-registry test confirms bunx claude requests
      @&ZeroWidthSpace;anthropic-ai/claude-code, not the claude squatter.

    Co-authored-by: robobun <robobun@​users.noreply.redirect.github.com>

  • a36b4c uws/usockets: passphrase_cb overflow, chunked 1*HEXDIG, SSM, sweep iterator (#29427)
  • 649515 install: stream tarball extraction from HTTP into libarchive (#29404)

    What

    bun install now extracts package tarballs while they are still
    downloading, instead of buffering the full .tgz and then the full
    decompressed .tar in memory before handing both to libarchive.

    How

    Zig side (src/install/TarballStream.zig, NetworkTask.zig,
    runTasks.zig):

    • NetworkTask.forTarball enables the HTTP client's
      response_body_streaming signal (same mechanism fetch() uses).
    • NetworkTask.notify now runs once per body chunk on the HTTP thread.
      On the first 2xx chunk it commits to streaming: each chunk is pushed
      into a heap-held TarballStream and a drain task is scheduled on
      manager.thread_pool. Non-2xx / transport errors before the first chunk
      fall back to the existing buffered path so retry and error reporting are
      unchanged.
    • TarballStream owns the struct archive *, the open output bun.FD,
      and a want_header/want_data phase. The drain task calls
      archive_read_next_header / archive_read_data_block until libarchive
      reports ARCHIVE_RETRY (out of input), then returns — the worker is
      released. The next chunk reschedules the drain task; because all
      libarchive state lives on its own heap, the next call resumes exactly
      where it stopped. No condvar, no extra thread pool.
    • Integrity is hashed incrementally (Integrity.Streaming) over the
      compressed bytes and verified before the temp tree is promoted into the
      cache.
    • extract_tarball.zig's rename-into-cache / package.json bookkeeping
      was factored into moveToCacheDirectory so the streaming and buffered
      extractors share it.

    libarchive patch (patches/libarchive/nonblocking-read.patch):

    Upstream libarchive has no way for the client read callback to say "no
    data yet" — any negative return sets filter->fatal = 1 and 0 sets
    filter->end_of_file = 1, both terminal. The patch teaches the read
    path to propagate ARCHIVE_RETRY without poisoning state:

    • __archive_read_filter_ahead / advance_file_pointer: when the
      reader returns ARCHIVE_RETRY, keep whatever is already in
      filter->buffer and surface ARCHIVE_RETRY via *avail instead of
      setting fatal.
    • gzip filter: peek_at_header / consume_header / consume_trailer /
      gzip_filter_read propagate retry; a trailer_pending flag makes
      consume_trailer re-entry-safe.
    • tar reader: read_data and skip propagate retry. tar_read_header
      pre-buffers extension-header payloads before consuming the block, hoists
      seen_headers/eof_fatal/err into struct tar behind
      header_in_progress, and _archive_read_next_header2 skips
      archive_entry_clear while a header read is in progress, so a retry
      between a pax x/GNU L header and the real ustar header resumes
      cleanly.

    Gated behind BUN_FEATURE_FLAG_DISABLE_STREAMING_INSTALL (streaming on
    by default).

    Memory

    Before: compressed_size (HTTP buffer) + decompressed_size
    (zlib/libdeflate output) + libarchive internals per tarball.
    After: only the in-flight HTTP chunk(s) plus libarchive's fixed
    per-archive buffers. The full .tgz/.tar are never materialised.

    Tests

    test/cli/install/bun-install-streaming-extract.test.ts — drip-feeds a
    ~80 KB tarball (40 incompressible files + a >100-byte path that forces a
    pax x header) in 1 KB chunks:

    • streaming path: every entry extracted byte-identically to the buffered
      path, --verbose output confirms Streamed … tarball was taken.
    • buffered path with BUN_FEATURE_FLAG_DISABLE_STREAMING_INSTALL=1:
      same output, no Streamed … line.
    • mismatched integrity: install fails before promoting the temp dir.

    Existing bun-install-retry.test.ts /
    bun-install-tarball-integrity.test.ts pass unchanged.


    Co-authored-by: robobun <robobun@​users.noreply.redirect.github.com>
    Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@​users.noreply.redirect.github.com>

  • 19635e fix(tls): race in root certificate initialization causing segfault (#29426)

    What does this PR do?

    Fixes a data race in us_internal_init_root_certs() that could segfault
    or return truncated CA certificate lists when multiple threads (e.g.
    Workers) hit the initialization path concurrently.

    How did you verify your code works?

    New test test/js/node/tls/node-tls-root-certs-concurrent-init.test.ts
    — 16 Workers concurrently call tls.getCACertificates() while
    NODE_EXTRA_CA_CERTS points at a ~435-cert bundle.

    Before — segfaults on every run:

    panic: Segmentation fault at address 0x29A3A2C
    

    and when it didn't segfault, workers observed wildly different counts (0
    / 83 / 145 / 303 / …).

    After — all 16 Workers see the exact same, fully-populated list.

    Root cause

    if (std::atomic_load(&root_cert_instances_initialized) == 1)
      return;                                          // (3) reader skips here
    
    while (atomic_flag_test_and_set_explicit(&lock, …)) ;
    
    if (!atomic_exchange(&root_cert_instances_initialized, 1)) {   // (1) flag set TRUE here
      // (2) …but all the parsing / sk_X509_push / realloc happens AFTER
      for (…) root_cert_instances[i] = parse(root_certs[i]);
      root_extra_cert_instances = load_from_file(NODE_EXTRA_CA_CERTS);
      us_load_system_certificates_*(&root_system_cert_instances);
    }

    Thread A sets initialized = 1 at (1), then starts the slow work at
    (2). Thread B checks (3), sees initialized == 1, returns immediately,
    and reads the STACK_OF(X509)* while thread A is still pushing to it.
    sk_X509_push reallocs the backing array as it grows — thread B reads
    through a freed pointer, or gets a torn num/data pair, and hands
    garbage to PEM_write_bio_X509 → deep BoringSSL X509/EC codepaths →
    segfault at a near-null address.

    The reported stack trace on linux-x64-baseline:

    Segmentation fault at address 0x00000049
      oct.cc.inc:80     bssl::ec_point_from_uncompressed
      …
      root_certs.cpp:69   us_ssl_ctx_get_X509_without_callback_from
      root_certs.cpp:155  us_internal_init_root_certs
      root_certs.cpp:207  us_get_root_system_cert_instances
      NodeTLS.cpp:89      Bun::getSystemCACertificates
    

    The race also meant tls.getCACertificates("extra" | "system" | "default") could return a truncated snapshot that then got cached
    forever at the JS level.

    Fix

    Replace the hand-rolled spinlock + premature flag with std::call_once,
    which is exactly the primitive for one-time init: the first caller runs
    the body, every concurrent caller blocks until it completes, and there
    is a proper happens-before edge on return.


    Co-authored-by: robobun <robobun@​users.noreply.redirect.github.com>

  • 375680 fs: fix index-out-of-bounds in Windows readdir iterator (#29425)

    What does this PR do?

    Fixes a Windows-only panic in fs.readdir:

    panic: index out of bounds: index 524288, len 257
    
    dir_iterator.zig:327    fn next
    dir_iterator.zig:428    fn next
    node_fs.zig:4491        fn readdirWithEntries
    node_fs.zig:4961        fn readdirInner
    node_fs.zig:4430        fn readdir
    

    Root cause

    The Windows directory iterator copies each entry's name into a
    fixed-size name_data buffer ([257]u16 for the UTF-16 path, [513]u8
    for the UTF-8 path) using FileNameLength from the
    FILE_DIRECTORY_INFORMATION record as the slice bound:

    const length = dir_info.FileNameLength / 2;
    @&ZeroWidthSpace;memcpy(self.name_data[0..length], ...);  // <-- panic: index 524288, len 257

    FileNameLength comes from the filesystem driver. In the crash report
    it was 0x100000 (1 MiB) — far beyond the 255-WCHAR NTFS component
    limit and well past the 8 KiB result buffer — which is only possible if
    a third-party filesystem / filter driver (network redirector, virtual
    FS, AV minifilter, etc.) returned a malformed entry. We trusted it
    unconditionally and sliced past name_data.

    Fix

    • Clamp FileNameLength / 2 to what fits in name_data (256
      WCHARs) before slicing. NTFS caps a path component at 255 WCHARs so
      legitimate names are unaffected; a malformed entry now yields a
      truncated name instead of a panic.
    • Check rc before reading io.Information. The I/O manager only
      fills the IO_STATUS_BLOCK on IRP completion — on an NT_ERROR status
      the block is left untouched (see the matching comment in
      bun_shim_impl.zig: "IO_STATUS_BLOCK is filled only if
      !NT_ERROR(status)"
      ). Previously io was undefined and
      io.Information was read/assigned into self.end_index before the
      status check, so a failed call could poison iterator state with stack
      garbage or silently swallow an error as end-of-directory. The block is
      now zero-initialized and the status checks run first.

    How did you verify your code works?

    This code path is Windows-only and requires a misbehaving filesystem
    driver to trigger, so it cannot be reproduced in CI. Verified by code
    tracing: the @&ZeroWidthSpace;min bound guarantees name_len_u16 <= name_data.len - 1, which makes the self.name_data[0..name_len_u16] slice and
    subsequent null-terminator write provably in-bounds. zig fmt --check
    passes; Windows CI will confirm compilation.


    Co-authored-by: robobun <robobun@​users.noreply.redirect.github.com>

@michijs
Copy link
Copy Markdown
Contributor Author

michijs Bot commented Apr 20, 2026

Bump @​mdn/browser-compat-data from 7.3.8 to 7.3.12

Changelog:
Sourced from releases.
        ### v7.3.12### Additions
  • api.HTMLTemplateElement.shadowRootSlotAssignment (#29457)
  • api.ReportingObserver.ReportingObserver.options_parameter.types_property.permissions-policy-violation (#29500)
  • api.WGSLLanguageFeatures.extension_texture_and_sampler_let (#29469)
  • browsers.bun.releases.1.3.12 (#29463)
  • browsers.edge.releases.150 (#29463)
  • browsers.opera_android.releases.97 (#29490)
  • css.properties.hanging-punctuation.force-end (#29497)
  • css.types.color.light-dark.image_value (#29429)
  • css.types.env.preferred-text-scale (#29453)
  • html.elements.meta.name.text-scale (#29453)
  • html.elements.template.shadowrootslotassignment (#29457)
  • webdriver.bidi.script.getRealms.type_parameter.worker (#29499)

Statistics

  • 14 contributors have changed 192 files with 1,329 additions and 830 deletions in 37 commits (v7.3.11...v7.3.12)

  • 19,570 total features

  • 1,242 total contributors

  • 5,639 total stargazers

          ### v7.3.11### Additions
    
  • api.CustomElementRegistry.define.html_name_validity (#29217)

  • api.CustomElementRegistry.whenDefined.html_name_validity (#29217)

  • api.Document.createAttribute.html_name_validity (#29217)

  • api.Document.createAttributeNS.html_name_validity (#29217)

  • api.Document.createElement.html_name_validity (#29217)

  • api.Document.createElementNS.html_name_validity (#29217)

  • api.Element.setAttribute.html_name_validity (#29217)

  • api.Element.setAttributeNodeNS.html_name_validity (#29217)

  • api.Element.toggleAttribute.html_name_validity (#29217)

  • api.PaymentRequest.getSecurePaymentConfirmationCapabilities_static (#29434)

  • api.WGSLLanguageFeatures.extension_subgroup_uniformity (#29422)

  • browsers.chrome_android.releases.150 (#29413)

  • browsers.chrome.releases.150 (#29413)

  • browsers.opera.releases.126 (#29414)

  • browsers.opera.releases.127 (#29414)

  • browsers.opera.releases.128 (#29414)

  • browsers.opera.releases.129 (#29414)

  • browsers.opera.releases.130 (#29414)

  • browsers.opera.releases.131 (#29414)

  • browsers.opera.releases.132 (#29444)

  • browsers.webview_android.releases.150 (#29413)

  • css.at-rules.container.container-query_optional (#29300)

  • css.types.url.cross-origin (#29440)

  • css.types.url.referrer-policy (#29440)

  • http.headers.Reporting-Endpoints.crash-reporting (#29399)

Statistics

  • 11 contributors have changed 49 files with 950 additions and 300 deletions in 28 commits (v7.3.10...v7.3.11)

  • 19,561 total features

  • 1,240 total contributors

  • 5,628 total stargazers

          ### v7.3.10### Removals
    
  • html.elements.video.autoplay.loading (#29359)

Additions

  • api.Element.attachShadow.options_referenceTarget_parameter (#29261)
  • api.fetch.init_targetAddressSpace_parameter (#29331)
  • api.HTMLTemplateElement.shadowRootReferenceTarget (#29261)
  • api.Permissions.permission_local-network (#29331)
  • api.Permissions.permission_local-network-access (#29331)
  • api.Permissions.permission_loopback-network (#29331)
  • api.Request.Request.init_targetAddressSpace_parameter (#29331)
  • browsers.safari_ios.releases.26.5 (#29370)
  • browsers.safari.releases.26.5 (#29370)
  • browsers.webview_ios.releases.26.5 (#29370)
  • html.elements.video.loading (#29359)
  • http.headers.Permissions-Policy.local-network (#29331)
  • http.headers.Permissions-Policy.local-network-access (#29331)
  • http.headers.Permissions-Policy.loopback-network (#29331)
  • manifests.webapp.migrate_from (#29356)
  • manifests.webapp.migrate_to (#29356)
  • webdriver.bidi.browser.setClientWindowState.height_parameter (#29394)
  • webdriver.bidi.browser.setClientWindowState.state_parameter (#29394)
  • webdriver.bidi.browser.setClientWindowState.width_parameter (#29394)
  • webdriver.bidi.browser.setClientWindowState.x_parameter (#29394)
  • webdriver.bidi.browser.setClientWindowState.y_parameter (#29394)

Statistics

  • 11 contributors have changed 37 files with 986 additions and 282 deletions in 31 commits (v7.3.9...v7.3.10)

  • 19,546 total features

  • 1,239 total contributors

  • 5,628 total stargazers

          ### v7.3.9### Removals
    
  • css.properties.-webkit-margin-after (#29322)

  • css.properties.-webkit-margin-before (#29322)

Additions

  • api.CookieStore.set.maxAge_option (#29197)
  • api.CSSFontFaceDescriptors.ascent-override (#29352)
  • api.CSSFontFaceDescriptors.ascentOverride (#29352)
  • api.CSSFontFaceDescriptors.descent-override (#29352)
  • api.CSSFontFaceDescriptors.descentOverride (#29352)
  • api.CSSFontFaceDescriptors.font-language-override (#29352)
  • api.CSSFontFaceDescriptors.font-variation-settings (#29352)
  • api.CSSFontFaceDescriptors.fontLanguageOverride (#29352)
  • api.CSSFontFaceDescriptors.fontVariationSettings (#29352)
  • api.CSSFontFaceDescriptors.line-gap-override (#29352)
  • api.CSSFontFaceDescriptors.lineGapOverride (#29352)
  • api.Document.createElement.options_parameter.customElementRegistry_option (#29216)
  • api.Document.createElement.options_parameter.options_is_parameter (#29216)
  • api.Document.createElementNS.options_parameter.customElementRegistry_option (#29216)
  • api.Document.createElementNS.options_parameter.options_is_parameter (#29216)
  • api.HTMLMediaElement.loading (#29256)
  • browsers.firefox_android.releases.152 (#29334)
  • browsers.firefox.releases.152 (#29334)
  • css.properties.all.revert-rule (#29352)
  • css.properties.shape-outside.xywh (#29284)
  • css.types.color.color-mix.variadic_color_arguments (#29214)
  • html.elements.audio.loading (#29256)
  • html.elements.video.autoplay.loading (#29256)

Statistics

  • 11 contributors have changed 88 files with 2,426 additions and 1,395 deletions in 29 commits (v7.3.8...v7.3.9)

  • 19,529 total features

  • 1,236 total contributors

  • 5,620 total stargazers

          ### v7.3.8### Additions
    
  • api.HTMLMediaElement.playbackRate.negative_values (#29253)

  • api.VideoFrame.VideoFrame.metadata_option (#29298)

  • browsers.bun.releases.1.3.11 (#29291)

  • browsers.edge.releases.149 (#29263)

  • css.properties.anchor-name.position_after_layout (#29282)

  • css.properties.letter-spacing.percentages (#29200)

  • css.properties.position-area.disables_auto_margins_and_insets (#29280)

  • webdriver.bidi.network.disownData.dataType_parameter.request (#29275)

Statistics

  • 10 contributors have changed 50 files with 926 additions and 295 deletions in 31 commits (v7.3.7...v7.3.8)
  • 19,510 total features
  • 1,234 total contributors
  • 5,616 total stargazers
Commit history:
  • dc3666 Add `Permissions-Policy-Report-Only` header (#29506)
  • fd41db [WebExtensions] Deprecate Native Client info in runtime API (#29491)

    Add notes to runtime.PlatformInfo.nacl_arch and runtime.PlatformNaclArch
    describing their deprecation. Google Chrome plans to run a deprecation
    experiment removing runtime.PlatformInfo.nacl_arch on all platforms.
    Shortly after conclussion of runtime.PlatformInfo.nacl_arch removal experiment
    Chrome plans to remove enum runtime.PlatformNaclArch without any experiment.

    Details:
    https://chromium-review.googlesource.com/c/chromium/src/+/7090141

  • 7081e4 Release v7.3.12 (#29465)
  • 900b8d Firefox 150 adds JavaScript multiple import maps behind pref (#29464)

    FF150 JavaScript multiple import maps behind pref

  • 88148a Deno 2.6 has transferable {Readable,Writable,Transform}Stream (#29505)

    • Update version_added for deno in ReadableStream.json

    • Update transferable version_added for Deno in WritableStream.json

    • Update trasnferable version_added for deno in TransformStream.json

    • f89430 Chrome 146 adds texture_and_sampler_let WGSL feature (#29469)

    Document texture_and_sampler_let WGSL feature

  • 568a6c Add ReportingObserver report type permissions-policy-violation (#29500)
  • f8dc47 Safari 16.4 supports hanging-punctuation: force-end (#29497)

    • Add missing force-end value for hanging-punctuation

    • Corrected Safari version

    • b2ef1b Firefox 150 adds animation-range properties (#29494)

    Add Firefox 150 support for animation-range properties

  • f5a918 Add HTMLTemplateElement.shadowrootslotassignment attribute (#29457)

    • Add shadowrootslotassignment attribute

    • Apply suggestions from code review

    Co-authored-by: Claas Augner <495429+caugner@​users.noreply.redirect.github.com>


    Co-authored-by: Claas Augner <495429+caugner@​users.noreply.redirect.github.com>

  • 617758 Update WebDriver BiDi data (#29499)
  • ba24d9 Safari 26 shipped more WebGPU features (#29309)

    • Update WebGPU features for Safari

    • Update api/GPUSupportedFeatures.json

    Co-authored-by: Claas Augner <495429+caugner@​users.noreply.redirect.github.com>

    • Update api/GPUSupportedFeatures.json

    Co-authored-by: Claas Augner <495429+caugner@​users.noreply.redirect.github.com>

    • Resolve lint issues: Safari iOS statements changed to "mirror"

    Co-authored-by: Claas Augner <495429+caugner@​users.noreply.redirect.github.com>

  • a9d777 Update browser releases (#29490)
  • 3ec9ad Firefox 149 fixes bug in CSS ::highlight() and text-shadow (#29498)

    The linked bug was fixed in version 149, so
    if the two listed bugs were the thing making the implementation
    "partial", that no longer applies. This supersedes
    Unmark Firefox as partial for ::highlight CSS selector mdn/browser-compat-data#28375.

  • cf5e16 Update SVG2 draft spec_url domain (#29466)
  • 5218ce chore(deps-dev): bump @​ddbeck/mdn-content-inventory from 0.2.20260416 to 0.2.20260417 (#29502)

    chore(deps-dev): bump @​ddbeck/mdn-content-inventory

    Bumps @​ddbeck/mdn-content-inventory from 0.2.20260416 to 0.2.20260417.


    updated-dependencies:

    • dependency-name: "@​ddbeck/mdn-content-inventory"
      dependency-version: 0.2.20260417
      dependency-type: direct:development
      update-type: version-update:semver-patch
      ...

    Signed-off-by: dependabot[bot] <support@​redirect.github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@​users.noreply.redirect.github.com>

  • 0b850d chore(deps-dev): bump the npm group with 2 updates (#29501)

    Bumps the npm group with 2 updates: marked and typescript.

    Updates marked from 18.0.0 to 18.0.1

    Updates typescript from 6.0.2 to 6.0.3


    updated-dependencies:

    • dependency-name: marked
      dependency-version: 18.0.1
      dependency-type: direct:development
      update-type: version-update:semver-patch
      dependency-group: npm
    • dependency-name: typescript
      dependency-version: 6.0.3
      dependency-type: direct:development
      update-type: version-update:semver-patch
      dependency-group: npm
      ...

    Signed-off-by: dependabot[bot] <support@​redirect.github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@​users.noreply.redirect.github.com>

  • 820aed Fix querySelectorAll to querySelector (#29495)
  • d4f79b chore(deps-dev): bump @​ddbeck/mdn-content-inventory from 0.2.20260415 to 0.2.20260416 (#29493)

    chore(deps-dev): bump @​ddbeck/mdn-content-inventory

    Bumps @​ddbeck/mdn-content-inventory from 0.2.20260415 to 0.2.20260416.


    updated-dependencies:

    • dependency-name: "@​ddbeck/mdn-content-inventory"
      dependency-version: 0.2.20260416
      dependency-type: direct:development
      update-type: version-update:semver-patch
      ...

    Signed-off-by: dependabot[bot] <support@​redirect.github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@​users.noreply.redirect.github.com>

  • 4b27b6 chore(deps-dev): bump lefthook from 2.1.5 to 2.1.6 in the npm group (#29492)

    Bumps the npm group with 1 update: lefthook.

    Updates lefthook from 2.1.5 to 2.1.6


    updated-dependencies:

    • dependency-name: lefthook
      dependency-version: 2.1.6
      dependency-type: direct:development
      update-type: version-update:semver-patch
      dependency-group: npm
      ...

    Signed-off-by: dependabot[bot] <support@​redirect.github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@​users.noreply.redirect.github.com>

  • ae9280 chore(deps-dev): bump @​ddbeck/mdn-content-inventory from 0.2.20260414 to 0.2.20260415 (#29487)

    • chore(deps-dev): bump @​ddbeck/mdn-content-inventory

    Bumps @​ddbeck/mdn-content-inventory from 0.2.20260414 to 0.2.20260415.


    updated-dependencies:

    • dependency-name: "@​ddbeck/mdn-content-inventory"
      dependency-version: 0.2.20260415
      dependency-type: direct:development
      update-type: version-update:semver-patch
      ...

    Signed-off-by: dependabot[bot] <support@​redirect.github.com>

    • chore: fix mdn urls

    Signed-off-by: dependabot[bot] <support@​redirect.github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@​users.noreply.redirect.github.com>
    Co-authored-by: mdn-bot <108879845+mdn-bot@​users.noreply.redirect.github.com>

  • 939067 chore(deps-dev): bump web-features from 3.23.0 to 3.23.1 (#29488)

    Bumps web-features from 3.23.0 to 3.23.1.


    updated-dependencies:

    • dependency-name: web-features
      dependency-version: 3.23.1
      dependency-type: direct:development
      update-type: version-update:semver-patch
      ...

    Signed-off-by: dependabot[bot] <support@​redirect.github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@​users.noreply.redirect.github.com>

  • ab0b7c chore(deps-dev): bump prettier from 3.8.2 to 3.8.3 in the npm group (#29486)

    Bumps the npm group with 1 update: prettier.

    Updates prettier from 3.8.2 to 3.8.3


    updated-dependencies:

    • dependency-name: prettier
      dependency-version: 3.8.3
      dependency-type: direct:development
      update-type: version-update:semver-patch
      dependency-group: npm
      ...

    Signed-off-by: dependabot[bot] <support@​redirect.github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@​users.noreply.redirect.github.com>

  • 392e07 Chromium: XSLTProcessor is not yet unshipped (#29484)
  • dfdcab ci(deps): bump actions/github-script from 8.0.0 to 9.0.0 (#29460)

    Bumps actions/github-script from 8.0.0 to 9.0.0.


    updated-dependencies:

    • dependency-name: actions/github-script
      dependency-version: 9.0.0
      dependency-type: direct:production
      update-type: version-update:semver-major
      ...

    Signed-off-by: dependabot[bot] <support@​redirect.github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@​users.noreply.redirect.github.com>

  • c61582 ci(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 (#29461)

    Bumps actions/upload-artifact from 7.0.0 to 7.0.1.


    updated-dependencies:

    • dependency-name: actions/upload-artifact
      dependency-version: 7.0.1
      dependency-type: direct:production
      update-type: version-update:semver-patch
      ...

    Signed-off-by: dependabot[bot] <support@​redirect.github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@​users.noreply.redirect.github.com>

  • e28e66 ci(deps): bump codelytv/pr-size-labeler from 1.10.2 to 1.10.4 (#29462)

    Bumps codelytv/pr-size-labeler from 1.10.2 to 1.10.4.


    updated-dependencies:

    • dependency-name: codelytv/pr-size-labeler
      dependency-version: 1.10.4
      dependency-type: direct:production
      update-type: version-update:semver-patch
      ...

    Signed-off-by: dependabot[bot] <support@​redirect.github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@​users.noreply.redirect.github.com>

  • c3e79d chore(deps-dev): bump diff from 8.0.4 to 9.0.0 (#29480)

    Bumps diff from 8.0.4 to 9.0.0.


    updated-dependencies:

    • dependency-name: diff
      dependency-version: 9.0.0
      dependency-type: direct:development
      update-type: version-update:semver-major
      ...

    Signed-off-by: dependabot[bot] <support@​redirect.github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@​users.noreply.redirect.github.com>

  • ce8344 Update WebDriver BiDi data (#29485)
  • 04d272 fix(lint): prefer MDN pages with single browser-compat value (#29341)

    • fix(lint): ignore overview pages in mdn-urls linter

    • chore: run npm run lint:fix

    • chore: run npm run lint:fix

    • refactor(mdn-content-inventory): rename const SKIP_PAGE_TYPES

    • test(lint/mdn-urls): refine test name

    • chore(mdn-content-inventory): remove single key preference

@michijs michijs Bot closed this Apr 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants