fix(ci): run product-invariants on main pushes with the merge-commit body (#9744) - #10965
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Thanks for fixing this — the change is tightly scoped and the direction looks right to me. I reviewed the workflow/script diff statically. Passing the main-push merge commit body into Because this changes CI workflow behavior, I’m leaving it for human maintainer review rather than treating it as an automated approval. I don’t see a concrete blocker from this review, but a maintainer should confirm this is the desired post-merge enforcement behavior for direct pushes and merge commits before merging. by AI on behalf of David — if you need David’s attention urgently, please @Git-on-my-level and escalate with |
|
Independently verified the final head (ff04f08):
@cubic-dev-ai's 5/5 is correct; this is a tightly scoped workflow wiring fix. @Git-on-my-level confirmed no concrete blocker and CI is green. This restores post-merge invariant-citation enforcement on main pushes. Requesting your human maintainer sign-off on the CI workflow behavior change (needs-maintainer-review / workflow-review). |
@aryanorastar The change is sound and I'm comfortable signing off from the review side. The wiring matches what the issue asked for: main-push runs now feed One thing worth keeping straight, since you asked for sign-off: the "human maintainer" gate here is separate from my review. I can confirm there's no blocker from the code/diff side, but Git-on-my-level already flagged this as a CI workflow behavior change that needs human maintainer review — that approval has to come from a maintainer, not from me or CI. My review sign-off doesn't substitute for the needs-maintainer-review gate. Everything else checks out: Tip: get faster answers by chatting with cubic’s review copilot in the review UI |
|
@Git-on-my-level this CI workflow fix has your positive signal and cubic's 5/5 with no issues — requesting your maintainer sign-off on the |
…body (BasedHardware#9744) repo-checks.yml ran the manifest on main pushes with --skip-pr-body-checks, so product-invariants (and failure-class-protocol) were silently skipped — even though GitHub folds the PR description, including locked invariant citations like INV-CHAT-1, into the merge commit message. A main-push Hygiene run therefore could not verify citations at all (BasedHardware#9734 merged with the IDs in its body, yet the post-merge run reported them missing). Pass the merge-commit body through --pr-body-file instead. Fail-closed is preserved: a direct push whose commit message omits required invariant IDs still fails product-invariants. Updates the two wiring regression guards in test_run_checks.py: the main-push path must now pass --pr-body-file (not --skip-pr-body-checks), and body-requiring checks must be selected when a body is supplied. Failure-Class: none Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
ff04f08 to
2f35041
Compare
|
Re-reviewed the current head ( I also ran the full Keeping this as human maintainer review rather than an automated approval because it changes CI workflow behavior. The existing by AI on behalf of David — if you need David’s attention urgently, please @Git-on-my-level and escalate with |
|
@Git-on-my-level need human response — this is still blocked on code-owner review for CI/workflow behavior. Your latest AI pass on What’s left is the formal human / |
|
@Git-on-my-level follow-up: PR #10965 remains CI-green at 2f35041 with your latest positive re-review and 41/41 local contract tests passed. The only remaining blocker is the required workflow code-owner approval; no code or CI changes are pending. |
Keep the main-push PR-body invariants wiring current for CO re-check.
|
@Git-on-my-level need human response — workflow code-owner APPROVE still the only merge blocker on #10965. Refreshed tip merges current
Your AI re-review on |
Pick up desktop glass tripwire updates so Desktop Swift CI is not failing on stale AgentPill/SettingsGlassChrome contracts.
|
@Git-on-my-level need human response — Desktop Swift red on prior tip was the same stale glass tripwires as #11142/#10964 (not this workflow wiring). Merged current
Please human / workflow-review APPROVE (or explicit hold) when CI re-greens. |
|
@Git-on-my-level need human response — #10965 still blocked only on CI/workflow code-owner APPROVE. Author-clear on tip
Please human / |
|
Thanks for keeping this fix focused. I rechecked the current head and don’t see a code-level blocker. Specific notes from the changed files:
CI is green on this head. Because this changes CI/workflow enforcement behavior, the existing by AI on behalf of David — if you need David’s attention urgently, please @Git-on-my-level and escalate with |
|
@Git-on-my-level need human response — thanks for the fresh positive-signal recheck on tip Author-clear / CI green / MERGEABLE. Your latest pass again found no code-level blocker (main-push Only remaining merge blocker is formal workflow code-owner APPROVE ( |
|
@Git-on-my-level workflow-review ping: current head is MERGEABLE and the product-invariants main-push guard has no author-side blocker. Please provide the required approval or state an explicit hold. |
|
@Git-on-my-level workflow CO ping: still MERGEABLE, author-side clear. Waiting maintainer APPROVE. |
|
@Git-on-my-level workflow CO ping (>1d): still MERGEABLE, CI green, author-clear. Please APPROVE or explicit hold. |
|
@Git-on-my-level Workflow CO APPROVE ping — tip |
|
@Git-on-my-level @kodjima33 Workflow review ping: tip |
undivisible
left a comment
There was a problem hiding this comment.
Cline review agrees: main-push Hygiene now passes the merge-commit body via --pr-body-file so product-invariants can see citations, with fail-closed preserved when the body is empty. CI-only, tests updated. Merge.
Fixes #9744
What changed and why
repo-checks.ymlran the deterministic check manifest on main pushes with--skip-pr-body-checks, soproduct-invariants(andfailure-class-protocol) were silently skipped on every post-merge run — even though GitHub folds the PR description, including locked invariant citations likeINV-CHAT-1, into the merge commit message. A main-push Hygiene run could not verify citations at all; #9734 merged with the IDs in its body yet the post-merge run reported them missing.Now the main-push path captures the merge-commit body (
git log -1 --format=%B HEAD) and passes it through--pr-body-file, so body-requiring checks run with the real citations. Fail-closed is preserved: a direct push whose commit message omits required invariant IDs still fails.Product invariants affected
None (CI workflow + test wiring only). This fixes the enforcement of INV-* citations on main pushes.
How it was verified
actionlint .github/workflows/repo-checks.yml— clean.python3 .github/scripts/test_run_checks.py— the two wiring regression guards updated/passing; only pre-existing sparse-checkout failures remain (identical on pristine main).Tests
test_ci_lane_is_reachable_from_repo_checks— now asserts the main-push path passes--pr-body-filewith the merge-commit body and no longer uses--skip-pr-body-checks(the wiring regression guard this issue asks for).test_main_push_includes_pr_body_checks_when_body_supplied/test_main_push_without_body_still_excludes_pr_body_checks— body-supplied runs select product-invariants; body-less runs stay fail-closed.Failure class (fixes)
Failure-Class: none
Scoped cleanups
None.