Repository navigation
ci: remi-proof status blocks harness PRs until remi has proven their exact head - #125
Conversation
… their exact head The gate judges PRs with the base branch's tools and adapters, so a PR that changes them is only ever tested on remi. remi-proof.yml (pull_request_target, base's copy, never runs PR code) passes PRs that leave tools/, adapters/, boxes/ and wend alone, and leaves the rest pending until someone with push access records remi's verdict on that commit. A `needs-remi` label opts any other PR in. CONTRIBUTING gains the layer and the exact command to record a verdict. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DYHHin9QGaqhRGgxvTT8Ju Signed-off-by: Claude <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 23611f1b96
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…k before posting A fix (or a route newly pinning one) with a net.* or fs.layout op, or one that installs, removes or reinstalls a kernel, bootloader, initramfs, init or network package, now needs a remi pass too. Outside contributors won't know to add needs-remi. The fix and route files are read from the API as TOML and only parsed. The classifier is Python now, and it skips posting if the PR moved on while it read it or if a verdict was recorded by hand in the meantime. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DYHHin9QGaqhRGgxvTT8Ju Signed-off-by: Claude <noreply@anthropic.com>
…named pin counts Review found two ways round the fix check: package names in other ops' arguments (rpm.transit's reinstall, rpm.drop-unneeded's packages, service.enable's unit) were never read, and a route pin looked up by name took the first hop's file, so a harmless fix of the same name under another hop hid a network one. Now every name-shaped string in any step argument is matched, case-insensitively, against a wider BOOTNET (network-manager, systemd, dhcp-client, netbase, firewalld, lvm2, mdadm, cryptsetup), and a pin needs remi if any hop's file of that name does. The CONTRIBUTING heading loses "(harness changes only)", which is no longer true. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DYHHin9QGaqhRGgxvTT8Ju Signed-off-by: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: cc6e31d73d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
iptables, ip6tables, ebtables, arptables, nftables and ufw join BOOTNET: a chroot never loads a ruleset, so el10-drop-el8-iptables-ebtables and el7-drop-unused-iptables-service now need a remi pass when they change or are newly pinned (Codex review). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DYHHin9QGaqhRGgxvTT8Ju Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DYHHin9QGaqhRGgxvTT8Ju Signed-off-by: Claude <noreply@anthropic.com>
|
@codex review The head is now 8404251. It merges in main (#123, #126) on top of the firewall fix from your last finding. Generated by Claude Code |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 840425177c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…ell as added Codex review: editing a network fix into a harmless one, or unpinning one from a route, changed a real boot but posted success, because only the head side was read. A changed fix is now judged at base and head, and a changed route's pins are compared both ways, each looked up in its own tree. A route pin whose file can't be fetched (anything but a 404 on a hop) now counts as unreadable. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DYHHin9QGaqhRGgxvTT8Ju Signed-off-by: Claude <noreply@anthropic.com>
|
@codex review 986f274 judges a changed fix at base and at head, and checks a route's pins in both directions. Generated by Claude Code |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 986f274950
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
… on a new base Codex review: gate.yml runs from the PR and defines the required checks, and remi-proof.yml becomes the next judge, so a PR changing either now needs a recorded verdict, except a PR only Dependabot touched (verified commits, the dco job's rule). `edited` joins the triggers, since retargeting a PR changes its diff. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DYHHin9QGaqhRGgxvTT8Ju Signed-off-by: Claude <noreply@anthropic.com>
|
@codex review In 0b56def, the required-check workflows need a verdict (Dependabot-only PRs are exempt), and Generated by Claude Code |
|
Codex Review: Didn't find any major issues. Another round soon, please! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
Claude review: SIGN-OFF at 0b56def.
Generated by Claude Code |
Requested by Peter · project thread
Before: "Codex, then remi, then sign-off" for harness PRs was a convention people had to remember. GitHub showed a harness PR as green even though CI never ran its changed tools, because the gate copies tools/ and adapters/ from base. A fix for networking or the bootloader passed on chroot alone, and nothing on the PR said what it was waiting on.
After: every PR gets a
remi-proofcommit status. Most fix and route PRs pass at once. A PR stays pending ("needs a remi pass at : ") until someone with push access records remi's verdict on that exact commit if it:tools/,adapters/,boxes/orwend;net.*orfs.layoutop, or one that installs, removes or reinstalls a kernel, bootloader, initramfs, init or network package;needs-remi(the label exists now).A new push resets the status, because statuses belong to a commit. Once Peter makes it a required check, it blocks the merge button.
How it works:
.github/workflows/remi-proof.ymlruns onpull_request_target, so the base copy always runs and a PR can't edit its own judge.workflow_dispatchre-judges an open PR by number.CONTRIBUTING gains layer 4, "Proof on remi", with the exact
gh apiand curl commands to record a verdict. gate.yml's branch-protection note lists the new required status.Tested by running the classifier against the live API with the POST stubbed:
el10-network-keyfiles(net.ifcfg-to-keyfile), and the route newly pins itRun over every fix in the repo, it flags exactly these 8: drop-sysvinit-for-trixie, wheezy-purge-dhcp3-transitional, wheezy-reinstall-module-init-tools, el10-network-keyfiles, el9-networkmanager, el7-usrmove, el7-var-run and jammy-ifupdown-dns-to-resolved. actionlint is clean.
This workflow can't judge its own PR: pull_request_target uses base's copy, so it starts working after merge.
🤖 Generated with Claude Code
https://claude.ai/code/session_01DYHHin9QGaqhRGgxvTT8Ju