Repository navigation
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
Conversation
…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.
promote into
|
|
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:
|
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 optionalready(abi::mechanism::lifecycleREADY, 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 thatcheckopens to judge a configuration has no connector, and it is not asked. A door that states noreadyopens 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 (declaresneeds).Nothing observable moves on this PR alone. No door linked in this build states
readyon 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):readyrefuses the open with the plugin's text;--no-fail-fast: 621 passed and 1 failed. The failure issecret_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).--id-filter '^(export|ops\.scrape|hazard)\|', plus premise cells):