Skip to content

busbar-core-admin: tests drop the busbar-export-prometheus dev-dep; named-map tests resolve on the kernel's scrape double - #571

Merged
MattJackson merged 13 commits into
predevfrom
lane-gb-core-admin-plugin-tests
Oct 15, 2026
Merged

MattJackson merged 13 commits into
predevfrom
lane-gb-core-admin-plugin-tests

Conversation

@MattJackson

Copy link
Copy Markdown
Collaborator

busbar-core-admin's [dev-dependency] on the plugin crate busbar-export-prometheus is removed. PR #502 puts the pinned plugin checkouts into the kind-isolation census, and that exposed this edge as a kind-isolation-ship finding (cleanliness -> export).

Ruling. Coordinator, 2026-10-07: spec BUSBAR-1.6.0.md l.3870 (FIXTURES (3)) and R-FIX3 (l.3894) apply, so the edge is MOVED, not granted. This PR adds no ledger row, no grant and no ceiling change. It strikes the one [[dep]] row whose drain clause this completes.

Stacked on #570 (lane-gb-kernel-plugin-tests). This PR uses that PR's kernel ScrapeDouble, so its diff carries #570's commits until #570 lands.

What changed

  • src/tests/tests.rs::linked_export_axis now installs the kernel's stand-in export axis (busbar_kernel::test_support::export_axis::install_export_axis). The axis's scrape double answers module: prometheus as a linked, first-party, one-instance scrape sink. It used to register the real sink's door (busbar_export_prometheus::door::door).
  • Cargo.toml: the dev-dependency is dropped (Cargo.lock updated).
  • qa/kind-isolation.toml: the busbar-core-admin -> busbar-export-prometheus test row is struck.

Mapping (old path::fn -> new path::fn)

No test moves. Every test below stays at crates/busbar-core-admin/src/tests/tests.rs::<same fn> and now resolves module: prometheus on the double.

old = new how
test_admin_v1_overlay_reset_named_map_section_reverts_to_base double
test_admin_v1_overlay_reset_named_map_refuses_a_dangling_reference double
limit_zero_does_not_produce_a_self_referential_cursor double
test_admin_v1_named_maps_list_get_and_put_round_trip double
test_admin_v1_named_map_put_honors_expected_version double
test_admin_v1_named_map_rejects_an_under_scoped_caller double
test_admin_v1_identity_provider_refuses_raising_max_admin_scope double
test_admin_v1_export_put_that_adds_a_route_reports_restart_required double
test_admin_v1_identity_provider_validates_an_unreferenced_definition double
test_admin_v1_identity_provider_rejects_an_unknown_module double
test_admin_v1_identity_provider_delete_rejects_a_dangling_reference double
test_admin_v1_named_map_put_rejects_what_the_file_parser_rejects double
test_admin_v1_named_map_read_flags_an_unparseable_overlay_entry double

No test needed the real sink. Its rendering and 1.5.5 words are proven at the composition root by #570 (crates/busbar/tests/export_scrape_linked_sink.rs, export_settings_refusal_1_5_5.rs). The test count is unchanged.

Red before green. This PR adds no new double: ScrapeDouble is #570's, and its red runs are in #570. Under those mutations (scrape detection off, the grant lending nothing, the one-instance refusal dropped), 9 tests went red.

Proof

Latchkey (large), this branch's head (origin/predev ba985a8 + #570 + this).

  • cargo fmt --all --check: exit 0.
  • cargo clippy -p busbar-core-admin --all-targets -- -D warnings: exit 0.
  • cargo test -p busbar-core-admin --no-fail-fast (unfiltered): exit 0. The lib suite is 450 passed, 0 failed; the other binaries are 2 passed and 0. The base merge-group CI runs on origin/predev are green, so there are no pre-existing failures.
  • cargo xtask gate --all:
  • cargo xtask gate kind-isolation --selftest: exit 0. cargo xtask selftest: exit 0 (64 gates, every one proven able to go RED). Both are required because qa/kind-isolation.toml is touched.

