Repository navigation
loader, root, sdk: the HOT transport load path is deleted (row 84, S1; stacked on #928/#904) - #932
Merged
Merged
Conversation
…ut of the condemned HOT lane into abi/shared.rs (row 84) Status row 84 (old plugin interface gone; THE DESIGN §11: the plugin ABI is the memory ABI alone). DeclStr, WireConnFacts, WireField and the closed-vocabulary byte codes (code) are the shapes abi/host/conn (the memory ABI's connection table) carries; they were defined in abi/hot/decl.rs and abi/hot/transport.rs. They move whole, unchanged, to their one home under abi/ (abi/shared.rs); the HOT lane names them through re-exports until it is deleted, so every user (the connection table, the HOT transport load path, the layout golden) resolves the same types at the same paths and no layout moves. abi/hot: 6224 -> 5965 lines (qa/abi-freeze.toml lowered in this commit, the freeze is exact); non-test 5177 -> 4918. abi/shared.rs is outside the C header's sources, so the header is unchanged.
…ventory, PluginInfo) is deleted; it had no caller (row 84) Status row 84 (old plugin interface gone). validate_plugin and inventory dlopen'd a library and checked the COLD/JSON lane's symbols (busbar_open, busbar_call, busbar_free, busbar_close); nothing calls either outside their own tests: the admin surface lists tarballs through registry::inventory (inventory_tarballs) and vets uploads by filename, and every plugin loads through its door (dispatch::load). They go, with PluginInfo, validate_mapped and their tests; plugin-loader no longer names the cold lane's open/call/free/close types or symbols. The behaviour the deleted vet asserted stays tested where it lives: a door-less library that states a JSON-contract kind is refused by the kind read (read_plugin_kind), naming the missing door, the kind and the rebuild (lib_tests: a_door_less_json_contract_library_is_refused_naming_ the_rebuild, RED against a read that takes the kind symbol on its word); the routed unload stays pinned by ffi_guard_tests (dlclose_on_worker_routes_the_unload_and_counts_it).
…e handshake the loader still reads (row 84)
No plugin of any kind rides the COLD/JSON lane. Its SDK half had no live user:
- sdk/mod.rs: export_plugin!, the ColdEntry re-export, Door::Cold / cold(), the hostlog bridge, the
busbar_set_log_sink / busbar_open / busbar_call / busbar_free / busbar_close exports and their
Symbols fields, the BoundaryOutcome re-export and the in-file test module are gone. The door
handshake (busbar_abi, busbar_plugin_kind, the plane and transport decls, busbar_plane_arm) stays.
- sdk/boundary.rs keeps only `caught`, the one catch_unwind the connection table and the transport
slots cross. The cold open/call/free/close bodies are gone.
- abi/cold/mod.rs: 272 -> 43 lines. It keeps TRANSPORT_VERSION, symbol::{ABI, PLUGIN_KIND}, AbiFn
and PluginKindFn, which plugin-loader's handshake (abi_symbol, abi_handshake, read_plugin_kind)
still reads until the HOT lane goes.
- Tests: sdk/tests/lib_tests.rs, cold/tests/lib_tests.rs, tests/one_door.rs and
tests/boundary_class.rs exercised only the deleted cold symbols. one_link_many_plugins.rs now
links two export_transport! doors and proves each linked door is its own plugin. The busbar_open
assertions in it and in one_transport_door.rs are gone with the symbol.
- choke row B-plugin-export is re-pointed at sdk_door_cdylib.rs's panic->FAULT test (the
single-export test sits beside it), and docs/testing.md follows.
- The ffi_thread.rs and observe.rs docs no longer name the deleted symbols.
Ledgers: qa/abi-freeze.toml cold 272 -> 43 (exact). In qa/one-memory-abi.toml the eight findings
whose code is gone are struck: boundary.rs abi::cold; sdk/mod.rs ColdEntry and busbar_call
(cold-lane); and the busbar_call, busbar_close, busbar_free, busbar_open and busbar_set_log_sink
exported-symbol rows.
…s deleted and there is no fleet rename (ARCHITECT, row 84)
…t loads only through its door (row 84, S1) Every transport, in this tree and in the fleet (http, grpc, ws, tcp at their pinned revs, stdio, webrtc), serves its memory-ABI door through export_door!. No image exported a HOT transport decl except this tree's own tests. - plugin-loader: transport.rs (DynTransport, the decl admission, DeclCarrier/DeclFramer, the WireWaker table) and transport_adapter.rs (WireTransport, CarrierIo) are deleted, with their suites (mem_carrier, transport_conformance_tests, transport_adapter_tests, transport_clock_tests). The registry loses open_transport. open_transport_entries refuses a library with no door, naming it, where it used to read a HOT decl. TransportEntries loses `hot`. transport_door_tests keeps its two door cases and is mounted from lib.rs. - RED: a_transport_library_with_no_door_is_refused. A dropped-in transport library exporting the frozen handshake and no busbar_plugin_door is refused with "exports no memory-ABI door". Before this change the same library went to the HOT decl read. - contract SDK: sdk/transport.rs keeps only form_codes (the fleet's doors import it at this path). The HOT lowering is deleted: export_carrier!, export_framer!, __transport_decl!, __transport_slots!, the slot bridges and Lowered. The shared door drops Door::Transport, busbar_transport_decl and its Symbols field, and export_transport! goes. one_transport_door.rs is deleted. one_link_many_plugins.rs links two export_plane! doors instead of two transports. - root: the transport fold has no HOT row. Dropped carries doors only; Row::Dropped, the WireTransport arm of compose and BootRefusal::DroppedBuild are gone, and dropped_transports opens doors only. Boundary agreed with the kernel-delete lane: they stack on this and own root/registry.rs and boot.rs from here. - Not here: the abi/hot/transport.rs types (TransportDecl, slots, TRANSPORT_DECL_MAJOR). They go with layout_golden.rs once #787 lands. Ledgers: one-memory-abi strikes the three findings whose code is gone (sdk/transport.rs and loader transport.rs c-unwind; sdk/mod.rs busbar_transport_decl). contract-stateless strikes sdk/transport.rs's ten statics. kind-isolation strikes the loader x Transport face (WireTransport was its one implementation).
MattJackson
added a commit
that referenced
this pull request
Oct 14, 2026
…eless strike) into lane-kdel-k3-transport-face
…he stubs moved to (#898, row 84) #898 moved DeclStr out of hot/decl.rs into abi/shared.rs, so every marker below it moved up 36 lines. The gate's own lists name the move: 8 unwaived (427, 439, 446, 450, 454, 472, 481, 497) and 8 stale (475, 482, 486, 499, 508, 517, 526, 533). The other two markers (admin_routes, admission) landed on 463 and 490, lines that two older rows already named, so those rows matched by accident. Each row moves by the same 36 lines and keeps its own reason: 463->427 (the STUB doc label), 475->439, 482->446, 486->450, 490->454, 499->463, 508->472, 517->481, 526->490, 533->497. Every new line was read against the file: it holds the marker its row names.
… into lane-abi-cold-sdk
…ber (#898, row 84) feature_invariance::the_doc_comments_cite_the_design_in_words refused shared.rs:7, which pointed at the plugin-ABI section of THE DESIGN by its number. It now names it in words: "THE DESIGN, the plugin ABI", the spelling abi/mod.rs and mechanism/observe.rs use.
…nto lane-abi-cold-sdk
…rides with it This head carries #904's fixes for its own reds: - the #898 no-deferral waiver re-key and its in-words design citation; - kind-isolation busbar-contract x instance:secret lowered 133 -> 131 (the drain the gate measured); - the contract-stateless strike of the four drained SDK statics. qa/abi-freeze.toml conflicted on the abi/hot row. Base 6224; predev 6100 (its own hot drains in services.rs and host.rs); this branch 5965 (#898's move to abi/shared.rs). The two drains touch different files, so both apply: 6100 + 5965 - 6224 = 5841, the same settle #898 took. The merged tree measures that exactly, every line of every file under abi/hot counted by hand (no xtask on the laptop). The cold row stays at this branch's 43, also counted on the merged tree; predev did not touch abi/cold.
…nto lane-abi-next
…lane-abi-hot-transport
MattJackson
added a commit
that referenced
this pull request
Oct 15, 2026
…onns wrapper follow the merged shapes From the full logs of 2382599: - root door_steps PresentingConns: bind_auth/auth_of take and hand on the registration `member` (the connector's per-member binding, DeclaredConns; E0050/E0061 x2 each). - root tests: the datagram cell's Got states fault/declared_len/end (#893 over #837); the two upgrade-row builds take the settings alone (HostWire build, #932 over #997); the two userinfo cells hand provider_routes a ResolvedProvider (#957 over #876/#936). - tests/plane_blackbox.rs: the step's (key, text) pairs are a type (clippy type_complexity). - config-schema snapshot: `type WakeTicket` is now an alias of ConnWake (#1018), recorded. - Law 0: busbar x instance:export 25 -> 24 (measure); kernel x plane: a test doc names a plane's own webhooks section, not the llm plane's (1050 measured against w2's 1049).
MattJackson
added a commit
that referenced
this pull request
Oct 15, 2026
…ippy build named (bundle of d543b25) - busbar-kernel tests: the rehomed lane-caps cells (#912) and the tenant merge cell read the resolved entry's table through LegacyLaneKeys, as #957's resolved provider carries the plane keys (E0599 lane_caps_for x15, E0609 organization/project x3). - busbar-core-connector tests: the wake closures take (instance, ticket) (ConnWake since #1018, E0593 x3); the datagram head piece states fault/declared_len (E0063). - busbar-plane-llm tests/conformance.rs: hydrate and start are the plane kind's slots (E0425). - busbar-contract tests/object_safety.rs: StreamId is no longer imported (unused since #932). - voice-conformance harness twilio_legs: std::slice::from_ref (clippy cloned_ref_to_slice_refs).
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.
Row 84, S1. This is stacked on #928 (S0) and #904. It stays a DRAFT until they land (rule 19).
What goes. The HOT transport load path:
transport.rsandtransport_adapter.rs, with their four suites;open_transport, and the HOT branch ofopen_transport_entries;Dropped.hot,Row::Dropped,WireTransportarm andDroppedBuild;export_carrier!,export_framer!,export_transport!,busbar_transport_decl).abi::sdk::transport::form_codesstays, because the fleet's doors import it.Why it is safe. Every transport, in-tree and in the fleet (http, grpc, ws and tcp at their pinned revs), exports
export_door!.RED.
a_transport_library_with_no_door_is_refused: a doorless library dropped in as a transport is refused, naming the missing door.Not here. The
abi/hot/transport.rstypes go after #787 lands, together withlayout_golden.rs.Boundary. The kernel-delete lane stacks on this PR (seal from door facts, the
Transporttrait, RootWire). From here on it ownsroot/registry.rsandboot.rs.Ledgers. one-memory-abi strikes 3 rows, contract-stateless strikes 10, and kind-isolation strikes the loader × Transport face. Per-crate law0 and population counts will be settled against ModernCI's measure once this is undrafted.