Repository navigation
teller-steps: derive the step roster and the plane rows from the tree; add the decision row, rename voice to streaming, owe the 7 decision gating gaps by name (X5 finding 3) - #628
Open
MattJackson wants to merge 15 commits into
Conversation
… no matrix row, a kernel step the matrix lacks, a matrix step or row the tree does not declare, the kernel's order, an owed gap closed and not struck; the matrix renames voice to streaming, adds the decision row and its root leg, and follows the contract's StepName::Encode
…e kernel's StepName::ALL (set and order), rows from every plane-kind crate's PlaneMeta KEY, and the gating gaps held to the owed_gaps list exactly
MattJackson
enabled auto-merge
October 7, 2026 23:20
promote into
|
| gate | row | detail |
|---|---|---|
| construction | one-pick-site |
3 production call site(s) of 'pick_among(' (ceiling 2): crates/busbar-kernel-egress/src/walk.rs:298; crates/busbar-llm/src/engine/exhaustion/fallback.rs:120; crates/busbar-llm/src/engine/pipeline.rs:8 |
| kind-isolation | kind-isolation:deps |
3 finding(s), 93 shipped edge instance(s) over 30 class(es), 93 declaration(s); 56 '[[dep]]' row(s), 0 question(s): unlisted-dep-edge legacy -> plane busbar-llm -> busbar-plane-llm is a shipped edge w |
| kind-isolation | kind-isolation:test-deps |
3 finding(s), 35 test edge instance(s) over 21 class(es), 35 declaration(s); 20 '[[dep]]' row(s), 0 question(s): unlisted-dep-edge cleanliness -> legacy busbar-core-admin -> busbar-a2a is a test edge |
| kind-isolation | kind-isolation:law0 |
11 hit(s) off the [[law0]] ceilings, 5 finding(s) over 14 neutral crate(s): law0-rise busbar × instance:secret 37 hit(s) against a ceiling of 35: this landing grew a neutral crate's instance vocabular |
| kind-isolation-ship | kind-isolation:deps |
10 finding(s) over 93 shipped edge(s): ship-edge kernel -> hooks busbar-kernel -> busbar-hook-ranking is 'not-allowed': the architecture grants no kernel -> hooks edge, and the ship criterion is the a |
| kind-isolation-ship | kind-isolation:test-deps |
10 finding(s) over 35 test edge(s): ship-edge cleanliness -> export busbar-core-admin -> busbar-export-prometheus is 'not-allowed': the architecture grants no cleanliness -> export edge, and the ship |
| kind-isolation-ship | kind-isolation:law0 |
11 hit(s) off the [[law0]] ceilings, 5 finding(s) over 14 neutral crate(s): law0-rise busbar × instance:secret 37 hit(s) against a ceiling of 35: this landing grew a neutral crate's instance vocabular |
| kind-isolation-ship | kind-isolation:faces |
2 finding(s) over 40 crate(s): foreign-entry crates/busbar busbar is kind 'root' and implements 'Transport' 1 time(s) in shipped source — the entry face of kind 'transport'. A trait implementation is |
| kind-isolation-ship | kind-isolation:legacy-drain |
3 finding(s): transitional-live qa/kind-isolation.toml 'busbar-a2a -> busbar-core-admin' (legacy drain: the retiring A2A engine's tests drive the admin surface that drained into the cleanliness tier) |
| ship-ready | ship-ready:ship-twin |
'kind-isolation-ship' is not green: kind-isolation:deps (a dependency the architecture does not grant is still in the graph); kind-isolation:test-deps (a dependency the architecture does not grant is |
| structure-lint | structure-lint:plane-dup:unledgered |
22 finding(s): PLANE-DUPLICATE (module): 'config.rs' — a2a:crates/busbar-a2a/src/a2a/config.rs decisions:crates/busbar-plane-decisions/src/config.rs voice:crates/busbar-voice/src/config.rs (the ledger |
Judged against base bd3947661: 0 new red, 0 worse, 5 standing (excused).
Reused PASS by input key (1, 1 min not re-run)
| step | key | produced by |
|---|---|---|
| build:deletion-matrix | febb102901ce1b39 |
18e473c06 |
tests passed: 24272, failed: 0. Run: https://github.com/GetBusbar/busbar/actions/runs/38058422807 . Artifact verdict-71961859d7f864774238d031312f1f92964fd252 (failures.json, junit.xml, raw.log; 90 days).
… units on the CI hop); the jev.rig resolver case stays (ruling Q12(a))
MattJackson
added a commit
that referenced
this pull request
Oct 8, 2026
…ig; the teller-steps budget keeps this branch's 22-case measure
…her pool ends at verify before its dial), admit and audit over the served door; the matrix cites the cells
… tests, resolve legs through libtest_path
…seals (Approve/ScopeDenied before admit and dial), not Verify/PoolNotPermitted The served decisions door judges a key's pool grant at its approve seat, as the mcp and a2a doors do; its verify step never refuses. CI's first panic was 'refused at verify: unit_end: Refused(Approve, ScopeDenied)'. The cell is renamed to say what it proves and the matrix row cites the new name.
github-merge-queue
Bot
removed this pull request from the merge queue due to failed status checks
Oct 10, 2026
…root crate The decisions verify test grew busbar x plane by 4 (figure 11 -> 15): two plane-decisions cfg lines (serve_keyed and the test) and the bare mcp and a2a in its doc. serve_keyed folds into serve_governed as its allowed_pools argument (one cfg line gone), the doc says 'as every served door does', and the budget test's doc drops a redundant 'llm plane' to offset the test's own unavoidable cfg line. Net zero against predev; no ceiling raised. Not proved on Latchkey: the run budget is spent (RUN_CAP); the PR's CI is the proof.
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.
teller-steps: derive the step roster and the plane rows from the tree (X5 finding 3)
The matrix was a roster the file wrote for itself: "every plane carries every declared step" was checked only against the file's own lists. Now both lists are DERIVED and compared with the matrix (
check_roster, rowteller-steps:matrix):StepName::ALL, as a set AND in loop order. The kernel's teller (crates/busbar-kernel/src/teller.rs) imports it fromcrates/busbar-contract/src/caps/step.rs:67(enum at:42). Each step is spelled the way itsas_strarm spells it.PlaneMetaKEY of every plane-kind crate (busbar-plane-*). The kind census does this through a newkind_isolation::plane_meta_declarations, which reuses the census's owndeclared_meta_keys. Every key must have a matrix row, and every row must be a key some crate'simpl PlaneMetadeclares.Spec wording drift (coordinator ruling): spec l.154 (THE DESIGN §1) says
exit, but the contract'sStepNamesaysEncode(spec row 72, l.2266, owner-locked, cites step.rs:42).Encodeis persisted in audit records, so the matrix follows the contract: stepexitis renamed toencode. The spec is not edited.adminrow: kept, and derived rather than hand-kept.busbar-core-admin/src/admin_codec/meta.rs:69declaresimpl PlaneMeta for AdminPlane { KEY = "admin" }, and the root-admin leg serves it through the loop. With that, set equality holds.Rows:
voiceis renamed tostreamingeverywhere the roster names the plane: row,root-voice->root-streaming, comments and notes. Thevoice.rig|…ids andtesting/voice-conformancepaths are genuinely voice-named and stay.decision, the plugin's ownPlaneMetaKEY (coordinator ruling). Its leg isroot-decisions(crates/busbar/src/root/tests/serve_tests.rs, featureplane-decisions).the_data_router_built_with_the_door_serves_only_its_claims.a_plane_stating_no_breaker_fact_keeps_the_default_bench.a_claimed_request_is_served_through_the_door_and_its_money_posted.none, each with an argued note."none". The exception is arrival, which uses the sharedconcurrency|inbound-shed|n8.Owed gaps (coordinator ruling, a visible floor that only shrinks, not an exemption):
qa/teller-steps.jsonowed_gapsnames the 7 decision gating gaps BY NAME, with owner DECISIONS-FIX: decision.authenticate, .verify, .admit, .route, .meter, .audit, .encode.teller-steps:gating-gapspasses only while the owed list EXACTLY equals the measured gaps:The owed list is printed in the row detail on every run.
Arm and legacy adapter kept consistent:
cargo xtask teller-stepsprintsROSTER:andOWED:lines, andtranslate()reads them back into the sameFindings.--root-legsaddsplane-decisionstoROOT_FEATURES.--root-legsnow reads a#[path]mount (root/serve.rsmountstests/serve_tests.rsasmod door_tests) to name the libtest module. The old file-stem convention could not produceroot::serve::door_tests.Proof (Latchkey, large)
run()still wired the old way).gate teller-steps --selftest(job cli-e4147d8a):a plane crate with no matrix row: expected Red { naming: ["busbar-plane-shadow declares plane 'shadow', which carries no matrix row"] }, got Greena kernel step missing from the matrix: expected Red { naming: ["which the matrix's 'steps' lacks"] }, got Greena matrix step the kernel does not declare: expected Red { naming: ["steps.meter is a step the kernel does not declare"] }, got Greena matrix row for a plane no crate declaresandthe kernel's steps in another order than the matrix's: also got Green.an owed gap that was closed and not struck: IMPOSSIBLE (gating already red without the owed rule).--selftest: 21 cases, all as expected, "the gate is proven RED-able". Budget: serial 18892 of 19811 work units.gate --all: base 2bf9d9b vs head, 555 rows each, the same row set. No row is worse. The non-PASS diff is onlyship-ready:standing-reds, which is FAIL on base and not FAIL on head.cargo test -p xtask(unfiltered) passes.cargo clippy -p xtask --all-targets -- -D warningsis clean.cargo fmt --all --checkis clean.Newly seen findings
The 7 decision gating gaps above are owned by DECISIONS-FIX (assigned by the coordinator), and that lane stacks the jev rig cells on this branch.