Skip to content

egress seams: HOSTLESS moves onto the plane's build context (EGRESS_TRUST measured, not moved) - #1022

Open
MattJackson wants to merge 1 commit into
predevfrom
lane-egress-seams-handle
Open

MattJackson wants to merge 1 commit into
predevfrom
lane-egress-seams-handle

Conversation

@MattJackson

Copy link
Copy Markdown
Collaborator

Two process-global egress seams were in scope: HOSTLESS (egress/seam.rs) and EGRESS_TRUST (egress/trust/mod.rs). This PR removes HOSTLESS. EGRESS_TRUST is unchanged here. Its shape is given below.

HOSTLESS: removed

Readers. seam::hostless() had one production reader: send_pinned_buffered / send_pinned_stream, which are called only by the A2A plane's ReqwestTransport (execute, post_stream). That transport is built in three places:

  • the plane's build hook (from_config_carrying, the relay bundle)
  • a2a_start (the boot-built per-agent card transports)
  • verbs::look (an operator verb's probe)

All three are built from the plane.

Handle. BuildCtx gains hostless: EgressDriver. The App build fills it with EgressDriver::core(), which is core's CoreHostlessEgress where the egress seam is compiled. A2aPlane stores the driver it was built with. LiveCardFetch::new / presenting and ReqwestTransport::driving carry it to each transport, and send_pinned_* take it as an argument. The static, install_hostless_egress, hostless(), the root's register_seams install and the test kit's install_root_egress are deleted. Literal BuildCtx test sites state Default::default(); the busbar integration tests that build real planes state EgressDriver::core(). A transport that a2a's own unit test builds bare runs on the core driver (tests/egress_boot.rs), which is what the old test-only install gave it.

Ledger. In qa/door-only.toml, the door-only:static-seam row for crates/busbar-kernel/src/egress/seam.rs / HOSTLESS is struck.

RED. a2a/tests/egress_seam_tests.rs::each_plane_relays_on_the_driver_its_own_build_was_handed builds two planes in one process over two driver doubles (201 / 202). Each plane's unary and streamed hop answers with its own driver's value. Under the first-install-wins static, both planes read the same driver.

The linked_egress cfg is still emitted by linked_gen (and its test still expects it), but the root no longer binds anything under it.

EGRESS_TRUST: not moved, still a static

Moving it is well over the size budget, and several readers have no handle that carries the value today:

EngineSpec already has judge/tls/dns fields, so the move is to make every spec constructor take the trust handle from its caller. The root installs the value after config load, so it would ride the App build input. That touches about 45 EngineSpec test sites and hunks that #805/#922 also edit. The ledger row itself names the plan: "struck when D1-D6 move onto conns (Phase B)".

…xt, not a process static

The HOSTLESS static (crates/busbar-kernel/src/egress/seam.rs), its installer
install_hostless_egress and its reader hostless() are deleted. The one production
reader was the A2A plane's ReqwestTransport (send_pinned_buffered / send_pinned_stream).
The value now rides the handle that plane is already built from:

- BuildCtx gains `hostless: EgressDriver`; the App build fills it with
  EgressDriver::core() (core's CoreHostlessEgress where the egress seam is compiled).
- A2aPlane holds the driver it was built with; its relay bundle, the boot-built card
  transports (a2a_start) and an operator verb's probe (verbs::look) all take it from
  the plane. ReqwestTransport carries it and hands it to send_pinned_*, which now take
  the driver as an argument.
- The root's register_seams and the test kit's install_root_egress no longer bind it.

qa/door-only.toml: the door-only:static-seam row for egress/seam.rs HOSTLESS is struck.

RED: each_plane_relays_on_the_driver_its_own_build_was_handed builds two planes over
two driver doubles in one process; each plane's unary and streamed hop answers with its
own driver's value, which the deleted first-install-wins static could not give.
@MattJackson

Copy link
Copy Markdown
Collaborator Author

Rule 20 note from #1031 (row 155, draft): disjoint hunks in root/linked.rs (hot_answer_inline's cap reads busbar_kernel::proxy::max_translate_body_bytes) and root/tests/door_steps.rs (one test appended). A test merge is clean.

This branch has not been deployed

No deployments
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