Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
115 commits
Select commit Hold shift + click to select a range
13a98b0
spawnSync: stop pointing the VM at the loop it waits on (#44581)
Jarred-Sumner Oct 5, 2026
3f1765a
Upgrade WebKit to dbdca7545d (#44615)
sosukesuzuki Oct 6, 2026
bbdc5a5
`bun check` - a TypeScript type checker builtin to Bun (#44361)
Jarred-Sumner Oct 6, 2026
bd599f5
`bun check`: fix differences from `tsc` (#44665)
Jarred-Sumner Oct 7, 2026
43a42a8
`bun check`: fix more differences from `tsc` (#44685)
Jarred-Sumner Oct 7, 2026
13b126f
ByteStream: report a stored producer error and keep the taken prefix …
robobun Oct 8, 2026
5749c31
js_parser: include the hook binding in the React Fast Refresh signatu…
robobun Oct 8, 2026
4c54c9b
`bun check`: fix nine false errors and a missing one, long runs of `!…
Jarred-Sumner Oct 8, 2026
620b50f
`bun check`: a name that is exported by conflicting declarations (#44…
Jarred-Sumner Oct 8, 2026
9ed8d11
Build options to compile in --disallow-code-generation-from-strings=s…
alii Oct 8, 2026
e655c58
Fix every type error in `test/` (#44614)
Jarred-Sumner Oct 9, 2026
e555359
`bun check`: a crash, three false errors, and declaration files loade…
Jarred-Sumner Oct 9, 2026
b000af7
`bun check`: two false errors and a missed one (#44887)
Jarred-Sumner Oct 9, 2026
e879366
bundler(splitting): files run in different orders do not share a chun…
dylan-conway Oct 9, 2026
7adb8ee
Revert "bundler(splitting): files run in different orders do not shar…
Jarred-Sumner Oct 9, 2026
4b5793d
bundler(splitting): give a shared chunk to an entry point whose order…
dylan-conway Oct 9, 2026
9e31db2
Response(asyncIterable): close the iterator with return(), never thro…
robobun Oct 9, 2026
1f6987c
webcore: make blob::Any own its string so a dropped body releases it …
robobun Oct 10, 2026
d2035cc
`bun check`: `--threads=1` dropped errors, and arrays filled line by …
Jarred-Sumner Oct 10, 2026
c6da4a4
`bun check`: a long chain of interfaces or classes no longer takes cu…
Jarred-Sumner Oct 10, 2026
71d0d43
Bump
Jarred-Sumner Oct 10, 2026
6c1eb06
tls: consolidate the open TLS fixes (both engines, node:tls, node:htt…
Jarred-Sumner Oct 10, 2026
7c96a12
`bun check`: three false errors, with immer's `Draft<this>`, with ts-…
Jarred-Sumner Oct 11, 2026
39bbb71
DOM constructors: read new.target.prototype before X::create() (#45008)
robobun Oct 12, 2026
c39c718
Add `bun lint` and `bun format` (#44805)
Jarred-Sumner Oct 12, 2026
d1cb7db
install: migrate Yarn Berry (v2+) yarn.lock to bun.lock (#40057)
MarshallOfSound Oct 12, 2026
b92e2f4
`bun check`: `readonly`, `private` and `protected` on a property of a…
Jarred-Sumner Oct 12, 2026
772f87f
`bun check`: circles, loops and types in progress as `tsc` has them, …
Jarred-Sumner Oct 12, 2026
7583003
install: use the shared percent-encoding helpers in the yarn berry mi…
alii Oct 12, 2026
110efa0
Fix startup SIGILL on Linux arm64 when SVE2 is reported without SVE (…
dylan-conway Oct 13, 2026
11b450c
test: replace verdaccio with an npm registry on Bun.serve (#44055)
robobun Oct 13, 2026
bfa1209
`bun lint`, `bun fmt`: the first run, oxlint's order, Prettier's Tail…
Jarred-Sumner Oct 13, 2026
61009bd
node:http: build `req.headers` in one native call, validate a set hea…
sosukesuzuki Oct 13, 2026
1c10257
ci: use `bun lint` and `bun fmt`; docs: a Linter tab (#45119)
Jarred-Sumner Oct 13, 2026
cd91b5b
ci: fix the `Format` check; docs: give the formatter its own tab (#45…
Jarred-Sumner Oct 13, 2026
12cbed8
test: wait for all 100 requests in the next dev server test (#45109)
dylan-conway Oct 13, 2026
1480cbe
`bun check`: three differences from `tsc` in generic types, and `-b` …
Jarred-Sumner Oct 13, 2026
d66fc00
test: fix the race in the filesink pending-write test (#45103)
dylan-conway Oct 13, 2026
c6d9df7
test: give the AbortSignal.any leak test a signal above the noise (#4…
dylan-conway Oct 13, 2026
fefca5b
node:tls: keep the peer's answer when a pending write is rejected (#4…
Jarred-Sumner Oct 13, 2026
80ae613
test: stop the lint config tests from calling the npm registry (#45110)
dylan-conway Oct 13, 2026
9dc3fa1
test: prune flaky-tests.txt, and read flaky-new wherever flaky is rea…
dylan-conway Oct 13, 2026
1bbe51a
test: fix two races in the h2 and h3 graceful stop test (#45105)
dylan-conway Oct 13, 2026
f66ed6f
test: fix rule-docs.test.ts on Windows (#45135)
Jarred-Sumner Oct 13, 2026
5ee74f0
streams: pull a blob into a buffer the size of what it has left (#45120)
sosukesuzuki Oct 13, 2026
40e0351
`bun lint`: load ESLint plugins from bunfig.toml; `bun fmt`: print er…
Jarred-Sumner Oct 13, 2026
9bcbf1e
tls: stop a node:https busy loop after a rejected send (#45139)
Jarred-Sumner Oct 13, 2026
c69a636
`bun fmt`: format Svelte components (#45146)
Jarred-Sumner Oct 13, 2026
281698a
Bun.JSONL: fix `read` and repeated values when `,` `]` or `}` follows…
Jarred-Sumner Oct 13, 2026
3d6c7bc
`bun lint`, `bun fmt`: `bunfig.toml` from a subdirectory, `svelte` in…
Jarred-Sumner Oct 14, 2026
177da66
`bun lint`: the rules that need types, compared with tsgolint functio…
Jarred-Sumner Oct 14, 2026
3da4e25
css: keep translate, rotate and scale apart from transform (#45210)
robobun Oct 14, 2026
bfd957f
`bun lint`: redundant parentheses don't change what type-aware rules …
Jarred-Sumner Oct 14, 2026
408c937
Headers: iterate without a lookup and a string per name (#45157)
sosukesuzuki Oct 14, 2026
e40a58a
`bun check`: fix a hang in inference, errors missed in loops, and two…
Jarred-Sumner Oct 14, 2026
47ba1c8
`bun lint`: report a problem once when a typed and an untyped rule bo…
Jarred-Sumner Oct 14, 2026
f841e36
`bun fmt`: every comment is attached to one node before printing, as …
Jarred-Sumner Oct 14, 2026
9510e74
install: consolidate the open package manager pull requests (#44968)
Jarred-Sumner Oct 14, 2026
8ed8256
sockets: a peer that keeps the receive buffer full no longer stops ti…
dylan-conway Oct 14, 2026
219baa0
TextEncoder: fix `encode` of a substring whose parent string changed …
dylan-conway Oct 15, 2026
cc91293
`bun fmt` and `bun lint`: follow-ups to the comment model (#45268)
Jarred-Sumner Oct 15, 2026
b63ebef
Bump WebKit: the limits of cgroup v2 are seen where a cgroup v1 hiera…
Jarred-Sumner Oct 15, 2026
dbe1a63
worker_threads: array methods see indexed keys of a `SHARE_ENV` `proc…
dylan-conway Oct 15, 2026
a9c57bd
build: link the WebKit prebuilts with assertions and coverage of JSC …
dylan-conway Oct 15, 2026
d4be9e3
Round long hexadecimal, octal and binary literals to the nearest doub…
dylan-conway Oct 15, 2026
1dc3415
util.inspect: don't take the iterator guards from the writable `node:…
dylan-conway Oct 15, 2026
1952168
Bun.ModuleGraph: `dispose()` closes the `Bun.Terminal` terminals the …
dylan-conway Oct 15, 2026
392cf21
Bun.ModuleGraph: `dispose()` with a `node:http` server still listenin…
dylan-conway Oct 15, 2026
a080724
Windows: no debug panic in `bun check`, `lint`, `fmt` without a packa…
dylan-conway Oct 15, 2026
3477947
`bun check`: no system call per link when listing a directory on Wind…
dylan-conway Oct 15, 2026
ff760ae
ci-images: check every download against a sha256, and pin what still …
dylan-conway Oct 15, 2026
5f5799e
`--disallow-code-generation-from-strings=strict` runs static code onl…
dylan-conway Oct 15, 2026
a407eae
Fix aborts from `channel._subscribers` and `Object.prototype.onEndCal…
dylan-conway Oct 15, 2026
116dd64
`bun lint`: categories skip frameworks the project doesn't use, and `…
Jarred-Sumner Oct 15, 2026
f2405c3
Upgrade WebKit to 23b0720b40 (#45303)
sosukesuzuki Oct 16, 2026
2c94356
chore: sync upstream oven-sh/bun main (2026-10-16)
steipete Oct 16, 2026
dc1cc67
ci: handle the expanded upstream test inventory
steipete Oct 16, 2026
ed1052c
fix: reconcile native call sites after upstream sync
steipete Oct 16, 2026
62328dc
fix: preserve worker stacks and cache source provenance
steipete Oct 16, 2026
ce991d8
test: declare VM source metadata hooks for native codegen
steipete Oct 16, 2026
d6f50bb
test: honor strict code generation in source metadata hooks
steipete Oct 16, 2026
70c5181
test(worker): isolate inherited stack getter parity gap
steipete Oct 16, 2026
494b77f
refactor: remove unused helpers from upstream extraction
steipete Oct 16, 2026
eb01882
fix(tls): preserve response writes after peer half-close
steipete Oct 16, 2026
6933732
fix(https): convert ALPN protocols before creating the listener
steipete Oct 16, 2026
5f32890
test(tls): isolate inherited early close-notify divergence
steipete Oct 16, 2026
ddfeee5
test(tls): record inherited server alert divergence
steipete Oct 16, 2026
f056e18
fix(https): use existing validation when replacing TLS context
steipete Oct 16, 2026
8f6499e
fix(tls): use one transport destruction path after upstream sync
steipete Oct 16, 2026
4a1194b
fix(tls): retain shutdown output after transport read EOF
steipete Oct 16, 2026
e025042
test: record inherited SNI and shared environment gaps
steipete Oct 16, 2026
2e4717a
style(http): format secure context imports
steipete Oct 16, 2026
b81d313
fix(tls): abort unfinished transports on explicit destruction
steipete Oct 16, 2026
4bc1e33
test(tls): record inherited fatal server close timing
steipete Oct 16, 2026
ed3135c
test(format): encode literal hash in ESM config import
steipete Oct 16, 2026
4d6e6ae
fix(install): retain runtime CA opt out flag acceptance
steipete Oct 16, 2026
5c145ef
fix(cli): preserve injected Node options in package commands
steipete Oct 16, 2026
459948b
test: cover async provenance and escape lint plugin specifiers
steipete Oct 16, 2026
7dcfb14
test(worker): accept the replayed engine shutdown log format
steipete Oct 16, 2026
143a092
style: format injected-options regression test
steipete Oct 16, 2026
7fdcff8
fix(tls): preserve half-open ownership and finish pending shutdowns
steipete Oct 16, 2026
86e1ee0
test: align imported fixtures with retained fork behavior
steipete Oct 16, 2026
756fa41
test(tls): record inherited reset and early-alert gaps
steipete Oct 16, 2026
f2fa645
fix(tls): retain adopted ownership and draining socket writes
steipete Oct 16, 2026
1924ec7
test: preserve inherited TLS and package validation behavior
steipete Oct 16, 2026
e165b6b
test: isolate lint RSS and record live TLS context gaps
steipete Oct 16, 2026
7bf4f2a
chore: merge fork fixes and pin qualified WebKit in upstream sync
steipete Oct 16, 2026
bc11e07
test(fs): compare FileHandle read stream bytes across chunk boundaries
steipete Oct 16, 2026
639f1fe
test: qualify inherited upstream sync divergences
steipete Oct 16, 2026
327cc34
test: isolate upstream divergence assertions
steipete Oct 16, 2026
39e0812
ci: merge current main into upstream sync
steipete Oct 17, 2026
939b208
test: stabilize callback ordering and expose PTY failures
steipete Oct 17, 2026
8ac6d33
test: retry Darwin PTY ESRCH setup
steipete Oct 17, 2026
2b45d4b
chore: integrate fork main after worker fd optimization
steipete Oct 17, 2026
2ff6223
test: isolate Darwin PTY interposer from the child shell
steipete Oct 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
1 change: 1 addition & 0 deletions .claude/skills/verify/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,3 +44,4 @@ For worker/subprocess-shaped changes, spawn a subprocess (still `-e`) so worker
output against `node`.
- MessagePort's `.on/.off` are added by requiring `worker_threads` — plain `new MessageChannel()` ports only have `addEventListener` until then.
- The debug+asan build is 10-100× slower than release; large-allocation stress tests can time out locally while passing in CI.
- Locally, run only the test files you touched. Leave neighbouring files, whole directories and repeat-for-stability loops to CI.
14 changes: 14 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,22 @@
*.mdc text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.mdx text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.mjs text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.cjs text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.mts text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2

# Patch files are line-ending-sensitive — `git apply` rejects CRLF as corrupt.
*.patch text eol=lf
# Every byte of an input of the formatter, and of what is expected for it, is part of the test.
test/cli/format/own/cases/** -text
# Compared line by line with what a runner prints, which ends a line with \n on every system.
test/cli/format/*/expected.txt text eol=lf
test/cli/lint/conformance/expected*.txt text eol=lf
# Embedded in the executable, which splits them at \n.
src/lint/linter/config/presets.txt text eol=lf
src/lint/linter/deprecated.txt text eol=lf
src/lint/linter/schema/schemas.txt text eol=lf
src/lint/oxlint_help.txt text eol=lf
src/sema/messages.txt text eol=lf

*.lockb binary diff=lockb

Expand Down Expand Up @@ -57,6 +69,8 @@ test/js/node/test/common linguist-vendored

test/js/bun/css/files linguist-vendored

test/cli/**/bundle.zst binary linguist-vendored linguist-generated

.vscode/*.json linguist-language=JSON-with-Comments
src/cli/init/tsconfig.default.json linguist-language=JSON-with-Comments

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ This document provides guidance for maintaining the GitHub Actions workflows in

### Overview

The `format.yml` workflow runs code formatters (Prettier, clang-format, and `cargo fmt`) on pull requests and pushes to main. It's optimized for speed by running all formatters in parallel. It also regenerates the checked-in `*.generated.rs` string maps (`bun run codegen:string-maps`) before the formatters start: everything the step leaves modified, formatting or codegen, is what the autofix.ci action at the end of the job pushes back to the PR (failing the run when it had anything to push), so nothing that produces fixes may run after it, and nothing that only verifies should run before it.
The `format.yml` workflow runs code formatters (`bun fmt`, clang-format, and `cargo fmt`) on pull requests and pushes to main. It's optimized for speed by running all formatters in parallel. It also regenerates the checked-in `*.generated.rs` string maps (`bun run codegen:string-maps`) before the formatters start: everything the step leaves modified, formatting or codegen, is what the autofix.ci action at the end of the job pushes back to the PR (failing the run when it had anything to push), so nothing that produces fixes may run after it, and nothing that only verifies should run before it.

### Key Components

Expand All @@ -32,7 +32,7 @@ The `format.yml` workflow runs code formatters (Prettier, clang-format, and `car

The workflow runs all three formatters simultaneously:

- Each formatter outputs with a prefix (`[prettier]`, `[clang-format]`, `[rustfmt]`)
- Each formatter outputs with a prefix (`[bun fmt]`, `[clang-format]`, `[rustfmt]`)
- Output is streamed in real-time without blocking
- Uses GitHub Actions groups (`::group::`) for collapsible sections

Expand Down
21 changes: 13 additions & 8 deletions .github/workflows/format.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ on:
pull_request:
merge_group:
env:
BUN_VERSION: "1.4.2"
# `bun lint` and `bun fmt` aren't in a release yet. Pin this to 1.5.0 once it's out.
BUN_VERSION: "canary"
LLVM_VERSION: "23.1.1"
LLVM_VERSION_MAJOR: "23"

Expand All @@ -34,6 +35,8 @@ jobs:
uses: ./.github/actions/setup-bun
with:
bun-version: ${{ env.BUN_VERSION }}
# The action's default bucket can be many commits behind for canary.
download-url: https://github.com/oven-sh/bun/releases/download
- name: Setup Dependencies
run: |
bun install
Expand All @@ -54,16 +57,18 @@ jobs:
# autofix step below to push back to the PR (it also fails the run
# whenever it has something to push, so staleness stays a red check
# where it can't push, e.g. the merge queue). Runs before the
# formatters start so prettier isn't rewriting a `.string-map.ts`
# formatters start so `bun fmt` isn't rewriting a `.string-map.ts`
# while the generator imports it.
echo "::group::String maps"
bun run codegen:string-maps 2>&1 | sed 's/^/[string-maps] /'
echo "::endgroup::"

# Start prettier in background with prefixed output
echo "::group::Prettier"
(bun run prettier 2>&1 | sed 's/^/[prettier] /') &
PRETTIER_PID=$!
# Start bun fmt in background with prefixed output. What it formats is in bunfig.toml.
# The plugin is built into Bun. It's only on here: on save, it would remove an import
# that the next edit is about to use.
echo "::group::bun fmt"
(bun fmt --plugin=prettier-plugin-organize-imports 2>&1 | sed 's/^/[bun fmt] /') &
BUN_FMT_PID=$!

# Start clang-format installation and formatting in background with prefixed output
echo "::group::Clang-format"
Expand Down Expand Up @@ -95,8 +100,8 @@ jobs:
echo "Running formatters in parallel..."
FAILED=0

if ! wait $PRETTIER_PID; then
echo "::error::Prettier failed"
if ! wait $BUN_FMT_PID; then
echo "::error::bun fmt failed"
FAILED=1
fi
echo "::endgroup::"
Expand Down
7 changes: 5 additions & 2 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ on:
workflow_dispatch:

env:
BUN_VERSION: "1.4.2"
# `bun lint` and `bun fmt` aren't in a release yet. Pin this to 1.5.0 once it's out.
BUN_VERSION: "canary"

jobs:
lint-js:
Expand All @@ -22,11 +23,13 @@ jobs:
uses: ./.github/actions/setup-bun
with:
bun-version: ${{ env.BUN_VERSION }}
# The action's default bucket can be many commits behind for canary.
download-url: https://github.com/oven-sh/bun/releases/download
- name: Setup Dependencies
run: |
bun install --frozen-lockfile
- name: Lint
run: bun lint
run: bun lint --format=github
- name: Typecheck the build system and the CI scripts
run: |
bun x tsc --noEmit -p scripts/build/tsconfig.json
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/packages-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ jobs:
uses: ./.github/actions/setup-bun
with:
bun-version: ${{ env.BUN_VERSION }}
# The action's default bucket can be many commits behind for canary.
download-url: https://github.com/oven-sh/bun/releases/download

- name: Install dependencies
run: |
Expand All @@ -47,8 +49,8 @@ jobs:
- name: Lint
run: |
bunx oxlint@0.15 --format github --deny-warnings
bunx prettier --config ../../.prettierrc --check .
bun lint --format=github --deny-warnings
bun fmt --config ../../.prettierrc --check .
working-directory: ./packages/bun-plugin-svelte

- name: Check types
Expand Down
2 changes: 2 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ scripts/build/xmac.mjs

# the output codeblocks need to stay minified
docs/bundler/minifier.mdx
# Prettier would reformat the code examples, and test/cli/lint/rule-docs.test.ts runs them exactly as written
docs/lint/rules

# `declare module "*" with { type: "text" }` is TypeScript 7.1 syntax that
# prettier's parser does not accept yet
Expand Down
8 changes: 8 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,14 @@
"options": {
"printWidth": 100
}
},
{
"files": ["src/runtime/cli/init/**"],
"options": {
"arrowParens": "always",
"printWidth": 80,
"quoteProps": "as-needed"
}
}
]
}
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ test("(multi-file test) my feature", async () => {
- Use `tempDir` from `"harness"` to create a temporary directory. **Do not** use `tmpdirSync` or `fs.mkdtempSync` to create temporary directories.
- When spawning processes, tests should expect(stdout).toBe(...) BEFORE expect(exitCode).toBe(0). This gives you a more useful error message on test failure.
- Keep tests fast: budget roughly 1s per test and 10s per file. Debug+ASAN builds run 10-100x slower than release, so a 1s local test can take a minute in CI. Use `test.concurrent` for independent subprocess-spawning tests.
- Never contact the public internet (registry.npmjs.org, github.com, CDNs). Use `VerdaccioRegistry` from `"harness"` for package installs and a local `Bun.serve({ port: 0 })` for HTTP.
- Never contact the public internet (registry.npmjs.org, github.com, CDNs). Use `TestRegistry` from `"registry"` (`test/packages/registry`) for package installs and a local `Bun.serve({ port: 0 })` for HTTP.
- `setDefaultTimeout` is a ceiling, not a target. Leave the default and pass a per-test timeout only for the rare outlier; a 5-minute file default multiplies across retries when one test hangs.
- Leak tests branch their RSS threshold on `isASAN`/`isDebug` and keep the bound well below what the unfixed leak produces. An un-branched absolute delta flakes under ASAN quarantine and GC jitter.
- **CRITICAL**: Do not write flaky tests. Do not use `setTimeout` or `await sleep(N)` to wait for a condition; poll with a deadline or `await` the event itself. You are not testing the TIME PASSING, you are testing the CONDITION.
Expand Down
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

## Unreleased

- Sync oven-sh/bun through `f2405c382d43b89d91a2e7c90d9c5f53505a1e71`, including native lint/format commands, while reconciling fork TLS, worker, module-resolution, CLI and parser fixes. Pin the qualified WebKit release `f8521bb45429b3e1df6bc6d9b98b8df4376a89c5`.

- Avoid quadratic Worker file-descriptor tracking when many descriptors are open, while preserving automatic cleanup at Worker exit.

- Skip issue finder, issue deduplication, and VS Code publishing workflows that require upstream-only credentials in the fork.
Expand Down Expand Up @@ -238,7 +240,6 @@

- Keep ESM namespaces free of inherited `__esModule` markers and preserve the own marker and live exports for `require(esm)`, fixing Vite/tsx namespace interop. Adapts [oven-sh/bun#33894](https://github.com/oven-sh/bun/pull/33894) and [oven-sh/WebKit#279](https://github.com/oven-sh/WebKit/pull/279). Thanks @robobun!


- Sync oven-sh/bun through `c7b06d94bac19817ba34b6677bb1099fb4f6d2be`, preserving fork fixes and incorporating TLS handshake shutdown, macOS split-DNS failover, file-body cloning, Buffer write validation, mimalloc 3.5.3 and idle-memory release.
- Pin immutable [OpenClaw WebKit `42ab38d705`](https://github.com/openclaw/WebKit/releases/tag/autobuild-42ab38d705d4838748ccee77e7deb0e4e35515ee) by archive checksum, together with the required namespace facade integration from #106; retain fail-closed artifact selection.

Expand Down
Loading
Loading