…xport-prometheus, busbar-auth-oidc, busbar-auth-oidc-plugin)

R-FIX3 (spec l.3894): the kernel's own tests run on in-crate test doubles,
linked only; the real-plugin proofs move to the composition root.

- test_support::export_axis: the stand-in axis answers the frozen scrape
  module word with ScrapeDouble (first-party, one_instance, metrics stream,
  the two scrape routes) when no installed row answers it.
- scrape/config/migrate/projection/plugin tests resolve against the double;
  the one-instance refusal asserts the double's own words.
- metrics_source / snapshot_hooks tests read the snapshot through the test
  view instead of the prometheus renderer.
- auth plugin_chain_tests: the role-binding test runs on an in-process
  module; the untrusted-row test on a row whose bytes are not a library.
- Moved, real plugin: crates/busbar/tests/auth_plugin_chain.rs (5 tests),
  export_scrape_linked_sink.rs (byte-identical render), and the 1.5.5
  second-instance line in export_settings_refusal_1_5_5.rs.
…dependency

R-FIX3 (spec l.3894): the named-map tests resolve `module: prometheus`
against the kernel's stand-in export axis, whose scrape double answers it
as a linked first-party scrape sink; no plugin is named. The real scrape
sink's proofs live with the composition root (crates/busbar/tests).
…he tree no longer has

busbar-kernel -> busbar-export-prometheus and -> busbar-auth-oidc are gone
from the test graph (their drain clauses, done); the gate reported both as
dead-dep-edge. No row is added.
…-prometheus test-edge row the tree no longer has

The drain clause is done (the named-map tests resolve on the kernel's
stand-in axis). No row is added.
@MattJackson
MattJackson enabled auto-merge October 7, 2026 14:38
@MattJackson
MattJackson marked this pull request as draft October 8, 2026 03:33
auto-merge was automatically disabled October 8, 2026 03:33

Pull request was converted to draft

@MattJackson

Copy link
Copy Markdown
Collaborator Author

Back to draft automatically: this branch contains #570 (lane-gb-kernel-plugin-tests), which is also ready. Two hops on the same code is duplicate spend (owner rule 2026-10-08). Mark this ready again after #570 merges.

@github-actions

github-actions Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

promote into predev: DENY @7e049173f: 0 failing test row(s), 11 DENY row(s)

DENY rows (11)

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), 94 shipped edge instance(s) over 31 class(es), 94 declaration(s); 57 '[[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), 32 test edge instance(s) over 18 class(es), 32 declaration(s); 17 '[[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 23 finding(s) over 14 neutral crate(s): law0-rise busbar × auth 68 hit(s) against a ceiling of 46: this landing grew a neutral crate's instance vocabulary. Ceilings only fall (measured on predev f830f
kind-isolation-ship kind-isolation:deps 11 finding(s) over 94 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 7 finding(s) over 32 test edge(s): ship-edge cleanliness -> legacy busbar-core-admin -> busbar-a2a is 'not-allowed': the architecture grants no cleanliness -> legacy edge, and the ship criterion is th
kind-isolation-ship kind-isolation:law0 23 finding(s) over 14 neutral crate(s): law0-rise busbar × auth 68 hit(s) against a ceiling of 46: 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
Denied because (2)
  • shard 1/4: gate:kind-isolation row kind-isolation:law0: figure rose 18 -> 23
  • shard 1/4: gate:kind-isolation-ship row kind-isolation:law0: figure rose 18 -> 23

Judged against base abc07fea9: 0 new red, 2 worse, 3 standing (excused).

tests passed: 24158, failed: 0. Run: https://github.com/GetBusbar/busbar/actions/runs/38019438231 . Artifact verdict-7e049173fb9f8cb3d0725e8e5bdf5e1684f67789 (failures.json, junit.xml, raw.log; 90 days).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant