Repository navigation
row 68: the breaker reads a plane fault at the far end (stacked on #561) - #778
Draft
MattJackson wants to merge 82 commits into
Draft
MattJackson wants to merge 82 commits into
MattJackson wants to merge 82 commits into
Conversation
…(the breaker names no plane), so its row is struck
…e's spare byte, a per-claim fault table appended to the transport tail); the bands leave the breaker
…lt reading filled, fault table stated)
…Row, TransportTail::fault_rows); fault-table validators and their RED arms
… arm at the walk: no reading records nothing)
…each repinned to this lane's contract)
…e fault table checks sit beside the upgrade/session lines at bind
…eader regenerated over the merged ABI
…p#12, grpc#7, ws#14, tcp#14)
…(four dependency edges leave; nothing re-resolved)
…nto p2-breaker-neutral-ts
…ne-fault (#489): the plane's fault reading and the transport's share one FAULT_* vocabulary
…where it states one, the transport's otherwise (FarEnd::judged); tests both ways
… fault is recorded once the plane has read it
…t beside the transport's fault byte and fault table)
Conflicts: Cargo.toml and Cargo.lock keep this branch's busbar-transport-tcp pin b3047ce874, which contains #502's eb334dd6e9 plus the tail's fault table; the neutral frame door fixture keeps this branch's FaultRow and FAULT_CALLER imports.
…es pinned by the golden)
MattJackson
added a commit
that referenced
this pull request
Oct 12, 2026
…plane-dup armed at its measure, gRPC errors trailers-only as predev, the admin OpenAPI text restored 1. `header` in neutral crates (ARCHITECT ruling on #787; Part 2 #83, DoD item 6): the 1.5.5 credential placement key stays byte-identical, ONE constant in busbar-contract (section::PLACEMENT_HEADER_KEY). kind-isolation reads a new `[[shape-word]]` table: a NAMED reservation of one spelling (its word, its file, the line its holder names: a `const <holder>:` in a .rs file, the object keyed "<holder>" in a .json file), never word-wide. Two rows: the contract constant and the config-schema snapshot's `manual-de CredentialPlacement`, each citing BUSBAR-1.6.0.md:2284 (#83) and :2020 (DoD 6). A second spelling still counts and a row that reserves nothing is RED (`shape-word-unused`); three selftest cases prove both. law0-base is back to #778's 25 hits over 4 cells. 2. structure-lint:plane-dup:unledgered ARMED at the measured 94 (Law 9): deleting the engine moved pre-existing door code into busbar-plane-a2a, where the scan sees it for the first time. Green at 94, red above (a new plane-local copy) and below (a drain that did not lower the count). The reason and the drain (shared door scaffolding to busbar-plugin-sdk) are in the source; the standing red is struck. The plane-root selftest plants against the voice plane, the a2a plane being door-only now. 3. gRPC error before any message: 1.5.5 has no a2a plane (the published v1.5.5 binary refuses the `agents:` section), so the bytes are predev's, recorded on M3 off #778's subject: GetTask the agent refuses is ONE header block (:status 200, content-type: application/grpc, grpc-status: 5, grpc-message, grpc-status-details-bin, content-length: 0). The door's gRPC head states the line's media type, and the root answers a framed stream that closed before its first body byte whole: its head and the framer's closing block in one header block. Root cell a_grpc_call_refused_before_any_message_closes_trailers_only_as_predev pins it; the OK cell pins content-type: application/grpc. 4. The admin OpenAPI `A2aTrustView` description is predev's text again: the door's fragment is data (src/admin_openapi.json, the published bytes), and openapi.json / .gz are byte-identical to #778's. Every scan floor and the plane_isomorphism floor name what was deleted with the engine and the measures at #778's head (population 947 -> 937, seal-witness 2196 -> 2159, tracing 977 -> 967, no-deferral 940 -> 929, isomorphism rows 21 -> 4).
MattJackson
added a commit
that referenced
this pull request
Oct 12, 2026
… lane-p3-flip-a2a - crates/busbar-kernel/tests/plane_driver.rs: both sides appended cells at the file's end; this branch's refused-piece cells and #778's unpresentable-credential cells are both kept. - qa/kind-isolation.toml: #778 recorded the admin surface's test edges with the retiring engines as [[dep]] rows; the two A2A rows are struck (busbar-a2a is deleted). The [[law0]] rows take this tree's measure: busbar x plane 769, busbar x transport 184, core-admin x plane 50, kernel x plane 1149. The standing `cleanliness -> legacy` finding is struck (#778's row records it). - Scan floors re-armed at this tree's measure, each naming what FLIP-A2A deleted, against #778's measure at e846df4: population 948 -> 938, tracing 978 -> 968, seal-witness 2199 -> 2162, no-deferral 941 -> 930. - Cargo.lock without busbar-a2a; the C header regenerated (`cargo xtask abi-header --write`), unchanged.
Conflict: crates/busbar-core-connector/src/tests/support.rs. The test framer keeps both knobs: this branch's scripted messages (PIECE_END) and predev's piece cap; the scripted arm runs first, else the frame is cut at the cap.
Conflict: docs/design/1.6.0-TODO.md. Predev's 2026-10-12 stock take replaces the PATH section; this branch's note (kernel breaker.rs and normalize.rs leave with D2, ARCHITECT breaker ruling Q2) is carried into its D2 sentence.
MattJackson
added a commit
that referenced
this pull request
Oct 12, 2026
Brings predev 561c69a (FLIP-LLM, #464) through #778. Conflicts, resolved in favour of predev's design with this branch's additions carried: - kernel plane_driver far_end.rs: State keeps both the credential refusal and predev's failover word; the attempt counter is predev's degraded-aware count, stated with the plane's labels. - plane_driver mod.rs: DriverSteps keeps counterparty and resolved beside predev's affinity, refused_words and attempting. - plane_driver route.rs: predev's AttemptSteps bound and exhaustion detail; the exhaustion terminal still names BreakerOpen on the refused piece and takes the plane's stated wait. - busbar serve.rs: predev's seal_live, with the plane's declared metric lanes set inside it; DoorFar keeps stated and member_wait beside predev's walk facts; the door-cells comment keeps naming no plane. - busbar Cargo.toml and build.rs: door-cells and driver-proofs tables, both emitted. - main.rs: DoorReach keeps the shared secret resolver; auths is predev's clone. - secret_source.rs, kernel tests/plane_driver.rs: both sides kept. - population 939, tracing 969, seal-witness 2177, no-deferral 931: the merged tree's measures.
MattJackson
marked this pull request as draft
October 13, 2026 11:56
Collaborator
Author
MattJackson
added a commit
that referenced
this pull request
Oct 13, 2026
…; the breaker never reads it (ARCHITECT ruling on #787) Predev's FLIP-LLM model egress runs 1.5.5's 429 rate-limit ladder and 4xx client-fault count on the numbered status; #561/#778 (row 66) had the port carry the fault reading in its place. Per the ruling (option a; the ABI carries the number beside the class, FrameMeta status_code, BUSBAR-1.6.0.md l.4036-4053) the egress port carries both: - busbar-kernel-egress ports::UpstreamStatus gains code: Option<WireStatus> beside fault; - the far end fills both (wire_code: predev's reserved-numbering rule), and a held relayed answer keeps its code beside the plane's reading; - the kernel breaker still classifies from the fault reading alone; only root/model_egress.rs judge reads code; - root adapters test the_breakers_classification_never_moves_with_the_number_beside_the_fault_reading pins row 66: a fixed class and fault reading classify the same whatever code says, in either reserved numbering or none.
MattJackson
added a commit
that referenced
this pull request
Oct 13, 2026
…es with no reading #795 (on predev) wrote busbar-transport-webrtc against the transport ABI before row 66 (#561/#778), which appended TransportTail::fault_rows / fault_rows_len and gave FramePiece's spare byte to fault. The door's TAIL states no status rows, so it states the empty fault table (null, 0), as busbar-transport-stdio's carrier does; its pieces and the conformance test's host piece carry fault: 0 (FAULT_NONE) where _reserved was. No transport ABI version constant is declared in the crate.
This was referenced Oct 13, 2026
MattJackson
added a commit
that referenced
this pull request
Oct 14, 2026
…erged with predev (460be4d77d) Drains: busbar x instance:secret 25 -> 22, busbar x plane 772 -> 770, busbar-kernel x plane 1100 -> 1099, busbar-kernel x transport 266 -> 220, busbar-kernel-breaker x plane 2 -> 0, busbar-kernel-breaker x transport 134 -> 1 (the #561/#778 breaker work this branch stacks on, row 66, and FLIP-A2A). busbar-plugin-loader x instance:secret 21 -> 23 is a correction of the merge figure, not a rise: predev's -2 (#532, 40a4080) removed two `extern "C"` ABI strings (host_log_sink and its doc line) that this branch's scanner fix had already stopped counting, so the two drains overlap by those two; 23 is this branch's own pre-merge measure, and no hit was added.
Conflicts: - Cargo.toml, Cargo.lock: busbar-transport-http pinned at a6e29e36da, the http dev commit that carries both sides: this branch's fault-table pin 2d1dbfdabf (the dev pin that drains tokio and hyper-util) and predev's a715d1ab57 (an IPv4 spelling is sent as the address it names). It is the pin #787 already carries over the same two. grpc 1303273a73, ws 2ec0786eba and tcp b3047ce874 each contain predev's pin (a5140eee3e, f8ba71d259, eb334dd6e9), so they stay. The transport ABI over predev's new code: - busbar-transport-webrtc (new on predev): its tail states no fault table (fault_rows null, as the byte-stream carrier's), its pieces name the fault byte where the padding was, and a closed data channel is the stream's END by flag (PIECE_END | PIECE_END_OF_FRAME), never an empty message; door_tests prove both. The connector datagram test builds its piece over a zeroed base. Same port #787 carries. - Layout golden and C header: the textual merge equals the generator's output over the merged types (predev's OnPieceOut.tap_fault and this branch's FaultRow / TransportTail.fault_rows / FramePiece.fault are disjoint; 287 of 291 structures pinned). qa/kind-isolation.toml law0: busbar-kernel-breaker x plane 2 -> 0 and x transport 134 -> 1, the measure ModernCI took of this same breaker code in #787 (60dd171, 460be4d77d).
…eaker-plane-fault No conflicts. The base's merge of predev brings the http pin at a6e29e36da (this branch's fault table and predev's IPv4 spelling) and the webrtc transport's port onto the fault ABI. This branch's grpc pin b6b269d99d contains predev's a5140eee3e, so it stays; the four transport pins now equal #787's. Layout golden and C header equal the generator's output over the merged types (this branch's FAULT_HEALTHY over the base's FaultRow / FramePiece.fault, predev's OnPieceOut.tap_fault). The breaker law0 rows (x plane 0, x transport 1) are ModernCI's measure of this branch's breaker code inside #787.
This branch has not been deployed
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 68: the breaker reads a plane fault at the far end.
Stacked on #561 (
p2-breaker-neutral-ts, row 66), which itself carries #502. This branch is #561's head b50da73 plus this row's commits, with origin/predev merged in. The landing order is #502, then #561, then this PR. Once #561 lands, this PR's own diff is the row-68 commits alone.Spec:
FROM_FAR_END, the plane's answer may carry its own reading, and the breaker service classifies.OnPieceOut::fault(SEAM: 4l per-stream gRPC close (FinishIn final tail, SIDE_ACCEPT_STREAM, root framed streams), plane fault reading, ArriveOut ROUTE_STREAM + affinity #489): the plane's breaker fault reading of a far-end answer, in the transport kind's oneFAULT_*vocabulary, which the breaker records against the destination.What changes
FAULT_HEALTHY = 4(WireFault::Healthy): the destination answered and is healthy, whatever the status. It is relayed as a caller's answer is and recorded as a success.FaultRowmay state it.Piece::faultlets a framer state its own reading of a piece over its fault table. An example is a bare HTTP answer on a gRPC call, which is read by its HTTP band.classify_upstreamrecords HEALTHY asOutcome::Success, labelledhealthy. Every other reading keeps 1.5.5's four arms.FarEnd::judged(token, fault)is new. After the plane answers aFROM_FAR_ENDpiece, the pump hands its reading to the far end, before the verdict acts.Breaker::probed). When the plane states none, or the probe drops first, the transport's reading is recorded.DoorFar) hands the reading on to the walk.door_clock's host tables nameio: null.serve_door_far's egress statesstated_ceiling_secs: 0.any(test, feature = "conformance"), as breaker: no protocol in kernel; the transport states its fault table, PIECE_END=128 rides the same framer lineage (row 66) #561 gates the suite. Without this,cargo test -p busbar-plugin-loaderdid not compile.Behaviour
1.5.5-identical. No plane on predev states a fault reading, so every relayed answer is still recorded with the transport's reading, which is 1.5.5's table. The only change is when the record happens: at the answer's last piece rather than its head.
Not in this PR
TAIL_REFUSED_PIECE,ROUTE_SCOPE_LOCAL,wait_memberandmetric_lanesstay on the a2a lane. They were introduced there, in commits that also carry a2a door changes, and are not part of the plane fault reading.Proof (M3 prover)
Run at 6ccde92. Only the last commit moved after the main run, and it touched plugin-loader's cfg gates alone.
cargo fmt --checkis clean.cargo clippy --workspace --all-targets -D warningsis clean, and so is the scoped plugin-loader/connector run.cargo xtask abi-headeris green.cargo test -p busbar-contract -p busbar-kernel-breaker -p busbar-kernel-egress -p busbar-kernel -p busbargave 5510 passed and 7 failed.root::serve::framed_testsneed theneutral_frame_doorexample; withcargo build --workspace --examplesthey pass 8/8.ledger_identityneeds a GitHub clone of the oracle engine, and the VM has no credentials.the_planes_transient_reading_outranks_the_transports_callers_fault,the_planes_callers_reading_outranks_the_transports_hard_down,a_502_the_plane_reads_healthy_records_success,a_502_with_no_plane_reading_falls_back_to_the_status_table,an_answer_the_plane_never_reads_is_recorded_with_the_transports_readinganda_failed_over_answer_is_recorded_at_once_with_the_transports_reading.door_far_tests::the_planes_fault_reading_reaches_the_breaker_through_the_doors_far_endbreaker_unit_tests::six_healthy_502s_in_a_row_do_not_trip_a_cellport::tests::a_healthy_reading_is_a_relayed_successa_probe_answer_the_plane_reads_healthy_records_success(a 502 read HEALTHY: success, the member recovers) anda_probe_answer_the_plane_reads_as_a_fault_records_that_fault(a 400 read TRANSIENT; a 502 read HARD). With the fix,plane_driverpasses 117/117, including the existing probe cells and the newa_probe_answer_the_plane_states_no_reading_of_records_the_tables.cargo clippy -p busbar-kernel --all-targets -D warningsandcargo fmt --checkare clean.busbar_secret_env_plugincdylib and a tcp plugin cdylib built twice under two feature sets in one target dir.