Skip to content

contract, connector: a listener's protocol offer is the entry's offer for its accepting side (INBOUND-LISTEN) - #1019

Merged
MattJackson merged 4 commits into
predevfrom
lane-kdel-locate-accept
Oct 15, 2026
Merged

MattJackson merged 4 commits into
predevfrom
lane-kdel-locate-accept

Conversation

@MattJackson

Copy link
Copy Markdown
Collaborator

This PR is the INBOUND-LISTEN piece of step 36, per the ARCHITECT ruling of 2026-10-14. That ruling rejected hard-coding the listener's offer in the root.

The append

LocateIn gains a pre-tag tail: accept: u32 and _accept_reserved: u32. Its size goes from 152 to 160.

  • accept = 1: asks the framer for the protocol offer (ALPN) that an ACCEPTING listener it frames makes. The target may be empty.
  • accept = 0: the dial offer, unchanged. Every caller builds LocateIn zeroed, so no existing caller changes.

Why

The ALPN offer is the framer's on both sides (BUSBAR-1.6.0.md l.477-478), but the two sides differ. v1.5.5's client offered h2, http/1.1, while its listener offered http/1.1 alone (v1.5.5 crates/busbar/src/tls.rs:242).

What the connector does with it

  • framer::accept_offer reads the accepting side's offer.
  • Connector::listen secures a need's listener with that offer, never with the entry's registered dial offer.
  • An entry that refuses the question offers nothing.

RED

connector_tests::a_listener_offers_the_entrys_accept_offer_not_its_dial_offer checks three things:

  • the entry answers its dial offer and its accept offer differently;
  • a TLS client offering h2, http/1.1 to the need's listener agrees on http/1.1;
  • the listener does not use the server config's own pinned offer.

Other files

… for its accepting side (INBOUND-LISTEN)

LocateIn gains a pre-tag tail, `accept: u32` and `_accept_reserved: u32` (152 -> 160): 1 asks the
framer for the protocol offer (ALPN) an ACCEPTING listener it frames makes, the target possibly
empty; 0 is the dial offer, unchanged for every caller (all build LocateIn zeroed). The ALPN offer
is the framer's on both sides (BUSBAR-1.6.0.md l.477-478), and the two differ: v1.5.5's client
offered h2,http/1.1, its listener http/1.1 alone (v1.5.5 crates/busbar/src/tls.rs:242). ARCHITECT
ruling 2026-10-14: hard-coding the offer in the root is rejected.

The connector reads it through framer::accept_offer, and Connector::listen secures a need's listener
with that offer, never the entry's registered dial offer; an entry that refuses the question offers
nothing. RED: connector_tests a_listener_offers_the_entrys_accept_offer_not_its_dial_offer names a
field and a function that did not exist, and a TLS client offering h2,http/1.1 to the listener
agrees http/1.1. The layout golden, its record list and the C header move with the append; the
hunks are disjoint from #1012's EmitIn append.
@MattJackson

Copy link
Copy Markdown
Collaborator Author

Rule 20 note from #1030 (row 155): disjoint hunks in busbar_plugin.h, abi-layout.golden, layout_golden.rs (OnPieceOut gains tap_fault at 181; _fault_reserved moves to 182, plus BB_PLANE_TAP_FAULT_* consts after UNITS_FLOOR). A test merge is clean.

MattJackson added a commit that referenced this pull request Oct 14, 2026
… appended declared_len at zero

compile/clippy/test were red on busbar-transport-ws (pinned f8ba71d), whose door builds a FramePiece
literal field by field and so missed the appended declared_len. The pin moves to 140691cf2e, f8ba71d
plus one change: the literal ends in `..std::mem::zeroed()` (FramePiece is plain repr(C) integers;
zero is every field's absent value), so this and any later append compile. The framer states no
declared length. ws's own dev carries the off-line door changes (#1012/#1019) and repins with them.
…e (neutral protocol ids x-one/x-two); law0 busbar-core-connector x transport back to its 68
… proofs (listen_tests), reusing their client alias and certificate helpers, so busbar-core-connector names no new transport instance (law0 x transport stays at its 68)
@MattJackson
MattJackson merged commit 7100585 into predev Oct 15, 2026
1 check was pending
@MattJackson
MattJackson deleted the lane-kdel-locate-accept branch October 15, 2026 05:33
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