Repository navigation
promote.yml: slsa-build runs where the rung reads the release artifact (unblocks #740); workflow-rules R18 - #757
Merged
Merged
Conversation
…tifact (needs_release_artifact), so the predev->dev pull request's shards download an artifact this run built
…only where it is built; RED-armed by the #740 regression (slsa-build back to merge-group-only)
…fact-download rule renumbered R17; predev's engine-pin rule keeps R16)
…r the vendor-label rule, so the release-artifact rule is R18
…s the one its R17 is proved with)
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/38111695074 . Artifact verdict-278a0285fb7f690a8359c887325276ae0b35fd1f (failures.json, junit.xml, raw.log; 90 days).
… the release-artifact rule's helper is r18
MattJackson
added this pull request to the merge queue
Oct 11, 2026
MattJackson
added a commit
that referenced
this pull request
Oct 11, 2026
…or runner labels) and R18 (the release artifact is built where it is read, #757), so the R2 write-key rule is R19 promote.yml: the preflight keeps this branch's read-only token, the --act-out shim and the act artifact, and takes predev's RUNNERS on its gate step. workflow-rules: the merge dropped both copies of jobs_of (each side had deleted a different one of the base's two); predev's is restored.
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.
Unblocks #740 (predev -> dev, DEV-GREEN). Split out of #755 on purpose: this fix needs no new secret, and #755 waits on one.
Cause. Every #740 run fails the same way: all four hop shards stop at
actions/download-artifactwith "Artifact not found for name: slsa-artifact-". The dev rung runs the oracle and conformance, so the preflight writesneeds_release_artifact=trueand each shard waits forslsa-build, then downloads its artifact from its own run.slsa-buildis gated tomerge_group, so in the pull request into dev it is skipped, and the pinned engine (7ab2191) read the skipped job as green. (busbar-release dev already refuses a skipped job inawait-job.)Fix.
promote.yml:slsa-buildruns onrun == '1' && (merge_group || needs_release_artifact == 'true'): the run that judges a promotion builds the release artifact of exactly the commit it promotes. Still contents-read only, still the sha256-pinned engine.workflow-rulesR18 (RED-armed): a step that downloadsslsa-artifact-*from its own run must be reachable only where a job of that run uploads it. R17 is predev's vendor-label rule; this one was renumbered in the merge.Order. This must land before the engine pin moves past 7ab2191: the newer engine's preflight requires this
slsa-buildcondition (gate.rs BUILDS_WHERE_READ) and refuses a promote.yml without it.