Skip to content

fix(skills): use latest check-run attempts - #7024

Merged
apurvvkumaria merged 29 commits into
mainfrom
codex/fix-merge-gate-check-attempts
Jul 17, 2026
Merged

fix(skills): use latest check-run attempts#7024
apurvvkumaria merged 29 commits into
mainfrom
codex/fix-merge-gate-check-attempts

Conversation

@cv

@cv cv commented Jul 16, 2026

Copy link
Copy Markdown
Collaborator

Summary

Make the maintainer merge gate evaluate only current, complete GitHub Actions evidence for the exact PR diff. Before this change, stale retry jobs and later all-skipped body-edit runs could block an otherwise-green PR; after it, the gate selects the latest complete attempt while failing closed when GitHub evidence is incomplete.

Changes

  • Group duplicate check runs by authoritative workflow identity; require exact-diff evidence for required checks and exact-head evidence for supported non-PR Actions events.
  • Resolve rerun attempts through every page of the GitHub Actions jobs API, then recheck the run attempt to reject races without hiding matrix-job failures.
  • Require every latest-attempt job for the check name to appear in the PR rollup and bind every required name to parseable Actions evidence.
  • Reject legacy status contexts that reuse a required check name without exact-diff Actions provenance.
  • Ignore all-skipped workflow runs only when GitHub metadata proves a complete skipped run and another meaningful run for the same PR diff and workflow.
  • Normalize GitHub Actions statuses and conclusions against their documented value sets so unknown metadata cannot count as meaningful evidence.
  • Bind Actions evidence to the immutable run head_sha as well as PR association metadata so live PR fields cannot make a stale run look current.
  • Bind substantive pr.yaml evidence to its canonical immutable PR/head/base title, require checks and changes from the same gate true run, and fail closed on malformed metadata-only gate false shapes.
  • Reject check-hash evidence created at or before the latest paginated base_ref_changed event, preventing a retargeted PR from inheriting a base-trusted result from its prior base.
  • Compare the PR base snapshot with the live base branch tip so review-blocked PRs cannot mask stale exact-diff evidence.
  • Require exactly one successful head/base-bound E2E coordination check from the GitHub Actions app, including the legacy check-name migration path.
  • Require required merge-gate checks to conclude SUCCESS; optional checks may still conclude NEUTRAL or SKIPPED.
  • Rerun trusted installer-hash verification after PR base retargets so required evidence cannot be inherited from the prior base.
  • Keep the Dependabot DCO exemption identity-bound while producing a successful required job and preserving mandatory commit verification.
  • Recognize only the exact all-skipped pr.yaml metadata-edit job shape, preserving earlier substantive matrix evidence while rejecting malformed lookalikes.
  • Keep malformed URLs, invalid timestamps, stale heads, mixed workflow identities, incomplete conclusions, and ambiguous evidence fail-closed.
  • Add regression coverage for stale attempts, pagination, rerun races, missing jobs, skipped body-edit runs, malformed identities and timestamps, singleton and tied runs, matrix jobs, status contexts, and custom checks.

Type of Change

  • Code change (feature, bug fix, or refactor)
  • Code change with doc updates
  • Doc only (prose changes, no code sample modifications)
  • Doc only (includes code sample changes)

Quality Gates

  • Tests added or updated for changed behavior
  • Existing tests cover changed behavior — justification:
  • Tests not applicable — justification:
  • Docs updated for user-facing behavior changes
  • Docs not applicable — justification: This changes an internal maintainer skill and does not alter NemoClaw user-facing behavior.
  • Sensitive paths changed (security, policy, credentials, preflight, onboarding, inference, runner, sandbox, or messaging)
  • Sensitive-path review completed or maintainer-approved waiver recorded — reviewer/approval link/justification: Three independent read-only security/correctness reviews found no blocker; the full 133-test affected suite and repository hooks passed.
  • Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue:

