Skip to content

[master] Michijs Dependabot changes#152

Open
michijs[bot] wants to merge 2 commits intomasterfrom
michijs-dependabot
Open

[master] Michijs Dependabot changes#152
michijs[bot] wants to merge 2 commits intomasterfrom
michijs-dependabot

Conversation

@michijs
Copy link
Contributor

@michijs michijs bot commented Mar 2, 2026

@michijs
Copy link
Contributor Author

michijs bot commented Mar 2, 2026

Bump @​vscode/web-custom-data from 0.6.2 to 0.6.3

Changelog:
Sourced from releases.
        ### v0.6.3

Changes:

This list of changes was auto generated.

        ### v0.6.2

Changes:

This list of changes was auto generated.

Commit history:

@michijs
Copy link
Contributor Author

michijs bot commented Mar 2, 2026

Bump vscode-html-languageservice from 5.6.1 to 5.6.2

Changelog:
Sourced from releases.
        ### v5.6.2

Changes:

  • #229: update custom data
  • #228: prepare 5.6.2

This list of changes was auto generated.

        ### v5.6.1
Commit history:
  • 98c2c7 (custom data schema) Fix globalAttributes and valueSets being incorrectly nested inside tags (#226)
    • Fix nesting of globalAttributes and valueSets in the schema

    • Remove unintended change

    • 8ad6d9 update custom data (#229)
    • 8003bf prepare 5.6.2 (#228)
    • 10daf4 prepare 5.6.1 (#225)
    • b2e40a feat: filter path suggestions by file type in HTML attributes (#218)

    • feat: filter path suggestions by file type in HTML attributes

    Implements intelligent file filtering for HTML path completion based on
    tag type and attributes. Files matching the expected type are now
    prioritized in autocomplete suggestions.

    Changes:

    • Add optional 'attributes' field to HtmlAttributeValueContext interface
    • Pass node attributes to completion participants in htmlCompletion
    • Implement getExtensionFilter() method in pathCompletion
    • Use sortText to prioritize matching files (0_) over others (1_)
    • Support multiple tag/attribute patterns:
      • prioritizes CSS files
      • prioritizes image files
      • <script src> prioritizes JavaScript files
      • prioritizes image files
      • prioritizes audio files
    • Add comprehensive tests for filtering behavior
    • Maintain backward compatibility (non-exclusive filtering)

    All files remain visible and selectable; filtering is non-exclusive.
    Directories are always included. No breaking changes to existing API.

    Fixes #242999

    Signed-off-by: Giovanni Magliocchetti <giovimag123@​gmail.com>

    • Update src/services/htmlCompletion.ts

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


    Signed-off-by: Giovanni Magliocchetti <giovimag123@​gmail.com>
    Co-authored-by: Copilot <175728472+Copilot@​users.noreply.redirect.github.com>
    Co-authored-by: Martin Aeschlimann <martinae@​microsoft.com>

  • 5793c7 Bump glob (#224)

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

    Updates glob from 10.4.5 to 10.5.0

    Updates glob from 11.0.0 to 11.1.0


    updated-dependencies:

    • dependency-name: glob
      dependency-version: 10.5.0
      dependency-type: indirect
    • dependency-name: glob
      dependency-version: 11.1.0
      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>

  • 41281a Bump js-yaml from 4.1.0 to 4.1.1 (#223)

    Bumps js-yaml from 4.1.0 to 4.1.1.


    updated-dependencies:

    • dependency-name: js-yaml
      dependency-version: 4.1.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>

  • 144f3b release 5.6.0 (#221)
  • 28e96e Add setting to disable end tag suggestions (#219)

    • Add setting to disable end tag suggestions

    Fixes #216

    This change introduces a new hideEndTagSuggestions configuration option
    in the CompletionConfiguration interface that allows users to disable
    closing tag suggestions in HTML completions.

    Previously, the html.suggest.html5 setting controlled whether HTML5
    tags, properties, and values were suggested, but it did not affect
    closing tag suggestions (e.g., </div>). Users who wanted to disable
    the extension's suggestions entirely had no way to turn off these
    end tag completions without disabling the entire extension.

    Changes:

    • Added hideEndTagSuggestions?: boolean to the CompletionConfiguration
      interface in htmlLanguageTypes.ts
    • Updated the collectCloseTagSuggestions function in htmlCompletion.ts
      to check this setting and return early if end tag suggestions are
      disabled
    • Added comprehensive tests to verify the setting works correctly in
      various scenarios

    The setting defaults to false (showing end tag suggestions) to
    maintain backward compatibility with existing behavior.

    Signed-off-by: Giovanni Magliocchetti <giovimag123@​gmail.com>

    • add 5.6.0 entry for CompletionConfiguration.hideEndTagSuggestions

    Signed-off-by: Giovanni Magliocchetti <giovimag123@​gmail.com>
    Co-authored-by: Martin Aeschlimann <martinae@​microsoft.com>

  • 6d8c8c doc[README.md]: add notes about syntax highlighting and web-data source near API section (#220)
  • 150525 prepare 5.5.2 (#217)
  • f2b53c prepare 5.5.1 (#213)
  • ade027 chore: bump action and node versions (#212)
  • 0eca2e doc[README.md]: remove duplicate "`" (#209)
  • 1db442 prepare 5.5.0 (#211)
  • f09d3a fix customData schema (#210)
  • 995bfe fix tests (#206)
  • 2f1dfe update custom data (#205)

    • update custom data

    • update to 0.5.2

    • e1ee56 prepare 5.4.0 (#204)
    • 31a116 baseline status for html elements and attributes (#202)
    • 61bc1c update to node 20 (#201)
    • 4d4ede prepare 5.3.3 (#200)
    • ba8c26 prepare 5.3.2 (#197)
    • f831c8 do not ask for extra approval when publishing (#196)
    • 4c9084 Engineering - remove preReleaseTagAddToLatest pipeline template parameter (#195)
    • d5f6af run ci with node 18 (#193)
    • d48091 prepare 5.3.1 (#192)
    • 2470e2 prepare 5.3.0 (#191)
    • 907177 Lazy evaluation of voidElements (#187)
    • ca7588 Bump braces from 3.0.2 to 3.0.3 (#190)

    Bumps braces from 3.0.2 to 3.0.3.


    updated-dependencies:

    • dependency-name: braces
      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>

@michijs
Copy link
Contributor Author

michijs bot commented Mar 2, 2026

Bump bun-types from 1.3.5 to 1.3.10

Changelog:
Sourced from releases.
        ### bun-v1.3.10To install Bun v1.3.10
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.10:

bun upgrade

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

Thanks to 11 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.9:

bun upgrade

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

Thanks to 10 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.8:

bun upgrade

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

Thanks to 4 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.7:

bun upgrade

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

Thanks to 11 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.6:

bun upgrade

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

Thanks to 23 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.5:

bun upgrade

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

Thanks to 10 contributors!

Commit history:
  • 616501 fix(buffer): prevent heap read-after-free in indexOf via valueOf-triggered detachment (#26927)

    Summary

    • Fix a heap read-after-free vulnerability in Buffer.indexOf,
      Buffer.lastIndexOf, and Buffer.includes where the raw typedVector
      pointer was cached before calling toNumber() on the byteOffset
      argument. A user-supplied valueOf() callback could call
      ArrayBuffer.prototype.transfer() to detach the underlying
      ArrayBuffer, freeing the original memory, causing these methods to
      scan freed heap data.
    • The fix defers fetching the typedVector pointer until after
      toNumber() completes, adds a detachment check, and throws a
      TypeError if the buffer was detached.

    Test plan

    • New test file test/js/node/buffer-indexOf-detach.test.ts with 7
      test cases:
      • indexOf throws TypeError when buffer detached via valueOf
      • lastIndexOf throws TypeError when buffer detached via valueOf
      • includes throws TypeError when buffer detached via valueOf
      • indexOf with string value throws TypeError when buffer detached
      • indexOf with Buffer value throws TypeError when buffer detached
      • Normal indexOf/lastIndexOf/includes functionality still works
      • indexOf with non-detaching valueOf still works correctly
    • All 7 tests pass with bun bd test
    • The 5 detachment tests fail with USE_SYSTEM_BUN=1 (confirming
      they test the fix)

    🤖 Generated with Claude Code


    Co-authored-by: Claude Bot <claude-bot@​bun.sh>
    Co-authored-by: Claude <noreply@​anthropic.com>
    Co-authored-by: Jarred Sumner <jarred@​jarredsumner.com>

  • 2cae6c fix(tls): getPeerCertificate returns {} instead of undefined when no cert (#27135)

    Summary

    Closes #24374.

    • getPeerCertificate() now returns {} when a TLS handle exists
      but no peer certificate is available (matching Node.js behavior).
      Previously it returned undefined, which caused checkServerIdentity()
      to crash during TLS handshakes.
    • Added null guard in both TLS handshake code paths in net.ts
      before calling checkServerIdentity(), as a defensive measure against
      null (returned when no handle exists).
    • This fixes the TypeError: Cannot destructure property 'subject' from null or undefined value crash reported when connecting to MongoDB Atlas
      clusters.

    Test plan

    • New regression test in test/regression/issue/24374.test.ts
      verifying:
    • getPeerCertificate() returns {} (not undefined) when no client
      cert is presented
      • getPeerCertificate() returns null when no handle is available
      • checkServerIdentity() does not crash with an empty cert object
    • TLS handshake with checkServerIdentity callback works without
      crashing
    • Verified test fails with system Bun (2 of 4 tests fail) and passes
      with debug build (4/4 pass)
    • Existing TLS tests (node-tls-cert.test.ts) continue to pass

    🤖 Generated with Claude Code


    Co-authored-by: Claude Bot <claude-bot@​bun.sh>
    Co-authored-by: Claude <noreply@​anthropic.com>
    Co-authored-by: Jarred Sumner <jarred@​jarredsumner.com>

  • 04eaa6 fix(path): buffer overflow in resolve/relative when CWD + paths > PATH_SIZE (#27661)

    Summary

    • Fixed heap buffer overflow in path.resolve, path.relative, and
      path.toNamespacedPath that occurred when the CWD length + path
      argument lengths exceeded PATH_SIZE (4096 on Linux, 1024 on macOS)
    • The work buffers were sized for user-provided paths but didn't account
      for the CWD that resolvePosixT/resolveWindowsT prepends when all
      paths are relative
    • This caused non-deterministic segfaults (often in a later unrelated
      allocation like path.normalize) because path string data overwrote
      mimalloc's internal heap metadata

    Crash report:
    https://bun.report/1.3.10/M_189a8aa9mgEuhogC_23m3oBmvsvoBm/uvtB________________A23231jqD9h19td/view

    Test plan

    • New test: test/js/node/path/resolve-long-cwd.test.ts — creates a
      deep directory (~3000 bytes) and calls resolve/relative with long
      relative paths, verifying correct output
    • Existing path tests pass (bun bd test test/js/node/path/ — 119
      pass, 0 fail)
    • Confirmed the bug triggers a bounds-check panic in debug builds
      before the fix: panic: index out of bounds: index 5041, len 4098

    🤖 Generated with Claude Code


    Co-authored-by: Claude Bot <claude-bot@​bun.sh>
    Co-authored-by: Claude Opus 4.6 (1M context) <noreply@​anthropic.com>

  • 3101b8 harden(ws): validate Sec-WebSocket-Accept during handshake (#27504)

    Summary

    • Implement RFC 6455 §4.2.2 compliant validation of the
      Sec-WebSocket-Accept header during WebSocket upgrade handshake
    • Previously the client checked that the header was present and
      non-empty but did not verify the value matched
      base64(SHA-1(Sec-WebSocket-Key + GUID))
    • This hardens the handshake against intermediaries that may incorrectly
      serve stale or mismatched 101 responses, ensuring the client only
      proceeds when the server has actually acknowledged this specific upgrade
      request
    • The mismatch_websocket_accept_header error code was already defined
      but never emitted — it is now used

    Test plan

    • New test: websocket-accept-header-validation.test.ts
    • Verifies incorrect Sec-WebSocket-Accept value causes connection
      failure
    • Verifies correct Sec-WebSocket-Accept value allows successful
      connection
    • Test validated with USE_SYSTEM_BUN=1 (fails on rejection test,
      confirming the fix is necessary)
    • All existing WebSocket tests continue to pass (short-read,
      subprotocol, close-fragmented, pong-fragmented, permessage-deflate)

    🤖 Generated with Claude Code


    Co-authored-by: Claude Bot <claude-bot@​bun.sh>
    Co-authored-by: Claude <noreply@​anthropic.com>
    Co-authored-by: Jarred Sumner <jarred@​jarredsumner.com>

  • 226d26 Revert "fix(bundler): default import from 'bun' with --bytecode no longer undefined (#27175)"

    This reverts commit 87deb0e98e1cebb09a7531cd38d237aadd86284a.

  • 87deb0 fix(bundler): default import from 'bun' with --bytecode no longer undefined (#27175)

    Summary

    • Fixes import Bun from 'bun' being undefined when bundled with
      --bytecode flag
    • The CJS lowering pass was incorrectly adding .default property
      access to globalThis.Bun, which doesn't have a default property
    • Also skips unnecessary __toESM wrapper inclusion for built-in bun
      module imports

    Root Cause

    When --bytecode is used, the bundler wraps output in CJS format. For
    external modules, the linker sets up a namespace_alias with alias: "default" so the printer generates property access like
    require_module().default. The printer correctly replaces the bun
    import source with globalThis.Bun, but was still appending .default
    — producing import_bun.default instead of just import_bun.

    Fix

    Three targeted changes:

    1. scanImportsAndExports.zig: Skip CJS interop wrapping
      (__toESM) for bun tagged imports since globalThis.Bun doesn't need
      it
    2. LinkerContext.zig: Pass import_record_index through to
      namespace_alias so the printer can identify the import source
    3. js_printer.zig: Skip the .default property access for bun
      tagged import records, while preserving named property accesses (e.g.
      .serve)

    Test plan

    • bun bd test test/regression/issue/20670.test.ts — 4 pass
      (default, aliased, combined, namespace imports)
    • Tests fail with USE_SYSTEM_BUN=1 confirming they test the actual
      fix
    • bun bd test test/bundler/bundler_bun.test.ts — 10 pass
    • bun bd test test/bundler/bundler_cjs.test.ts — 23 pass
    • bun bd test test/bundler/bundler_edgecase.test.ts — 99 pass

    Closes #20670

    🤖 Generated with Claude Code

    Co-authored-by: Claude Bot <claude-bot@​bun.sh>
    Co-authored-by: Claude <noreply@​anthropic.com>
    Co-authored-by: Jarred Sumner <jarred@​jarredsumner.com>

  • e5ac0e fix(install): match npmrc auth tokens by both host and path (#26351)

    Summary

    • Fixes .npmrc auth token matching to consider both host and
      pathname when matching tokens to registries
    • Previously, when multiple auth tokens existed for the same host but
      different paths, the last token would incorrectly be used for all
      registries
    • Now, //somehost.com/org1/npm/registry/:_authToken=jwt1 correctly
      only applies to registry URLs with path /org1/npm/registry/

    Test plan

    • Added unit tests that verify correct token is matched for
      same-host different-path scenarios
    • Verified tests fail with system Bun (pre-fix) and pass with debug
      build (post-fix)
    • Ran existing npmrc tests to ensure no regression

    Fixes #26350

    🤖 Generated with Claude Code

    Co-authored-by: Claude Bot <claude-bot@​bun.sh>
    Co-authored-by: Claude Opus 4.5 <noreply@​anthropic.com>

  • 553a5e fix(install): improve error message for missing file: dependency path (#26339)

    Summary

    • Add specific error handling for MissingPackageJSON errors from
      file: dependency resolution
    • Show the actual missing path instead of generic "package.json not
      found" message

    Fixes #26338

    What was the problem?

    When a file: dependency's target path doesn't exist (e.g., due to a
    stale lockfile referencing an old path), Bun was showing:

    error: Bun could not find a package.json file to install from
    note: Run "bun init" to initialize a project
    

    This error was misleading because:

    1. The root package.json exists
    2. The actual issue is a missing file: dependency path
    3. Running bun init won't help

    What is the fix?

    Now when a file: dependency path doesn't exist, Bun shows:

    error: Could not find package.json for "file:../packages/@&ZeroWidthSpace;scope/dep" dependency "dep"
    

    This clearly identifies:

    • The dependency that failed
    • The exact path that was not found

    Test plan

    • Added regression test test/regression/issue/26338.test.ts
    • Verified test fails with system Bun (before fix)
    • Verified test passes with the fix

    🤖 Generated with Claude Code


    Co-authored-by: Claude Bot <claude-bot@​bun.sh>
    Co-authored-by: Claude Opus 4.5 <noreply@​anthropic.com>
    Co-authored-by: Jarred Sumner <jarred@​jarredsumner.com>

  • 9c085c fix(lockfile): handle BrokenPipe gracefully when printing lockfile (#26484)

    Summary

    • Fixes bun bun.lockb | head showing an internal error message instead
      of exiting silently

    Test plan

    • Added regression test in test/regression/issue/05828.test.ts
    • Verified the test fails with the current release version
    • Verified the test passes with the fix

    Fixes #5828

    🤖 Generated with Claude Code

    Co-authored-by: Claude Bot <claude-bot@​bun.sh>
    Co-authored-by: Claude Opus 4.5 <noreply@​anthropic.com>

  • 547925 fix(cli): bun update -i select all ('A') now updates packages correctly (#26658)

    Summary

    • Fixes the bug where pressing 'A' to select all packages in bun update -i would show "Selected X packages to update" but then immediately show
      "No packages selected for update"
    • The issue was that packages where current_version == update_version
      (already at the highest version within their semver constraint) but
      current_version != latest_version were silently skipped
    • The fix applies the same logic as the spacebar handler: when selecting
      all packages with 'A', automatically set use_latest=true for packages
      that need it

    Test plan

    • Verified test fails with system Bun (demonstrates the bug exists)
    • Verified test passes with fixed debug build
    • Existing update_interactive_install.test.ts tests pass
    • New regression test added in test/regression/issue/26657.test.ts

    Fixes #26657

    🤖 Generated with Claude Code

    Co-authored-by: Claude Bot <claude-bot@​bun.sh>
    Co-authored-by: Claude Opus 4.5 <noreply@​anthropic.com>

  • dff719 Reduce CI test output by using dots reporter (#26860)

    Summary

    • Adds --reporter=dots to bun test invocations in
      scripts/runner.node.mjs to reduce CI log output volume
    • The dots reporter prints a single character per test (. for pass,
      X for fail) instead of full test names
    • When JUnit reporting is also enabled, both reporters stack correctly —
      dots goes to stdout, JUnit writes to file

    Test plan

    • Verify CI builds run with dots reporter and produce smaller logs
    • Verify JUnit reports are still generated correctly when --junit
      is enabled

    🤖 Generated with Claude Code

    Co-authored-by: Claude Bot <claude-bot@​bun.sh>
    Co-authored-by: Claude <noreply@​anthropic.com>

  • cda1e9 fix(napi): allow structuredClone on napi_create_object results (#27444)

    What does this PR do?

    Fixes #25658 — structuredClone() throwing DataCloneError on objects
    created via napi_create_object, which works in Node.js.

    Root cause

    Bun's napi_create_object creates a NapiPrototype (a
    JSDestructibleObject subclass with an inline napiRef field for fast
    napi_wrap/napi_unwrap), not a plain JSFinalObject.

    WebKit's SerializedScriptValue serializer checks:

    if (inObject->classInfo() != JSFinalObject::info())
        return SerializationReturnCode::DataCloneError;

    NapiPrototype has its own ClassInfo, so the check fails.

    Node.js uses v8::Object::New() which creates a truly plain V8 object —
    V8's serializer clones it fine.

    Fix

    Add NapiPrototype::info() to the serializer's allowlist. The inline
    napiRef C++ field is invisible to property enumeration (serializer
    uses getOwnPropertyNames with PrivateSymbolMode::Exclude), so cloned
    objects correctly contain only JS properties — matching Node.js, where
    napi_unwrap on a clone also fails.

    How did you verify your code works?

    • Added test_napi_create_object_structured_clone using
      checkSameOutput which runs on both Node and Bun and asserts identical
      output
    • Verified test fails with USE_SYSTEM_BUN=1 (throws
      DataCloneError)
    • Verified test passes with bun bd test
    • Verified existing test/js/web/workers/structured-clone.test.ts still
      passes (118 tests)
    • 924586 fix(http2): send connection-level WINDOW_UPDATE in setLocalWindowSize (#26917)

    Summary

    • setLocalWindowSize() updated the internal connection window size but
      never sent a WINDOW_UPDATE frame for stream 0 (connection level) to
      the peer
    • Per RFC 9113 Section 6.9, INITIAL_WINDOW_SIZE only applies to
      stream-level windows; the connection-level window must be updated
      explicitly via WINDOW_UPDATE
    • This caused HTTP/2 streams to stall after receiving 65,535 bytes (the
      default connection window), even when setLocalWindowSize() was called
      with a larger value

    Test plan

    • Added regression test test/regression/issue/26915.test.ts that
      streams 256 KB over HTTP/2 with an enlarged window
    • Verified test fails with system bun (times out at 65,535
      bytes)
    • Verified test passes with debug build containing the fix

    Closes #26915

    🤖 Generated with Claude Code


    Co-authored-by: Claude Bot <claude-bot@​bun.sh>
    Co-authored-by: Claude <noreply@​anthropic.com>
    Co-authored-by: Jarred Sumner <jarred@​jarredsumner.com>

  • 6cb9d5 fix(child_process): remove self-referencing cycle in execSync/execFileSync errors (#26845)

    Summary

    • Fix checkExecSyncError creating a self-referencing cycle where
      err.error === err, which causes JSON.stringify(err) to throw
    • After ObjectAssign(err, ret) copies all properties from ret onto
      err (which IS ret.error), delete err.error to break the cycle
    • Add regression tests for both execFileSync and execSync

    Closes #26844

    Test plan

    • USE_SYSTEM_BUN=1 bun test test/regression/issue/26844.test.ts
      fails (confirms bug exists in system bun)
    • bun bd test test/regression/issue/26844.test.ts passes (confirms
      fix works)
    • CI passes

    🤖 Generated with Claude Code

    Co-authored-by: Claude Bot <claude-bot@​bun.sh>
    Co-authored-by: Claude <noreply@​anthropic.com>

  • 850139 fix(zlib): validate buffer bounds in native write/writeSync instead of using assert (#26946)

    Summary

    • Fixes OOB read/write vulnerability in native zlib handle write() and
      writeSync() methods where user-controlled in_off, in_len,
      out_off, out_len parameters were only validated via bun.assert(),
      which compiles to a no-op in ReleaseFast production builds
    • Replaces all bun.assert() calls in both write() and writeSync()
      with proper error returns (ERR_OUT_OF_RANGE, ERR_INVALID_ARG_TYPE,
      ERR_INVALID_ARG_VALUE, ERR_INVALID_STATE) that throw back to
      JavaScript
    • Also hardens .? (forced unwrap) on asArrayBuffer() calls to use
      orelse with proper error messages

    Test plan

    • Added test/js/node/zlib/zlib-handle-bounds-check.test.ts with 7
      test cases:
      • writeSync rejects in_len exceeding input buffer
      • writeSync rejects out_len exceeding output buffer
      • writeSync rejects in_off + in_len exceeding input buffer
      • writeSync rejects out_off + out_len exceeding output buffer
      • writeSync allows valid bounds
      • writeSync allows valid offset + length within bounds
      • writeSync allows null input (flush only)
    • Verified tests fail with USE_SYSTEM_BUN=1 (4 OOB tests fail on
      unpatched release build)
    • Verified tests pass with bun bd test (all 7 pass with fix)
    • Verified existing zlib tests still pass (deflate, inflate, gzip)

    🤖 Generated with Claude Code


    Co-authored-by: Claude Bot <claude-bot@​bun.sh>
    Co-authored-by: Claude <noreply@​anthropic.com>
    Co-authored-by: Jarred Sumner <jarred@​jarredsumner.com>

  • f56700 fix(run): validate NODE env path exists before using it (#26208)

    Summary

    • Fixes bun run --filter and bun run --workspaces failing when
      NODE env var points to a non-existent file
    • The getNodePath function now validates that the NODE or
      npm_node_execpath env var points to an executable file before using it
    • If the env var path doesn't exist, falls back to searching PATH for
      node, then creates bun's node symlink if no system node is found

    Test plan

    • Added regression test for issue #26207
    • Verified existing workspaces and filter tests still pass
    • Verified bun run --workspaces works when NODE env is invalid
    • Verified bun run --filter works when NODE env is invalid
    • Verified scripts with #!/usr/bin/env node shebang work correctly

    Fixes #26207

    🤖 Generated with Claude Code


    Co-authored-by: Claude Bot <claude-bot@​bun.sh>
    Co-authored-by: Claude Opus 4.5 <noreply@​anthropic.com>

  • 4de50d Revert "fix: don't call direct ReadableStream cancel on normal completion (#27214)"

    This reverts commit 32230cc0b9ca312a7d6d158400f13c08621df2b0.

  • 32230c fix: don't call direct ReadableStream cancel on normal completion (#27214)

    Summary

    • Fixed ReadableStream with type: "direct" incorrectly calling the
      user's cancel callback on normal stream completion
    • The close callback in readDirectStream was unconditionally
      invoking underlyingSource.cancel(reason) whenever the stream was
      finalized, even on successful completion where reason is undefined
    • Now the cancel callback is only invoked when there is a truthy
      reason (an actual error), matching expected ReadableStream behavior

    Closes #17175

    Test plan

    • Added regression test test/regression/issue/17175.test.ts with 3
      test cases:
    • Direct stream cancel not called on normal completion (single write +
      flush)
      • Direct stream cancel not called with multiple writes
      • Direct stream cancel not called with explicit close()
    • Verified all 3 tests fail with system Bun (USE_SYSTEM_BUN=1) and
      pass with debug build
    • Verified existing serve-direct-readable-stream.test.ts still
      passes
    • Verified existing direct stream tests in serve.test.ts still
      pass

    🤖 Generated with Claude Code

    Co-authored-by: Claude Bot <claude-bot@​bun.sh>
    Co-authored-by: Claude <noreply@​anthropic.com>
    Co-authored-by: Jarred Sumner <jarred@​jarredsumner.com>

  • 3e1e28 fix(transpiler): respect trimUnusedImports in scanImports/scan (#27142)

    Summary

    • trimUnusedImports was ignored by Bun.Transpiler.scanImports() and
      Bun.Transpiler.scan(), only working for transformSync()
    • The namedImportsToJS helper now checks the is_unused flag on
      import records when trimUnusedImports is enabled
    • Also fixes a pre-existing array sizing bug where skipped records left
      holes/undefined entries in the result array

    Closes #13251

    Test plan

    • Added regression test test/regression/issue/13251.test.ts
      covering:
    • scanImports() with trimUnusedImports: true — unused named,
      default, and namespace imports are trimmed
    • scan() with trimUnusedImports: true — unused imports are trimmed
      from the result
    • Used imports, bare/side-effect imports, and type-only imports behave
      correctly
      • trimUnusedImports: false preserves all imports (no regression)
    • Test fails with system Bun (USE_SYSTEM_BUN=1) and passes with
      debug build (bun bd test)

    🤖 Generated with Claude Code

    Co-authored-by: Claude Bot <claude-bot@​bun.sh>
    Co-authored-by: Claude <noreply@​anthropic.com>

  • bf5025 fix(test): show empty string keys in object diffs (#27166)

    Summary

    • Fix bun test object diffs silently dropping properties with empty
      string keys ("")
    • Fix console.log also dropping empty string keys when formatting
      objects
    • Identifier::isEmpty() was returning true for both null identifiers
      and empty string identifiers, causing forEachPropertyOrdered and
      forEachPropertyImpl to skip "" keys entirely

    Root Cause

    In src/bun.js/bindings/bindings.cpp, two property iteration functions
    used property.isEmpty() to skip invalid identifiers. However,
    WTF::String::isEmpty() returns true for zero-length strings (like
    ""), not just null strings. This meant legitimate empty string
    property keys were silently dropped during object formatting.

    The fix replaces property.isEmpty() with property.isNull() to only
    skip null identifiers, and removes a redundant key.len == 0 check.

    Test plan

    • Added regression test test/regression/issue/18028.test.ts with 6
      test cases
    • Verified test passes with bun bd test
    • Verified subprocess diff test fails with USE_SYSTEM_BUN=1
      (unfixed bun)

    Closes #18028

    🤖 Generated with Claude Code

    Co-authored-by: Claude Bot <claude-bot@​bun.sh>
    Co-authored-by: Claude <noreply@​anthropic.com>

  • cd3f03 fix(dgram): don't unconditionally set SO_REUSEADDR on UDP sockets (#27246)

    Summary

    • Remove unconditional SO_REUSEADDR from bsd_create_udp_socket() in
      uSockets, which was applied to all UDP sockets when port != 0
    • This makes SO_REUSEADDR correctly gated behind the reuseAddr: true
      option in dgram.createSocket(), matching Node.js behavior
    • Without this fix, multiple processes could silently bind to the same
      UDP port and addMembership() would never throw EADDRINUSE

    Test plan

    • New regression test in test/regression/issue/24157.test.ts
      verifies:
    • Second process gets EADDRINUSE when binding to an in-use UDP port
      without reuseAddr
    • Both processes can bind and addMembership() succeeds with
      reuseAddr: true
    • Test fails with system bun (USE_SYSTEM_BUN=1), passes with debug
      build
    • Manual verification with the exact reproduction from the issue

    Closes #24157

    🤖 Generated with Claude Code

    Co-authored-by: Claude Bot <claude-bot@​bun.sh>
    Co-authored-by: Claude <noreply@​anthropic.com>

  • 1a86bd fix(s3): respect slice range in .stream() when offset is 0 (#27273)

    Summary

    • Fixed downloadStream() in src/s3/client.zig to correctly construct
      a Range header when offset == 0 and a size is specified
    • The same bug was previously fixed for downloadSlice() (used by
      .text()/.arrayBuffer()) in PR #16400, but the fix was never applied
      to downloadStream()
    • Without this fix, s3file.slice(0, N).stream() ignores the slice
      range and downloads the entire file

    Root Cause

    In the downloadStream() function, when building the HTTP Range header,
    there was an early return if (offset == 0) break :brk null inside the
    if (size) block. This caused the Range header to be omitted when
    offset was 0, even when a size was specified — meaning .slice(0, 1070).stream() would download the entire file.

    Test plan

    • Added regression test at test/regression/issue/27272.test.ts
    • Added .slice().stream() tests (offset 0 and non-zero offset) to
      test/js/bun/s3/s3.test.ts
    • Debug build compiles successfully
    • Existing S3 tests still pass
    • CI S3 tests (requires credentials)

    Closes #27272

    🤖 Generated with Claude Code

    Co-authored-by: Claude Bot <claude-bot@​bun.sh>
    Co-authored-by: Claude <noreply@​anthropic.com>

  • 61f3bc fix(shell): builtin rm returns wrong exit code in quiet mode (#27280)

    Summary

    • Fixed builtin rm returning exit code 0 instead of 1 when a file
      doesn't exist and .quiet() or .text() is used
    • The next() function had a hardcoded done(0) that ignored the
      stored exit code, only affecting the quiet/pipe code path
    • Also fixed onShellRmTaskDone to use POSIX-conventional exit code 1
      instead of raw errno values

    Closes #18161

    Test plan

    • New regression test test/regression/issue/18161.test.ts
      covering:
      • .quiet() throws on rm failure
      • .nothrow().quiet() returns non-zero exit code
      • .text() throws on rm failure
      • .quiet() returns 0 on successful rm
      • Exit code matches between quiet and non-quiet modes
    • Verified test fails with USE_SYSTEM_BUN=1 (2 of 5 tests fail)
    • Verified test passes with bun bd test
    • Existing throw.test.ts tests pass
    • Existing bunshell.test.ts tests have no new failures (4
      pre-existing quiet subprocess timeout failures)

    🤖 Generated with Claude Code

    Co-authored-by: Claude Bot <claude-bot@​bun.sh>
    Co-authored-by: Claude <noreply@​anthropic.com>

  • 915749 fix(types): add missing contentEncoding to S3Options type definition (#27329)

    Summary

    • Adds the missing contentEncoding property to the S3Options
      TypeScript type definition in packages/bun-types/s3.d.ts
    • The runtime support for contentEncoding was added in PR #26149 but
      the type definitions were not updated, causing TypeScript errors and
      missing IDE autocompletion

    Closes #27328

    Test plan

    • Verify contentEncoding appears in S3Options interface
      alongside contentDisposition
    • Existing runtime tests in test/js/bun/s3/s3.test.ts already
      cover the runtime behavior

    🤖 Generated with Claude Code

    Co-authored-by: Claude Bot <claude-bot@​bun.sh>
    Co-authored-by: Claude <noreply@​anthropic.com>

  • a39303 fix(crypto): clear OpenSSL error queue in TryParsePrivateKey (#27446)

    Summary

    • A failed crypto.createPrivateKey() call (e.g. on an encrypted PEM
      without a passphrase) left stale errors on the OpenSSL error queue,
      causing subsequent unrelated createPrivateKey() calls to fail with
      "Passphrase required for encrypted key"
    • Added ClearErrorOnReturn at the top of TryParsePrivateKey() in
      ncrypto.cpp to ensure the OpenSSL error queue is clean on both entry
      and exit
    • This is consistent with how other functions like
      TryParsePublicKeyInner() and writePrivateKey() already handle the
      error queue

    Closes #27445

    Test plan

    • Added regression test test/regression/issue/27445.test.ts that
      reproduces the exact scenario from the issue
    • Verified test fails with system bun (USE_SYSTEM_BUN=1)
    • Verified test passes with debug build (bun bd test)
    • Ran full crypto.key-objects.test.ts suite (83 pass, 0 fail)

    🤖 Generated with Claude Code

    Co-authored-by: Claude Bot <claude-bot@​bun.sh>
    Co-authored-by: Claude <noreply@​anthropic.com>
    Co-authored-by: Jarred Sumner <jarred@​jarredsumner.com>

  • 9f88b3 fix(http): validate header names and values in writeEarlyHints (#26933)

    Summary

    • Fix CRLF injection vulnerability in
      ServerResponse.prototype.writeEarlyHints where non-link header keys
      and values were concatenated into the raw HTTP 103 response without
      validation
    • Add validateHeaderName and validateHeaderValue checks (same ones
      used by setHeader) before writing headers to the socket
    • Add tests verifying that CRLF injection in both header names and
      values is rejected, and that valid headers still work

    Test plan

    • bun bd test test/js/node/http/early-hints-crlf-injection.test.ts
      — 3/3 pass
    • USE_SYSTEM_BUN=1 bun test test/js/node/http/early-hints-crlf-injection.test.ts — 2/3 fail
      (confirms test catches the vulnerability)
    • Existing test-http-early-hints-invalid-argument.js still passes

    🤖 Generated with Claude Code

    Co-authored-by: Claude Bot <claude-bot@​bun.sh>
    Co-authored-by: Claude <noreply@​anthropic.com>

  • 488ef6 fix(docs): correct bcrypt rounds description from log10 to log2 (#27475)

    Summary

    • Fix incorrect description of bcrypt cost parameter in hashing docs:
      log10log2
    • The bcrypt cost factor is a power-of-2 exponent (cost=10 means 2^10 =
      1,024 rounds), confirmed by src/bun.js/api/crypto/PasswordObject.zig
      which uses the value as rounds_log with valid range 4–31

    Test plan

    • Documentation-only change, no code behavior affected

    Fixes #27474

    🤖 Generated with Claude Code


    Co-authored-by: Claude Bot <claude-bot@​bun.sh>
    Co-authored-by: Claude <noreply@​anthropic.com>
    Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@​users.noreply.redirect.github.com>

  • 668d96 fix(http): preserve bytes >= 0x80 in HTTP header values (#27269)

    Summary

    • Fix signed char comparison bug in uWS HttpParser.h that caused
      bytes >= 0x80 to be stripped from HTTP header values on platforms where
      char is signed (x86_64 Linux, x86_64 macOS, ARM macOS)
    • Replace < 33 comparison with explicit checks for SP and HTAB per RFC
      9110 Section 5.5
    • This also fixes a potential request smuggling vector where
      Transfer-Encoding: \xffchunked\xff would be interpreted as
      Transfer-Encoding: chunked

    Closes #8893

    Root Cause

    In packages/bun-uws/src/HttpParser.h, the getHeaders function
    trimmed whitespace from header values using:

    while (headers->value.back() < 33) { ... }

    std::string_view::back() returns char, which is signed on
    x86_64. Bytes 0x80-0xFF are negative values (-128 to -1), all less than
    33, so they were incorrectly stripped as whitespace.

    Fix

    Replace the numeric comparison with explicit OWS character checks:

    while (headers->value.back() == ' ' || headers->value.back() == '\t') { ... }

    This matches RFC 9110 Section 5.5 which defines OWS (Optional White
    Space) as only SP and HTAB.

    Test plan

    • Added regression test test/regression/issue/08893.test.ts that
      sends raw HTTP requests with 0xFF bytes in header values and verifies
      they are preserved
    • Added test that SP/HTAB trimming still works correctly
    • bun bd test test/regression/issue/08893.test.ts passes (2/2
      tests)

    🤖 Generated with Claude Code


    Co-authored-by: Claude Bot <claude-bot@​bun.sh>
    Co-authored-by: Claude <noreply@​anthropic.com>
    Co-authored-by: Jarred Sumner <jarred@​jarredsumner.com>

  • c5f0e4 fix(css): use correct physical property IDs for logical border-radius with var() (#27460)

    Summary

    • Fixed CSS bundler incorrectly mapping all four logical border-radius
      properties (border-start-start-radius, border-start-end-radius,
      border-end-start-radius, border-end-end-radius) to
      border-top-left-radius/border-top-right-radius when values contain
      var() references
    • The unparsed branch in BorderRadiusHandler.logicalProperty()
      hardcoded property IDs instead of using the ltr/rtl comptime
      parameters that are already correctly passed to the function

    Closes #27458

    Test plan

    • Added regression test in test/regression/issue/27458.test.ts
    • Test verifies all four distinct physical properties are present in
      output
    • Test verifies each physical property appears exactly once per LTR
      block
    • Test fails on system bun (USE_SYSTEM_BUN=1), passes on debug
      build

    🤖 Generated with Claude Code

    Co-authored-by: Claude Bot <claude-bot@​bun.sh>
    Co-authored-by: Claude <noreply@​anthropic.com>

  • 106a95 fix(bundler): use absolute asset URLs in HTML for --compile mode (#27466)

    Summary

    • When bun build --compile bundles HTML with JS/CSS assets, the client
      transpiler's public_path was set to "" (empty), which caused
      cheapPrefixNormalizer to produce relative URLs like ./chunk-abc.js
    • These relative URLs break when HTML is served from nested routes (e.g.
      /foo/) because the browser resolves them relative to the current path
      (producing /foo/chunk-abc.js instead of /chunk-abc.js)
    • Changed the client transpiler's public_path from "" to "/" so
      assets use absolute root-relative URLs like /chunk-abc.js

    Closes #27465

    Test plan

    • Regression test in test/regression/issue/27465.test.ts verifies
      compiled HTML serves assets with absolute URLs from nested routes
    • Existing test/bundler/bundler_html.test.ts tests pass (21/21)
    • Existing test/bundler/html-import-manifest.test.ts tests pass
      (3/3)
    • Regular bun build (without --compile) still uses relative ./
      paths as expected for static file serving
    • Dev mode (bun run) continues to use /_bun/client/ absolute
      paths

    🤖 Generated with Claude Code

    Co-authored-by: Claude Bot <claude-bot@​bun.sh>
    Co-authored-by: Claude <noreply@​anthropic.com>

@michijs
Copy link
Contributor Author

michijs bot commented Mar 2, 2026

Bump @​mdn/browser-compat-data from 7.2.3 to 7.3.5

Changelog:
Sourced from releases.
        ### v7.3.5### Additions
  • browsers.bun.releases.1.3.10 (#29141)
  • browsers.firefox_android.releases.151 (#29129)
  • browsers.firefox.releases.151 (#29129)
  • css.properties.alignment-baseline.text-bottom (#29135)
  • css.properties.alignment-baseline.text-top (#29135)
  • css.properties.baseline-shift.bottom (#29135)
  • css.properties.baseline-shift.center (#29135)
  • css.properties.baseline-shift.top (#29135)
  • css.properties.dominant-baseline.text-bottom (#29135)
  • css.properties.dominant-baseline.text-top (#29135)
  • css.properties.vertical-align.center (#29135)
  • css.properties.vertical-align.first (#29135)
  • css.properties.vertical-align.last (#29135)
  • html.elements.script.integrity.ed25519_public_key (#29112)
  • http.headers.Signature (#29112)
  • http.headers.Signature-Input (#29112)
  • http.headers.Unencoded-Digest (#29112)

Statistics

  • 6 contributors have changed 33 files with 684 additions and 155 deletions in 14 commits (v7.3.4...v7.3.5)

  • 19,384 total features

  • 1,228 total contributors

  • 5,594 total stargazers

          ### v7.3.4### Additions
    
  • api.HTMLButtonElement.commandForElement.implicit_anchor_reference (#29093)

  • browsers.deno.releases.2.6 (#29121)

  • browsers.deno.releases.2.6.7 (#29121)

  • browsers.deno.releases.2.7 (#29121)

  • html.elements.button.commandfor.implicit_anchor_reference (#29093)

  • html.elements.link.rel.modulepreload.as-json (#29048)

  • html.elements.link.rel.modulepreload.as-script (#29048)

  • html.elements.link.rel.modulepreload.as-style (#29048)

  • http.headers.Permissions-Policy.gamepad (#28744)

Statistics

  • 8 contributors have changed 50 files with 870 additions and 1,909 deletions in 21 commits (v7.3.3...v7.3.4)

  • 19,370 total features

  • 1,228 total contributors

  • 5,590 total stargazers

          ### v7.3.3### Removals
    
  • html.global_attributes.nonce.nonce_hiding (#29045)

  • http.headers.X-Frame-Options.ALLOW-FROM (#29069)

Additions

  • api.Document.execCommand.paste (#28953)
  • api.WebTransport.anticipatedConcurrentIncomingBidirectionalStreams (#29063)
  • api.WebTransport.anticipatedConcurrentIncomingUnidirectionalStreams (#29063)
  • api.WebTransport.createSendGroup (#29063)
  • api.WebTransport.draining (#29063)
  • api.WebTransport.supportsReliableOnly_static (#29063)
  • api.WebTransportDatagramDuplexStream.createWritable (#29063)
  • api.WebTransportDatagramsWritable (#29063)
  • api.WebTransportDatagramsWritable.sendGroup (#29063)
  • api.WebTransportDatagramsWritable.sendOrder (#29063)
  • api.WebTransportSendGroup (#29063)
  • api.WebTransportSendGroup.getStats (#29063)
  • api.WebTransportSendStream.sendGroup (#29063)
  • browsers.edge.releases.148 (#29051)
  • browsers.safari_ios.releases.26.4 (#29056)
  • browsers.safari.releases.26.4 (#29056)
  • browsers.webview_ios.releases.26.4 (#29056)
  • css.properties.display.grid-lanes (#29063)
  • css.properties.display.inline-grid-lanes (#29063)
  • css.properties.flow-tolerance (#29063)
  • css.properties.flow-tolerance.infinite (#29063)
  • css.properties.flow-tolerance.normal (#29063)
  • css.types.random.dashed-ident (#29081)
  • css.types.random.element-shared (#29081)
  • css.types.random.step (#29081)
  • javascript.builtins.RegExp.compile.rexexp_legacy_features (#28999)

Statistics

  • 7 contributors have changed 64 files with 1,172 additions and 656 deletions in 32 commits (v7.3.2...v7.3.3)

  • 19,364 total features

  • 1,225 total contributors

  • 5,585 total stargazers

          ### v7.3.2### Removals
    
  • html.elements.input.list (#29023)

Additions

  • api.AnimationTrigger (#29033)
  • api.Clipboard.clipboardchange_event (#28977)
  • api.CrashReportContext (#29028)
  • api.CrashReportContext.delete (#29028)
  • api.CrashReportContext.initialize (#29028)
  • api.CrashReportContext.set (#29028)
  • api.GPUSupportedLimits.maxStorageBuffersInFragmentStage (#29033)
  • api.GPUSupportedLimits.maxStorageBuffersInVertexStage (#29033)
  • api.GPUSupportedLimits.maxStorageTexturesInFragmentStage (#29033)
  • api.GPUSupportedLimits.maxStorageTexturesInVertexStage (#29033)
  • api.GPUTexture.textureBindingViewDimension (#29033)
  • api.HTMLGeolocationElement (#28801)
  • api.HTMLGeolocationElement.autolocate (#28801)
  • api.HTMLGeolocationElement.error (#28801)
  • api.HTMLGeolocationElement.HTMLGeolocationElement (#28801)
  • api.HTMLGeolocationElement.initialPermissionStatus (#28801)
  • api.HTMLGeolocationElement.invalidReason (#28801)
  • api.HTMLGeolocationElement.isValid (#28801)
  • api.HTMLGeolocationElement.location_event (#28801)
  • api.HTMLGeolocationElement.permissionStatus (#28801)
  • api.HTMLGeolocationElement.position (#28801)
  • api.HTMLGeolocationElement.promptaction_event (#28801)
  • api.HTMLGeolocationElement.promptdismiss_event (#28801)
  • api.HTMLGeolocationElement.validationstatuschange_event (#28801)
  • api.HTMLGeolocationElement.watch (#28801)
  • api.Window.crashReport (#29028)
  • browsers.bun.releases.1.3.9 (#29003)
  • browsers.chrome_android.releases.148 (#29013)
  • browsers.chrome.releases.148 (#29013)
  • browsers.opera_android.releases.95 (#29017)
  • browsers.webview_android.releases.148 (#29013)
  • css.at-rules.container.scroll-state_queries.scrolled (#28983)
  • css.at-rules.media.scan (#28930)
  • css.properties.animation-trigger (#29033)
  • css.properties.animation-trigger.none (#29033)
  • css.properties.background-position-x.x-end (#29027)
  • css.properties.background-position-x.x-start (#29027)
  • css.properties.background-position-y.y-end (#29027)
  • css.properties.background-position-y.y-start (#29027)
  • css.properties.background-position.x-end (#29027)
  • css.properties.background-position.x-start (#29027)
  • css.properties.background-position.y-end (#29027)
  • css.properties.background-position.y-start (#29027)
  • css.properties.background.x-end (#29027)
  • css.properties.background.x-start (#29027)
  • css.properties.background.y-end (#29027)
  • css.properties.background.y-start (#29027)
  • css.properties.mask-position.x-end (#29027)
  • css.properties.mask-position.x-start (#29027)
  • css.properties.mask-position.y-end (#29027)
  • css.properties.mask-position.y-start (#29027)
  • css.properties.mask.x-end (#29027)
  • css.properties.mask.x-start (#29027)
  • css.properties.mask.y-end (#29027)
  • css.properties.mask.y-start (#29027)
  • css.properties.object-position.x-end (#29027)
  • css.properties.object-position.x-start (#29027)
  • css.properties.object-position.y-end (#29027)
  • css.properties.object-position.y-start (#29027)
  • css.properties.offset-anchor.x-end (#29027)
  • css.properties.offset-anchor.x-start (#29027)
  • css.properties.offset-anchor.y-end (#29027)
  • css.properties.offset-anchor.y-start (#29027)
  • css.properties.offset-position.x-end (#29027)
  • css.properties.offset-position.x-start (#29027)
  • css.properties.offset-position.y-end (#29027)
  • css.properties.offset-position.y-start (#29027)
  • css.properties.offset.x-end (#29027)
  • css.properties.offset.x-start (#29027)
  • css.properties.offset.y-end (#29027)
  • css.properties.offset.y-start (#29027)
  • css.properties.overflow-x.replaced_elements (#29002)
  • css.properties.overflow-y.replaced_elements (#29002)
  • css.properties.overflow.replaced_elements (#29002)
  • css.properties.perspective-origin.x-end (#29027)
  • css.properties.perspective-origin.x-start (#29027)
  • css.properties.perspective-origin.y-end (#29027)
  • css.properties.perspective-origin.y-start (#29027)
  • css.properties.timeline-trigger (#29033)
  • css.properties.timeline-trigger-name (#29033)
  • css.properties.timeline-trigger-name.none (#29033)
  • css.properties.timeline-trigger-source (#29033)
  • css.properties.timeline-trigger-source.auto (#29033)
  • css.properties.timeline-trigger-source.none (#29033)
  • css.properties.timeline-trigger.auto (#29033)
  • css.properties.timeline-trigger.none (#29033)
  • css.properties.timeline-trigger.normal (#29033)
  • css.properties.trigger-scope (#29033)
  • css.properties.trigger-scope.all (#29033)
  • css.properties.trigger-scope.none (#29033)
  • html.elements.datalist.input_type_color (#28189)
  • html.elements.datalist.input_type_date (#28189)
  • html.elements.datalist.input_type_email (#29023)
  • html.elements.datalist.input_type_number (#29023)
  • html.elements.datalist.input_type_range (#28189)
  • html.elements.datalist.input_type_search (#29023)
  • html.elements.datalist.input_type_tel (#29023)
  • html.elements.datalist.input_type_text (#29023)
  • html.elements.datalist.input_type_time (#28189)
  • html.elements.datalist.input_type_url (#29023)
  • html.elements.geolocation (#28801)
  • html.elements.geolocation.autolocate (#28801)
  • html.elements.geolocation.watch (#28801)
  • html.elements.input.type_color.list (#28189)
  • html.elements.input.type_date.list (#28189)
  • html.elements.input.type_email.list (#29023)
  • html.elements.input.type_number.list (#29023)
  • html.elements.input.type_range.list (#28189)
  • html.elements.input.type_search.list (#29023)
  • html.elements.input.type_tel.list (#29023)
  • html.elements.input.type_text.list (#29023)
  • html.elements.input.type_time.list (#28189)
  • html.elements.input.type_url.list (#29023)
  • webdriver.bidi.userAgentClientHints (#29025)
  • webdriver.bidi.userAgentClientHints.setClientHintsOverride (#29025)
  • webdriver.bidi.userAgentClientHints.setClientHintsOverride.clientHints_parameter (#29025)
  • webdriver.bidi.userAgentClientHints.setClientHintsOverride.contexts_parameter (#29025)
  • webdriver.bidi.userAgentClientHints.setClientHintsOverride.userContexts_parameter (#29025)
  • webextensions.api.permissions.Permissions.data_collection (#28978)

Statistics

  • 13 contributors have changed 135 files with 4,847 additions and 648 deletions in 42 commits (v7.3.1...v7.3.2)

  • 19,344 total features

  • 1,224 total contributors

  • 5,587 total stargazers

          ### v7.3.1### Removals
    
  • css.types.color.system-color.mark_marktext_buttonborder (#28924)

Additions

  • css.at-rules.media.color-gamut.p3 (#28892)
  • css.at-rules.media.color-gamut.rec2020 (#28892)
  • css.at-rules.media.color-gamut.srgb (#28892)
  • css.properties.columns.column-height (#28923)
  • css.types.color.system-color.buttonborder (#28924)
  • css.types.color.system-color.mark (#28924)
  • css.types.color.system-color.marktext (#28924)
  • http.headers.Permissions-Policy.ch-ua-high-entropy-values (#28895)
  • javascript.builtins.Iterator.zip (#28960)
  • javascript.builtins.Iterator.zipKeyed (#28960)
  • webextensions.api.runtime.getVersion (#28942)

Statistics

  • 8 contributors have changed 286 files with 5,079 additions and 4,490 deletions in 32 commits (v7.3.0...v7.3.1)

  • 19,231 total features

  • 1,221 total contributors

  • 5,580 total stargazers

          ### v7.3.0### Notable changes
    

This release includes one notable change.

1. Deprecate experimental status (#28811)

Previously, the status.experimental field was used to indicate feature stability.

Now, this field is deprecated and should no longer be used by consumers.

For details, see the Status information section of the compat data JSON schema documentation.

Statistics

  • 2 contributors have changed 2 files with 15 additions and 4 deletions in 1 commit (v7.2.6...v7.3.0)

  • 19,221 total features

  • 1,219 total contributors

  • 5,570 total stargazers

          ### v7.2.6### Additions
    
  • api.GPUSupportedFeatures.feature_subgroups.subgroup_id_num_subgroups (#28891)

  • api.RTCRtpSender.setParameters.parameters_degradationPreference_parameter.maintain-framerate-and-resolution_value (#28898)

  • api.WGSLLanguageFeatures.extension_subgroup_id (#28891)

  • browsers.bun.releases.1.3.7 (#28932)

  • browsers.bun.releases.1.3.8 (#28943)

  • css.types.image.filter (#28916)

Statistics

  • 8 contributors have changed 27 files with 401 additions and 315 deletions in 24 commits (v7.2.5...v7.2.6)

  • 19,221 total features

  • 1,219 total contributors

  • 5,570 total stargazers

          ### v7.2.5### Additions
    
  • api.Document.requestStorageAccess.strict_same_origin_policy (#28682)

  • api.ShadowRoot.referenceTarget (#28570)

  • browsers.edge.releases.147 (#28859)

  • css.at-rules.media.display-mode.browser (#28868)

  • css.at-rules.media.display-mode.fullscreen (#28868)

  • css.at-rules.media.display-mode.minimal-ui (#28868)

  • css.at-rules.media.display-mode.standalone (#28868)

  • css.at-rules.media.display-mode.window-controls-overlay (#28868)

  • css.types.random (#28840)

  • html.elements.input.switch (#28897)

  • html.elements.template.shadowrootreferencetarget (#28570)

  • javascript.builtins.AsyncFunction.AsyncFunction.enforces_trusted_types (#28778)

  • javascript.builtins.AsyncGeneratorFunction.AsyncGeneratorFunction.enforces_trusted_types (#28778)

  • javascript.builtins.GeneratorFunction.GeneratorFunction.enforces_trusted_types (#28778)

Statistics

  • 12 contributors have changed 44 files with 830 additions and 254 deletions in 39 commits (v7.2.4...v7.2.5)

  • 19,217 total features

  • 1,219 total contributors

  • 5,567 total stargazers

          ### v7.2.4### Removals
    
  • api.Document.startViewTransition.callbackOptions_parameter (#28541)

  • api.Window.sizeToContent (#28829)

Additions

  • api.Document.startViewTransition.options_parameter (#28541)
  • api.Document.startViewTransition.options_parameter.types_parameter (#28541)
  • api.Document.startViewTransition.options_parameter.update_parameter (#28541)
  • api.NavigationPrecommitController.addHandler (#28821)
  • api.NavigationTransition.to (#28833)
  • api.Origin (#28833)
  • api.Origin.from_static (#28833)
  • api.Origin.isSameOrigin (#28833)
  • api.Origin.isSameSite (#28833)
  • api.Origin.opaque (#28833)
  • api.Origin.Origin (#28833)
  • api.PerformanceElementTiming.paintTime (#28833)
  • api.PerformanceElementTiming.presentationTime (#28833)
  • api.PerformanceLongAnimationFrameTiming.paintTime (#28833)
  • api.PerformanceLongAnimationFrameTiming.presentationTime (#28833)
  • api.PerformanceNavigationTiming.confidence (#28833)
  • api.PerformanceResourceTiming.workerCacheLookupStart (#28819)
  • api.PerformanceResourceTiming.workerRouterEvaluationStart (#28819)
  • api.PerformanceTimingConfidence (#28833)
  • api.PerformanceTimingConfidence.randomizedTriggerRate (#28833)
  • api.PerformanceTimingConfidence.toJSON (#28833)
  • api.PerformanceTimingConfidence.value (#28833)
  • api.VideoFrame.metadata (#28833)
  • browsers.bun.releases.1.3.6 (#28802)
  • browsers.chrome_android.releases.147 (#28802)
  • browsers.chrome.releases.147 (#28802)
  • browsers.firefox_android.releases.150 (#28802)
  • browsers.firefox.releases.150 (#28802)
  • browsers.opera_android.releases.94 (#28826)
  • browsers.webview_android.releases.147 (#28802)
  • css.properties.buffered-rendering (#28827)
  • css.properties.buffered-rendering.auto (#28827)
  • css.properties.buffered-rendering.dynamic (#28827)
  • css.properties.buffered-rendering.static (#28827)
  • css.properties.color-rendering (#28827)
  • css.properties.color-rendering.auto (#28827)
  • css.properties.color-rendering.optimizeQuality (#28827)
  • css.properties.color-rendering.optimizeSpeed (#28827)
  • css.properties.column-height (#28833)
  • css.properties.column-height.auto (#28833)
  • css.properties.column-wrap (#28833)
  • css.properties.column-wrap.auto (#28833)
  • css.properties.column-wrap.nowrap (#28833)
  • css.properties.column-wrap.wrap (#28833)
  • css.properties.content.alt_text.counters (#28763)
  • css.selectors.marker.counter_support (#28625)
  • css.selectors.marker.quotes_support (#28625)
  • http.headers.No-Vary-Search.http_cache (#28689)
  • http.headers.No-Vary-Search.speculation_rules_prefetch (#28689)
  • http.headers.No-Vary-Search.speculation_rules_prerender (#28689)
  • javascript.builtins.Iterator.concat (#28788)

Statistics

  • 13 contributors have changed 127 files with 5,813 additions and 1,244 deletions in 53 commits (v7.2.3...v7.2.4)

  • 19,204 total features

  • 1,217 total contributors

  • 5,555 total stargazers

          ### v7.2.3### Additions
    
  • browsers.bun.releases.1.3.5 (#28706)

  • css.types.color.color.colorSpace_parameter_accepts_display-p3-linear_value (#28479)

  • html.elements.meta.name.viewport (#25392)

  • html.elements.meta.name.viewport.height (#25392)

  • html.elements.meta.name.viewport.initial-scale (#25392)

  • html.elements.meta.name.viewport.interactive-widget (#25392)

  • html.elements.meta.name.viewport.interactive-widget.overlays-content (#25392)

  • html.elements.meta.name.viewport.interactive-widget.resizes-content (#25392)

  • html.elements.meta.name.viewport.interactive-widget.resizes-visual (#25392)

  • html.elements.meta.name.viewport.maximum-scale (#25392)

  • html.elements.meta.name.viewport.minimum-scale (#25392)

  • html.elements.meta.name.viewport.user-scalable (#25392)

  • html.elements.meta.name.viewport.viewport-fit (#25392)

  • html.elements.meta.name.viewport.viewport-fit.auto (#25392)

  • html.elements.meta.name.viewport.viewport-fit.cover (#25392)

  • html.elements.meta.name.viewport.width (#25392)

  • http.headers.Accept-CH.Sec-CH-Width (#28690)

  • http.headers.Sec-CH-Width (#28690)

  • webextensions.api.proxy.ProxyInfo.masqueTemplate (#28213)

  • webextensions.api.proxy.ProxyInfo.type (#28213)

Statistics

  • 11 contributors have changed 147 files with 1,580 additions and 775 deletions in 24 commits (v7.2.2...v7.2.3)
  • 19,162 total features
  • 1,213 total contributors
  • 5,543 total stargazers
Commit history:
  • 96fdcb Bug-1993037 add `splitViewId` detailt to `tabs` API (#29128)
    • Bug-1993037 add splitViewId detailt to tabs API

    • Apply suggestions from @​Rob--W review

    Co-authored-by: Rob Wu <rob@​robwu.nl>

    • splitViewId to onchanged filter properties and fixed various errors in applied feedback

    Co-authored-by: Rob Wu <rob@​robwu.nl>

  • dc6fe8 chore(deps-dev): bump @​ddbeck/mdn-content-inventory from 0.2.20260226 to 0.2.20260227 (#29144)

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

    Bumps @​ddbeck/mdn-content-inventory from 0.2.20260226 to 0.2.20260227.


    updated-dependencies:

    • dependency-name: "@​ddbeck/mdn-content-inventory"
      dependency-version: 0.2.20260227
      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>

  • fe5be4 chore(deps-dev): bump the npm group with 2 updates (#29143)

    Bumps the npm group with 2 updates: @​types/node and strip-ansi.

    Updates @&ZeroWidthSpace;types/node from 24.10.14 to 24.10.15

    Updates strip-ansi from 7.1.2 to 7.2.0


    updated-dependencies:

    • dependency-name: "@​types/node"
      dependency-version: 24.10.15
      dependency-type: direct:development
      update-type: version-update:semver-patch
      dependency-group: npm
    • dependency-name: strip-ansi
      dependency-version: 7.2.0
      dependency-type: direct:development
      update-type: version-update:semver-minor
      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>

  • 5f4ecb Release v7.3.5 (#29131)
  • edcb06 No-vary-search and prerender on Android updates (#29114)

    • No vary search on Android updates

    • Update overall feature and also notes on prerender

    • Linting fixes

    • Apply suggestions from code review

    Co-authored-by: Florian Scholz <fs@​florianscholz.com>


    Co-authored-by: Florian Scholz <fs@​florianscholz.com>

  • 60c32a Add features for signature-based SRI (#29112)

    • Add features for signature-based integrity

    • Fix key name from @​Elchi3

    Co-authored-by: Florian Scholz <fs@​florianscholz.com>

    • Update Unencoded-Digest spec URL from @​Elchi3

    Co-authored-by: Florian Scholz <fs@​florianscholz.com>

    • Per linter: No arrays for single spec_urls

    • Drop "-03" in URL


    Co-authored-by: Florian Scholz <fs@​florianscholz.com>

  • a257c5 Update browser releases (#29141)
  • ce8243 Update WebDriver BiDi data (#29140)
  • 14909b Updates for Firefox 149 beta (#29135)
  • 1aba12 Fix edge support data for script.textContent trusted types enforcement (#29139)

    Co-authored-by: Florian Scholz <fs@​florianscholz.com>

  • 786553 Mirror "trusted-types" data for opera android (#29137)

    Co-authored-by: Florian Scholz <fs@​florianscholz.com>

  • ba2e98 Add Chrome 145 support for trusted-types-eval (#29136)

    Co-authored-by: Florian Scholz <fs@​florianscholz.com>

  • 8e85ed Firefox 148 supports Trusted Types (#29138)
  • 3c9b05 chore(deps-dev): bump web-specs from 3.79.0 to 3.80.0 (#29134)

    Bumps web-specs from 3.79.0 to 3.80.0.


    updated-dependencies:

    • dependency-name: web-specs
      dependency-version: 3.80.0
      dependency-type: direct:development
      update-type: version-update:semver-minor
      ...

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

  • f1ddc5 chore(deps-dev): bump @​ddbeck/mdn-content-inventory from 0.2.20260225 to 0.2.20260226 (#29133)

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

    Bumps @​ddbeck/mdn-content-inventory from 0.2.20260225 to 0.2.20260226.


    updated-dependencies:

    • dependency-name: "@​ddbeck/mdn-content-inventory"
      dependency-version: 0.2.20260226
      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>

  • 25e2c9 chore(deps-dev): bump @​types/node from 24.10.13 to 24.10.14 in the npm group (#29132)

    chore(deps-dev): bump @​types/node in the npm group

    Bumps the npm group with 1 update: @​types/node.

    Updates @&ZeroWidthSpace;types/node from 24.10.13 to 24.10.14


    updated-dependencies:

    • dependency-name: "@​types/node"
      dependency-version: 24.10.14
      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>

  • 69e56b Update browser releases (#29129)
  • 69453f chore(deps-dev): bump c8 from 10.1.3 to 11.0.0 (#29123)

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

  • b6c7df Release v7.3.4 (#29111)
  • 0f521a Updates for Deno v2.7 (#29121)

    • Updates for Deno v2.7

    • update browsers/deno.json

    • update missed Date.json

    • update performanceobserver

    • 8e0d63 Update browser releases (#29122)

    • Update browser releases

    • Update firefox.json

    • Update firefox_android.json


    Co-authored-by: Florian Scholz <fs@​florianscholz.com>

  • 06602e ShadowRoot.setHTML and Document.parseHTML are shipping in Firefox (#29125)
  • 464c58 chore(deps-dev): bump @​ddbeck/mdn-content-inventory from 0.2.20260224 to 0.2.20260225 (#29124)

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

    Bumps @​ddbeck/mdn-content-inventory from 0.2.20260224 to 0.2.20260225.


    updated-dependencies:

    • dependency-name: "@​ddbeck/mdn-content-inventory"
      dependency-version: 0.2.20260225
      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>

  • 0166aa ci(test): add diff-build job (#29042)

    Compares build output between PR and base.

  • 527892 Add Firefox notes for Selection.toString() (#28931)
  • f25b74 Permissions-Policy: gamepad - probably experimental (#28744)

    • Permissions-Policy: gamepad - probably exper

    • Safari 17.4 added gamepad permission

    Co-authored-by: Hamish Willee <hamishwillee@​gmail.com>

    • Apply suggestions from code review

    Co-authored-by: Florian Scholz <fs@​florianscholz.com>
    Co-authored-by: Hamish Willee <hamishwillee@​gmail.com>

    • Fix sorting issue

    Co-authored-by: Claas Augner <495429+caugner@​users.noreply.redirect.github.com>
    Co-authored-by: Queen Vinyl Da.i'gyu-Kazotetsu <queengooborg@​gmail.com>
    Co-authored-by: Florian Scholz <fs@​florianscholz.com>

  • e82c5d chore(deps-dev): bump @​ddbeck/mdn-content-inventory from 0.2.20260223 to 0.2.20260224 (#29119)

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

    Bumps @​ddbeck/mdn-content-inventory from 0.2.20260223 to 0.2.20260224.


    updated-dependencies:

    • dependency-name: "@​ddbeck/mdn-content-inventory"
      dependency-version: 0.2.20260224
      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>

  • 0eec65 chore(deps-dev): bump the npm group with 3 updates (#29118)

    Bumps the npm group with 3 updates: @​eslint/eslintrc, eslint-plugin-jsdoc and typescript-eslint.

    Updates @&ZeroWidthSpace;eslint/eslintrc from 3.3.3 to 3.3.4

    Updates eslint-plugin-jsdoc from 62.7.0 to 62.7.1

    Updates typescript-eslint from 8.56.0 to 8.56.1


    updated-dependencies:

    • dependency-name: "@​eslint/eslintrc"
      dependency-version: 3.3.4
      dependency-type: direct:development
      update-type: version-update:semver-patch
      dependency-group: npm
    • dependency-name: eslint-plugin-jsdoc
      dependency-version: 62.7.1
      dependency-type: direct:development
      update-type: version-update:semver-patch
      dependency-group: npm
    • dependency-name: typescript-eslint
      dependency-version: 8.56.1
      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>

  • 28299c Firefox 147 / Safari 26 support implicit anchor references (#29093)

    • Firefox 147 / Safari 26 support implicit anchor references

    • Add implicit anchor reference via commandfor/commandForElement

    • Add spec URL for implicit anchor references

    • cdb1a0 Add HTML link element attribute values as="{json,script,style}" for modulepreload (#29048)

    • Initial commit

    • Adding Safari 26 to support JSON module preloads

    • Updating Safari JSON suport to 26.2

    • Adding mdn_url and spec_url

    • Remove duplicate modulepreload MDN urls

    • Add Firefox bug

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

    • Add Firefox bug

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

    • Update html/elements/link.json

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

    • Moving as-jason to experimental: false

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

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