Skip to content

row 130 E1+E7: the hyper serve loop leaves busbar-kernel; the kernel's no-socket pin - #796

Merged
3 commits merged into
predevfrom
lane-egress-e1-listener
Oct 14, 2026
Merged

3 commits merged into
predevfrom
lane-egress-e1-listener

Conversation

@MattJackson

Copy link
Copy Markdown
Collaborator

/status row 130 (E1 + E7): the hyper serve loop leaves busbar-kernel, and a test holds the kernel to the sockets it still has.

Plan: E1-E7 are the row's five items plus "every dial and listener", in order: E1 hyper serve, E2 net_guard, E3 duplex_ws dial, E4 hostless seam, E5 engine pool, E6 the kernel's own dials, E7 the proof.

E1: the serve loop moves to the root. The connector already binds the data and admin listeners (Listening::bind_stream) and hands each admitted stream up. Serving that stream is now the root's job, in crates/busbar/src/root/listener.rs. It covers the hyper-util auto builder, graceful shutdown, the body-read bounds, the accept backoff and the connection-placement balancer. Sources:

This is #741's change, redone on current predev. It supersedes #741, which went stale and conflicting. The details:

  • busbar-kernel/src/tls.rs had not changed since #710: rebalance the law0 ceilings for the verbatim listener move (architect ruling) #741's base, so listener.rs is the moved code with only crate:: changed to busbar_kernel:: and the docs updated.
  • The accept-source trait (Admits, Admitted) moves to busbar-core-connector/src/listen.rs, next to the Listening that implements it.
  • tls.rs keeps only read_pem, which outbound callers still use.
  • The kernel drops tokio-util.
  • Tests move with the code. The kernel's tls_tests.rs and busbar/tests/tls_listener_h2.rs become root/tests/listener_tests.rs and listener_h2_tests.rs. The connector's TLS-listener rows join them and keep predev's unique scratch-PEM names.

Ledgers:

E7: the proof. New test crates/busbar-kernel/tests/no_socket.rs. It scans busbar-kernel's production source for TcpStream, TcpListener, UdpSocket, lookup_host, hyper_util::{client,server}, serve_connection, tokio_tungstenite, reqwest::, socket2 and axum::serve. It also scans the [dependencies] asks: hyper-util, tokio-tungstenite, reqwest and tokio's net.

  • The pin holds today's offenders and is drain-only (Law 9).
  • A new offender is RED. A pin the tree no longer has is also RED, so each drain strikes its own line.
  • The RED arm plants a dial, a resolver and a server stack, and checks that each one is seen. It also checks that a comment and a test file are not counted.
  • Row 130 is done when the pin is empty.

What the pin holds after this PR:

Not touched: #780's connector files, and rows 104 and 105.

Proof on the M3 prover:

  • cargo test -p busbar-kernel --test no_socket: 3 passed. The RED arm sees a planted dial, a resolver and a server stack.
  • cargo test -p busbar --bin busbar root::listener: 17 passed. This covers the moved listener and h2 suites.
  • cargo test -p busbar-core-connector --lib listen: 9 passed.

Gates, clippy and the full suite are left to ModernCI.

…o-socket pin armed (E7)

