Repository navigation
row 163: bin/oracle fetches the pinned judge (busbar-release's published busbar-oracle at the base pin's sha256, .sig verified) or refuses: no judge - #911
Merged
Conversation
… busbar-oracle at the BASE pin's sha256, or there is none OWNER 2026-10-13 (to ModernCI): no hand-installed tools for tenants; ModernCI removed BUSBAR_ORACLE_RUST_BIN and its installed engines. bin/oracle's resolve step 2 now fetches busbar-oracle-linux-<arch>-<release_ref> from busbar-release's dev-bin release over the GitHub API (the token on curl's stdin, never an argv or a file), reading release_ref and sha256_linux_<arch> from $MODERNCI_TO_SHA's oracle-rust.pin when the base holds one, else the tree's (the first predev -> dev move). It refuses unless the sha256 is the pin's, refuses a .sha256 that disagrees, verifies a .sig against busbar-release's release key (Ed25519 over "<name>\n<sha256>\n"), and caches the verified binary by digest (re-hashed on every use). A pin with no line for the host's architecture has no judge. Laptops keep the source build. The 1.5.5 golden is untouched. `bin/oracle fetch-selftest` (oracle_one_pin.rs) is the RED: wrong sha refuses, missing line says "no judge", a disagreeing .sha256 and another key's .sig refuse, the base pin wins.
MattJackson
added a commit
that referenced
this pull request
Oct 14, 2026
#911: fetched at the base pin's sha256), not an installed BUSBAR_ORACLE_RUST_BIN; no busbar-oracle capability (OWNER 2026-10-13: no hand-installed tools)
This was referenced Oct 14, 2026
MattJackson
added a commit
that referenced
this pull request
Oct 14, 2026
…dev->dev move absolute (dev holds no xtask/suites), oracle self-fetch (#911), git-history on gates/verify-done/q128/test-gated, deadline 8h; keeps the self-provisioned toolchain line + BUSBAR_TOOL_SH (queue rule 27).
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.
Row 163 lane. Not
$: no money code; the 1.5.5 golden andoracle-rust.pinare untouched.What: on Linux,
bin/oracle's judge is the binary busbar-release published, and no other.release_refandsha256_linux_<uname -m>are read from the BASE pin,$MODERNCI_TO_SHA:testing/shadow-oracle/oracle-rust.pin, when ModernCI names a base that holds one. Otherwise they come from the checked-out tree: that's the first predev→dev move, since dev holds no pin (row 163: the predev→dev move is judged absolute and from predev's own oracle pin (dev holds no xtask, ledgers, pin or golden) #909).busbar-oracle-linux-<arch>-<release_ref>, plus its.sha256and.sigwhen present, from busbar-release'sdev-binrelease over the GitHub API. The token (BUSBAR_RELEASE_TOKEN, else GH_TOKEN, else GITHUB_TOKEN) reaches curl on stdin as a-K -config line. It never appears on an argv and is never written to disk, the same discipline asgit_with_token..sha256that disagrees with the pin..sigmust verify against busbar-release's release key: Ed25519 over"<asset name>\n<sha256>\n",RELEASE_KEY_SPKIin busbar-release-cliupdate.rs, checked withopenssl pkeyutl -rawin.${XDG_CACHE_HOME:-~/.cache}/busbar-oracle-judge/<sha256>/busbar-oracle, re-hashed on every use, so a cache cannot substitute a judge.sha256_linux_<arch>line fails with "no judge". It never falls back to another architecture or to a source build.BUSBAR_ORACLE_RUST_BINkeeps precedence 1, andverify-1.6.0-done.shstill refuses a DONE run with it set. Non-Linux (laptops) keeps the source build.scripts/verify-1.6.0-done.sh: the judge step's label and its refusal text describe the fetch.assert_bless_env_emptydoes not list BUSBAR_RELEASE_TOKEN, and shouldn't: it's a credential, not a repoint. The judge is fixed by the pin's sha256, and the cache dir isn't a repoint either because every use is re-hashed.Why: OWNER 2026-10-13 (to ModernCI): no hand-installed tools for tenants. ModernCI removed
BUSBAR_ORACLE_RUST_BINand its installed engines, so.ci/predev.yaml's oracle and verify-done checks must obtain the judge themselves. #909 is updated to rely on this.RED-able test:
crates/busbar/tests/oracle_one_pin.rs::the_fetched_judge_is_the_pinned_digests_or_nonerunsbin/oracle fetch-selftest, offline (a fixture release dir and a throwaway Ed25519 key). It checks that:.sha256refuses;.sigis accepted, and another key's.sigrefuses;Checked once against the live release: the API path fetched the pinned judge
7ab21912…(aarch64, shaaa1ee227…, which has no.sig). Main's7e606a7a…asset verified against the real release key. No laptop cargo was run.Ledger rows: none.