fix(ci): verify a head-bound attestation instead of PR body text (land of upstream #1825) - #52
Open
sbracewell64 wants to merge 1 commit into
Open
fix(ci): verify a head-bound attestation instead of PR body text (land of upstream #1825)#52sbracewell64 wants to merge 1 commit into
sbracewell64 wants to merge 1 commit into
Conversation
…d of upstream kunchenguid#1825) Ports upstream PR kunchenguid#1825 onto this fork's trunk. Nothing here is redesigned: bin/fm-attest.sh, the rewritten `Require no-mistakes` workflow, the note format on refs/notes/no-mistakes, the refusal vocabulary, the FM_ATTEST_NM_TIMEOUT knob, docs/no-mistakes-attestation.md, and tests/fm-attest.test.sh are upstream's as written. Provenance: upstream PR kunchenguid#1825 head commit f1e63a1 its base 2cf0283 landed onto ed376cf (sbracewell64/firstmate main) The contribution's head is f1e63a1, three pipeline-review commits past the e04fc24 named at intake; the whole contribution is carried, not a prefix of it. The two trunks diverged at upstream kunchenguid#1495, so the diff did not apply cleanly. Resolutions, all of them fork-versus-upstream divergence rather than changes to what kunchenguid#1825 does: bin/fm-timeout-lib.sh - carried verbatim from upstream 2cf0283 as a required dependency, not as a separate improvement. kunchenguid#1825 deliberately moves the bounded `axi status` read onto that owner, and tests/fm-attest.test.sh sources it and calls fm_run_timed directly, so the alternative was to rewrite the reviewed code and its tests. On this trunk bin/fm-nm-run-lib.sh is its only caller; upstream also has four others that do not exist here. bin/fm-test-run.sh - the pr-forge case keeps this fork's fm-merge-local.test.sh alongside upstream's added fm-attest.test.sh. The bin/fm-timeout-lib.sh selection case is carried with the fork's caller set named instead of upstream's, because session start, the fleet/bearings snapshots and the vendor auth probe do not source it on this trunk; it selects the same families bin/fm-nm-run-lib.sh does. Upstream's adjacent bin/fm-sessionstart-run.sh case is left behind, as that script does not exist here. tests/fm-backend.test.sh - this fork's sibling list is the base, with fm-timeout-lib.sh added in upstream's position. The fork's own fm-landed-lib.sh, fm-launch-lib.sh and fm-admission-lib.sh entries stay, and upstream's fm-secondmate-parent-lib.sh is not added, as neither trunk's set is a subset of the other. docs/documentation-audiences.json - both entries kept in path order: this fork's docs/launcher.md and upstream's new docs/no-mistakes-attestation.md. docs/scripts.md - upstream's fm-attest.sh row and its fm-nm-run-lib.sh rewording, plus upstream's fm-timeout-lib.sh row for the dependency carried above. Verified on this fork: bin/fm-lint.sh clean under pinned ShellCheck 0.11.0, bin/fm-doc-audience-check.sh ok (surfaces=73 local_links=215), and tests/fm-attest.test.sh (43), tests/fm-backend.test.sh (28), tests/fm-crew-state.test.sh (54), tests/fm-teardown.test.sh (68), tests/fm-test-run.test.sh (17) and tests/fm-gotmp.test.sh (3) all pass. The decisive control was witnessed rather than assumed. With the structured parse replaced by the honour-system substring match this contribution removes, tests/fm-attest.test.sh reports: not ok - the replaced honour-system marker was accepted as an attestation and with the landed code the same case passes. That test is what proves the gate now reads evidence bound to the commit rather than text anyone can type. This landing ships direct-PR, without the no-mistakes pipeline, and therefore carries no attestation of its own.
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.
What this is
A landing, not a new fix: it carries upstream PR
kunchenguid/firstmate#1825
onto this fork's trunk so the running fleet actually gets the head-bound
attestation check. Nothing was redesigned and nothing was re-reviewed.
The
Require no-mistakescheck used togrep -qFa literal marker stringagainst the pull request body - a mutable, author-controlled text field
bound to no commit and satisfied by anyone who typed the string. It now
verifies a git note on
refs/notes/no-mistakesthat names the exact headcommit, so it cannot be copied from another pull request and does not survive a
rebase, an amend, or a force-push.
kunchenguid/firstmate#1825f1e63a13f6ae89bd18c5f796e487593513c03f4d2cf0283b811e81a821cddf5b7f74e1f7de8e2881ed376cf(sbracewell64/firstmatemain)Contribution kunchenguid#1825 stays open and untouched upstream, on the maintainer's own
schedule. Nothing in this branch was pushed to
kunchenguid/firstmate.The contribution's head is
f1e63a1, three pipeline-review commits past thee04fc24named at intake. The whole contribution is carried, not a prefix.Reconciliation
The two trunks diverged at upstream kunchenguid#1495, so the diff did not apply cleanly.
Every resolution below is fork-versus-upstream divergence, not a change to what
kunchenguid#1825 does.
bin/fm-timeout-lib.sh- carried verbatim from upstream2cf0283as arequired dependency, not as a separate improvement. fix(bin): verify a head-bound attestation instead of PR body text kunchenguid/firstmate#1825 deliberately
moves the bounded
axi statusread onto that owner, andtests/fm-attest.test.shsources it and callsfm_run_timeddirectly, so theonly alternative was to rewrite the reviewed code and its tests. On this trunk
bin/fm-nm-run-lib.shis its only caller; upstream also has four others thatdo not exist here.
bin/fm-test-run.sh- thepr-forgecase keeps this fork'sfm-merge-local.test.shalongside upstream's addedfm-attest.test.sh. Thebin/fm-timeout-lib.shselection case is carried with the fork's callerset named instead of upstream's, because session start, the fleet/bearings
snapshots and the vendor auth probe do not source it on this trunk; it selects
the same families
bin/fm-nm-run-lib.shdoes. Upstream's adjacentbin/fm-sessionstart-run.shcase is left behind, as that script does notexist here.
tests/fm-backend.test.sh- this fork's sibling list is the base, withfm-timeout-lib.shadded in upstream's position. The fork's ownfm-landed-lib.sh,fm-launch-lib.shandfm-admission-lib.shstay, andupstream's
fm-secondmate-parent-lib.shis not added: neither trunk's set isa subset of the other.
docs/documentation-audiences.json- both entries kept in path order,this fork's
docs/launcher.mdand upstream's newdocs/no-mistakes-attestation.md.docs/scripts.md- upstream'sfm-attest.shrow and itsfm-nm-run-lib.shrewording, plus afm-timeout-lib.shrow for thedependency carried above.
Delivery disclosure
This shipped direct-PR, without the no-mistakes pipeline. It carries no
attestation marker and no attestation note, and it has had no automated
review. The attestation it adds is deliberately absent from its own head:
writing one for work the pipeline never validated would forge exactly the
evidence this change exists to make unforgeable.
What was verified, and how:
bin/fm-lint.shbin/fm-doc-audience-check.shsurfaces=73 local_links=215tests/fm-attest.test.shtests/fm-backend.test.shtests/fm-crew-state.test.shtests/fm-teardown.test.shtests/fm-test-run.test.shtests/fm-gotmp.test.shThe decisive control was witnessed, not assumed. With the structured parse
replaced by the honour-system substring match this contribution removes,
tests/fm-attest.test.shreports:and with the landed code the same case passes.
refuse()was separatelyneutralized to
exit 0and the suite failed on its first case, so the suite isnot passing by absence of signal. Both edits were reverted and the files
compared byte-for-byte against their originals before committing.
Two failing checks, neither caused by this branch
This PR is red, and it is not being presented as green. Both failures
pre-exist on the base and neither has been silenced.
1.
PR must be raised via no-mistakes- expected and correct. This shipsdirect-PR, so there is no attestation to find, and the check refuses. See the
disclosure above: the marker was not and will not be written.
Evidence it is not new: the three most recent landings on this trunk carry the
same refusal on their heads -
#48 (
9ac06bb),#49 (
14e255c),#50 (
2a54197).2.
Behavior portable serial 2- a pre-existing trunk failure, untouchedhere.
Evidence it is not new: the base commit's own push run fails it before this
branch exists -
run 31068554687
on
ed376cf, whereBehavior portable serial 2is the only failing job andRun portable serial shard 2the failing step. Its summary reportsFM_TEST_SUMMARY total=23 failed=1with the single failure infamily=secondmate- a family this branch touches no file in. The same jobfails on the heads of #48, #49 and #50 above.
No attempt was made to fix it: the upstream fix shards that lane and this fork
is behind it, which is a separate resync.