Skip to content

export axis: an export door that states ready is awaited when its instance opens to deliver, as a store's and an auth door's are - #558

Merged
MattJackson merged 2 commits into
predevfrom
p6-export-ready
Oct 7, 2026
Merged

MattJackson merged 2 commits into
predevfrom
p6-export-ready

Conversation

@MattJackson

Copy link
Copy Markdown
Collaborator

Row 86, Q-B(1) G2 (coordinator ruling 2026-10-07). This change is independent of #544's code and merges cleanly with it.

Change. ExportRows::open, the open that delivers, now awaits the door's optional ready (abi::mechanism::lifecycle READY, ARCHITECT 2026-10-02 "discovery at boot") once the instance is open over the host's tables, exactly as store_v3 and auth_door already do. The instance that check opens to judge a configuration has no connector, and it is not asked. A door that states no ready opens as before. There is no ABI change.

Why. The request-log webhook asked the host's admission of its target only on its first delivery, so 1.5.5's boot-time refusal ("…; disabling this webhook exporter") never surfaced at boot. The webhook will state ready (GetBusbar/busbar-export-webhook p6-export-ready). It reaches busbar at the export-webhook repin, which waits on #550 (declares needs).

Nothing observable moves on this PR alone. No door linked in this build states ready on the export axis until the repin, so every verdict is identical.

Proof

  • an_export_door_stating_ready_is_awaited_when_it_opens_to_deliver (an export witness door in tests/fixtures/ready_plugins.rs):
    • check's instance is never asked;
    • a refused ready refuses the open with the plugin's text;
    • a READY answer opens it.
    • Red without the call.
  • busbar-plugin-loader, --no-fail-fast: 621 passed and 1 failed. The failure is secret_door_conformance_tests::a_linked_and_a_dropped_in_secret_plugin_resolve_identically (the secret-env cdylib is not built), the same environment row red at predev. All integration binaries are green.
  • cargo clippy -p busbar-plugin-loader --all-targets -- -D warnings: clean. cargo fmt --all --check: clean.
  • cargo xtask gate kind-isolation-ship: the same rows as predev (control-path 73; deps 15; test-deps 13; faces 4; testkit 2; legacy-drain 5).
  • Oracle (engine 4a7a7bba, filtered record plus strict replay --id-filter '^(export|ops\.scrape|hazard)\|', plus premise cells):
    • base 6afec14 (cli-04c3e3e9): replay rc=1, 21 judged rows, 20 PASS / 1 FAIL;
    • head b48253c (cli-8e8dc221): replay rc=1, 21 judged rows, 20 PASS / 1 FAIL;
    • verdict lists identical. The one FAIL is export|request-log-webhook|loopback-refused on both sides; it moves at the repin, and its location change is with the owner.

…nstance opens to deliver, as a store's and an auth door's are

The mechanism's one optional lifecycle op (`abi::mechanism::lifecycle` READY, ARCHITECT 2026-10-02
"discovery at boot") was awaited after `open` for store and auth doors (store_v3, auth_door) and
the loader's boot, but never on the export axis. An export plugin that must ask the host about its
target before it serves had nowhere to do it but its first delivery. `ExportRows::open`, the open
that delivers, now awaits `ready`. The instance `check` opens to judge a configuration has no
connector and is not asked. No ABI changes: a door that states no `ready` opens exactly as before.

This is coordinator ruling G2 for row 86 Q-B(1). The request-log webhook states `ready` (GetBusbar
busbar-export-webhook p6-export-ready), so a refused target is named at boot, as 1.5.5 named it.

Test: an_export_door_stating_ready_is_awaited_when_it_opens_to_deliver (an export witness in
tests/fixtures/ready_plugins.rs): check's instance is never asked; a refused ready refuses the open
with the plugin's text; READY opens it. Red without the call.
@MattJackson
MattJackson enabled auto-merge October 7, 2026 11:40
@github-actions

github-actions Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

promote into predev: NO VERDICT @72438a6ce

The hop ended without writing a verdict (runner lost, timeout, cancel, or it died before the engine judged): preflight: cancelled at step Run cargo run --locked --release --no-default-features -p busbar-release-cli --bin busbar-release -- ci preflight; slsa-build: cancelled; hop shard ${{ matrix.shard }}: cancelled; publish: runner lost at step Run bash "$GITHUB_WORKSPACE/busbar-release/ci/promote/fallback.sh", Post Run actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1; hop: cancelled (The run was canceled by @MattJackson.).

No failing-test list exists for this run. Run: https://github.com/GetBusbar/busbar/actions/runs/37651845070 . Re-run the hop, or read the job's step list in the run page.

@MattJackson
MattJackson added this pull request to the merge queue Oct 7, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Oct 7, 2026
@MattJackson

Copy link
Copy Markdown
Collaborator Author

Merged origin/predev (f830faa) into the branch as 72438a6. The merge is clean, and the diff against predev is still only the three G2 files (export_axis.rs, export_axis_tests.rs, tests/fixtures/ready_plugins.rs).

Re-proof on Latchkey:

  • kind-isolation and kind-isolation-ship (cli-315a0fc7): every verdict is identical to predev f830faa. The only difference is that the kind-isolation:matrix measurement went from 13919 to 13925 hits, which is still PASS; the 6 extra hits come from the new export witness fixture.
  • busbar-plugin-loader tests, unfiltered: head has 664 passed, 2 failed (cli-315a0fc7); base predev has 663 passed, 2 failed (cli-2b96008c). The 2 failures are the same on both: secret_calls::tests::a_dropped_in_secret_plugin_is_the_same_plugin_through_the_axis and secret_door_conformance_tests::a_linked_and_a_dropped_in_secret_plugin_resolve_identically, at both_ways.rs:125. They pre-exist on predev, and this branch doesn't touch the secret kind. The one extra pass is this PR's test.
  • clippy -p busbar-plugin-loader --all-targets -D warnings: rc=0.
  • fmt --all --check: rc=0.

@MattJackson
MattJackson added this pull request to the merge queue Oct 7, 2026
Merged via the queue into predev with commit 408cf67 Oct 7, 2026
@MattJackson
MattJackson deleted the p6-export-ready branch October 7, 2026 22:09
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