Verification

  • PR description includes a Signed-off-by: line and every commit appears as Verified in GitHub
  • Normal pre-commit, commit-msg, and pre-push hooks passed, or npm run check:diff passed when hooks were skipped or unavailable
  • Targeted behavior tests pass for the current change set, or tests are marked not applicable above — npx vitest run test/skills/check-gates-compliance.test.ts test/skills/check-gates-evidence.test.ts (133 passed); live checker passes fix(skills): use latest check-run attempts #7024 and rejects feat(openshell): route session reads over authenticated gRPC #6793 only for its stale pre-retarget check-hash evidence
  • Applicable broad gate passed — npm run check:diff
  • Quality Gates section completed with required justifications or waivers
  • No secrets, API keys, or credentials committed
  • npm run docs builds without warnings (doc changes only)
  • Doc pages follow the style guide (doc changes only)
  • New doc pages include SPDX header and frontmatter (new pages only)

Signed-off-by: Carlos Villela cvillela@nvidia.com
Signed-off-by: Charan Jagwani cjagwani@nvidia.com

Summary by CodeRabbit

  • New Features
    • Tightened maintainer merge-gate CI evaluation to use exact-diff evidence and added final-revision re-verification for conflicts if PR revision/merge state changes.
    • Extended contributor compliance to support Dependabot-style DCO-body bypass and surfaced bypass status in gate output.
  • Bug Fixes
    • Improved CI gate check deduplication by selecting the latest attempt per check context and failing closed when evidence is incomplete.
    • Updated conflicts gate logic to consider both mergeability and merge state (including clearer “behind” handling).
  • Tests
    • Refactored and expanded check-gates compliance/evidence coverage using shared fixtures, including exact-diff coordination, pagination, and malformed evidence cases.
  • Documentation
    • Updated merge-gate workflow guidance to reflect the stricter exact-diff and merge-readiness rules.

cv added 3 commits July 16, 2026 01:02
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
@cv cv self-assigned this Jul 16, 2026
@coderabbitai

coderabbitai Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

CI gates now bind checks to exact PR revisions, select current workflow attempts, fail closed on incomplete evidence, verify final mergeability, support Dependabot DCO bypasses, and add workflow contracts plus extensive mocked evidence tests.

Changes

Merge gate validation

