Merge train: #9654 #9635 (fs ordering, Bun TCP facades) - #9656
Merged
Conversation
added 4 commits
September 3, 2026 22:01
…r_object's strings, module-level dead-code allow
This was referenced Sep 3, 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.
Lands #9654 (async fs write-unlink ordering preserved, #9574) and #9635 (Bun
listen/connectTCP + Unix socket facades over the existing externalnode:nettransport).#9635 was the one PR today that needed real hand-merging — ten conflicts, three of which no mechanical rule resolves:
adopt.rs— main had refactored tomatch &transport { Transport::Plain(stream) => … }while this PR still used a barestreamand needed a newremotebinding. Either side alone was wrong;remoteis now computed through the new transport match.lib.rs— one conflict was purely positional: git aligned themod socket_events;split (from the compat(claude): provide Bun.ant host hooks #9633 train) against this PR's inline copies of the functions that split had moved. Verified this PR does not modify those functions — itslib.rschanges areremote_addrplumbing plusmod bun_tcp;— before taking the split side, and confirmedmod bun_tcp;still lands.dispatch_a_c.rs— both sides were complete match arms sharing a trailing}\n}, so concatenation produced an unclosed delimiter. Bridged so theservearm closes beforelisten/connectopens.Verified the merge lost nothing:
bun_tcp.rsis byte-identical to the PR's own copy except the dead-code annotation below, and call-site counts for every helper match.Gate fixes carried:
TOKENS(write-token to socket HANDLE id — the same handle-band idsABORTSalready carries) andNEXT_TOKEN(a counter).build_error_objectheld two freshly allocatedJsStrings across field writes.JsStringis a bare pointer wrapper, and the function already had aTransientRootScopefor its receiver, so the strings are now rooted through it.allow(dead_code)onbun_tcp.rs: several helpers and twoBunSocketfields are written but not yet read on this build. Flagging for the author — they are reachable only from paths a follow-up turns on, and deleting them would also remove the writes that feed them.Validation:
run_lint_gates.shall 62 gates pass; release build green; RUST_TEST_THREADS=1 perry-runtime 3064/0;manifest_consistency5/5.Rebase-merge preserving authorship.