fix(network): port Headers, Undici, HTTP, and HTTPS compatibility fixes - #32
Merged
Merged
Conversation
steipete
force-pushed
the
claude/port-ci-cli-process
branch
from
September 30, 2026 07:16
70d8fa5 to
1867ab0
Compare
(cherry picked from commit cb4d3b9)
Ports oven-sh#37111 into the OpenClaw compatibility build. (cherry picked from commit 278105f)
Backport the complete HeadersInit guard and caller cutover from oven-sh#43023 at b276ab8 onto the fb7c integration line. The older source keeps FetchSession proxy parsing inline in fetch.rs, so map that caller there. Apply the same guarded conversion to server.fetch and clone its native header list for Request ownership. This preserves the caller's Headers snapshot and incorporates the matching ownership correction from oven-sh#40888 without adopting the JS wrapper's borrowed reference. (cherry picked from commit f5234e3)
(cherry picked from commit abc9dd2)
(cherry picked from commit 7e480b3)
Keep response-body and raw transport byte counts together when reporting server socket bytesWritten. A retained zero response-body count must not hide writes made after a WebSocket upgrade. Extend the existing immediate-send fixture to check the byte delta on fresh and reused sockets. Source review and formatting passed; candidate runtime validation remains pending. (cherry picked from commit 097d680)
(cherry picked from commit 4bc81c1)
(cherry picked from commit eafacd1)
(cherry picked from commit 05f2611)
steipete
force-pushed
the
claude/port-ci-network
branch
from
September 30, 2026 07:25
f6d06bd to
339edb7
Compare
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.
Port the CI-line Headers, Undici, HTTP, and HTTPS compatibility fixes. Custom Headers iterators now reach conversion callers, server.fetch owns its header copy, Undici preserves timeout metadata and heartbeat APIs, and Node HTTP/HTTPS gains the listen-error, byte-count, half-open, constructor, and ALPN behavior covered below. Preserve current proxy parsing and native TLS event/session ownership.
Original authors and cherry-pick provenance are retained as individual commits.
cb4d3b9b8bf0f3ad138b278105f25f47e4efdc11f5234e318c4c686f8e96abc9dd2cf1e821a892917e480b3e655ea3c1459c097d680c2419e9b6e9ee4bc81c1fd31398d15c0deafacd150846dbcd1bca05f2611fa0cdcf03dedeb3171032ed45d6b54e68339edb7739Qualified together with the complete independent stack on darwin-arm64 at
828fba48faa28a56f15839c79f1c6d6838dd8405usingbun scripts/build.ts --profile=release, linked to unchanged WebKitf20ce7744553c910bcf16a33faf976af208de091. The release binary’s revision was verified before tests.BUN_FEATURE_FLAG_INTERNAL_FOR_TESTING=1 BUN_GARBAGE_COLLECTOR_LEVEL=0 build/release/bun test <file> --max-concurrency 2test/js/bun/http/bun-server.test.tstest/js/first_party/undici/undici.test.tstest/js/node/http/node-http-connect.test.tstest/js/node/http/node-http-server-close-drain.test.tstest/js/node/http/node-http-with-ws.test.tstest/js/node/http/node-http.test.tstest/js/node/tls/node-tls-server.test.tstest/js/web/fetch/headers.test.tstest/js/web/fetch/wpt/headers-basic-wpt.test.tsIndependent Codex review found no actionable P0/P1 findings. Local JavaScript lint and Rust/C++/TypeScript formatting checks passed. Cross-target Rust checking passed all 12 targets with release codegen inputs (0 failed, 0 skipped). No workflow or WebKit-pin changes.
CI built-in-module typechecking also required the internal allowHalfOpen declaration and explicit HTTPS constructor void return annotation; the corrected declarations pass locally and do not change runtime behavior. The existing 50-connection TLS fixture reproduced its client-close race on published baseline
7862bb3750(4/30 failures). Letting the server finish its secureConnection callback before clients close preserves the exact count and ALPN assertions; the revised fixture passed 30/30 repeats on both baseline and candidate.