Layer / File(s) Summary
Exact-diff CI evidence resolution
.agents/skills/nemoclaw-maintainer-day/scripts/shared.ts, .agents/skills/nemoclaw-maintainer-day/scripts/check-gates.ts
Status checks gain workflow metadata, while CI rollups deduplicate checks, validate exact-diff E2E evidence, and reject incomplete latest-attempt evidence.
Final revision and mergeability verification
.agents/skills/nemoclaw-maintainer-day/scripts/check-gates.ts
Conflict checks use mergeability and behind-state information, and final revision checks re-read PR state before returning gate results.
Dependabot DCO compliance handling
.agents/skills/nemoclaw-maintainer-day/scripts/check-gates.ts, .agents/skills/nemoclaw-maintainer-pr-comparator/scripts/collect-gates.sh, .github/workflows/dco-check.yaml
Maintainer and comparator gates recognize Dependabot DCO bypasses, report bypass state, and still require verified commits.
Workflow identity and trigger wiring
.github/workflows/*.yaml, test/pr-e2e-gate-workflow.test.ts, test/pr-workflow-contract.test.ts, ci/source-shape-test-budget.json
Workflow run names, pull request triggers, repository conditions, and DCO behavior are updated with contract assertions.
Gate fixtures and evidence test coverage
test/skills/check-gates-test-fixtures.ts, test/skills/check-gates-compliance.test.ts, test/skills/check-gates-evidence.test.ts
Shared mocked GitHub helpers support gate execution, while tests cover evidence attribution, pagination, duplicate attempts, malformed metadata, mergeability, compliance, and revision changes.

Estimated code review effort: 5 (Critical) | ~100 minutes

Sequence Diagram(s)

sequenceDiagram
  participant PRData
  participant checkCi
  participant currentCheckRollup
  participant GitHubActions
  participant checkFinalRevision
  participant checkConflicts
  PRData->>checkCi: Provide status checks and exact head/base OIDs
  checkCi->>currentCheckRollup: Resolve current checks
  currentCheckRollup->>GitHubActions: Fetch workflow attempts and jobs
  GitHubActions-->>currentCheckRollup: Return latest-attempt evidence
  currentCheckRollup-->>checkCi: Return current checks and incomplete evidence
  PRData->>checkFinalRevision: Re-read final PR revision
  checkFinalRevision->>checkConflicts: Evaluate mergeability and base state
  checkConflicts-->>PRData: Return final gate result
Loading

Possibly related PRs

  • NVIDIA/NemoClaw#6909: Updates the E2E/PR Gate coordination evidence consumed by exact-diff CI validation.
  • NVIDIA/NemoClaw#6914: Changes control-plane authorization check states used by Gate 1 evidence validation.

Suggested labels: bug-fix, area: ci

Suggested reviewers: ericksoa, jyaunches

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly matches the main change: selecting the latest check-run attempts for merge-gate evidence.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/fix-merge-gate-check-attempts

Comment @coderabbitai help to get the list of available commands.

@github-code-quality

github-code-quality Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall coverage remains at 96%, unchanged from the main branch.

TypeScript / code-coverage/cli

The overall coverage remains at 80%, unchanged from the main branch.


Updated July 17, 2026 00:19 UTC
Code Coverage is in Public Preview. Learn more and provide us with your feedback.

@github-actions

github-actions Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor — Informational

Advisor assessment: Informational / high confidence
Next action: No advisor follow-up needed.
Findings: 0 blockers · 0 warnings · 0 suggestions
Status: No actionable findings remain in the canonical review ledger.

Model lanes

  • GPT-5.6 Terra (primary): Completed · high confidence · 0 blockers · 0 warnings · 0 suggestions
  • Nemotron 3 Ultra (second opinion): Completed · high confidence · 0 blockers · 3 warnings · 0 suggestions
  • Model comparison: normalized findings differ; normalized E2E selections differ; Nemotron reported the same number of blockers, 3 more warnings, the same number of suggestions.

Nemotron output stays in workflow artifacts and does not change the assessment above.

E2E guidance

Advisory only. E2E / PR Gate selects and runs jobs independently.

Recommended E2E: cloud-onboard, credential-sanitization, security-posture

Workflow run details

This automated review informs maintainers. Warnings and suggestions do not require a response. A maintainer decides whether to merge.

@cv cv added the v0.0.85 label Jul 16, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.agents/skills/nemoclaw-maintainer-day/scripts/check-gates.ts:
- Around line 357-368: Update checksFromLatestAttempt so it returns null unless
every check maps to a job ID in jobIds; track whether each check is selected and
fail closed when any check is omitted, while preserving the existing null
handling for unmatched URLs and empty selections.
- Around line 317-335: Update the latest-attempt jobs retrieval in the code
using ghJson and latestAttemptJobsByRun so it paginates through all API pages,
aggregates every job, and only then validates the combined result against
total_count. Preserve the existing null fallback for malformed or incomplete
responses, but do not reject valid runs solely because total_count exceeds 100.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 85a08e47-0d65-414d-a09f-aec99150e216

📥 Commits

Reviewing files that changed from the base of the PR and between 032d7fa and 65cfba8.

📒 Files selected for processing (3)
  • .agents/skills/nemoclaw-maintainer-day/scripts/check-gates.ts
  • .agents/skills/nemoclaw-maintainer-day/scripts/shared.ts
  • test/skills/check-gates-compliance.test.ts

Comment thread .agents/skills/nemoclaw-maintainer-day/scripts/check-gates.ts Outdated
Comment thread .agents/skills/nemoclaw-maintainer-day/scripts/check-gates.ts Outdated
Signed-off-by: Carlos Villela <cvillela@nvidia.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.agents/skills/nemoclaw-maintainer-day/scripts/check-gates.ts:
- Around line 518-528: Update the candidate selection around
meaningfulExactDiffRun so skipped runs with exactDiff false or null cannot
outrank or hide a validated exact-diff run. When a meaningful exact-diff run
exists, restrict candidates to validated exact-diff runs, or otherwise fail
closed for ambiguous runs, while preserving the existing latestTimestamp and
latestRuns selection for valid candidates.
- Around line 531-534: Update the selected-check logic around
checksFromLatestAttempt so single-check runs are also filtered against the
latest attempt instead of using latest.checks directly. Treat any runId/check
mismatch returned by that filtering as incomplete evidence, preserving the
existing multi-check behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 970b9abe-1df8-4d1f-8338-add9be55c320

📥 Commits

Reviewing files that changed from the base of the PR and between 65cfba8 and efa3d73.

📒 Files selected for processing (2)
  • .agents/skills/nemoclaw-maintainer-day/scripts/check-gates.ts
  • test/skills/check-gates-compliance.test.ts

Comment thread .agents/skills/nemoclaw-maintainer-day/scripts/check-gates.ts Outdated
Comment thread .agents/skills/nemoclaw-maintainer-day/scripts/check-gates.ts Outdated
Signed-off-by: Carlos Villela <cvillela@nvidia.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.agents/skills/nemoclaw-maintainer-day/scripts/check-gates.ts:
- Around line 397-404: Validate the normalized status and conclusion values
returned by fetchActionRunMetadata() against the supported GitHub Actions enums,
converting unknown values to null before they are used as evidence. Update
isMeaningfulExactDiffRun() and the later exact-diff branch to rely only on
validated values, preserving skipped-run handling so unexpected conclusions
cannot be treated as meaningful.
- Around line 561-573: Update latestAttemptChecks so exact-diff evidence is
required for every Actions check, not only names included in
REQUIRED_CHECK_NAMES. Validate each selected check’s run metadata for exactDiff,
event, and path before allowing it into the result; otherwise mark the evidence
incomplete and preserve the existing fallback behavior so checkCi cannot count
checks from a different PR or base.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 449e40e0-7ea2-48fd-bae1-00086b47cf23

📥 Commits

Reviewing files that changed from the base of the PR and between efa3d73 and c4daf2d.

📒 Files selected for processing (2)
  • .agents/skills/nemoclaw-maintainer-day/scripts/check-gates.ts
  • test/skills/check-gates-compliance.test.ts
🚧 Files skipped from review as they are similar to previous changes (1)
  • test/skills/check-gates-compliance.test.ts

Comment thread .agents/skills/nemoclaw-maintainer-day/scripts/check-gates.ts
Comment thread .agents/skills/nemoclaw-maintainer-day/scripts/check-gates.ts
cv and others added 5 commits July 16, 2026 10:20
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@test/skills/check-gates-evidence.test.ts`:
- Around line 612-660: Update the older run 199 `matrix-check` fixture in the
test “keeps every duplicate job from the latest workflow run” to have a
successful conclusion, while leaving run 200’s jobs unchanged. Ensure the
expected failure can only result from retaining both jobs from the latest run,
proving the stale run is excluded.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 3a755c03-6773-4a24-91c0-0c26dafa118b

📥 Commits

Reviewing files that changed from the base of the PR and between 802f650 and f19952a.

📒 Files selected for processing (4)
  • .agents/skills/nemoclaw-maintainer-day/scripts/check-gates.ts
  • test/skills/check-gates-compliance.test.ts
  • test/skills/check-gates-evidence.test.ts
  • test/skills/check-gates-test-fixtures.ts
🚧 Files skipped from review as they are similar to previous changes (1)
  • .agents/skills/nemoclaw-maintainer-day/scripts/check-gates.ts

Comment thread test/skills/check-gates-evidence.test.ts
cjagwani and others added 11 commits July 16, 2026 11:39
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
…pts' into codex/fix-merge-gate-check-attempts

Signed-off-by: Carlos Villela <cvillela@nvidia.com>

# Conflicts:
#	test/skills/check-gates-evidence.test.ts
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
cv added 2 commits July 16, 2026 12:56
…check-attempts

Signed-off-by: Carlos Villela <cvillela@nvidia.com>
…pts' into codex/fix-merge-gate-check-attempts

Signed-off-by: Carlos Villela <cvillela@nvidia.com>
@cv
cv requested review from ericksoa and jyaunches July 16, 2026 20:06
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
@cv

cv commented Jul 16, 2026

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.agents/skills/nemoclaw-maintainer-day/scripts/check-gates.ts (1)

1077-1085: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Order cross-run selection by run createdAt, not job start time. An older queued run can start later and win latestTimestamp, letting stale evidence override the newer run. Use actionRunMetadata(runId)?.createdAt for the run-level timestamp and add an overlapping-run regression case; the same fix applies in the later latestTimestamp path.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.agents/skills/nemoclaw-maintainer-day/scripts/check-gates.ts around lines
1077 - 1085, Update the cross-run timestamp in the byRun mapping and the later
latestTimestamp selection to use actionRunMetadata(runId)?.createdAt instead of
job check start/completion times. Preserve invalid-timestamp handling, and add a
regression case with overlapping runs proving the newer run is selected even
when the older queued run starts later.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.agents/skills/nemoclaw-maintainer-day/MERGE-GATE.md:
- Line 55: Update the conflicts row in the guidance table to replace the
obsolete “DIRTY” status with the required MERGEABLE status and allowed
current-base merge-state terminology, matching the approval criterion above.

In `@test/skills/check-gates-test-fixtures.ts`:
- Line 478: Update runComparatorGate so the mocked API responses and
request-matching pattern derive the PR number from its prNumber parameter rather
than hard-coding 42. Safely quote prNumber when constructing the generated case
pattern, and ensure the mocked returned PR metadata uses the same value.
- Line 162: Update the startedAt fixture generation in the check-gate test data
so every index produces a valid ISO timestamp, including multi-digit minute
values such as index 5. Use proper minute formatting or date arithmetic while
preserving explicitly provided startedAt values.

---

Outside diff comments:
In @.agents/skills/nemoclaw-maintainer-day/scripts/check-gates.ts:
- Around line 1077-1085: Update the cross-run timestamp in the byRun mapping and
the later latestTimestamp selection to use actionRunMetadata(runId)?.createdAt
instead of job check start/completion times. Preserve invalid-timestamp
handling, and add a regression case with overlapping runs proving the newer run
is selected even when the older queued run starts later.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 1fefd153-86a9-4bb8-a8fe-ad5b4e688d67

📥 Commits

Reviewing files that changed from the base of the PR and between 802f650 and 26005ca.

📒 Files selected for processing (12)
  • .agents/skills/nemoclaw-maintainer-day/MERGE-GATE.md
  • .agents/skills/nemoclaw-maintainer-day/scripts/check-gates.ts
  • .agents/skills/nemoclaw-maintainer-pr-comparator/scripts/collect-gates.sh
  • .github/workflows/dco-check.yaml
  • .github/workflows/installer-hash-check.yaml
  • .github/workflows/pr-e2e-gate.yaml
  • ci/source-shape-test-budget.json
  • test/pr-e2e-gate-workflow.test.ts
  • test/pr-workflow-contract.test.ts
  • test/skills/check-gates-compliance.test.ts
  • test/skills/check-gates-evidence.test.ts
  • test/skills/check-gates-test-fixtures.ts
🚧 Files skipped from review as they are similar to previous changes (2)
  • test/skills/check-gates-compliance.test.ts
  • test/skills/check-gates-evidence.test.ts

Comment thread .agents/skills/nemoclaw-maintainer-day/MERGE-GATE.md
Comment thread test/skills/check-gates-test-fixtures.ts Outdated
Comment thread test/skills/check-gates-test-fixtures.ts
@cv

cv commented Jul 16, 2026

Copy link
Copy Markdown
Collaborator Author

@jyaunches @ericksoa — independent approval requested on exact head 26005ca772e30479ae2d6b8d00a279ca8d01dc83 against base 41a5885064459e27e8674655229863053ea0af4f. Ordinary CI is green; the primary Advisor has 0 findings; CodeRabbit has no unresolved Major/Critical findings; all selected exact-head E2E passed (cloud-onboard, credential-sanitization, and both security-posture shards) in run 29532188404; and the native required observer rerun passed in run 29531536577 attempt 2. This PR is the prerequisite that prevents later metadata-only skipped checks from shadowing valid exact-diff evidence. I authored/contributed to it, so I will not self-approve or merge it.

Signed-off-by: Carlos Villela <cvillela@nvidia.com>
@cv

cv commented Jul 16, 2026

Copy link
Copy Markdown
Collaborator Author

Exact-head follow-up at 4fec1fcee0933a4c86c5f495564551e238832dc4 addresses the latest automated review:

  • Cross-run selection now orders Actions workflow runs by trusted run created_at, so an older queued run that starts later cannot override a newer run. Check-run timestamps remain independently validated and malformed evidence still fails closed.
  • Added the overlapping-run regression (newer run created later but job starts earlier), plus the requested fixture PR-number and timestamp fixes and merge-state wording cleanup.
  • Focused merge-gate suites: 138/138 passed after formatting. File-scoped pre-commit hooks and the signed commit hooks passed; CLI typecheck and pre-push hooks passed.
  • Commit is signed/DCO and pushed without force. Exact-head CI, advisor, CodeRabbit re-review, and immutable E2E gate are still required before human approval/merge.

I authored this follow-up and will not self-approve or merge it.

@cv
cv requested a review from apurvvkumaria July 16, 2026 21:38
@cv

cv commented Jul 16, 2026

Copy link
Copy Markdown
Collaborator Author

Exact-head landing evidence for independent review:

  • PR head: 17de16c
  • Current base: 3558a7a
  • Ordinary CI: run 29536932744, success
  • Trusted coordinator: run 29537473945, success
  • Bound E2E child: run 29537498704, success
  • Plan: fa6f06d3f9e919f992a4d3b790c0c1864d1a0bcabc956dab28a281996e1b1569
  • Correlation: 64e3bc50-6a9a-46af-8ace-d3c2c12fa970
  • Selected jobs: cloud-onboard, credential-sanitization, security-posture for OpenClaw and Hermes; all passed
  • Native observer: run 29536931345, success
  • Required E2E / PR Gate and E2E / PR Gate Coordination checks: success
  • DCO: green; all 27 commits GitHub Verified
  • CodeRabbit: no unresolved Major or Critical finding
  • Both advisor lanes: green
  • Focused local merge-gate tests: 138 passed; hooks and CLI pre-push typecheck passed

The canonical checker from trusted main reports all 53 checks green. Its remaining BLOCKED merge state is review-required, not a conflict.

Bootstrap note: this PR adds the immutable run-name used by its proposed stricter checker. GitHub evaluates pull_request_target workflow metadata from the base branch, so this PR cannot self-produce that new title before merge. The exact custom coordination external ID and child artifacts still bind PR, head, base, plan, correlation, and all selected jobs; the new-title behavior is covered by focused tests. Please review this bootstrap boundary explicitly.

Root/team authored this prerequisite, so an independent human must approve and merge it.

@cv

cv commented Jul 16, 2026

Copy link
Copy Markdown
Collaborator Author

@jyaunches @ericksoa @apurvvkumaria — expedited v0.0.85 review requested. Exact head/base CI and all four selected E2E jobs are green; full evidence and the pull_request_target bootstrap note are in the comment immediately above. One independent approval is the only remaining gate.

@cv
cv requested a review from cjagwani July 16, 2026 22:18
@apurvvkumaria apurvvkumaria self-assigned this Jul 17, 2026
@cv

cv commented Jul 17, 2026

Copy link
Copy Markdown
Collaborator Author

Exact current-base landing evidence for independent review:

  • Head: 0c2754da83e850c88da8bced835d15a5bde540b4
  • Base/current main: c5b8dba7fcf1928d310423caca91a7134231a70d
  • Ordinary CI: 29544000240, success
  • Advisor: 29543999656, primary 0 blockers / 0 warnings / 0 suggestions
  • Trusted coordinator: 29544446490, success
  • Trusted controller/native observer: 29543999645, success
  • Bound E2E child: 29544463770, success
  • Plan: df66df2703af3045c87903a0941fe39362d8ffd94567a2894f7afcdf9f9927cc
  • Correlation: da964465-7a4a-4985-82a4-cfec8f7e6a7a
  • Selected evidence: cloud-onboard, credential-sanitization, security-posture/openclaw, and security-posture/hermes; all passed with no skips or pending tests
  • Exact coordination external ID binds PR/head/base; all four artifacts are present
  • DCO is valid; all 29 commits are GitHub Verified; CodeRabbit has no unresolved Major/Critical finding
  • The canonical checker from trusted main reports all 53 checks green. Its sole remaining failure is GitHub merge state BLOCKED, caused by REVIEW_REQUIRED, not a conflict.

Bootstrap boundary remains unchanged: this PR adds stricter immutable pull_request_target run metadata, while GitHub evaluates that workflow metadata from the base branch. The exact custom coordination ID, child plan/correlation, artifacts, and native observer bind this revision despite that self-bootstrap boundary.

@jyaunches @ericksoa @apurvvkumaria @cjagwani — one independent human approval and manual merge are the only remaining gates. The author/contributor will not self-approve or merge.

@cjagwani cjagwani left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved exact head 0c2754d on current base c5b8dba after a workflow/governance security sweep. GitHub reports MERGEABLE; all 53 checks, the exact-diff E2E verdict and coordination, DCO, CodeRabbit, and Advisor are green. Local validation passed 174 focused tests and npm run typecheck:cli. The proposed immutable-title check cannot self-bootstrap because pull_request_target metadata comes from the base workflow; the bound current-base coordination and E2E evidence were verified directly. I contributed commits to this PR; contributor/approver overlap is advisory under the recorded maintainer policy and does not change gate readiness.

@apurvvkumaria
apurvvkumaria merged commit d872e85 into main Jul 17, 2026
53 checks passed
@apurvvkumaria
apurvvkumaria deleted the codex/fix-merge-gate-check-attempts branch July 17, 2026 00:39
@apurvvkumaria

Copy link
Copy Markdown
Collaborator

Post-merge security/correctness finding (reviewed against exact merged head 0c2754da83e850c88da8bced835d15a5bde540b4): the required-check matcher in .agents/skills/nemoclaw-maintainer-day/scripts/check-gates.ts binds workflow path but does not bind the expected Actions event in runIdentityEvidence() / latestAttemptChecks(). Using this PR’s own fixtures, changing either the commit-lint or dco-check run to event: "push" still returned allPass: true. This allows non-PR run evidence to satisfy a required pull_request gate.

Please require the expected { event, path } identity for every required context (pull_request_target for E2E) and add wrong-event regression coverage. I intended to submit this as REQUEST_CHANGES, but #7024 merged during the final exact-head pre-submit check, making a blocking review impossible. No code changes were made as part of this review.

@wscurran wscurran added area: ci CI workflows, checks, release automation, or GitHub Actions area: skills Skills, agent behaviors, prompts, or skill packaging bug-fix PR fixes a bug or regression labels Jul 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: ci CI workflows, checks, release automation, or GitHub Actions area: skills Skills, agent behaviors, prompts, or skill packaging bug-fix PR fixes a bug or regression

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants