Repository navigation
Make kernel and core-admin tests fail on an absent subject - #705
Merged
MattJackson merged 2 commits intoOct 10, 2026
Merged
Conversation
The auth-oidc cdylib probe panics in every run instead of skipping outside CI; the seven skip guards in plugin_chain_tests.rs are gone. pipe_tests.rs asserts /bin/cat, /usr/bin/env and a non-empty HOME instead of returning. The core-admin unreadable-catalog test replaces its chmod 000 injection (ignored by root) with a regular file at the plugins-dir path, which fails read_dir for every user, and asserts that precondition instead of skipping. A no_silent_skip scanner in each crate fails on skip prints, CI probes and early-return guards on an absent subject.
MattJackson
enabled auto-merge
October 9, 2026 21:03
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), 96 shipped edge instance(s) over 32 class(es), 96 declaration(s); 59 '[[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 |
18 finding(s) over 14 neutral crate(s): law0-rise busbar × auth 49 hit(s) against a ceiling of 42: this landing grew a neutral crate's instance vocabulary. Ceilings only fall (measured on predev f830f |
| kind-isolation-ship | kind-isolation:deps |
13 finding(s) over 96 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 |
18 finding(s) over 14 neutral crate(s): law0-rise busbar × auth 49 hit(s) against a ceiling of 42: this landing grew a neutral crate's instance vocabulary. Ceilings only fall (measured on predev f830f |
| 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 39374ec00: 0 new red, 0 worse, 5 standing (excused).
tests passed: 21937, failed: 0. Run: https://github.com/GetBusbar/busbar/actions/runs/37991061424 . Artifact verdict-37975120dfd44dc901eccb76740518e72a021ac1 (failures.json, junit.xml, raw.log; 90 days).
MattJackson
added this pull request to the merge queue
Oct 9, 2026
MattJackson
deleted the
lane-task-row-114c-kernel-core-admin-silent-skips
branch
October 10, 2026 01:07
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 (kernel and core-admin share). Governing lines: BUSBAR-1.6.0.md l.1929-1931 (when an instrument must choose, it false-fails), l.2038 (an instrument that cannot produce a NO is not a check), l.3904 (R-FIX2).
Change
crates/busbar-kernel/src/auth/tests/plugin_chain_tests.rs:auth_cdylib()returnsPathBufand panics in every run when the cdylib is absent ("the busbar_auth_oidc_plugin cdylib is not built: runcargo test -p busbar-kernel --no-runfirst (its dev-dependency edge builds it; this test never skips)"). TheCIspecial case is gone.write_auth_pluginandwrite_auth_plugin_with_root_secret_schemareturn(). All sevenskip:guards are deleted. PR busbar-kernel: tests drop the plugin dev-deps (export-prometheus, auth-oidc); doubles in-crate, real-plugin proofs at the root #570 has not merged, so the tests stay in the kernel.crates/busbar-kernel/src/plane_host/pipe_tests.rs: each platformreturnis now an assertion that names the missing prerequisite:/bin/catand/usr/bin/envmust exist, andHOMEmust be set and non-empty.crates/busbar-core-admin/src/v1/tests/service_tests.rs(catalog_unreadable_dir_does_not_serve_stale_cache): thechmod 000injection is replaced. After the first empty, readable read and its cache assertion, the test removes the directory and writes a regular file at the same path. An RAII guard removes that file at the end, andRestorePermsOnDropis gone. The test then assertsstd::fs::read_dir(&dir).is_err()before the two reads. The row assertions are unchanged.New
crates/busbar-kernel/tests/no_silent_skip.rsandcrates/busbar-core-admin/tests/no_silent_skip.rs. Each scans its own crate's test sources: every.rsunder anytests/directory, plussrc/**/{*_tests.rs,tests.rs}, excluding itself. It fails withfile:lineon any of these:skip:orSKIPprint;var_os("CI")orvar("CI");ifor let-else guard onauth_cdylib,write_auth_plugin,Path::new("/,var("HOME")orread_dir(&dir).is_ok()whose body is only comments, prints andreturn;.Comments are blanked before the scan. Each file also has a self-test, so the scan can produce a NO: every shape above is found, and the hard-failure forms that replace them pass.
RED arm: scanner output at the base (origin/predev 39374ec)
These lines come from applying the scanner's rules to the base sources (each listed line was read at the base). The scanners were not executed locally: the lane rules forbid local
cargo build/cargo test, and CI is the proof.busbar-kernelno_test_in_this_crate_passes_by_skipping_its_subject:(The base guard
if home.is_empty() { return; }at pipe_tests.rs:236 is outside rule (c)'s subject list. This change removes it anyway, and it is nowassert!(!home.is_empty(), ...).)busbar-core-adminno_test_in_this_crate_passes_by_skipping_its_subject:Core-admin, root vs non-root: on the base,
catalog_unreadable_dir_does_not_serve_stale_cachereturned early under a root runner (the usual CI container shape). Root ignoreschmod 000, soread_dirsucceeded, and the whole "a failing scan is never memoized" proof was skipped while it reportedok. On the head, the injected path is a regular file, so the assertionread_dir(&dir).is_err()holds for root and non-root alike, and the test always reaches its row assertions.If CI shows that the catalog answers a not-a-directory path with a different row shape, the injection stays as stated and the assertions stay as they are (per the task). That would be a finding to report, not something to loosen.
Not touched
No
#[ignore]and no feature gates. No re-exec child arms or non-test code. Nothing incrates/plugin-loaderorcrates/busbar. The only assertions changed are the skip replacements above.