Repository navigation
contract: an emit carries the answer's status on an accepted stream's head (INBOUND-LISTEN, l.4913) - #1012
Merged
Conversation
… head (INBOUND-LISTEN, l.4913) EmitIn gains a pre-tag tail, `status: u32` and `_status_reserved: u32` (224 -> 232), as deadline_ns and lane were appended. It is stated on the emit that carries an ACCEPTED stream's answer head (the bytes encode rendered), in the numbering of the claim the stream arrived on; a status asking the far end to switch protocols hands the connection to the claimed upgrade framer (detach). It is 0 on every other emit, and never a `:status` field. The spec's l.5037 "no ABI change" rested on this field, which l.4913 ruled and which never landed (ARCHITECT ruling 2026-10-14). check_emit_status is the framer's rule: a status only on the answer head, the answer head always with one, the padding zero. RED: transport_check_tests an_emit_states_a_status_only_on_an_accepted_streams_answer_head names a field and a function that did not exist. The abi-layout golden, its record list and the C header move with the append; every host constructs EmitIn zeroed (blank_in / input / z), so every existing emit states 0.
This was referenced Oct 14, 2026
Collaborator
Author
|
Rule 20 note from #1030 (row 155): disjoint hunks in busbar_plugin.h, abi-layout.golden, layout_golden.rs (OnPieceOut gains |
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.
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.
This PR is step 36's contract piece (INBOUND-LISTEN), per the ARCHITECT ruling of 2026-10-14. That ruling carries out
BUSBAR-1.6.0.mdl.4913: "transport emit input += status u16 (no ':status' magic header)".The append
EmitIngains a pre-tag tail:status: u32and_status_reserved: u32. Its size goes from 224 to 232. It is appended the same waydeadline_nsandlanewere.encoderendered). The number is in the claim's own numbering.detach.0, and it is never a:statusfield.EmitInzeroed (blank_in,input,z), so every existing emit states 0.The rule
check_emit_status(abi/transport/check.rs) is the framer's rule:RED:
transport_check_tests::an_emit_states_a_status_only_on_an_accepted_streams_answer_headnames a field and a function that did not exist before this PR.Files that move with the append
tests/golden/abi-layout.goldenand thelayout_golden.rsrecord list.include/busbar_plugin.h, hand-written in the generator's format. Preflight'sgate abi-header --writeandgit diff --exit-codejudge it.Order
This PR lands first. Next comes the
busbar-transport-httpSIDE_ACCEPT fleet PR, pinned to a busbar rev that carries this append. Then the ws door's accept side. Step 36 comes after #503.qa/abi-freeze.tomlfreezes onlyabi/hotandabi/cold, so no row moves.