Repository navigation
Conversation
Adapt oven-sh#33894 and oven-sh#39888 by @robobun. Use the paired WebKit namespace facade API so imports stay unmarked while require(esm) gets an own enumerable marker and live exports. Preserve explicit CJS markers and the Node module.exports namespace entry. Requires the OpenClaw WebKit namespace engine patch; keep this integration in draft until its artifacts are published.
Create the require facade when require.cache materializes an imported ESM module. Keep native namespaces forwarded through CommonJS intact instead of interpreting their synthetic marker as a Babel wrapper. Preserve the existing Bun contract that cache deletion also invalidates ESM records; test marker ownership separately from that cache policy.
This was referenced Oct 4, 2026
steipete
added a commit
that referenced
this pull request
Oct 5, 2026
Merge oven-sh/bun through 9bd19c9 and pin the published OpenClaw WebKit 42ab38d705d4838748ccee77e7deb0e4e35515ee manifest. Preserve upstream and fork history, with the credited namespace counterpart from #106 and the original package-scope interop fix from #117. Keep the fork resolver, module-loader context, CallSite, cache and idle-accounting behavior. Configure fetch TLS once per connection and preserve PostgreSQL/MySQL query isolation through errors. Repair the inherited fetch leak fixture so it awaits its listener, requests and cleanup and checks actual object reclamation; synchronize the TLS renegotiation fixture with a framed client-ready message. Qualified with direct Linux builds, the fork selection, Node resolver oracle, Linux OpenClaw consumers, TLS before/after controls, both fork CI lanes, and a scoped-clean independent P2 review. No Bun release or tag.
Author
|
Superseded by #124, merged as Qualification includes the namespace/package-interop suites, both Vite production-build modes, the Linux consumer matrix, and both fork CI lanes on the final sync head. The original contributor credit and regression coverage are preserved. No Bun release or tag was created. |
This was referenced Oct 6, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Draft: this integration requires the namespace API merged in openclaw/WebKit#1 and the next matching OpenClaw WebKit artifact batch. Keep it unmerged until that engine pin and checksum manifest can advance together. The branch is stacked on the production manifest commit
cf636c2f14914b3ba4b319874312d654cc5ea064. The base refclaude/w142-manifest-basemirrors that exact reviewed commit while its canonical integration branch awaits its own native proof. Retarget this stack to the canonical manifest PR when available. The namespace branch’s runtime source and JavaScript tests are byte-identical to the native-proven commit33a6210ffaa72c10306335c11dc0e6018496fd7c.Bun's shared namespace prototype made
"__esModule" in nstrue even for unmarked ESM, causing tsx/Vite to unwrap Zod's default namespace and lose its explicitzexport. Use a separate engine namespace facade forrequire(esm)so imports stay unmarked while requires retain an own enumerable marker and live bindings. Cover require-cache materialization as well as ordinary and extension-mediated require. Preserve explicit CJS markers andmodule.exports; keep native namespaces forwarded through CJS intact.Adapts oven-sh/bun#33894, oven-sh/bun#39888, and oven-sh/WebKit#279 by @robobun. Bun's existing behavior of evicting ESM records when require.cache is deleted is preserved.
Native Linux proof with the matching locally built engine:
zod.z, patched Bun 2/2.The committed production manifest continues to identify batch 1 until the coordinator publishes the new engine. No upstream preview pin or download fallback is introduced by this draft.