What happened
On PR #80, the author added sha256 verification to the yq install step in script-test.yml (commit ee103ac) after the fullsend review agent flagged the missing verification on the second review pass. The third review (run 29048848209) then noted that functional-tests.yml (lines 140-144) downloads the same yq binary without sha256 verification, creating an inconsistency.
The author acknowledged this as out-of-scope: "Out of scope for this PR — we'll pick it up in a follow-up."
Existing issue #77 covers hardening binary installations in functional-tests.yml broadly (fullsend CLI and OpenShell), but does not specifically mention the yq download at lines 143-144.
What could go better
The yq download in functional-tests.yml is the same binary, same version, same pattern — but without the sha256 verification that script-test.yml now has. This inconsistency means one workflow is hardened against supply-chain tampering while the other (which runs with GCP credentials and GitHub tokens) is not. The more sensitive workflow is the one lacking verification.
Confidence: High. The maintainer explicitly acknowledged this as a follow-up item, the fix is trivial (add the same sha256sum line), and the inconsistency is clear.
Proposed change
In .github/workflows/functional-tests.yml, add sha256 verification to the Install yq step (lines 140-144). Change:
- name: Install yq
if: steps.changes.outputs.relevant != 'false'
run: |
curl -sSfL "https://github.com/mikefarah/yq/releases/download/v4.47.1/yq_linux_amd64" -o /usr/local/bin/yq
chmod +x /usr/local/bin/yq
To:
- name: Install yq
if: steps.changes.outputs.relevant != 'false'
run: |
curl -sSfL "https://github.com/mikefarah/yq/releases/download/v4.47.1/yq_linux_amd64" -o /usr/local/bin/yq
echo "0fb28c6680193c41b364193d0c0fc4a03177aecde51cfc04d506b1517158c2fb /usr/local/bin/yq" | sha256sum -c
chmod +x /usr/local/bin/yq
This can be done as part of issue #77 or as a standalone change. The sha256 hash is the same value already verified in script-test.yml.
Validation criteria
After the change: (1) functional-tests.yml yq install step includes sha256 verification matching script-test.yml. (2) The functional-tests workflow continues to pass on main branch. (3) Both workflows use identical yq version and hash, eliminating the inconsistency flagged in the third review of PR #80.
Generated by retro agent from #80
What happened
On PR #80, the author added sha256 verification to the
yqinstall step inscript-test.yml(commitee103ac) after the fullsend review agent flagged the missing verification on the second review pass. The third review (run 29048848209) then noted thatfunctional-tests.yml(lines 140-144) downloads the sameyqbinary without sha256 verification, creating an inconsistency.The author acknowledged this as out-of-scope: "Out of scope for this PR — we'll pick it up in a follow-up."
Existing issue #77 covers hardening binary installations in
functional-tests.ymlbroadly (fullsend CLI and OpenShell), but does not specifically mention theyqdownload at lines 143-144.What could go better
The
yqdownload infunctional-tests.ymlis the same binary, same version, same pattern — but without the sha256 verification thatscript-test.ymlnow has. This inconsistency means one workflow is hardened against supply-chain tampering while the other (which runs with GCP credentials and GitHub tokens) is not. The more sensitive workflow is the one lacking verification.Confidence: High. The maintainer explicitly acknowledged this as a follow-up item, the fix is trivial (add the same sha256sum line), and the inconsistency is clear.
Proposed change
In
.github/workflows/functional-tests.yml, add sha256 verification to theInstall yqstep (lines 140-144). Change:To:
This can be done as part of issue #77 or as a standalone change. The sha256 hash is the same value already verified in
script-test.yml.Validation criteria
After the change: (1)
functional-tests.ymlyq install step includes sha256 verification matchingscript-test.yml. (2) The functional-tests workflow continues to pass on main branch. (3) Both workflows use identical yq version and hash, eliminating the inconsistency flagged in the third review of PR #80.Generated by retro agent from #80