The inbound listener's accept/serve loop (hyper-util's auto builder, graceful shutdown, the body
read bounds, the accept backoff and the connection-placement balancer) moves verbatim from
busbar-kernel/src/tls.rs into the composition root, crates/busbar/src/root/listener.rs. The
connector binds every listener (Listening::bind_stream) and hands each admitted stream up; the
accept-source trait (Admits, Admitted) moves to busbar-core-connector's listen.rs beside the
listener that implements it. tls.rs keeps read_pem for its outbound callers. The kernel drops
tokio-util. BUSBAR-1.6.0.md l.475-483 (INBOUND-LISTEN: the root's stream hand-up) and the ARCHITECT
ruling on #710 (2026-10-10). This is #741's change on current predev; it supersedes #741.

Tests move with the code: the kernel's tls_tests.rs and busbar/tests/tls_listener_h2.rs become
root/tests/listener_tests.rs and listener_h2_tests.rs; the connector's TLS-listener rows join them
(their scratch PEM name keeps predev's unique-per-call suffix).

Ledgers: law0 busbar-kernel x transport 285 -> 268 and busbar x transport 208 -> 225 (the move, total
flat, per the #710 ruling); population floor 947 -> 948 (root/listener.rs is a new file; tls.rs stays).

E7: crates/busbar-kernel/tests/no_socket.rs holds busbar-kernel to a drain-only pin of every
(file, needle) naming a socket, resolver or HTTP client/server stack, and every manifest ask for
one; tls.rs is not in it. A new offender is RED, a drained pin left standing is RED, and the RED
arm plants a dial, a resolver and a server stack and sees each.
@github-actions

github-actions Bot commented Oct 12, 2026 •

Copy link
Copy Markdown

promote into predev: all green @161a88323

Already red on predev, not this PR's: 10
gate row detail
construction one-pick-site 3 production call site(s) of 'pick_among(' (ceiling 2): crates/busbar-kernel-egress/src/walk.rs:358; crates/busbar-llm/src/engine/exhaustion/fallback.rs:120; crates/busbar-llm/src/engine/pipeline.rs:8
kind-isolation kind-isolation:deps 3 finding(s), 93 shipped edge instance(s) over 30 class(es), 93 declaration(s); 56 '[[dep]]' row(s), 0 question(s): unlisted-dep-edge legacy -> plane busbar-llm -> busbar-plane-llm is a shipped edge w
kind-isolation kind-isolation:law0 5 hit(s) off the [[law0]] ceilings, 3 finding(s) over 14 neutral crate(s): law0-rise busbar × instance:secret 37 hit(s) against a ceiling of 35: this landing grew a neutral crate's instance vocabulary
kind-isolation-ship kind-isolation:deps 10 finding(s) over 93 shipped edge(s): ship-edge kernel -> hooks busbar-kernel -> busbar-hook-ranking is 'not-allowed': the architecture grants no kernel -> hooks edge, and the ship criterion is the a
kind-isolation-ship kind-isolation:test-deps 8 finding(s) over 32 test edge(s): ship-edge cleanliness -> export busbar-core-admin -> busbar-export-prometheus is 'not-allowed': the architecture grants no cleanliness -> export edge, and the ship c
kind-isolation-ship kind-isolation:law0 5 hit(s) off the [[law0]] ceilings, 3 finding(s) over 14 neutral crate(s): law0-rise busbar × instance:secret 37 hit(s) against a ceiling of 35: this landing grew a neutral crate's instance vocabulary
kind-isolation-ship kind-isolation:faces 2 finding(s) over 40 crate(s): foreign-entry crates/busbar busbar is kind 'root' and implements 'Transport' 1 time(s) in shipped source — the entry face of kind 'transport'. A trait implementation is
kind-isolation-ship kind-isolation:legacy-drain 3 finding(s): transitional-live qa/kind-isolation.toml 'busbar-a2a -> busbar-core-admin' (legacy drain: the retiring A2A engine's tests drive the admin surface that drained into the cleanliness tier)
ship-ready ship-ready:ship-twin 'kind-isolation-ship' is not green: kind-isolation:deps (a dependency the architecture does not grant is still in the graph); kind-isolation:test-deps (a dependency the architecture does not grant is
structure-lint structure-lint:plane-dup:unledgered 22 finding(s): PLANE-DUPLICATE (module): 'config.rs' — a2a:crates/busbar-a2a/src/a2a/config.rs decisions:crates/busbar-plane-decisions/src/config.rs voice:crates/busbar-voice/src/config.rs (the ledger

tests passed: 24707, failed: 0. Run: https://github.com/GetBusbar/busbar/actions/runs/38313302598 . Artifact verdict-161a883231742c462ee2adc93accf7f80fbc942d (failures.json, junit.xml, raw.log; 90 days).

…ener

# Conflicts:
#	xtask/src/gates/population.rs
@MattJackson
MattJackson marked this pull request as draft October 13, 2026 13:06
@MattJackson

Copy link
Copy Markdown
Collaborator Author

Marked draft: #800 carries this branch's head (verified ancestor). Draft removes it from ModernCI's stack/blocked-by set (ModernCI #292/#308) so #800 is judged on its own. It shows as merged once #800 lands.

#741 landed the same E1 listener move on predev (7fe0203, 5f189a7), so every E1 conflict takes
predev's side: crates/busbar/src/root/listener.rs and crates/busbar-kernel/src/tls.rs (predev's comments
name a plane's outbound identity, not busbar-a2a), xtask/src/gates/population.rs (predev replaced the
hand-pinned FLOOR with the tracked-set reconciliation). qa/kind-isolation.toml: busbar x transport and
busbar-kernel x transport each carry the same +17/-17 move on both sides, so theirs (224, 266) is
taken, count and cite: adding both deltas would count the move twice.

What this branch still adds over predev is crates/busbar-kernel/tests/no_socket.rs (the kernel's
no-socket pin, E7); its PINNED list matches predev's kernel exactly (no new pair, none drained).
MattJackson added a commit that referenced this pull request Oct 13, 2026
… into lane-egress-e2-net-guard

qa/kind-isolation.toml: predev's rows, plus this branch's own E2 drain. busbar x transport and
busbar-kernel x transport: this branch carries the same E1 +17/-17 move #741 landed on predev, so theirs
(224, 266) is taken, count and cite. busbar-kernel x plane: predev 1128 (row 156 and #674 drains since
this branch's last predev, 1141) minus E2's own six (net_guard.rs and its two suites deleted:
1141 -> 1135 here) = 1122, predev's cite kept with E2's clause renumbered 1128 -> 1122. Every other row
is predev's.
@MattJackson
MattJackson marked this pull request as ready for review October 13, 2026 23:49
@MattJackson MattJackson closed this pull request by merging all changes into predev in 6d5642b Oct 14, 2026
@MattJackson
MattJackson deleted the lane-egress-e1-listener branch October 14, 2026 00:54
MattJackson added a commit that referenced this pull request Oct 14, 2026
qa/kind-isolation.toml busbar-kernel x plane: base 1128, ours 1124 (E5a's proxy-tunnel drain), theirs
1122 (E2's net_guard deletion): different drains, so theirs + ours - base = 1118, predev's cite kept with
E5a's clause renumbered 1122 -> 1118. The kernel no-socket pin (#796) stays exact on the merged tree.
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.

1 participant