Repository navigation
Make root crate tests fail on a missing fixture or axis, never skip - #712
Merged
Merged
Conversation
A missing fixture cdylib now panics through common::plugins::missing, naming the command that builds it, in every run (no CI special case). Linkage probes become cfg gates on the test with an in-body assertion of the subject. The mcp_stdio_serve skip ledger and the store adapter's dead guards are removed. tests/no_silent_skip.rs scans the root crate's test trees for skip prints, CI switches, skip ledgers and early-return guards around fixture or axis probes.
MattJackson
enabled auto-merge
October 9, 2026 21:09
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:law0 |
5 hit(s) off the [[law0]] ceilings, 3 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 vocabulary |
| 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 |
8 finding(s) over 32 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 c |
| kind-isolation-ship | kind-isolation:law0 |
5 hit(s) off the [[law0]] ceilings, 3 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 vocabulary |
| 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 |
tests passed: 5296, failed: 0. Run: https://github.com/GetBusbar/busbar/actions/runs/38276974807 . Artifact verdict-b673ae7b0b4cb7921b3e8c0e751fbcf58938c0e1 (failures.json, junit.xml, raw.log; 90 days).
Gating a test on a cfg left the helpers only it reads uncompiled-but-present in builds without that cfg, which clippy -D warnings rejects: - plane_isomorphism: the plane-axis-only helpers, the linked_planes include and their path import are gated on linked_axis_plane as the tests are. - migration_corpus: the helpers the two admin-minted corpus tests read are allowed dead in a build without the admin credential's plugin. - traces_stream_both_doors, export_otlp_delivers_spans and linked_export_sinks_boot_as_their_own_kind: the export-door axis cfg moves to the file, as each holds one test. The tests no longer name plugin features in cfgs (instance-noun-neutrality:tcp and kind-isolation:law0 busbar x export, 15 -> 18): - The two OTLP tests drop the tcp wire in when the build does not link its row (the pattern linked_export_sinks already uses) instead of compiling out, and gate on the export-door axis, asserting the binary links otlp. - The webhook-ordering test gates on the export-door axis and asserts the binary links the sink. - no_silent_skip's fixtures name no transport instance. Proved on Latchkey: clippy -p busbar --tests with --no-default-features and with --features proto-llm (-D warnings) clean; gates instance-noun-neutrality green, kind-isolation and kind-isolation-ship law0 back to the base's 18 findings; the both-doors, OTLP delivery and no-silent-skip scan tests pass.
…root-crate-silent-skips
MattJackson
added this pull request to the merge queue
Oct 10, 2026
github-merge-queue
Bot
removed this pull request from the merge queue due to a conflict with the base branch
Oct 10, 2026
- serve_money: the three local-unit tests merged in from #644 still skipped on a missing test plane; they now take the infallible governed() fixture like the rest. - store_adapter_verb_seam: StoreAdapter::speaks_new_ops is gone on predev (every loadable store speaks ABI v3); the fixture check asserts the adapter's payload schema is the published one. - qa/kind-isolation.toml: busbar x auth measures 49 on this head (law0-slack in the CI report; the 11 -> 13 figure rise is exactly that 2-hit slack), so its [[law0]] ceiling is lowered 51 -> 49 in the commit that drained it. Not proved on Latchkey: the run budget is spent (RUN_CAP 4000/4000); the PR's CI is the proof.
…root-crate-silent-skips
MattJackson
added this pull request to the merge queue
Oct 10, 2026
MattJackson
removed this pull request from the merge queue due to a manual request
Oct 10, 2026
MattJackson
added this pull request to the merge queue
Oct 10, 2026
MattJackson
removed this pull request from the merge queue due to a manual request
Oct 10, 2026
MattJackson
added this pull request to the merge queue
Oct 10, 2026
MattJackson
removed this pull request from the merge queue due to a manual request
Oct 10, 2026
The busbar x auth lowering (51 -> 49) made this candidate arm the kind-isolation:law0 row. That row is red at the tree for four standing rises this branch did not cause and cannot drain here (busbar x instance:secret 37/35, busbar x plane 824/822, busbar x vendor 90/89, busbar-plugin-loader x transport 190/186, plus the busbar-kernel x plane slack). So the turnstile denied it as "armed red". qa/kind-isolation.toml goes back to predev's bytes. The row's figure returns to the base's 13 (the 2-hit busbar x auth slack this branch drained, now with no ledger edit), so it stays a standing red and is not worse. The slack licenses nothing: kind-isolation:law0-base (#747) judges every neutral cell against the merge-base, so a hit written into it is still red. Lowering the row is for the landing that makes law0 green. Not proved on Latchkey: the run budget is spent (RUN_CAP 4000/4000). Reasoned from the CI verdict of run 38090752431 (law0 figure 13 -> 11, base 13, armed red only because the ledger changed). The PR's CI is the proof.
Ruling: the drain lowers its [[law0]] row. BUSBAR-1.6.0.md:2093 (Law 9,
origin/predev): "The drain runs behind it, ratcheting the ceiling down."
The gate says the same: law0-slack "lower the `[[law0]]` row to {now} in
the commit that drained it" (xtask kind_isolation/matrix.rs).
Why the lane was stuck: the row's figure is |measured - ceiling| summed
per cell (law0_off), so the two auth hits this lane removed with its
skip text read as 2 hits of slack, 11 -> 13, with the ledger untouched
(214973e). With it lowered the figure is the base's 11, but engine
7ab2191 charged the whole row as "armed red" for predev's standing
cells (instance:secret, plane, vendor, loader x transport). That is the
row-wide rule busbar-release 5a1380d (dev) replaced: an armed row is
charged only with the cells its ledger change moves or grows. This lane
moves busbar x auth only, which stands at 49 = 49.
So this lands green once ENGINE_REF carries busbar-release 5a1380d.
Under 7ab2191 it reads armed red, as 0efa8f5 did.
Not proved on Latchkey: run budget spent (RUN_CAP 4000/4000). The
measure 49 is run 38090752431's (figure 13 -> 11 with this row at 49).
…root-crate-silent-skips
Collaborator
Author
|
Claim released by busbar-release: the |
Collaborator
Author
|
Re-run by busbar-release: the engine pin ENGINE_REF 937eae641 now contains busbar-release 5a1380d, which the owner question this PR was held on names; the failed jobs of 0e1090f are re-run and the hold is lifted. |
- busbar tests/mcp_stdio_serve.rs: record_skip stays deleted and a missing OIDC cdylib still panics through common::plugins::missing; predev's harness first-party key and the first-party signed tarball are kept.
…s instance (busbar × auth back to 49)
MattJackson
added this pull request to the merge queue
Oct 12, 2026
MattJackson
added a commit
that referenced
this pull request
Oct 12, 2026
…eep, #789) into p3-flip-llm: no conflicts
MattJackson
added a commit
that referenced
this pull request
Oct 12, 2026
…skip (#712's no-silent-skip); the collapse plant keeps the door's other renderer - crates/busbar `linked-section`: plane-streaming = "streams", so the build sets `linked_section_streams` where the door that declares `streams` is linked (held to the door's Statement by root::linked's test, as the tools and decisions rows are) - serve_tests `session_door` and secret_source's two session-door cells are compiled under that cfg and fail, never skip, when the door is not found (no_silent_skip named the four `skip:` prints) - p_item_refusal_reason_collapse: the plant puts `refusal_body` back the old way inside the door's real source, so `refusal_render` is still read (and clean) and the plant's two findings stay exact
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.
Status row 114, the root crate's share (row 114b). No test in
crates/busbarpasses by returning early when its subject is absent.What changed (tests only)
crates/busbar/tests/common/plugins.rs::missing(name, command) -> !panics withthe <name> cdylib is not built: runfirst (this test never skips). The commands areBUILD_BUSBAR_EXAMPLES(cargo build -p busbar --examples),BUILD_LOADER_EXAMPLES(cargo build -p busbar-plugin-loader --examples) andBUILD_PINNED(cargo test -p busbar --no-run). The root unit tests already mount this file ascrate::root::test_plugins, so they call the same helper. No second copy exists.std::env::var_os("CI")special case is gone:serve_planes::dropped_path/bound;serve_money::governed*(they returnGoverned, notOption) andneutral_framers;registry::dropped_doors;export_plugin_dropped_in_serves::export_cdylib,export_scrape_is_first_party::metrics_sink_cdylibandtransport_dropped_in_serves::transport_cdylib;linked_export_sinks_boot_as_their_own_kindand the otlp cdylib intraces_stream_both_doors;plane_driver::dropped_path/plane_rider::dropped_path. Theirways()always includeDropped, so the dropped door is no longer skipped quietly.let Some(x) = probe() else { eprintln!("skip: …"); return; };is nowlet x = probe();.mcp_stdio_serve.rs:install_auth_pluginreturns()and panics when the cdylib is absent.record_skip,BUSBAR_TEST_SKIP_LEDGERand the ledger text are deleted.store_adapter_verb_seam.rs:adapter_over_published_schema()andadapter_at()returnStoreAdapter. The 8 dead guards are deleted.#[test], and the test asserts its subject inside:export_otlp_delivers_spans:#[cfg(all(feature = "transport-tcp", feature = "export-otlp"))]withassert!(LINKED_TRANSPORTS…tcp)andassert!(otlp_linked(&dir));traces_stream_both_doors:#[cfg(feature = "transport-tcp")]with the tcp assertion;linked_export_sinks_boot_as_their_own_kind:#[cfg(linked_axis_export_doors)]withassert!(!sinks.is_empty());migration_corpus(both tests):#[cfg(feature = "auth-admin-tokens")];cli_validate::validate_orders_a_webhook_sinks_refusals_among_the_limits_as_before:#[cfg(all(linked_axis_body_ingress, feature = "export-webhook"))]withassert!(!probed.contains("unknown exporter 'request-log-webhook'"), "{probed}");plane_isomorphism(both tests): see the judgment call below, withassert!(!decls.is_empty()).serve_money.rsNODE_HOOKS_ARM(the re-exec harness).Judgment calls
plane_isomorphismis gated on#[cfg(linked_axis_plane)], notlinked_every_plane. The probe wasinstalled_decls().is_empty(), andLINKED_PLANESholds exactly the enabled rows that carry theplaneaxis.linked_axis_planeis the build-script cfg that names that subject.linked_every_planewould also stop compiling both tests on every partial-plane build. The test bodies passcfg!(linked_every_plane)intoverify_scopedso that partial rosters still run.every_installed_plane_is_answered_by_a_root_leg's doc says it must run on every build, and "used to be cfg-gated … ran in exactly one build configuration" is the regression it records.var_os("CI")sites than the table lists (plane_driver.rs,plane_rider.rs,serve_money::neutral_framers, the tcp and otlp drop-ins). Scanner rule (b) refuses every one of them, so they are converted the same way.src/root/tests/. The root tree already mountstests/common/plugins.rsascrate::root::test_plugins, so it calls the samemissinginstead of keeping a copy.letbinding of a probe's answer, e.g.let decls = installed_decls(); if decls.is_empty() { return; }. Without that, theplane_isomorphismandlinked_export_sinksguards would get past it.Tests
crates/busbar/tests/no_silent_skip.rsscans every.rsundersrc/root/tests/andtests/(itself excluded). Comments are stripped bycommon::classify. It fails and listsfile:lineon:skip:/SKIPprint;var_os("CI")/var("CI");record_skip(;ifguard that only prints andreturn;s, around a probe name orcfg!(feature.#[cfg]with its assertion, a non-probe guard, and a guard that does more than skip.root::serve::planes_tests::a_missing_fixture_cdylib_fails_the_test_and_names_its_buildis#[should_panic(expected = "is not built: run")].RED: what the scanner reports at the base (origin/predev 39374ec)
The lane rules forbid building or running tests locally, so this list was not produced by a run of the scanner. It was derived by applying the scanner's rules with
git grepat the base commit and reading the guard sites. CI runs the real thing on this head. At the base the test fails withN silent skip(s): …, followed by:Comma-separated line numbers stand for one row each.
cli_validate.rs:1673is converted by this PR but is not a scanner finding at the base: its probe,run_busbar, is not on the (d) name list.PR #590 and PR #570 (
auth_plugin_chain.rs) had not merged when this branched, so neither is touched.