Repository navigation
promote.yml: declares engine contract 1 and takes the auto-pin's canary dispatch - #759
Closed
MattJackson wants to merge 1 commit into
Closed
MattJackson wants to merge 1 commit into
MattJackson wants to merge 1 commit into
Conversation
…ry dispatch The auto-pin (busbar-release autopin.rs) held with "predev's promote.yml declares no BUSBAR_RELEASE_CONTRACT", and its canary dispatches promote.yml on predev with engine_ref / engine_sha256, which this file did not take. - Top-level env declares BUSBAR_RELEASE_CONTRACT: 1 (today's shape: the hop holds the R2 write keys). - workflow_dispatch with inputs engine_ref and engine_sha256. The preflight's Engine step uses them instead of vars.ENGINE_REF / ENGINE_SHA256 (passed as env, same 40-hex / 64-hex shape checks and sha256 check, predev only) and hands them on through $GITHUB_ENV and the job outputs. - A canary re-judges predev's tip as its merge group did: SHA = github.sha, TO = predev, base = the tip's first parent (preflight output base_sha), the four shards and the fold. - A canary writes nothing a pull request would not: publish does not run, and the shards hold no R2 key (predev's merge-group plan stores a landed base report, --store-as-base). - Concurrency line unchanged (R5 holds it exact); a canary's group is `promote-`, apart from every pull request and merge group.
Collaborator
Author
|
Superseded: #755 declares the engine contract (2) with the migration the new engine's wiring check needs. The workflow_dispatch canary can't work here because GitHub only dispatches workflows that exist on the default branch (main has none), so the auto-pin canary moves into busbar-release (a local wiring/contract check plus the trust replay). |
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: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 |
11 hit(s) off the [[law0]] ceilings, 5 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 vocabular |
| 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 |
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 |
11 hit(s) off the [[law0]] ceilings, 5 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 vocabular |
| 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 477c11d3d: 0 new red, 0 worse, 5 standing (excused).
tests passed: 24448, failed: 0. Run: https://github.com/GetBusbar/busbar/actions/runs/38116686752 . Artifact verdict-37750da6f0506b931778c8cc1d18642ea3f79c18 (failures.json, junit.xml, raw.log; 90 days).
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.
The auto-pin (busbar-release
autopin.rs) was held withpredev's promote.yml declares no BUSBAR_RELEASE_CONTRACT (its top-level env). Its canary dispatchespromote.ymlon predev with the inputsengine_refandengine_sha256, and this file had noworkflow_dispatch.What changes
BUSBAR_RELEASE_CONTRACT: 1, which is today's shape (the hop holds the R2 write keys).contract::declaredreads it as 1. Engine 7ab2191 does not read the variable.workflow_dispatchtakes two required string inputs,engine_refandengine_sha256.vars.ENGINE_REF/vars.ENGINE_SHA256.sha256sum -ccheck. A dispatch on any ref other than predev fails.$GITHUB_ENVpasses them to the preflight's busbar-release checkout and toci preflight. The job outputs pass them to every other job.SHAisgithub.shaandTOisgithub.ref_name(predev).base_sha, andhop-shard/hopread it when there is no pull request or merge group. This keeps the standing reds excused as they were.one_runner=false(the event is not a pull request), so the four shards and the fold run.slsa-buildandsoakstay skipped, as they are for predev.publish(sticky comment, health issue, fallback) does not run on a dispatch.--store-as-base(a landed base report) and the keys are this file's only switch over that write. A canary therefore builds uncached.promote-. It never queues behind or replaces a pull request's or a merge group's run.Checked against
wiring_drift: no drift.preflight-act×3, and slsa-build's|| needs_release_artifact == 'true'. promote.yml: read-only R2 keys for the judge, cache-publish writes, the oracle pinned in busbar (engine contract 2) #755 / promote.yml: slsa-build runs where the rung reads the release artifact (unblocks #740); workflow-rules R18 #757 carry those.