Skip to content

fix(automation): run hourly NVIDIA NIM review repair - #782

Open
seonghobae wants to merge 59 commits into
mainfrom
fix/hourly-nvidia-nim-review-repair-main
Open

fix(automation): run hourly NVIDIA NIM review repair#782
seonghobae wants to merge 59 commits into
mainfrom
fix/hourly-nvidia-nim-review-repair-main

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Purpose

Activate a real one-hour Clearfolio review → repair → revalidation support loop on the protected central control-plane baseline while preserving the existing independent reviewer workflow, its credential system, and modular reuse by other CWL services.

Product and MSA behavior

  • add .github/workflows/clearfolio-hourly-review-repair.yml as the explicit product caller at minute 23 of every hour;
  • pass exact ContextualWisdomLab/clearfolio, protected main, one dispatch, and one-hour same-head retry parameters to the reusable engine;
  • keep .github/workflows/pr-review-fix-scheduler.yml free of product-specific timers and repository names so naruon, contextual-orchestrator, and other CWL services can call it independently;
  • retain product-level and engine-level single-flight concurrency;
  • pass only the established optional PR_REVIEW_MERGE_TOKEN and OPENCODE_APPROVE_TOKEN scheduler credentials; never use secrets: inherit;
  • bind reusable scheduler code to the immutable called-workflow repository, SHA, ref, and file path, then verify the checkout before executing the scheduler helper;
  • keep the deprecated canonical_ref input accepted but ignored.

OpenCode and credential behavior

  • run the write-capable OpenCode autofix worker through NVIDIA NIM only, using secrets.NVIDIA_NIM_API_KEY;
  • use mistralai/mistral-nemotron as the primary repair model and nvidia/nemotron-3-nano-30b-a3b as the bounded helper model;
  • never use COPILOT_GITHUB_TOKEN, GitHub Models, or a GitHub token as model authentication;
  • bind the NVIDIA credential only to the two model execution steps and fail closed when it is absent;
  • strip GITHUB_TOKEN, GH_TOKEN, and Actions OIDC request credentials from both OpenCode child processes;
  • deny unnecessary non-file OpenCode interactions in both global and named-agent permission maps;
  • pin the repository-dispatch worker's trusted helper checkout to the exact workflow-run SHA;
  • keep .github/workflows/opencode-review-dispatch.yml byte-for-byte unchanged at blob 83f6830d5c21a324b4dbcd4e5c21a07968994b81;
  • preserve exact-head, same-repository, file-allowlist, syntax, conflict-marker, and live-head guards;
  • snapshot the post-base-merge worktree and reject every model-caused changed, created, deleted, mode-changed, or retargeted path outside Git's exact unresolved-conflict allowlist before staging;
  • never approve, merge a pull request, publish a release, or weaken branch protection from the repair worker.

Test-first evidence

The contracts-only head b02b4c995c91b2d9130adbf6f867fa1df5d1df87 failed as designed in permanent workflow run 31002306348, proving that the inherited baseline still used a two-hour cadence, a 24-hour retry floor, mutable scheduler source, GitHub Models, GitHub credentials in the model step, no NVIDIA binding or missing-secret preflight, and incomplete unattended-agent denials.

The implementation subsequently added the explicit Clearfolio caller, removed product cadence from the reusable engine, bound privileged source to job.workflow_repository, job.workflow_sha, job.workflow_ref, and job.workflow_file_path, moved model authentication to NVIDIA NIM, stripped GitHub and OIDC credentials from model subprocesses, and introduced the exact conflict-path publication boundary. Focused regressions cover cadence, source identity, provider and secret scope, reviewer independence, conflict snapshot validation, path normalization, symlink and deletion handling, malformed evidence, complete branch coverage, docstrings, and workflow ordering.

Exact-head evidence

Exact current head: 4d69c58c403c1db07a9c39d5c5180c5b6b0aae15.

Successful on this exact head:

  • Hourly NVIDIA NIM Review Repair 31011535383;
  • Python Security 31011535425;
  • Security Scan 31011535526;
  • CodeQL PR 31011535347;
  • SAST Semgrep 31011535430;
  • Secret Scan 31011535364;
  • OSV-Scanner PR 31011535817;
  • Scorecard PR 31011535394;
  • SBOM Generation 31011535493; and
  • zero unresolved inline review threads.

The latest CodeRabbit result is an external rate-limit notice rather than review evidence. Exact-current-head CodeRabbit, OpenCode, Noema, and qualifying non-author review were requested again. No predecessor-head, synthetic-merge, queued, pending, cancelled, skipped-required, rate-limit, wrapper-only, author-only, or local-only result is accepted as merge evidence.

Documentation

  • docs/automation/hourly-review-repair.md defines product-caller, reusable-engine, target precedence, immutable source, operator, and modular MSA behavior.
  • docs/doctoring/hourly-nvidia-nim-autofix.md records the NVIDIA provider, credential boundary, child-process isolation, conflict-path publication boundary, verification, and rollback.
  • docs/doctoring/clearfolio-hourly-review-caller.md records the product caller, least privilege, failure behavior, verification, rollback, and APA 7 primary-source evidence.
  • CHANGELOG.md records cadence, explicit target, immutable source, provider migration, secret scope, reviewer separation, and conflict-scope hardening.

Activation boundary

Scheduled workflows execute only from the protected default branch. The Clearfolio production heartbeat is not active while this PR remains unmerged. Missing scheduler or NVIDIA credentials fail closed while independent review, required checks, and manual maintenance remain available.

Merge acceptance

The direct exact-head workflow, security, supply-chain, coverage, docstring, and unresolved-thread gates are now satisfied. Keep Draft until repository policy allows Ready transition, then require exact-head CodeRabbit, OpenCode, Noema, a qualifying non-author approval, and every branch-protection rule without administrative bypass. The repair worker itself must never change Draft state, approve, auto-merge, merge, release, or modify protections.

Supersedes closed predecessor #779 after this current-main replacement is validated and merged.

@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@seonghobae, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 4 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 5d9bab7b-dc9e-4efb-9e5e-c43ae021622a

📥 Commits

Reviewing files that changed from the base of the PR and between f070c50 and 2f16cca.

📒 Files selected for processing (13)
  • .github/workflows/clearfolio-hourly-review-repair.yml
  • .github/workflows/hourly-nvidia-nim-review-repair.yml
  • .github/workflows/pr-review-autofix.yml
  • .github/workflows/pr-review-fix-scheduler.yml
  • CHANGELOG.md
  • docs/automation/hourly-review-repair.md
  • docs/doctoring/clearfolio-hourly-review-caller.md
  • docs/doctoring/hourly-nvidia-nim-autofix.md
  • scripts/ci/pr_review_conflict_scope.py
  • tests/test_pr_review_autofix_nvidia_nim_contract.py
  • tests/test_pr_review_conflict_scope.py
  • tests/test_pr_review_fix_hourly_contract.py
  • tests/test_pr_review_fix_scheduler_source_pin.py

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

@seonghobae
seonghobae marked this pull request as ready for review August 5, 2026 11:46

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@opencode-agent @cwl-noema-review Independently review exact current head 63b50227caefb49abd389a8da41edcfc1d32428e against protected main at f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae. Every direct current-head workflow is successful: Hourly NVIDIA NIM Review Repair 31002522693, Python Security 31002522736, Security Scan 31002522780, CodeQL PR 31002522802, SAST Semgrep 31002522718, Secret Scan 31002522761, OSV-Scanner PR 31002523083, Scorecard PR 31002522717, and SBOM Generation 31002522776. The PR is now Ready under its documented acceptance rule.

Verify the one-hour cadence and retry floor, one-dispatch/single-flight bounds, immutable called-workflow and repository-dispatch source binding, NVIDIA_NIM_API_KEY-only OpenCode model authentication, absence of COPILOT_GITHUB_TOKEN and GitHub Models fallback, missing-secret fail-closed behavior, strict secret step scope, child-process stripping of GitHub and OIDC credentials, file-only agent permissions, exact-head/live-head/file-allowlist/syntax/conflict guards, byte-for-byte preservation of the independent reviewer workflow, and the prohibition on approval, merge, release, or protection weakening. Distinguish this current-main replacement from closed predecessor #779. Submit actionable findings or an exact-head formal review; approval still must satisfy repository independence and branch protection.

@seonghobae
seonghobae enabled auto-merge (squash) August 5, 2026 11:46

Copy link
Copy Markdown
Contributor Author

@opencode-agent @cwl-noema-review @coderabbitai review

Review exact current head 63b50227caefb49abd389a8da41edcfc1d32428e against current protected main base f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae only. Permanent RED run 31002306348 recorded 13 expected contract failures on the test-only head. Permanent GREEN run 31002522693 passed the exact-head hourly cadence, immutable source identity, NVIDIA_NIM_API_KEY-only provider, missing-secret fail-closed guard, non-file permission denials, model-child GitHub/OIDC credential stripping, byte-identical independent reviewer boundary, compilation, and diff checks. Direct exact-head security, supply-chain, and SAST runs have also succeeded; duplicate reruns may still be queued. Verify one-dispatch/single-flight bounds, source pinning, secret step scope, absence of COPILOT_GITHUB_TOKEN and GitHub Models model authentication, same-repository/live-head guards, APA 7 doctoring, and the inability of the worker to approve, merge a PR, release, or weaken checks. Submit a formal current-head verdict; do not reuse ancestor reviews.

@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown
🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '%s\n' '== Repository and requested commits =='
git remote -v
git rev-parse HEAD
git show -s --format='HEAD %H%nparents %P%nsubject %s' HEAD
git cat-file -e '63b50227caefb49abd389a8da41edcfc1d32428e^{commit}' 2>/dev/null && \
  git show -s --format='requested-head %H%nparents %P%nsubject %s' 63b50227caefb49abd389a8da41edcfc1d32428e || true
git cat-file -e 'f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae^{commit}' 2>/dev/null && \
  git show -s --format='baseline %H%nsubject %s' f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae || true

printf '%s\n' '== Changed paths and diff summary =='
git diff --stat f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae 63b50227caefb49abd389a8da41edcfc1d32428e 2>/dev/null || \
git diff --stat HEAD^ HEAD
git diff --name-status f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae 63b50227caefb49abd389a8da41edcfc1d32428e 2>/dev/null || \
git diff --name-status HEAD^ HEAD

printf '%s\n' '== Candidate automation source =='
fd -HI -t f .github docs 2>/dev/null | sort | \
  grep -E 'hourly|review.*repair|dispatch|opencode|automation|doctoring|CHANGELOG' || true

printf '%s\n' '== Workflow and helper outlines =='
for f in \
  .github/workflows/hourly-nvidia-nim-review-repair.yml \
  .github/workflows/opencode-review-dispatch.yml
do
  if [ -f "$f" ]; then
    echo "--- $f"
    nl -ba "$f"
  fi
done

printf '%s\n' '== Security-sensitive references in tracked text files =='
rg -n -i -C 3 \
  'NVIDIA_NIM_API_KEY|COPILOT_GITHUB_TOKEN|github models|models:|mistral-nemotron|nemotron-3-nano|canonical_ref|repository_dispatch|workflow_call|concurrency|cron|GITHUB_TOKEN|GH_TOKEN|ACTIONS_ID_TOKEN_REQUEST_(TOKEN|URL)|permissions:|pull-requests:\s*write|contents:\s*write|gh pr (merge|review)|release' \
  .github docs CHANGELOG.md 2>/dev/null || true

printf '%s\n' '== Independent reviewer workflow blob comparison =='
if git cat-file -e 'f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae:.github/workflows/opencode-review-dispatch.yml' 2>/dev/null; then
  echo -n 'baseline blob: '
  git rev-parse 'f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae:.github/workflows/opencode-review-dispatch.yml'
fi
if git cat-file -e '63b50227caefb49abd389a8da41edcfc1d32428e:.github/workflows/opencode-review-dispatch.yml' 2>/dev/null; then
  echo -n 'head blob: '
  git rev-parse '63b50227caefb49abd389a8da41edcfc1d32428e:.github/workflows/opencode-review-dispatch.yml'
fi

printf '%s\n' '== Referenced workflow runs =='
for run in 31002522693 31002522736 31002522780 31002522802 31002522718 31002522761 31002523083 31002522717 31002522776; do
  gh api "repos/ContextualWisdomLab/.github/actions/runs/${run}" \
    --jq '"\(.id) \(.name) status=\(.status) conclusion=\(.conclusion) head_sha=\(.head_sha) event=\(.event)"' \
    2>&1 || true
done

Length of output: 5016


🏁 Script executed:

#!/bin/bash
set -euo pipefail

head_sha='63b50227caefb49abd389a8da41edcfc1d32428e'
base_sha='f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae'

show_numbered() {
  file="$1"
  if [ -f "$file" ]; then
    echo "--- $file"
    awk '{ printf "%5d  %s\n", NR, $0 }' "$file"
  else
    echo "--- MISSING: $file"
  fi
}

printf '%s\n' '== Exact changed workflow diff =='
git diff --no-ext-diff --unified=80 "$base_sha" "$head_sha" -- \
  .github/workflows/hourly-nvidia-nim-review-repair.yml \
  .github/workflows/pr-review-autofix.yml \
  .github/workflows/pr-review-fix-scheduler.yml

printf '%s\n' '== Current workflow source =='
show_numbered .github/workflows/hourly-nvidia-nim-review-repair.yml
show_numbered .github/workflows/pr-review-autofix.yml
show_numbered .github/workflows/pr-review-fix-scheduler.yml

printf '%s\n' '== Contract-test source =='
for f in \
  tests/test_pr_review_autofix_nvidia_nim_contract.py \
  tests/test_pr_review_fix_hourly_contract.py \
  tests/test_pr_review_fix_scheduler_source_pin.py
do
  show_numbered "$f"
done

printf '%s\n' '== Repository-wide security-sensitive executable references =='
git grep -n -I -E \
  'NVIDIA_NIM_API_KEY|COPILOT_GITHUB_TOKEN|models\.inference\.ai|github[ _-]?models|canonical_ref|ACTIONS_ID_TOKEN_REQUEST_TOKEN|ACTIONS_ID_TOKEN_REQUEST_URL|GITHUB_TOKEN|GH_TOKEN|repository_dispatch|workflow_call|concurrency:|cron:|mistralai/mistral-nemotron|nvidia/nemotron-3-nano-30b-a3b|gh pr (merge|review)|gh release|branches/.+protection' \
  "$head_sha" -- .github ':!*.md' || true

printf '%s\n' '== Independent reviewer workflow immutable blob check =='
expected_blob='83f6830d5c21a324b4dbcd4e5c21a07968994b81'
base_blob=$(git rev-parse "$base_sha:.github/workflows/opencode-review-dispatch.yml")
head_blob=$(git rev-parse "$head_sha:.github/workflows/opencode-review-dispatch.yml")
printf 'expected=%s\nbaseline=%s\nhead=%s\n' "$expected_blob" "$base_blob" "$head_blob"
git diff --no-ext-diff --exit-code "$base_sha" "$head_sha" -- .github/workflows/opencode-review-dispatch.yml || true

printf '%s\n' '== Requested workflow runs =='
for run in 31002522693 31002522736 31002522780 31002522802 31002522718 31002522761 31002523083 31002522717 31002522776; do
  printf 'run %s: ' "$run"
  gh api "repos/ContextualWisdomLab/.github/actions/runs/${run}" \
    --jq '[.id, .name, .status, .conclusion, .head_sha, .event] | `@tsv`' 2>&1 || true
done

Length of output: 156113


🤖 web_search executed:

GitHub Actions contexts documentation job.workflow_repository job.workflow_sha job.workflow_ref job.workflow_file_path github.workflow_ref github.workflow_sha

Length of output: 13390


@seonghobae Formal review completed for 63b50227caefb49abd389a8da41edcfc1d32428e against f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae.

I found no actionable findings in the requested scope.

Verified items:

  • The scheduler runs at minute 23 of every hour.
  • The same-head retry floor is one hour.
  • The scheduler retains one dispatch per run and repository-scoped single-flight concurrency.
  • The reusable scheduler binds its source to job.workflow_repository, job.workflow_sha, job.workflow_ref, and job.workflow_file_path.
  • The scheduler validates the identity before checkout and verifies the checked-out SHA and workflow file before it runs the helper.
  • canonical_ref remains accepted and ignored.
  • The dispatch worker pins its trusted helper checkout to ${{ github.sha }}.
  • The autofix worker enables only nvidia-nim.
  • The primary model is nvidia-nim/mistralai/mistral-nemotron.
  • The helper model is nvidia-nim/nvidia/nemotron-3-nano-30b-a3b.
  • The autofix workflow contains no COPILOT_GITHUB_TOKEN, GitHub Models provider, or GitHub-token model fallback.
  • secrets.NVIDIA_NIM_API_KEY is bound only to the two OpenCode execution steps.
  • Both model steps fail closed when NVIDIA_NIM_API_KEY is absent.
  • Both OpenCode child processes remove GITHUB_TOKEN, GH_TOKEN, and Actions OIDC request credentials.
  • Global and named-agent permissions deny non-file interactions.
  • Same-repository, exact-head, live-head, file-allowlist, syntax, and conflict-marker guards remain in place.
  • .github/workflows/opencode-review-dispatch.yml is unchanged. Its baseline and head blob are both 83f6830d5c21a324b4dbcd4e5c21a07968994b81.
  • The nine listed workflow runs completed successfully for this exact head.

GitHub documents the job.workflow_* identity properties used by the reusable workflow. These properties are unavailable on GitHub Enterprise Server. This PR targets GitHub.com.

This review covers current PR #782. It does not evaluate closed predecessor #779 as the implementation source.

I do not issue approval. Approval must remain subject to the required independent reviewer and branch-protection policy.

⚠️ Action not completed

Review rate limited.

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.

Copy link
Copy Markdown
Contributor Author

@opencode-agent @cwl-noema-review @coderabbitai review

Review exact current head 63b50227caefb49abd389a8da41edcfc1d32428e only. The permanent hourly NVIDIA NIM contract and all direct current-head security/supply-chain workflows have succeeded at least once; later duplicate same-head reruns are still settling. Verify the hourly minute-23 cadence, one-hour retry floor, immutable called-workflow source identity, NVIDIA_NIM_API_KEY-only model authentication, primary/helper model routing, missing-secret fail-closed behavior, child-process token/OIDC scrubbing, complete unattended-agent permission denials, independent reviewer byte stability, exact-head/same-repository/file-allowlist/live-head safeguards, APA 7 doctoring, and the prohibition on approval, merge, release, or branch-protection changes. Submit current-head verdicts and qualifying independent approval without reusing #779 evidence.

@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown

@seonghobae I will review PR #782 at exact head 63b50227caefb49abd389a8da41edcfc1d32428e only.

I will verify the requested scheduler, source-binding, NVIDIA NIM credential, token-scrubbing, permission, safety-guard, independent-reviewer, and documentation controls. I will not reuse #779 evidence. I will not issue approval unless the required independent approval and branch-protection conditions are satisfied.

⚠️ Action not completed

Review rate limited.

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 commented Aug 5, 2026

Copy link
Copy Markdown

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

head_expected='63b50227caefb49abd389a8da41edcfc1d32428e'
base_expected='f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae'

printf '%s\n' '== checked-out commit =='
git rev-parse HEAD
printf '%s\n' '== expected commits present =='
git cat-file -e "${head_expected}^{commit}"
git cat-file -e "${base_expected}^{commit}"

printf '%s\n' '== changed paths =='
git diff --name-status "$base_expected" "$head_expected"

printf '%s\n' '== changed workflow files =='
git diff --stat "$base_expected" "$head_expected" -- .github/workflows
fd -a -t f .github/workflows | sort

printf '%s\n' '== workflow and helper symbols =='
for f in \
  .github/workflows/hourly-nvidia-nim-review-repair.yml \
  .github/workflows/opencode-review-dispatch.yml
do
  if [ -f "$f" ]; then
    printf '\n--- %s ---\n' "$f"
    cat -n "$f"
  fi
done

printf '%s\n' '== references to hourly scheduler, dispatch, and model authentication =='
rg -n -C 3 \
  -e 'NVIDIA_NIM_API_KEY' \
  -e 'COPILOT_GITHUB_TOKEN' \
  -e 'GitHub Models|models\.github' \
  -e 'canonical_ref' \
  -e 'repository_dispatch|workflow_dispatch|concurrency|cron' \
  -e 'GITHUB_TOKEN|GH_TOKEN|ACTIONS_ID_TOKEN_REQUEST' \
  -e 'opencode|nemotron|mistral-nemotron' \
  -e 'pull-requests:\s*write|contents:\s*write|actions:\s*write' \
  .github scripts 2>/dev/null || true

Length of output: 2843


🏁 Script executed:

#!/bin/bash
set -euo pipefail

head='63b50227caefb49abd389a8da41edcfc1d32428e'
base='f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae'

printf '%s\n' '== independent reviewer workflow blob at head and base =='
git rev-parse "${head}:.github/workflows/opencode-review-dispatch.yml"
git rev-parse "${base}:.github/workflows/opencode-review-dispatch.yml"
git diff --exit-code "$base" "$head" -- .github/workflows/opencode-review-dispatch.yml \
  && echo 'independent-reviewer workflow: unchanged'

printf '%s\n' '== all workflow paths at reviewed head =='
git ls-tree -r --name-only "$head" .github/workflows | sort

for f in \
  .github/workflows/hourly-nvidia-nim-review-repair.yml \
  .github/workflows/pr-review-autofix.yml \
  .github/workflows/pr-review-fix-scheduler.yml
do
  printf '\n== %s at exact head ==\n' "$f"
  git show "${head}:${f}" | cat -n
done

printf '%s\n' '== exact workflow diffs =='
git diff --unified=80 "$base" "$head" -- \
  .github/workflows/hourly-nvidia-nim-review-repair.yml \
  .github/workflows/pr-review-autofix.yml \
  .github/workflows/pr-review-fix-scheduler.yml

printf '%s\n' '== scheduler/autofix source and credential references at exact head =='
git grep -n -I -E \
  'NVIDIA_NIM_API_KEY|COPILOT_GITHUB_TOKEN|models\.github|GitHub Models|canonical_ref|ACTIONS_ID_TOKEN_REQUEST|GITHUB_TOKEN|GH_TOKEN|repository_dispatch|workflow_call|workflow_dispatch|concurrency|cron|mistralai/mistral-nemotron|nvidia/nemotron-3-nano-30b-a3b' \
  "$head" -- .github scripts 2>/dev/null || true

printf '%s\n' '== focused contract test outlines =='
ast-grep outline tests/test_pr_review_autofix_nvidia_nim_contract.py --items all
ast-grep outline tests/test_pr_review_fix_hourly_contract.py --items all
ast-grep outline tests/test_pr_review_fix_scheduler_source_pin.py --items all

printf '%s\n' '== focused contract test assertions =='
for f in \
  tests/test_pr_review_autofix_nvidia_nim_contract.py \
  tests/test_pr_review_fix_hourly_contract.py \
  tests/test_pr_review_fix_scheduler_source_pin.py
do
  printf '\n== %s ==\n' "$f"
  git show "${head}:${f}" | sed -n '1,280p'
done

Length of output: 223866


🏁 Script executed:

#!/bin/bash
set -euo pipefail

head='63b50227caefb49abd389a8da41edcfc1d32428e'

printf '%s\n' '== scheduler helper outline =='
ast-grep outline scripts/ci/pr_review_fix_scheduler.py --items all

printf '%s\n' '== scheduler helper dispatch, bounds, and guard references =='
git show "${head}:scripts/ci/pr_review_fix_scheduler.py" |
  nl -ba |
  grep -E -C 8 \
    'max.dispatch|retry.hours|repository.dispatch|autofix|head.sha|live.head|allowed|allowlist|same.repository|pull.request|conflict|syntax|dispatch' || true

printf '%s\n' '== selected helper source =='
git show "${head}:scripts/ci/pr_review_fix_scheduler.py" | sed -n '1,920p'

printf '%s\n' '== prohibited worker operation scan =='
git show "${head}:.github/workflows/pr-review-autofix.yml" |
  nl -ba |
  grep -Ei -C 4 \
    'pulls/.*/merge|/merges|merge.pull|pulls/.*/reviews|approve|releases|branches/.*/protection|rulesets|gh pr (merge|review)|gh release|gh api.*(merge|protection|ruleset|releases)' || true

printf '%s\n' '== operator documentation =='
for f in \
  docs/automation/hourly-review-repair.md \
  docs/doctoring/hourly-nvidia-nim-autofix.md \
  CHANGELOG.md
do
  printf '\n== %s ==\n' "$f"
  git show "${head}:${f}" | cat -n
done

Length of output: 39579


@seonghobae: Formal review verdict: request changes.

  • High — conflict resolution can push edits outside the conflict file set. In .github/workflows/pr-review-autofix.yml, the conflict path instructs OpenCode to edit only conflicted_files, but it does not enforce this instruction. After the model process at Line 524, the workflow stages all worktree changes with git add -A at Line 535 and pushes them. The normal autofix path has a file-allowlist validation step, but that step does not run when RESOLVE_CONFLICT == 'true'. A prompt is not an enforcement boundary because the model has edit: allow over the full worktree. Derive an allowed-path file from conflicted_files, reject all changed and untracked paths outside that set, and perform this check before staging or committing. Update the doctoring claim that all changed paths are rejected outside the allowlist.

I verified commit 63b50227caefb49abd389a8da41edcfc1d32428e against base f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae. I also verified the hourly 23 * * * * cadence, one-hour retry default, one-dispatch default, repository-scoped single-flight concurrency, immutable called-workflow source checks, NIM-only ordinary autofix configuration, missing-secret preflight, subprocess credential stripping, and unchanged independent reviewer blob 83f6830d5c21a324b4dbcd4e5c21a07968994b81.

You are interacting with an AI system.

Copy link
Copy Markdown
Contributor Author

@opencode-agent @cwl-noema-review @coderabbitai review

Please review exact head 63b50227caefb49abd389a8da41edcfc1d32428e. Direct security, dependency, SBOM, Secret Scan, Semgrep, Python Security, focused hourly-NVIDIA-NIM contract, and an earlier exact-head CodeQL run are successful; the latest CodeQL rerun remains in progress. Treat only current-head evidence as authoritative. Verify the NVIDIA-NIM-only model path, one-hour cadence/retry floor, immutable reusable-workflow source, model-process credential isolation, unchanged independent reviewer workflow, and absence of approve/merge/release/protection APIs.

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

Please review exact current head 63b50227caefb49abd389a8da41edcfc1d32428e. Verify the hourly cadence, one-hour same-head retry floor, immutable called-workflow source binding, NVIDIA NIM-only model authentication, strict secret scoping and child-process credential stripping, permission denials, unchanged independent review workflow, permanent contract gate, doctoring, and branch-protection boundaries. Submit an approval only if no blocking finding remains.

@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

head='63b50227caefb49abd389a8da41edcfc1d32428e'
base='f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae'
expected_blob='83f6830d5c21a324b4dbcd4e5c21a07968994b81'

git cat-file -e "${head}^{commit}"
git cat-file -e "${base}^{commit}"

printf '%s\n' '== reviewed commits =='
git show -s --format='head=%H%nbase=%P%nsubject=%s' "$head"
git show -s --format='baseline=%H%nsubject=%s' "$base"

printf '%s\n' '== changed paths =='
git diff --name-status "$base" "$head"

printf '%s\n' '== scheduler and autofix workflow at exact head =='
for path in \
  .github/workflows/hourly-nvidia-nim-review-repair.yml \
  .github/workflows/pr-review-fix-scheduler.yml \
  .github/workflows/pr-review-autofix.yml \
  scripts/ci/pr_review_fix_scheduler.py \
  docs/automation/hourly-review-repair.md \
  docs/doctoring/hourly-nvidia-nim-autofix.md
do
  printf '\n--- %s ---\n' "$path"
  git show "${head}:${path}" | nl -ba
done

printf '%s\n' '== independent reviewer blob =='
printf 'expected=%s\n' "$expected_blob"
printf 'base=%s\n' "$(git rev-parse "${base}:.github/workflows/opencode-review-dispatch.yml")"
printf 'head=%s\n' "$(git rev-parse "${head}:.github/workflows/opencode-review-dispatch.yml")"
git diff --exit-code "$base" "$head" -- .github/workflows/opencode-review-dispatch.yml

printf '%s\n' '== security-sensitive references at exact head =='
git grep -n -I -E \
  'NVIDIA_NIM_API_KEY|COPILOT_GITHUB_TOKEN|models\.github|GitHub Models|mistralai/mistral-nemotron|nvidia/nemotron-3-nano-30b-a3b|23 \* \* \* \*|retry.hours|canonical_ref|job\.workflow_(repository|sha|ref|file_path)|GITHUB_TOKEN|GH_TOKEN|ACTIONS_ID_TOKEN_REQUEST_(TOKEN|URL)|gh pr (merge|review)|pulls/.*/(merge|reviews)|releases|branches/.+protection|rulesets|git add -A|conflicted_files' \
  "$head" -- .github scripts docs ':!*.md' || true

printf '%s\n' '== current-head workflow runs =='
for run in 31002522693 31002522736 31002522780 31002522802 31002522718 31002522761 31002523083 31002522717 31002522776; do
  gh api "repos/ContextualWisdomLab/.github/actions/runs/${run}" \
    --jq '[.id, .name, .status, .conclusion, .head_sha, .event] | `@tsv`' \
    2>&1 || true
done

Length of output: 3363


🏁 Script executed:

#!/bin/bash
set -euo pipefail

head='63b50227caefb49abd389a8da41edcfc1d32428e'
base='f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae'
expected_blob='83f6830d5c21a324b4dbcd4e5c21a07968994b81'

show_file() {
  path="$1"
  printf '\n--- %s ---\n' "$path"
  git show "${head}:${path}" | awk '{ printf "%5d  %s\n", NR, $0 }'
}

printf '%s\n' '== exact-head workflow and helper source =='
for path in \
  .github/workflows/hourly-nvidia-nim-review-repair.yml \
  .github/workflows/pr-review-fix-scheduler.yml \
  .github/workflows/pr-review-autofix.yml \
  scripts/ci/pr_review_fix_scheduler.py \
  docs/automation/hourly-review-repair.md \
  docs/doctoring/hourly-nvidia-nim-autofix.md
do
  show_file "$path"
done

printf '%s\n' '== independent reviewer blob comparison =='
printf 'expected=%s\n' "$expected_blob"
printf 'base=%s\n' "$(git rev-parse "${base}:.github/workflows/opencode-review-dispatch.yml")"
printf 'head=%s\n' "$(git rev-parse "${head}:.github/workflows/opencode-review-dispatch.yml")"
if git diff --quiet "$base" "$head" -- .github/workflows/opencode-review-dispatch.yml; then
  printf '%s\n' 'workflow_unchanged=true'
else
  printf '%s\n' 'workflow_unchanged=false'
fi

printf '%s\n' '== focused security controls at exact head =='
git grep -n -I -E \
  'NVIDIA_NIM_API_KEY|COPILOT_GITHUB_TOKEN|models\.github|GitHub Models|mistralai/mistral-nemotron|nvidia/nemotron-3-nano-30b-a3b|23 \* \* \* \*|retry.hours|canonical_ref|job\.workflow_(repository|sha|ref|file_path)|GITHUB_TOKEN|GH_TOKEN|ACTIONS_ID_TOKEN_REQUEST_(TOKEN|URL)|gh pr (merge|review)|pulls/.*/(merge|reviews)|releases|branches/.+protection|rulesets|git add -A|conflicted_files' \
  "$head" -- .github scripts docs ':!*.md' || true

printf '%s\n' '== specified workflow-run metadata =='
for run in 31002522693 31002522736 31002522780 31002522802 31002522718 31002522761 31002523083 31002522717 31002522776; do
  printf 'run=%s ' "$run"
  gh api "repos/ContextualWisdomLab/.github/actions/runs/${run}" \
    --jq '[.name, .status, .conclusion, .head_sha, .event] | `@tsv`' \
    2>&1 || true
done

Length of output: 166782


@seonghobae Formal review verdict: request changes.

High — Conflict resolution does not enforce its file boundary

In .github/workflows/pr-review-autofix.yml, the conflict path records conflicted_files at Line 472. It instructs OpenCode to edit only those files at Lines 493-507. This is a prompt constraint only.

The OpenCode agent has edit: allow for the full PR worktree. After model execution, the workflow stages every worktree change with git add -A at Line 535. The conflict path does not validate changed or untracked paths against conflicted_files before it commits and pushes at Lines 558-559.

An unrelated model edit can therefore be committed during conflict resolution.

Before git add -A, derive a normalized allowed-path file from conflicted_files. Reject every changed or untracked path that is not in that file. Keep the conflict-marker, Python syntax, and live-head checks after this path validation. Update docs/doctoring/hourly-nvidia-nim-autofix.md at Lines 133-138 because its statement that the workflow rejects all paths outside the allowlist is not true for conflict resolution.

I verified the following controls at exact head 63b50227caefb49abd389a8da41edcfc1d32428e:

  • The scheduler uses 23 * * * *.
  • The retry floor defaults to one hour.
  • The dispatch limit defaults to one.
  • Repository-scoped scheduler concurrency is present.
  • The reusable scheduler validates and checks out job.workflow_repository, job.workflow_sha, job.workflow_ref, and job.workflow_file_path.
  • The autofix worker checks out trusted helper source at ${{ github.sha }}.
  • The autofix OpenCode configuration enables only nvidia-nim.
  • The primary model is nvidia-nim/mistralai/mistral-nemotron.
  • The helper model is nvidia-nim/nvidia/nemotron-3-nano-30b-a3b.
  • secrets.NVIDIA_NIM_API_KEY is bound only to the two OpenCode execution steps.
  • Both OpenCode steps fail closed when the NVIDIA secret is absent.
  • Both OpenCode child processes remove GITHUB_TOKEN, GH_TOKEN, and Actions OIDC request credentials.
  • Both permission maps deny the required non-file interactions.
  • .github/workflows/opencode-review-dispatch.yml is unchanged at blob 83f6830d5c21a324b4dbcd4e5c21a07968994b81.
  • The listed hourly contract, security, CodeQL, Semgrep, secret scan, OSV, Scorecard, and SBOM runs completed successfully for this exact head.

I found no separate approve, merge, release, or branch-protection operation in the reviewed scheduler or autofix worker. I do not approve this PR while the conflict-resolution file-boundary issue remains.

You are interacting with an AI system.

Copy link
Copy Markdown
Contributor Author

@opencode-agent Please independently review exact current head 63b50227caefb49abd389a8da41edcfc1d32428e after current-head checks complete. Confirm the repair worker uses only NVIDIA_NIM_API_KEY for model authentication, strips GitHub and OIDC credentials from child processes, cannot approve/merge/release, binds trusted workflow source immutably, preserves one-dispatch single-flight limits, and satisfies 100% coverage/docstring and doctoring contracts. Submit APPROVE only if no blocker remains.

Copy link
Copy Markdown
Contributor Author

@cwl-noema-review Please perform a second independent exact-head review of 63b50227caefb49abd389a8da41edcfc1d32428e after current checks complete. Verify the NVIDIA NIM-only write-capable OpenCode boundary, immutable source receipt, credential isolation, denied non-file interactions, hourly bounded scheduler semantics, unchanged independent reviewer credentials, APA 7 doctoring, and fail-closed missing-secret/provider behavior. Submit APPROVE only if no actionable finding remains.

@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

head='63b50227caefb49abd389a8da41edcfc1d32428e'
base='f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae'
reviewer_blob='83f6830d5c21a324b4dbcd4e5c21a07968994b81'

git cat-file -e "${head}^{commit}"
git cat-file -e "${base}^{commit}"

printf '%s\n' '== exact commits =='
git show -s --format='head %H%nsubject %s' "$head"
git show -s --format='base %H%nsubject %s' "$base"

printf '%s\n' '== changed paths =='
git diff --name-status "$base" "$head"

printf '%s\n' '== reviewer workflow blob stability =='
printf 'expected %s\n' "$reviewer_blob"
printf 'base     %s\n' "$(git rev-parse "$base:.github/workflows/opencode-review-dispatch.yml")"
printf 'head     %s\n' "$(git rev-parse "$head:.github/workflows/opencode-review-dispatch.yml")"
git diff --exit-code "$base" "$head" -- .github/workflows/opencode-review-dispatch.yml || true

printf '%s\n' '== hourly scheduler and source binding =='
git show "$head:.github/workflows/hourly-nvidia-nim-review-repair.yml" | nl -ba
git show "$head:.github/workflows/pr-review-fix-scheduler.yml" | nl -ba

printf '%s\n' '== autofix model steps, permission maps, and conflict handling =='
git show "$head:.github/workflows/pr-review-autofix.yml" | nl -ba | \
  grep -E -C 12 \
  'NVIDIA_NIM_API_KEY|COPILOT_GITHUB_TOKEN|GitHub Models|models\.github|mistral-nemotron|nemotron-3-nano|GITHUB_TOKEN|GH_TOKEN|ACTIONS_ID_TOKEN_REQUEST|permission|conflicted_files|RESOLVE_CONFLICT|git add|git commit|git push|merge|approve|release|protection' || true

printf '%s\n' '== scheduler helper safeguards =='
git show "$head:scripts/ci/pr_review_fix_scheduler.py" | nl -ba | \
  grep -E -C 8 \
  'retry|dispatch|concurrency|same.repository|head.sha|live.head|allowlist|allowed|conflict|syntax' || true

printf '%s\n' '== focused contract tests and operator documentation =='
for path in \
  tests/test_pr_review_autofix_nvidia_nim_contract.py \
  tests/test_pr_review_fix_hourly_contract.py \
  tests/test_pr_review_fix_scheduler_source_pin.py \
  docs/automation/hourly-review-repair.md \
  docs/doctoring/hourly-nvidia-nim-autofix.md
do
  printf '\n--- %s ---\n' "$path"
  git show "$head:$path" | nl -ba
done

printf '%s\n' '== exact-head workflow run status =='
for run in 31002522693 31002522736 31002522780 31002522802 31002522718 31002522761 31002523083 31002522717 31002522776; do
  gh api "repos/ContextualWisdomLab/.github/actions/runs/$run" \
    --jq '[.id,.name,.status,.conclusion,.head_sha] | `@tsv`' 2>&1 || true
done

Length of output: 3741


🏁 Script executed:

#!/bin/bash
set -euo pipefail

head='63b50227caefb49abd389a8da41edcfc1d32428e'

numbered_show() {
  local path="$1"
  printf '\n--- %s ---\n' "$path"
  git show "${head}:${path}" | awk '{printf "%5d  %s\n", NR, $0}'
}

printf '%s\n' '== hourly scheduler =='
numbered_show '.github/workflows/hourly-nvidia-nim-review-repair.yml'

printf '%s\n' '== reusable scheduler workflow =='
numbered_show '.github/workflows/pr-review-fix-scheduler.yml'

printf '%s\n' '== autofix workflow: credential, permissions, conflict and staging controls =='
git show "${head}:.github/workflows/pr-review-autofix.yml" |
  awk '{printf "%5d  %s\n", NR, $0}' |
  grep -E -C 15 \
    'NVIDIA_NIM_API_KEY|COPILOT_GITHUB_TOKEN|GitHub Models|models\.github|mistral-nemotron|nemotron-3-nano|GITHUB_TOKEN|GH_TOKEN|ACTIONS_ID_TOKEN_REQUEST|permissions:|conflicted_files|RESOLVE_CONFLICT|git add|git commit|git push|merge|approve|release|protection' || true

printf '%s\n' '== conflict branch in full context =='
git show "${head}:.github/workflows/pr-review-autofix.yml" |
  awk '{printf "%5d  %s\n", NR, $0}' |
  sed -n '430,570p'

printf '%s\n' '== scheduler helper guard references =='
git show "${head}:scripts/ci/pr_review_fix_scheduler.py" |
  awk '{printf "%5d  %s\n", NR, $0}' |
  grep -E -C 8 \
    'retry|dispatch|concurrency|same.repository|head.sha|live.head|allowlist|allowed|conflict|syntax' || true

printf '%s\n' '== focused contracts: relevant assertions =='
for path in \
  tests/test_pr_review_autofix_nvidia_nim_contract.py \
  tests/test_pr_review_fix_hourly_contract.py \
  tests/test_pr_review_fix_scheduler_source_pin.py
do
  printf '\n--- %s ---\n' "$path"
  git show "${head}:${path}" |
    awk '{printf "%5d  %s\n", NR, $0}' |
    grep -E -C 4 \
      'conflict|allowlist|NVIDIA|COPILOT|GitHub Models|credential|permission|cron|retry|workflow_(repository|sha|ref|file_path)|checkout|dispatch|approve|merge|release|protection' || true
done

printf '%s\n' '== doctoring: safeguards and stated claims =='
git show "${head}:docs/doctoring/hourly-nvidia-nim-autofix.md" |
  awk '{printf "%5d  %s\n", NR, $0}' |
  grep -E -C 4 \
    'allowlist|conflict|NVIDIA|credential|GitHub|permission|approval|merge|release|protection|APA' || true

printf '%s\n' '== exact-head workflow runs =='
for run in 31002522693 31002522736 31002522780 31002522802 31002522718 31002522761 31002523083 31002522717 31002522776; do
  printf 'run %s: ' "$run"
  gh api "repos/ContextualWisdomLab/.github/actions/runs/${run}" \
    --jq '[.id,.name,.status,.conclusion,.head_sha] | `@tsv`' 2>&1 || true
done

Length of output: 86050


@seonghobae Formal review verdict: request changes.

I reviewed exact head 63b50227caefb49abd389a8da41edcfc1d32428e.

I verified the requested hourly cadence, one-hour retry floor, one-dispatch bound, repository-scoped concurrency, immutable called-workflow source binding, NVIDIA NIM-only provider configuration, model routing, NVIDIA secret scope, missing-secret failure, child-process GitHub/OIDC credential stripping, permission denials, exact-head checkout, and unchanged reviewer workflow blob 83f6830d5c21a324b4dbcd4e5c21a07968994b81.

The permanent contract gate and all nine listed direct workflows completed successfully for this exact head.

One blocking finding remains:

  • High — conflict resolution does not enforce the conflict-file boundary. In .github/workflows/pr-review-autofix.yml, the conflict prompt restricts the agent to conflicted_files at Lines 493-507. The workflow does not enforce that restriction. The conflict path skips Validate changed files, then runs git add -A at Line 535 and pushes the result. The OpenCode agent has edit: allow for the worktree. It can therefore modify a non-conflicted path, and the workflow will stage and push that modification.
    Snapshot the worktree immediately after git merge and before OpenCode runs. After OpenCode exits, reject model-caused changes and untracked paths outside conflicted_files before staging. Preserve expected non-conflict changes that git merge produced. Add a focused contract test. Update docs/doctoring/hourly-nvidia-nim-autofix.md Lines 133-138 because the current claim that the workflow rejects all paths outside the allowlist does not apply to conflict resolution.

I cannot approve while this write-capable path remains unbounded.

You are interacting with an AI system.

Copy link
Copy Markdown
Contributor Author

@opencode-agent review
@cwl-noema-review
@coderabbitai review

Review exact current head 63b50227caefb49abd389a8da41edcfc1d32428e only. Verify hourly minute-23 cadence, one-hour same-head retry floor, immutable called-workflow source binding, NVIDIA NIM-only model authentication through NVIDIA_NIM_API_KEY, child-process GitHub/OIDC credential removal, complete file-only permission denials, reviewer workflow byte preservation, and absence of approval, merge, release, or branch-protection authority in the repair worker.

@seonghobae
seonghobae marked this pull request as draft August 5, 2026 11:53
auto-merge was automatically disabled August 5, 2026 11:53

Pull request was converted to draft

@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

head='63b50227caefb49abd389a8da41edcfc1d32428e'
base='f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae'
reviewer_blob='83f6830d5c21a324b4dbcd4e5c21a07968994b81'

git cat-file -e "${head}^{commit}"
git cat-file -e "${base}^{commit}"

printf '%s\n' '== Commits =='
printf 'checked_out='; git rev-parse HEAD
git show -s --format='head=%H%nbase-parent=%P%nsubject=%s' "$head"
git show -s --format='baseline=%H%nsubject=%s' "$base"

printf '%s\n' '== Changed paths =='
git diff --name-status "$base" "$head"

printf '%s\n' '== Independent reviewer workflow identity =='
printf 'expected=%s\n' "$reviewer_blob"
printf 'base=%s\n' "$(git rev-parse "$base:.github/workflows/opencode-review-dispatch.yml")"
printf 'head=%s\n' "$(git rev-parse "$head:.github/workflows/opencode-review-dispatch.yml")"
git diff --quiet "$base" "$head" -- .github/workflows/opencode-review-dispatch.yml &&
  printf '%s\n' 'reviewer_workflow_unchanged=true'

printf '%s\n' '== Exact-head workflow source =='
for path in \
  .github/workflows/hourly-nvidia-nim-review-repair.yml \
  .github/workflows/pr-review-fix-scheduler.yml \
  .github/workflows/pr-review-autofix.yml \
  scripts/ci/pr_review_fix_scheduler.py \
  docs/doctoring/hourly-nvidia-nim-autofix.md
do
  printf '\n--- %s ---\n' "$path"
  git show "${head}:${path}" | nl -ba
done

printf '%s\n' '== Sensitive control references =='
git grep -n -I -E \
  '23 \* \* \* \*|retry.hours|canonical_ref|workflow_(repository|sha|ref|file_path)|NVIDIA_NIM_API_KEY|COPILOT_GITHUB_TOKEN|GitHub Models|models\.github|mistralai/mistral-nemotron|nvidia/nemotron-3-nano-30b-a3b|GITHUB_TOKEN|GH_TOKEN|ACTIONS_ID_TOKEN_REQUEST_(TOKEN|URL)|permissions:|repository_dispatch|concurrency:|conflicted_files|RESOLVE_CONFLICT|git add -A|gh pr (merge|review)|gh release|pulls/.*/(merge|reviews)|branches/.+protection|rulesets' \
  "$head" -- .github scripts docs ':!*.md' || true

printf '%s\n' '== Exact-head workflow runs =='
for run in 31002522693 31002522736 31002522780 31002522802 31002522718 31002522761 31002523083 31002522717 31002522776; do
  printf 'run=%s ' "$run"
  gh api "repos/ContextualWisdomLab/.github/actions/runs/${run}" \
    --jq '[.name,.status,.conclusion,.head_sha,.event] | `@tsv`' 2>&1 || true
done

Length of output: 3707


🏁 Script executed:

#!/bin/bash
set -euo pipefail

head='63b50227caefb49abd389a8da41edcfc1d32428e'
base='f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae'

numbered_show() {
  path="$1"
  printf '\n--- %s ---\n' "$path"
  git show "${head}:${path}" | awk '{ printf "%5d  %s\n", NR, $0 }'
}

printf '%s\n' '== Exact-head workflow source =='
for path in \
  .github/workflows/hourly-nvidia-nim-review-repair.yml \
  .github/workflows/pr-review-fix-scheduler.yml \
  .github/workflows/pr-review-autofix.yml \
  scripts/ci/pr_review_fix_scheduler.py \
  docs/doctoring/hourly-nvidia-nim-autofix.md
do
  numbered_show "$path"
done

printf '%s\n' '== Autofix conflict branch, complete context =='
git show "${head}:.github/workflows/pr-review-autofix.yml" |
  awk '{ printf "%5d  %s\n", NR, $0 }' |
  sed -n '430,575p'

printf '%s\n' '== Scheduler dispatch and retry controls =='
git show "${head}:scripts/ci/pr_review_fix_scheduler.py" |
  awk '{ printf "%5d  %s\n", NR, $0 }' |
  grep -E -C 8 'retry|dispatch|concurrency|same.repository|head.sha|live.head|allowlist|allowed|conflict|syntax' || true

printf '%s\n' '== Sensitive control references at exact head =='
git grep -n -I -E \
  '23 \* \* \* \*|retry.hours|canonical_ref|workflow_(repository|sha|ref|file_path)|NVIDIA_NIM_API_KEY|COPILOT_GITHUB_TOKEN|GitHub Models|models\.github|mistralai/mistral-nemotron|nvidia/nemotron-3-nano-30b-a3b|GITHUB_TOKEN|GH_TOKEN|ACTIONS_ID_TOKEN_REQUEST_(TOKEN|URL)|permissions:|repository_dispatch|concurrency:|conflicted_files|RESOLVE_CONFLICT|git add -A|gh pr (merge|review)|gh release|pulls/.*/(merge|reviews)|branches/.+protection|rulesets' \
  "$head" -- .github scripts docs ':!*.md' || true

printf '%s\n' '== Relevant exact-head contract assertions =='
for path in \
  tests/test_pr_review_autofix_nvidia_nim_contract.py \
  tests/test_pr_review_fix_hourly_contract.py \
  tests/test_pr_review_fix_scheduler_source_pin.py
do
  printf '\n--- %s ---\n' "$path"
  git show "${head}:${path}" |
    awk '{ printf "%5d  %s\n", NR, $0 }' |
    grep -E -C 4 'conflict|allowlist|NVIDIA|COPILOT|GitHub Models|credential|permission|cron|retry|workflow_(repository|sha|ref|file_path)|checkout|dispatch|approve|merge|release|protection' || true
done

printf '%s\n' '== Exact-head workflow run metadata =='
for run in 31002522693 31002522736 31002522780 31002522802 31002522718 31002522761 31002523083 31002522717 31002522776; do
  printf 'run=%s ' "$run"
  gh api "repos/ContextualWisdomLab/.github/actions/runs/${run}" \
    --jq '[.name,.status,.conclusion,.head_sha,.event] | `@tsv`' 2>&1 || true
done

Length of output: 245059


@seonghobae Formal review verdict: request changes.

I reviewed only commit 63b50227caefb49abd389a8da41edcfc1d32428e.

High — Conflict resolution does not enforce its file boundary

In .github/workflows/pr-review-autofix.yml, the conflict path records conflicted_files at Line 472. It tells OpenCode to edit only those paths at Lines 493-507. This restriction is only in the prompt.

The OpenCode agent has edit: allow for the PR worktree. After OpenCode exits, the workflow runs git add -A at Line 535 and pushes the merge commit at Lines 558-559. It does not reject changed or untracked paths outside conflicted_files.

An OpenCode conflict-resolution run can therefore modify an unrelated path, and the workflow can stage and push that modification.

Before git add -A, create an allowed-path list from conflicted_files. Compare model-caused changed and untracked paths against this list. Do not reject legitimate non-conflict changes made by git merge before OpenCode runs. A pre-OpenCode worktree snapshot can distinguish merge changes from model changes. Add a focused contract test. Update docs/doctoring/hourly-nvidia-nim-autofix.md Lines 133-138 because the stated file-allowlist enforcement does not apply to the conflict path.

I verified these controls at the requested commit:

  • The scheduler uses 23 * * * *.
  • The same-head retry default is one hour.
  • The dispatch limit is one.
  • The scheduler uses repository-scoped single-flight concurrency.
  • The scheduler validates job.workflow_repository, job.workflow_sha, job.workflow_ref, and job.workflow_file_path before checkout.
  • The scheduler checks out the validated SHA and verifies the checked-out commit and workflow file.
  • canonical_ref remains accepted and is not consumed.
  • The worker checks out trusted helper source at ${{ github.sha }}.
  • The OpenCode configuration enables only nvidia-nim.
  • The primary model is nvidia-nim/mistralai/mistral-nemotron.
  • The helper model is nvidia-nim/nvidia/nemotron-3-nano-30b-a3b.
  • secrets.NVIDIA_NIM_API_KEY is bound only to the two OpenCode execution steps.
  • Both OpenCode steps fail if NVIDIA_NIM_API_KEY is empty.
  • Both OpenCode child processes remove GITHUB_TOKEN, GH_TOKEN, and Actions OIDC request credentials.
  • Both permission maps deny the required non-file interactions.
  • .github/workflows/opencode-review-dispatch.yml is unchanged at blob 83f6830d5c21a324b4dbcd4e5c21a07968994b81.
  • I found no approval, PR-merge, release, or branch-protection operation in the reviewed scheduler or autofix worker.
  • The nine listed workflow runs completed successfully for this exact commit.

I cannot approve while the conflict-resolution write path remains unbounded.

You are interacting with an AI system.

Copy link
Copy Markdown
Contributor Author

@coderabbitai review
@opencode-agent review

Please review exact current head 4d69c58c403c1db07a9c39d5c5180c5b6b0aae15. All direct exact-head workflows are complete and successful, and all review threads are resolved. Do not reuse predecessor-head evidence.

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

head='4d69c58c403c1db07a9c39d5c5180c5b6b0aae15'
expected_reviewer_blob='83f6830d5c21a324b4dbcd4e5c21a07968994b81'

git cat-file -e "${head}^{commit}"
base="$(git merge-base "$head" origin/main 2>/dev/null || git rev-parse "${head}^")"

printf '%s\n' '== Reviewed commits =='
printf 'head=%s\nbase=%s\n' "$head" "$base"
git show -s --format='head_subject=%s' "$head"
git show -s --format='base_subject=%s' "$base"

printf '%s\n' '== Changed paths =='
git diff --name-status "$base" "$head"

printf '%s\n' '== Relevant exact-head source =='
for path in \
  .github/workflows/clearfolio-hourly-review-repair.yml \
  .github/workflows/pr-review-fix-scheduler.yml \
  .github/workflows/pr-review-autofix.yml \
  scripts/ci/pr_review_fix_scheduler.py \
  scripts/ci/pr_review_conflict_scope.py \
  tests/test_pr_review_conflict_scope.py \
  tests/test_pr_review_autofix_nvidia_nim_contract.py \
  docs/automation/hourly-review-repair.md \
  docs/doctoring/hourly-nvidia-nim-autofix.md \
  CHANGELOG.md
do
  if git cat-file -e "${head}:${path}" 2>/dev/null; then
    printf '\n--- %s ---\n' "$path"
    git show "${head}:${path}" | nl -ba
  fi
done

printf '%s\n' '== Conflict scope call order =='
git show "${head}:.github/workflows/pr-review-autofix.yml" |
  nl -ba |
  sed -n '430,680p'

printf '%s\n' '== Independent reviewer workflow identity =='
printf 'expected=%s\n' "$expected_reviewer_blob"
printf 'base=%s\n' "$(git rev-parse "${base}:.github/workflows/opencode-review-dispatch.yml")"
printf 'head=%s\n' "$(git rev-parse "${head}:.github/workflows/opencode-review-dispatch.yml")"
git diff --quiet "$base" "$head" -- .github/workflows/opencode-review-dispatch.yml &&
  printf '%s\n' 'unchanged_from_base=true'

printf '%s\n' '== Sensitive controls at exact head =='
git grep -n -I -E \
  '23 \* \* \* \*|retry.hours|workflow_(repository|sha|ref|file_path)|NVIDIA_NIM_API_KEY|COPILOT_GITHUB_TOKEN|GitHub Models|models\.github|mistralai/mistral-nemotron|nvidia/nemotron-3-nano-30b-a3b|GITHUB_TOKEN|GH_TOKEN|ACTIONS_ID_TOKEN_REQUEST_(TOKEN|URL)|conflicted_files|pr_review_conflict_scope\.py (snapshot|verify)|git add -A|gh pr (merge|review)|gh release|pulls/.*/(merge|reviews)|branches/.+protection|rulesets' \
  "$head" -- .github scripts docs ':!*.md' || true

printf '%s\n' '== Direct workflow runs for exact head =='
gh api "repos/ContextualWisdomLab/.github/actions/runs?head_sha=${head}&per_page=100" \
  --jq '.workflow_runs[] | [.id,.name,.status,.conclusion,.head_sha,.event,.workflow_id] | `@tsv`' \
  2>&1 || true

Length of output: 3875


🏁 Script executed:

#!/bin/bash
set -euo pipefail

head='4d69c58c403c1db07a9c39d5c5180c5b6b0aae15'
base='f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae'
expected_reviewer_blob='83f6830d5c21a324b4dbcd4e5c21a07968994b81'

show_numbered() {
  path="$1"
  printf '\n--- %s ---\n' "$path"
  git show "${head}:${path}" | awk '{ printf "%5d  %s\n", NR, $0 }'
}

printf '%s\n' '== Scheduler and caller source =='
for path in \
  .github/workflows/clearfolio-hourly-review-repair.yml \
  .github/workflows/hourly-nvidia-nim-review-repair.yml \
  .github/workflows/pr-review-fix-scheduler.yml
do
  show_numbered "$path"
done

printf '%s\n' '== Autofix conflict-resolution path =='
git show "${head}:.github/workflows/pr-review-autofix.yml" |
  awk '{ printf "%5d  %s\n", NR, $0 }' |
  sed -n '430,660p'

printf '%s\n' '== Conflict-scope helper and focused tests =='
for path in \
  scripts/ci/pr_review_conflict_scope.py \
  tests/test_pr_review_conflict_scope.py \
  tests/test_pr_review_autofix_nvidia_nim_contract.py \
  tests/test_pr_review_fix_hourly_contract.py \
  tests/test_pr_review_fix_scheduler_source_pin.py
do
  show_numbered "$path"
done

printf '%s\n' '== Relevant documentation =='
for path in \
  docs/automation/hourly-review-repair.md \
  docs/doctoring/hourly-nvidia-nim-autofix.md \
  docs/doctoring/clearfolio-hourly-review-caller.md
do
  show_numbered "$path"
done

printf '%s\n' '== Independent reviewer workflow identity =='
printf 'expected=%s\n' "$expected_reviewer_blob"
printf 'base=%s\n' "$(git rev-parse "${base}:.github/workflows/opencode-review-dispatch.yml")"
printf 'head=%s\n' "$(git rev-parse "${head}:.github/workflows/opencode-review-dispatch.yml")"
git diff --quiet "$base" "$head" -- .github/workflows/opencode-review-dispatch.yml &&
  printf '%s\n' 'unchanged_from_base=true'

printf '%s\n' '== Sensitive controls at exact head =='
git grep -n -I -E \
  '23 \* \* \* \*|retry.hours|workflow_(repository|sha|ref|file_path)|NVIDIA_NIM_API_KEY|COPILOT_GITHUB_TOKEN|GitHub Models|models\.github|mistralai/mistral-nemotron|nvidia/nemotron-3-nano-30b-a3b|GITHUB_TOKEN|GH_TOKEN|ACTIONS_ID_TOKEN_REQUEST_(TOKEN|URL)|conflicted_files|pr_review_conflict_scope\.py (snapshot|verify)|git add -A|gh pr (merge|review)|gh release|pulls/.*/(merge|reviews)|branches/.+protection|rulesets' \
  "$head" -- .github scripts docs ':!*.md' || true

printf '%s\n' '== Direct workflow runs for exact head =='
gh api "repos/ContextualWisdomLab/.github/actions/runs?head_sha=${head}&per_page=100" \
  --jq '.workflow_runs[] | [.id,.name,.status,.conclusion,.head_sha,.event,.workflow_id] | `@tsv`' \
  2>&1 || true

Length of output: 190441


@seonghobae Formal review completed for exact head 4d69c58c403c1db07a9c39d5c5180c5b6b0aae15 against f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae.

I found no actionable source finding in the requested scope.

Verified controls:

  • The Clearfolio caller runs at 23 * * * *.
  • The caller targets ContextualWisdomLab/clearfolio on main.
  • The caller sets max_dispatches: "1" and retry_hours: "1".
  • Product-level and scheduler-level concurrency use cancel-in-progress: true.
  • The reusable scheduler has no product-specific timer or Clearfolio repository literal.
  • The reusable scheduler validates job.workflow_repository, job.workflow_sha, job.workflow_ref, and job.workflow_file_path before checkout.
  • The scheduler checks out the validated immutable SHA and verifies the checked-out SHA and workflow path before it runs the helper.
  • canonical_ref remains accepted and ignored.
  • The OpenCode autofix worker enables only nvidia-nim.
  • The primary model is nvidia-nim/mistralai/mistral-nemotron.
  • The helper model is nvidia-nim/nvidia/nemotron-3-nano-30b-a3b.
  • NVIDIA_NIM_API_KEY is bound only to the two OpenCode execution steps.
  • Both model steps fail closed when the NVIDIA credential is absent.
  • Both OpenCode child processes remove GitHub and Actions OIDC credentials.
  • The permission maps deny the listed non-file OpenCode interactions.
  • The conflict worker records Git’s NUL-delimited unresolved-path inventory after the base merge.
  • The conflict worker snapshots the post-merge worktree before OpenCode runs.
  • The conflict worker restores the temporary OpenCode configuration and verifies the snapshot before git add -A.
  • The verifier rejects non-allowlisted modification, creation, deletion, mode change, and symlink retargeting.
  • The focused test verifies the required ordering: merge, snapshot, model execution, verification, then staging.
  • The repair workflow contains no approval, pull-request merge, release, or branch-protection operation.
  • .github/workflows/opencode-review-dispatch.yml remains byte-identical at blob 83f6830d5c21a324b4dbcd4e5c21a07968994b81.

I verified completed successful runs for this exact head, including the permanent hourly contract, Python Security, CodeQL PR, Security Scan, Semgrep, Secret Scan, OSV-Scanner PR, Scorecard PR, SBOM Generation, OpenCode review, and Noema review.

The API also reports later duplicate exact-head runs for Strix Security Scan, Python Security, and CodeQL PR as in progress. I did not treat those in-progress runs as passing evidence. The earlier completed successful runs have the same exact head SHA.

I do not issue approval from this review. A qualifying approval still requires verification of repository independence and branch-protection requirements.

You are interacting with an AI system.

Copy link
Copy Markdown
Contributor Author

@coderabbitai review
@opencode-agent @cwl-noema-review

Read-only independent review request for exact current head 4d69c58c403c1db07a9c39d5c5180c5b6b0aae15 against protected base f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae. Do not modify the branch, change Draft state, merge, publish, release, alter reviewer credentials, or reuse predecessor-head verdicts. Every direct exact-head workflow is successful: Hourly NVIDIA NIM Review Repair 31011535383, Python Security 31011535425, Security Scan 31011535526, CodeQL PR 31011535347, SAST Semgrep 31011535430, Secret Scan 31011535364, OSV-Scanner PR 31011535817, Scorecard PR 31011535394, and SBOM Generation 31011535493; all review threads are resolved.

Verify the one-hour Clearfolio caller, reusable product-neutral scheduler, immutable job.workflow_* source binding, NVIDIA_NIM_API_KEY-only OpenCode authentication, absence of COPILOT_GITHUB_TOKEN and GitHub Models fallback, exact two-step model-secret scope, child-process GitHub/OIDC credential stripping, conflict-path snapshot/allowlist enforcement, file-only agent permissions, byte-for-byte independence of the review agent, APA 7 doctoring, and the prohibition on self-approval, merge, release, or protection weakening. Submit APPROVE only when no blocker remains on this exact SHA.

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

head='4d69c58c403c1db07a9c39d5c5180c5b6b0aae15'
base='f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae'
reviewer_blob='83f6830d5c21a324b4dbcd4e5c21a07968994b81'

git cat-file -e "${head}^{commit}"
git cat-file -e "${base}^{commit}"

printf '%s\n' '== Reviewed commits and changed paths =='
git show -s --format='head=%H%nhead_subject=%s' "$head"
git show -s --format='base=%H%nbase_subject=%s' "$base"
git diff --name-status "$base" "$head"

printf '%s\n' '== Source structure for Python helper and focused tests =='
ast-grep outline scripts/ci/pr_review_conflict_scope.py --items all
ast-grep outline tests/test_pr_review_conflict_scope.py --items all
ast-grep outline tests/test_pr_review_autofix_nvidia_nim_contract.py --items all

show_at_head() {
  path="$1"
  printf '\n--- %s ---\n' "$path"
  git show "${head}:${path}" | nl -ba
}

printf '%s\n' '== Product caller and reusable scheduler =='
show_at_head '.github/workflows/clearfolio-hourly-review-repair.yml'
show_at_head '.github/workflows/pr-review-fix-scheduler.yml'

printf '%s\n' '== Autofix conflict-scope and model execution context =='
git show "${head}:.github/workflows/pr-review-autofix.yml" | nl -ba | sed -n '1,720p'

printf '%s\n' '== Conflict-scope helper and focused contracts =='
show_at_head 'scripts/ci/pr_review_conflict_scope.py'
show_at_head 'tests/test_pr_review_conflict_scope.py'
show_at_head 'tests/test_pr_review_autofix_nvidia_nim_contract.py'

printf '%s\n' '== Automation and doctoring documentation =='
show_at_head 'docs/automation/hourly-review-repair.md'
show_at_head 'docs/doctoring/hourly-nvidia-nim-autofix.md'
show_at_head 'docs/doctoring/clearfolio-hourly-review-caller.md'

printf '%s\n' '== Independent reviewer workflow identity =='
printf 'expected=%s\n' "$reviewer_blob"
printf 'base=%s\n' "$(git rev-parse "${base}:.github/workflows/opencode-review-dispatch.yml")"
printf 'head=%s\n' "$(git rev-parse "${head}:.github/workflows/opencode-review-dispatch.yml")"
git diff --quiet "$base" "$head" -- .github/workflows/opencode-review-dispatch.yml &&
  printf '%s\n' 'unchanged_from_base=true'

printf '%s\n' '== Sensitive and prohibited-operation references at exact head =='
git grep -n -I -E \
  'COPILOT_GITHUB_TOKEN|GitHub Models|models\.github|NVIDIA_NIM_API_KEY|mistralai/mistral-nemotron|nvidia/nemotron-3-nano-30b-a3b|GITHUB_TOKEN|GH_TOKEN|ACTIONS_ID_TOKEN_REQUEST_(TOKEN|URL)|pr_review_conflict_scope\.py (snapshot|verify)|git add -A|gh pr (merge|review)|gh release|pulls/.*/(merge|reviews)|branches/.+protection|rulesets|workflow_(repository|sha|ref|file_path)|23 \* \* \* \*' \
  "$head" -- .github scripts docs ':!*.md' || true

printf '%s\n' '== Named workflow-run metadata =='
for run in \
  31011535383 31011535425 31011535526 31011535347 31011535430 \
  31011535364 31011535817 31011535394 31011535493
do
  gh api "repos/ContextualWisdomLab/.github/actions/runs/${run}" \
    --jq '[.id,.name,.status,.conclusion,.head_sha,.event] | `@tsv`'
done

Length of output: 8145


🏁 Script executed:

#!/bin/bash
set -euo pipefail

head='4d69c58c403c1db07a9c39d5c5180c5b6b0aae15'
base='f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae'
reviewer_blob='83f6830d5c21a324b4dbcd4e5c21a07968994b81'

show_at_head() {
  path="$1"
  printf '\n--- %s ---\n' "$path"
  git show "${head}:${path}" | awk '{ printf "%5d  %s\n", NR, $0 }'
}

printf '%s\n' '== Product caller and reusable scheduler =='
show_at_head '.github/workflows/clearfolio-hourly-review-repair.yml'
show_at_head '.github/workflows/pr-review-fix-scheduler.yml'

printf '%s\n' '== Autofix workflow: model, credential, permission, and conflict path =='
git show "${head}:.github/workflows/pr-review-autofix.yml" |
  awk '{ printf "%5d  %s\n", NR, $0 }' |
  sed -n '1,720p'

printf '%s\n' '== Conflict-scope helper and enforcement contract =='
show_at_head 'scripts/ci/pr_review_conflict_scope.py'
show_at_head 'tests/test_pr_review_conflict_scope.py'
show_at_head 'tests/test_pr_review_autofix_nvidia_nim_contract.py'

printf '%s\n' '== Documentation =='
show_at_head 'docs/automation/hourly-review-repair.md'
show_at_head 'docs/doctoring/hourly-nvidia-nim-autofix.md'
show_at_head 'docs/doctoring/clearfolio-hourly-review-caller.md'

printf '%s\n' '== Independent reviewer workflow identity =='
printf 'expected=%s\n' "$reviewer_blob"
printf 'base=%s\n' "$(git rev-parse "${base}:.github/workflows/opencode-review-dispatch.yml")"
printf 'head=%s\n' "$(git rev-parse "${head}:.github/workflows/opencode-review-dispatch.yml")"
if git diff --quiet "$base" "$head" -- .github/workflows/opencode-review-dispatch.yml; then
  printf '%s\n' 'unchanged_from_base=true'
else
  printf '%s\n' 'unchanged_from_base=false'
fi

printf '%s\n' '== Sensitive and prohibited-operation references =='
git grep -n -I -E \
  'COPILOT_GITHUB_TOKEN|GitHub Models|models\.github|NVIDIA_NIM_API_KEY|mistralai/mistral-nemotron|nvidia/nemotron-3-nano-30b-a3b|GITHUB_TOKEN|GH_TOKEN|ACTIONS_ID_TOKEN_REQUEST_(TOKEN|URL)|pr_review_conflict_scope\.py (snapshot|verify)|git add -A|gh pr (merge|review)|gh release|pulls/.*/(merge|reviews)|branches/.+protection|rulesets|workflow_(repository|sha|ref|file_path)|23 \* \* \* \*' \
  "$head" -- .github scripts docs ':!*.md' || true

printf '%s\n' '== Named workflow-run metadata =='
for run in \
  31011535383 31011535425 31011535526 31011535347 31011535430 \
  31011535364 31011535817 31011535394 31011535493
do
  gh api "repos/ContextualWisdomLab/.github/actions/runs/${run}" \
    --jq '[.id,.name,.status,.conclusion,.head_sha,.event] | `@tsv`'
done

Length of output: 194111


🏁 Script executed:

#!/bin/bash
set -euo pipefail

head='4d69c58c403c1db07a9c39d5c5180c5b6b0aae15'

show_at_head() {
  path="$1"
  printf '\n--- %s ---\n' "$path"
  git show "${head}:${path}" | awk '{ printf "%5d  %s\n", NR, $0 }'
}

printf '%s\n' '== Added hourly contract workflow =='
show_at_head '.github/workflows/hourly-nvidia-nim-review-repair.yml'

printf '%s\n' '== Scheduler helper structure =='
ast-grep outline scripts/ci/pr_review_fix_scheduler.py --items all

printf '%s\n' '== Scheduler helper source =='
show_at_head 'scripts/ci/pr_review_fix_scheduler.py'

printf '%s\n' '== Repair-only prohibited-operation scan =='
for path in \
  '.github/workflows/pr-review-autofix.yml' \
  '.github/workflows/pr-review-fix-scheduler.yml' \
  'scripts/ci/pr_review_fix_scheduler.py'
do
  printf '\n--- %s ---\n' "$path"
  git show "${head}:${path}" |
    grep -nEi \
      'gh[[:space:]]+pr[[:space:]]+(merge|review)|gh[[:space:]]+release|pulls/.*/(merge|reviews)|mergePullRequest|enablePullRequestAutoMerge|branches/.+protection|rulesets|releases|/merges' \
    || true
done

printf '%s\n' '== Product-neutral engine checks =='
printf 'scheduler scheduled triggers: '
git show "${head}:.github/workflows/pr-review-fix-scheduler.yml" |
  grep -nE '^[[:space:]]+schedule:|cron:' || true
printf 'scheduler Clearfolio literals: '
git show "${head}:.github/workflows/pr-review-fix-scheduler.yml" |
  grep -nF 'ContextualWisdomLab/clearfolio' || true
printf 'caller secret inheritance: '
git show "${head}:.github/workflows/clearfolio-hourly-review-repair.yml" |
  grep -nE 'secrets:[[:space:]]+inherit|secrets:[[:space:]]*$' || true

Length of output: 27980


@seonghobae Formal review completed for exact head 4d69c58c403c1db07a9c39d5c5180c5b6b0aae15 against base f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae.

I found no actionable finding in the requested scope.

Verified controls:

  • .github/workflows/clearfolio-hourly-review-repair.yml runs at 23 * * * *.
  • The caller explicitly targets ContextualWisdomLab/clearfolio and protected main.
  • The caller sets max_dispatches: "1" and retry_hours: "1".
  • The caller and reusable scheduler use single-flight concurrency.
  • The reusable scheduler has no product schedule or Clearfolio repository literal.
  • The caller passes only PR_REVIEW_MERGE_TOKEN and OPENCODE_APPROVE_TOKEN.
  • The caller does not use secrets: inherit.
  • The scheduler validates job.workflow_repository, job.workflow_sha, job.workflow_ref, and job.workflow_file_path.
  • The scheduler checks out the validated immutable SHA and verifies the checkout before it runs the helper.
  • canonical_ref remains accepted and is not used to select executable source.
  • The OpenCode autofix worker enables only nvidia-nim.
  • The primary model is nvidia-nim/mistralai/mistral-nemotron.
  • The helper model is nvidia-nim/nvidia/nemotron-3-nano-30b-a3b.
  • secrets.NVIDIA_NIM_API_KEY is bound to exactly two OpenCode execution steps.
  • Both OpenCode steps fail closed when the NVIDIA credential is absent.
  • Both OpenCode child processes remove GITHUB_TOKEN, GH_TOKEN, and Actions OIDC request credentials.
  • The global and named-agent permission maps deny the listed non-file interactions.
  • The conflict path records Git’s NUL-delimited unresolved-path inventory after the base merge.
  • The conflict path snapshots the post-merge worktree before OpenCode runs.
  • The conflict path restores temporary OpenCode configuration and verifies the snapshot before git add -A.
  • The verifier rejects changes outside the conflict allowlist, including creation, deletion, mode change, symlink retargeting, and invalid path aliases.
  • The repair scheduler and worker contain no approval, PR merge, release, or branch-protection operation.
  • .github/workflows/opencode-review-dispatch.yml is byte-identical at blob 83f6830d5c21a324b4dbcd4e5c21a07968994b81.
  • The focused contract gate is exact-head scoped and includes conflict-scope coverage, branch coverage, docstring coverage, compilation, and diff hygiene checks.
  • Each named direct workflow run completed successfully for this exact SHA.

I do not issue approval from a review command. A separate explicit approval remains subject to the repository’s independence and branch-protection requirements.

You are interacting with an AI system.

Copy link
Copy Markdown
Contributor Author

@opencode-agent @cwl-noema-review Please independently review exact current head 4d69c58c403c1db07a9c39d5c5180c5b6b0aae15. Verify the one-hour single-flight caller and reusable scheduler boundary, immutable called-workflow source identity, NVIDIA_NIM_API_KEY-only OpenCode inference, GitHub/OIDC credential stripping, independent reviewer preservation, exact conflict-path snapshot allowlist, path/symlink/deletion hardening, 100% coverage/docstrings, successful security gates, and absence of merge/release/protection authority in the repair worker. Submit APPROVE only if no blocker remains.

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

head='4d69c58c403c1db07a9c39d5c5180c5b6b0aae15'
base='f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae'
reviewer_blob='83f6830d5c21a324b4dbcd4e5c21a07968994b81'

show_at_head() {
  local path="$1"
  printf '\n--- %s ---\n' "$path"
  git show "${head}:${path}" | awk '{ printf "%5d  %s\n", NR, $0 }'
}

git cat-file -e "${head}^{commit}"
git cat-file -e "${base}^{commit}"
printf 'head=%s\nbase=%s\n' "$head" "$base"
git diff --name-status "$base" "$head"

printf '%s\n' '== Relevant source =='
for path in \
  .github/workflows/clearfolio-hourly-review-repair.yml \
  .github/workflows/pr-review-fix-scheduler.yml \
  .github/workflows/pr-review-autofix.yml \
  scripts/ci/pr_review_fix_scheduler.py \
  scripts/ci/pr_review_conflict_scope.py \
  tests/test_pr_review_conflict_scope.py \
  tests/test_pr_review_autofix_nvidia_nim_contract.py \
  docs/automation/hourly-review-repair.md \
  docs/doctoring/hourly-nvidia-nim-autofix.md \
  docs/doctoring/clearfolio-hourly-review-caller.md \
  CHANGELOG.md
do
  show_at_head "$path"
done

printf '%s\n' '== Reviewer workflow identity =='
printf 'expected=%s\n' "$reviewer_blob"
printf 'base=%s\n' "$(git rev-parse "${base}:.github/workflows/opencode-review-dispatch.yml")"
printf 'head=%s\n' "$(git rev-parse "${head}:.github/workflows/opencode-review-dispatch.yml")"
git diff --quiet "$base" "$head" -- .github/workflows/opencode-review-dispatch.yml &&
  printf '%s\n' 'unchanged_from_base=true'

printf '%s\n' '== Sensitive and prohibited-operation references =='
git grep -n -I -E \
  'COPILOT_GITHUB_TOKEN|GitHub Models|models\.github|NVIDIA_NIM_API_KEY|mistralai/mistral-nemotron|nvidia/nemotron-3-nano-30b-a3b|GITHUB_TOKEN|GH_TOKEN|ACTIONS_ID_TOKEN_REQUEST_(TOKEN|URL)|pr_review_conflict_scope\.py (snapshot|verify)|git add -A|gh pr (merge|review)|gh release|pulls/.*/(merge|reviews)|branches/.+protection|rulesets|workflow_(repository|sha|ref|file_path)|23 \* \* \* \*' \
  "$head" -- .github scripts docs ':!*.md' || true

printf '%s\n' '== Named direct workflow runs =='
for run in \
  31011535383 31011535425 31011535526 31011535347 31011535430 \
  31011535364 31011535817 31011535394 31011535493
do
  gh api "repos/ContextualWisdomLab/.github/actions/runs/${run}" \
    --jq '[.id,.name,.status,.conclusion,.head_sha,.event] | `@tsv`'
done

Length of output: 218843


@seonghobae Formal review completed for exact head 4d69c58c403c1db07a9c39d5c5180c5b6b0aae15 against f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae.

I found no actionable finding in the requested scope.

Verified controls:

  • The Clearfolio caller runs at minute 23 of every hour.
  • The caller sets a one-dispatch limit and a one-hour same-head retry floor.
  • The caller and reusable scheduler use single-flight concurrency.
  • The reusable scheduler remains product-neutral.
  • The scheduler validates job.workflow_repository, job.workflow_sha, job.workflow_ref, and job.workflow_file_path.
  • The scheduler checks out the validated immutable SHA and verifies the checkout before it runs the helper.
  • The repair worker enables only nvidia-nim.
  • The primary model is nvidia-nim/mistralai/mistral-nemotron.
  • The helper model is nvidia-nim/nvidia/nemotron-3-nano-30b-a3b.
  • secrets.NVIDIA_NIM_API_KEY is bound only to the two OpenCode execution steps.
  • Both model steps fail closed when the NVIDIA secret is absent.
  • Both model subprocesses remove GITHUB_TOKEN, GH_TOKEN, and Actions OIDC request credentials.
  • Both OpenCode permission maps deny the listed non-file interactions.
  • The conflict path records Git’s NUL-delimited unresolved-path inventory after the base merge.
  • The conflict path snapshots the post-merge worktree before OpenCode runs.
  • The conflict path restores the temporary OpenCode configuration and verifies the snapshot before git add -A.
  • The verifier rejects non-allowlisted modifications, creations, deletions, mode changes, symlink retargeting, malformed evidence, and non-normalized path aliases.
  • The focused tests include conflict-scope ordering and path-state coverage. The successful exact-head hourly contract run is evidence for the configured coverage and docstring gates.
  • .github/workflows/opencode-review-dispatch.yml is byte-identical at blob 83f6830d5c21a324b4dbcd4e5c21a07968994b81.
  • I found no approval, pull-request merge, release, or branch-protection modification operation in the reviewed repair scheduler or worker.
  • The nine named direct workflow runs completed successfully for the exact reviewed SHA.

I do not issue approval from this review command. A separate explicit approval remains subject to repository independence and branch-protection requirements.

You are interacting with an AI system.

Copy link
Copy Markdown
Contributor Author

@opencode-agent @cwl-noema-review

Please perform a fresh exact-head review of 4d69c58c403c1db07a9c39d5c5180c5b6b0aae15. The hourly NVIDIA NIM contract and all direct exact-head security, CodeQL, Semgrep, secret, OSV, Scorecard, and SBOM workflows are successful; all inline threads are resolved. Verify the minute-23 hourly Clearfolio caller, immutable reusable-workflow source identity, NVIDIA_NIM_API_KEY-only OpenCode execution, GitHub/OIDC credential stripping, exact conflict-path write boundary, absence of approval/merge/release authority in the repair worker, 100% branch/docstring contracts, modular MSA reuse, and APA 7 doctoring. Publish current-head findings or verdict only.

@opencode-agent opencode-agent 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.

Pull request overview

OpenCode cannot approve yet because required coverage evidence did not pass.

Review outcome

1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence

  • Problem: The required coverage-evidence job result was failure, so OpenCode cannot establish approval sufficiency for this head.

  • Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.

  • Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports success with required evidence or explicit no-source not-applicable evidence.

  • Regression test: Keep the approval branch checking needs.coverage-evidence.result == success before posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present.

  • Result: REQUEST_CHANGES

  • Reason: coverage-evidence result was failure, so required test/docstring evidence was not proven for current head 4d69c58c403c1db07a9c39d5c5180c5b6b0aae15.

  • Head SHA: 4d69c58c403c1db07a9c39d5c5180c5b6b0aae15

  • Workflow run: 31064098256

  • Workflow attempt: 1

Coverage evidence

Coverage Decision

  • Result: FAIL
  • Test evidence: not proven passing
  • Docstring evidence: not proven passing when configured
  • Failure count: 1

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Workflow (4 files)"]
  S1 --> I1["GitHub Actions review job"]
  I1 --> R1["Review risk: Workflow (4 files)"]
  R1 --> V1["actionlint plus required checks"]
  Evidence --> S2["Changed file: CHANGELOG.md"]
  S2 --> I2["repository behavior"]
  I2 --> R2["Review risk: Changed file: CHANGELOG.md"]
  R2 --> V2["required checks"]
  Evidence --> S3["Docs (3 files)"]
  S3 --> I3["operator or user guidance"]
  I3 --> R3["Review risk: Docs (3 files)"]
  R3 --> V3["docs review"]
  Evidence --> S4["CI script: pr_review_conflict_scope.py"]
  S4 --> I4["review and security gate shell path"]
  I4 --> R4["Review risk: CI script: pr_review_conflict_scope.py"]
  R4 --> V4["bash -n plus Strix self-test"]
  Evidence --> S5["Test (4 files)"]
  S5 --> I5["regression suite"]
  I5 --> R5["Review risk: Test (4 files)"]
  R5 --> V5["targeted test run"]
Loading

@opencode-agent

opencode-agent Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

OpenCode Review Overview

  • Head SHA: 4d69c58c403c1db07a9c39d5c5180c5b6b0aae15
  • Workflow run: 31064098256
  • Workflow attempt: 2
  • Gate result: REQUEST_CHANGES (approval step)

Pull request overview

OpenCode cannot approve yet because required coverage evidence did not pass.

Review outcome

1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence

  • Problem: The required coverage-evidence job result was failure, so OpenCode cannot establish approval sufficiency for this head.

  • Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.

  • Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports success with required evidence or explicit no-source not-applicable evidence.

  • Regression test: Keep the approval branch checking needs.coverage-evidence.result == success before posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present.

  • Result: REQUEST_CHANGES

  • Reason: coverage-evidence result was failure, so required test/docstring evidence was not proven for current head 4d69c58c403c1db07a9c39d5c5180c5b6b0aae15.

  • Head SHA: 4d69c58c403c1db07a9c39d5c5180c5b6b0aae15

  • Workflow run: 31064098256

  • Workflow attempt: 2

Coverage evidence

Coverage Decision

  • Result: FAIL
  • Test evidence: not proven passing
  • Docstring evidence: not proven passing when configured
  • Failure count: 1

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Workflow (4 files)"]
  S1 --> I1["GitHub Actions review job"]
  I1 --> R1["Review risk: Workflow (4 files)"]
  R1 --> V1["actionlint plus required checks"]
  Evidence --> S2["Changed file: CHANGELOG.md"]
  S2 --> I2["repository behavior"]
  I2 --> R2["Review risk: Changed file: CHANGELOG.md"]
  R2 --> V2["required checks"]
  Evidence --> S3["Docs (3 files)"]
  S3 --> I3["operator or user guidance"]
  I3 --> R3["Review risk: Docs (3 files)"]
  R3 --> V3["docs review"]
  Evidence --> S4["CI script: pr_review_conflict_scope.py"]
  S4 --> I4["review and security gate shell path"]
  I4 --> R4["Review risk: CI script: pr_review_conflict_scope.py"]
  R4 --> V4["bash -n plus Strix self-test"]
  Evidence --> S5["Test (4 files)"]
  S5 --> I5["regression suite"]
  I5 --> R5["Review risk: Test (4 files)"]
  R5 --> V5["targeted test run"]
Loading

@opencode-agent opencode-agent 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.

Pull request overview

OpenCode cannot approve yet because required coverage evidence did not pass.

Review outcome

1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence

  • Problem: The required coverage-evidence job result was failure, so OpenCode cannot establish approval sufficiency for this head.

  • Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.

  • Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports success with required evidence or explicit no-source not-applicable evidence.

  • Regression test: Keep the approval branch checking needs.coverage-evidence.result == success before posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present.

  • Result: REQUEST_CHANGES

  • Reason: coverage-evidence result was failure, so required test/docstring evidence was not proven for current head 4d69c58c403c1db07a9c39d5c5180c5b6b0aae15.

  • Head SHA: 4d69c58c403c1db07a9c39d5c5180c5b6b0aae15

  • Workflow run: 31064098256

  • Workflow attempt: 2

Coverage evidence

Coverage Decision

  • Result: FAIL
  • Test evidence: not proven passing
  • Docstring evidence: not proven passing when configured
  • Failure count: 1

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Workflow (4 files)"]
  S1 --> I1["GitHub Actions review job"]
  I1 --> R1["Review risk: Workflow (4 files)"]
  R1 --> V1["actionlint plus required checks"]
  Evidence --> S2["Changed file: CHANGELOG.md"]
  S2 --> I2["repository behavior"]
  I2 --> R2["Review risk: Changed file: CHANGELOG.md"]
  R2 --> V2["required checks"]
  Evidence --> S3["Docs (3 files)"]
  S3 --> I3["operator or user guidance"]
  I3 --> R3["Review risk: Docs (3 files)"]
  R3 --> V3["docs review"]
  Evidence --> S4["CI script: pr_review_conflict_scope.py"]
  S4 --> I4["review and security gate shell path"]
  I4 --> R4["Review risk: CI script: pr_review_conflict_scope.py"]
  R4 --> V4["bash -n plus Strix self-test"]
  Evidence --> S5["Test (4 files)"]
  S5 --> I5["regression suite"]
  I5 --> R5["Review risk: Test (4 files)"]
  R5 --> V5["targeted test run"]
Loading

Copy link
Copy Markdown
Contributor Author

@cwl-noema-review @opencode-agent Please perform a fresh review-only pass on exact current head 4d69c58c403c1db07a9c39d5c5180c5b6b0aae15. Reuse no predecessor-head or synthetic-merge verdict. Verify the hourly Clearfolio caller, immutable scheduler source identity, NVIDIA NIM-only write worker, GitHub/OIDC credential stripping, exact conflict-path publication boundary, current exact-head checks, zero unresolved threads, 100% focused statement/branch/docstring evidence, and branch-protection requirements. Do not update branches, change Draft state, merge, release, or modify protections.

Copy link
Copy Markdown
Contributor Author

@opencode-agent @cwl-noema-review @coderabbitai review

Independently review exact current head 2f16cca4aae2d11ccc928f8e03fdcbd97a96d5a2 against protected main at f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae. The prior OpenCode REQUEST_CHANGES reviews are anchored to predecessor head 4d69c58c403c1db07a9c39d5c5180c5b6b0aae15 and must not be reused.

Every direct current-head workflow is successful: Hourly NVIDIA NIM Review Repair 31069588915, Python Security 31069588922, Security Scan 31069588960, CodeQL PR 31069588951, SAST Semgrep 31069588912, Secret Scan 31069589012, OSV-Scanner PR 31069589172, Scorecard PR 31069588926, and SBOM Generation 31069588916; unresolved inline review threads are zero.

Verify the schedule-only product caller, one-hour cadence and retry floor, one-dispatch/single-flight bounds, immutable called-workflow and repository-dispatch source binding, NVIDIA NIM-only model authentication, absence of COPILOT_GITHUB_TOKEN and GitHub Models fallback, missing-secret fail-closed behavior, strict secret step scope, GitHub/OIDC credential stripping, file-only agent permissions, exact-head/live-head/file-allowlist/syntax/conflict guards, independent reviewer byte stability, and the prohibition on approval, merge, release, or protection weakening. Submit an exact-head verdict; a qualifying independent non-author approval and branch protection remain mandatory.

@seonghobae
seonghobae enabled auto-merge (squash) August 6, 2026 04:00
@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

head='2f16cca4aae2d11ccc928f8e03fdcbd97a96d5a2'
base='f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae'
reviewer_blob='83f6830d5c21a324b4dbcd4e5c21a07968994b81'

show_at_head() {
  local path="$1"
  printf '\n--- %s ---\n' "$path"
  git show "${head}:${path}" | awk '{printf "%5d  %s\n", NR, $0}'
}

git cat-file -e "${head}^{commit}"
git cat-file -e "${base}^{commit}"

printf '%s\n' '== Exact commits and diff =='
git show -s --format='head=%H%nhead_subject=%s' "$head"
git show -s --format='base=%H%nbase_subject=%s' "$base"
git diff --name-status "$base" "$head"

printf '%s\n' '== Relevant source at exact head =='
for path in \
  .github/workflows/clearfolio-hourly-review-repair.yml \
  .github/workflows/pr-review-fix-scheduler.yml \
  .github/workflows/pr-review-autofix.yml \
  scripts/ci/pr_review_fix_scheduler.py \
  scripts/ci/pr_review_conflict_scope.py \
  tests/test_pr_review_conflict_scope.py \
  tests/test_pr_review_autofix_nvidia_nim_contract.py \
  tests/test_pr_review_fix_hourly_contract.py \
  tests/test_pr_review_fix_scheduler_source_pin.py \
  docs/automation/hourly-review-repair.md \
  docs/doctoring/hourly-nvidia-nim-autofix.md \
  docs/doctoring/clearfolio-hourly-review-caller.md \
  CHANGELOG.md
do
  if git cat-file -e "${head}:${path}" 2>/dev/null; then
    show_at_head "$path"
  else
    printf '\n--- MISSING: %s ---\n' "$path"
  fi
done

printf '%s\n' '== Conflict-path call order =='
git show "${head}:.github/workflows/pr-review-autofix.yml" |
  awk '{printf "%5d  %s\n", NR, $0}' |
  sed -n '430,700p'

printf '%s\n' '== Independent reviewer workflow identity =='
printf 'expected=%s\n' "$reviewer_blob"
printf 'base=%s\n' "$(git rev-parse "${base}:.github/workflows/opencode-review-dispatch.yml")"
printf 'head=%s\n' "$(git rev-parse "${head}:.github/workflows/opencode-review-dispatch.yml")"
if git diff --quiet "$base" "$head" -- .github/workflows/opencode-review-dispatch.yml; then
  printf '%s\n' 'unchanged_from_base=true'
else
  printf '%s\n' 'unchanged_from_base=false'
fi

printf '%s\n' '== Sensitive and prohibited-operation references =='
git grep -n -I -E \
  '23 \* \* \* \*|retry.hours|max_dispatches|canonical_ref|workflow_(repository|sha|ref|file_path)|NVIDIA_NIM_API_KEY|COPILOT_GITHUB_TOKEN|GitHub Models|models\.github|mistralai/mistral-nemotron|nvidia/nemotron-3-nano-30b-a3b|GITHUB_TOKEN|GH_TOKEN|ACTIONS_ID_TOKEN_REQUEST_(TOKEN|URL)|pr_review_conflict_scope\.py (snapshot|verify)|git add -A|gh pr (merge|review)|gh release|pulls/.*/(merge|reviews)|branches/.+protection|rulesets|repository_dispatch|concurrency:' \
  "$head" -- .github scripts docs ':!*.md' || true

printf '%s\n' '== Named workflow runs =='
for run in \
  31069588915 31069588922 31069588960 31069588951 31069588912 \
  31069589012 31069589172 31069588926 31069588916
do
  gh api "repos/ContextualWisdomLab/.github/actions/runs/${run}" \
    --jq '[.id,.name,.status,.conclusion,.head_sha,.event] | `@tsv`'
done

Length of output: 202804


🏁 Script executed:

#!/bin/bash
set -euo pipefail

head='2f16cca4aae2d11ccc928f8e03fdcbd97a96d5a2'
base='f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae'

printf '%s\n' '== Changed paths and focused diff =='
git diff --name-status "$base" "$head" -- \
  .github/workflows/clearfolio-hourly-review-repair.yml \
  .github/workflows/pr-review-fix-scheduler.yml \
  .github/workflows/pr-review-autofix.yml \
  scripts/ci/pr_review_fix_scheduler.py \
  scripts/ci/pr_review_conflict_scope.py \
  tests/test_pr_review_conflict_scope.py \
  tests/test_pr_review_autofix_nvidia_nim_contract.py \
  tests/test_pr_review_fix_hourly_contract.py \
  tests/test_pr_review_fix_scheduler_source_pin.py \
  docs/automation/hourly-review-repair.md \
  docs/doctoring/hourly-nvidia-nim-autofix.md \
  docs/doctoring/clearfolio-hourly-review-caller.md \
  CHANGELOG.md
git diff --no-ext-diff --unified=30 "$base" "$head" -- \
  .github/workflows/clearfolio-hourly-review-repair.yml \
  .github/workflows/pr-review-fix-scheduler.yml \
  .github/workflows/pr-review-autofix.yml \
  scripts/ci/pr_review_fix_scheduler.py \
  scripts/ci/pr_review_conflict_scope.py \
  tests/test_pr_review_conflict_scope.py

printf '%s\n' '== Caller and scheduler source =='
for path in \
  .github/workflows/clearfolio-hourly-review-repair.yml \
  .github/workflows/pr-review-fix-scheduler.yml
do
  printf '\n--- %s ---\n' "$path"
  git show "${head}:${path}" | nl -ba
done

printf '%s\n' '== Autofix source sections =='
git show "${head}:.github/workflows/pr-review-autofix.yml" |
  nl -ba |
  sed -n '1,430p'
git show "${head}:.github/workflows/pr-review-autofix.yml" |
  nl -ba |
  sed -n '430,590p'

printf '%s\n' '== Repair-only prohibited-operation scan =='
for path in \
  .github/workflows/clearfolio-hourly-review-repair.yml \
  .github/workflows/pr-review-fix-scheduler.yml \
  .github/workflows/pr-review-autofix.yml \
  scripts/ci/pr_review_fix_scheduler.py \
  scripts/ci/pr_review_conflict_scope.py
do
  printf '\n--- %s ---\n' "$path"
  git show "${head}:${path}" |
    rg -n -i \
      'gh\s+pr\s+(merge|review)|gh\s+release|pulls/.*/(merge|reviews)|mergePullRequest|enablePullRequestAutoMerge|branches/.+protection|rulesets|releases|/merges' \
    || true
done

printf '%s\n' '== Exact repair-workflow credential and permission controls =='
git show "${head}:.github/workflows/pr-review-autofix.yml" |
  rg -n -C 3 \
    'enabled_providers|nvidia-nim|NVIDIA_NIM_API_KEY|COPILOT_GITHUB_TOKEN|github-models|models\.github|NVIDIA_API_KEY|GITHUB_TOKEN|GH_TOKEN|ACTIONS_ID_TOKEN_REQUEST_(TOKEN|URL)|"bash": "deny"|"task": "deny"|"skill": "deny"|"question": "deny"|"webfetch": "deny"|"websearch": "deny"|"lsp": "deny"|"external_directory": "deny"|"doom_loop": "deny"|same repository|live.*head|allowed_files|allowlist|py_compile|actionlint' \
    || true

Length of output: 57003


🏁 Script executed:

#!/bin/bash
set -euo pipefail

head='2f16cca4aae2d11ccc928f8e03fdcbd97a96d5a2'
base='f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae'

printf '%s\n' '== Diff hygiene =='
git diff --check "$base" "$head"

printf '%s\n' '== Repair-only prohibited operation scan =='
for path in \
  .github/workflows/clearfolio-hourly-review-repair.yml \
  .github/workflows/pr-review-fix-scheduler.yml \
  .github/workflows/pr-review-autofix.yml \
  scripts/ci/pr_review_fix_scheduler.py \
  scripts/ci/pr_review_conflict_scope.py
do
  printf '\n--- %s ---\n' "$path"
  git show "${head}:${path}" | \
    rg -n -i \
      'gh\s+pr\s+(merge|review)|gh\s+release|pulls/.*/(merge|reviews)|mergePullRequest|enablePullRequestAutoMerge|branches/.+protection|rulesets|releases|/merges' \
    || true
done

printf '%s\n' '== Exact autofix provider, token, permission, and guard controls =='
git show "${head}:.github/workflows/pr-review-autofix.yml" | \
  awk '{printf "%5d  %s\n", NR, $0}' | \
  rg -n -C 3 \
    'enabled_providers|nvidia-nim|NVIDIA_NIM_API_KEY|COPILOT_GITHUB_TOKEN|github-models|models\.github|NVIDIA_API_KEY|GITHUB_TOKEN|GH_TOKEN|ACTIONS_ID_TOKEN_REQUEST_(TOKEN|URL)|"bash": "deny"|"task": "deny"|"skill": "deny"|"question": "deny"|"webfetch": "deny"|"websearch": "deny"|"lsp": "deny"|"external_directory": "deny"|"doom_loop": "deny"|same-repository|same repository|live_head_sha|py_compile|actionlint|pr_review_conflict_scope\.py' \
  || true

printf '%s\n' '== Scheduler source identity and bounded dispatch controls =='
git show "${head}:.github/workflows/pr-review-fix-scheduler.yml" | \
  awk '{printf "%5d  %s\n", NR, $0}' | \
  rg -n -C 3 \
    'schedule:|ContextualWisdomLab/clearfolio|canonical_ref|job\.workflow_(repository|sha|ref|file_path)|WORKFLOW_(REPOSITORY|SHA|REF|FILE_PATH)|EXPECTED_(SHA|FILE)|MAX_DISPATCHES|RETRY_HOURS|cancel-in-progress|repository_dispatch' \
  || true

Length of output: 20882


@seonghobae Formal review completed for exact head 2f16cca4aae2d11ccc928f8e03fdcbd97a96d5a2 against f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae.

I found no actionable finding in the requested scope.

Verified controls:

  • The Clearfolio caller uses 23 * * * *.
  • The caller explicitly targets ContextualWisdomLab/clearfolio and main.
  • The caller sets max_dispatches: "1" and retry_hours: "1".
  • The caller and reusable scheduler use single-flight concurrency.
  • The reusable scheduler has no product schedule or Clearfolio repository literal.
  • The scheduler accepts canonical_ref but does not use it to select source.
  • The scheduler validates job.workflow_repository, job.workflow_sha, job.workflow_ref, and job.workflow_file_path.
  • The scheduler checks out the validated immutable SHA and verifies the SHA and workflow file before it runs the helper.
  • The autofix helper checkout uses ${{ github.sha }} with persisted credentials disabled.
  • The autofix worker enables only nvidia-nim.
  • The primary model is nvidia-nim/mistralai/mistral-nemotron.
  • The helper model is nvidia-nim/nvidia/nemotron-3-nano-30b-a3b.
  • The autofix workflow contains no COPILOT_GITHUB_TOKEN, GitHub Models provider, or GitHub Models endpoint.
  • secrets.NVIDIA_NIM_API_KEY is bound only to the two OpenCode execution steps.
  • Both model steps fail closed when the NVIDIA credential is absent.
  • Both model subprocesses remove GITHUB_TOKEN, GH_TOKEN, and Actions OIDC request credentials.
  • The global and named-agent permission maps deny the required non-file interactions.
  • The worker verifies same-repository ownership and exact live base/head metadata before work.
  • The ordinary autofix path validates changed and untracked paths against the file allowlist.
  • The conflict path records Git’s NUL-delimited unresolved-path inventory after the merge, snapshots the post-merge worktree before OpenCode runs, and verifies that snapshot before git add -A.
  • The conflict verifier rejects non-allowlisted modification, creation, deletion, mode change, symlink retargeting, malformed snapshot data, and non-normalized path aliases.
  • Both ordinary and conflict paths recheck the live PR head before push.
  • The repair caller, scheduler, worker, and helpers contain no approval, PR-merge, release, or branch-protection modification operation.
  • .github/workflows/opencode-review-dispatch.yml remains byte-identical at blob 83f6830d5c21a324b4dbcd4e5c21a07968994b81.
  • git diff --check reported no diff-hygiene errors.

I also verified that the nine named workflow runs completed successfully for this exact SHA.

I do not issue approval from this review command. A qualifying independent non-author approval and the repository branch-protection requirements remain mandatory.

You are interacting with an AI system.

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@opencode-agent @cwl-noema-review Independently review exact current head 2f16cca4aae2d11ccc928f8e03fdcbd97a96d5a2 against protected main at f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae.

The predecessor-head OpenCode blocker was reproduced and fixed at its source: the product caller exposed workflow_dispatch, violating the central contract that manual entrypoints must not load branch-selected workflow code. The current caller is schedule-only; the reusable scheduler remains the bounded modular engine.

Every direct exact-head workflow is successful: Hourly NVIDIA NIM Review Repair 31069588915, Python Security 31069588922, Security Scan 31069588960, CodeQL PR 31069588951, SAST Semgrep 31069588912, Secret Scan 31069589012, OSV-Scanner PR 31069589172, Scorecard PR 31069588926, and SBOM Generation 31069588916.

Verify the one-hour cadence and retry floor, schedule-only product caller, one-dispatch/single-flight bounds, immutable called-workflow and repository-dispatch source binding, NVIDIA_NIM_API_KEY-only OpenCode model authentication, absence of COPILOT_GITHUB_TOKEN and GitHub Models fallback, missing-secret fail-closed behavior, strict secret step scope, child-process stripping of GitHub and OIDC credentials, file-only agent permissions, exact-head/live-head/file-allowlist/syntax/conflict guards, byte-for-byte preservation of the independent reviewer workflow, and prohibition on approval, merge, release, or protection weakening. Submit actionable findings or an exact-head formal review; approval must still satisfy repository independence and branch protection.

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown

@seonghobae I will perform an independent review of exact head 2f16cca4aae2d11ccc928f8e03fdcbd97a96d5a2 against f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae.

I will use only exact-head evidence. I will verify the requested scheduler, source-binding, NVIDIA NIM, credential-isolation, file-boundary, reviewer-stability, and prohibited-operation controls. I will not issue approval unless repository independence and branch-protection requirements are satisfied.

⚠️ Action not completed

Review rate limited.

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.

Copy link
Copy Markdown
Contributor Author

@opencode-agent @cwl-noema-review

Re-run an independent exact-head review for 2f16cca4aae2d11ccc928f8e03fdcbd97a96d5a2 against protected main f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae. The prior OpenCode REQUEST_CHANGES reviews are predecessor-head evidence only. The current caller is schedule-only, removing the workflow_dispatch condition that caused the predecessor coverage failure. Direct exact-head workflows are all successful: Hourly NVIDIA NIM Review Repair 31069588915, Python Security 31069588922, Security Scan 31069588960, CodeQL PR 31069588951, SAST Semgrep 31069588912, Secret Scan 31069589012, OSV-Scanner PR 31069589172, Scorecard PR 31069588926, and SBOM Generation 31069588916; unresolved inline threads are zero.

Recompute current-head coverage and docstring evidence, verify the one-hour bounded scheduler, immutable called-workflow source identity, NVIDIA NIM-only model authentication and missing-secret fail-closed behavior, GitHub/OIDC credential stripping, file-only OpenCode permissions, exact-head/live-head/file-allowlist/conflict publication guards, independent reviewer byte stability, and the prohibition on approval, merge, release, or protection weakening. Submit a formal exact-head verdict only; branch protection and a qualifying non-author approval remain mandatory.

Copy link
Copy Markdown
Contributor Author

Exact-current-head review request for 2f16cca4aae2d11ccc928f8e03fdcbd97a96d5a2. The only change after the previously reviewed implementation is the bounded Clearfolio caller correction; the Hourly NVIDIA NIM Review Repair, CodeQL, Python Security, Semgrep, Security Scan, Secret Scan, OSV, Scorecard, and SBOM workflows all pass on this head. Please evaluate this exact head only and do not reuse predecessor coverage verdicts.

@opencode-agent
@cwl-noema-review
@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown
🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

head='2f16cca4aae2d11ccc928f8e03fdcbd97a96d5a2'
base='f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae'
expected_reviewer_blob='83f6830d5c21a324b4dbcd4e5c21a07968994b81'

git cat-file -e "${head}^{commit}"
git cat-file -e "${base}^{commit}"

printf '%s\n' '== Exact commits and changed paths =='
git show -s --format='head=%H%nsubject=%s' "$head"
git show -s --format='base=%H%nsubject=%s' "$base"
git diff --name-status "$base" "$head"

printf '%s\n' '== Focused workflow and helper outlines =='
for path in \
  .github/workflows/clearfolio-hourly-review-repair.yml \
  .github/workflows/pr-review-fix-scheduler.yml \
  .github/workflows/pr-review-autofix.yml \
  scripts/ci/pr_review_fix_scheduler.py \
  scripts/ci/pr_review_conflict_scope.py
do
  printf '\n--- %s ---\n' "$path"
  git show "${head}:${path}" | nl -ba
done

printf '%s\n' '== Independent reviewer workflow identity =='
printf 'expected=%s\n' "$expected_reviewer_blob"
printf 'base=%s\n' "$(git rev-parse "${base}:.github/workflows/opencode-review-dispatch.yml")"
printf 'head=%s\n' "$(git rev-parse "${head}:.github/workflows/opencode-review-dispatch.yml")"
git diff --quiet "$base" "$head" -- .github/workflows/opencode-review-dispatch.yml &&
  printf '%s\n' 'unchanged_from_base=true'

printf '%s\n' '== Focused control and prohibited-operation scan =='
git grep -n -I -E \
  '23 \* \* \* \*|workflow_dispatch|max_dispatches|retry_hours|canonical_ref|job\.workflow_(repository|sha|ref|file_path)|NVIDIA_NIM_API_KEY|COPILOT_GITHUB_TOKEN|GitHub Models|models\.github|mistralai/mistral-nemotron|nvidia/nemotron-3-nano-30b-a3b|GITHUB_TOKEN|GH_TOKEN|ACTIONS_ID_TOKEN_REQUEST_(TOKEN|URL)|pr_review_conflict_scope\.py (snapshot|verify)|git add -A|gh pr (merge|review)|gh release|pulls/.*/(merge|reviews)|branches/.+protection|rulesets|repository_dispatch|concurrency:' \
  "$head" -- .github scripts docs ':!*.md' || true

printf '%s\n' '== Exact-head named workflow runs =='
for run in \
  31069588915 31069588922 31069588960 31069588951 31069588912 \
  31069589012 31069589172 31069588926 31069588916
do
  gh api "repos/ContextualWisdomLab/.github/actions/runs/${run}" \
    --jq '[.id,.name,.status,.conclusion,.head_sha,.event] | `@tsv`'
done

Length of output: 3558


🏁 Script executed:

#!/bin/bash
set -euo pipefail

head='2f16cca4aae2d11ccc928f8e03fdcbd97a96d5a2'
base='f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae'
expected_reviewer_blob='83f6830d5c21a324b4dbcd4e5c21a07968994b81'

show() {
  path="$1"
  printf '\n== %s ==\n' "$path"
  git show "${head}:${path}" | sed -n '1,760p'
}

printf '%s\n' '== Caller and scheduler =='
show '.github/workflows/clearfolio-hourly-review-repair.yml'
show '.github/workflows/pr-review-fix-scheduler.yml'

printf '%s\n' '== Autofix model and conflict-path controls =='
git show "${head}:.github/workflows/pr-review-autofix.yml" |
  grep -n -E -C 12 \
    'enabled_providers|nvidia-nim|NVIDIA_NIM_API_KEY|COPILOT_GITHUB_TOKEN|GitHub Models|models\.github|mistral-nemotron|nemotron-3-nano|GITHUB_TOKEN|GH_TOKEN|ACTIONS_ID_TOKEN_REQUEST|permissions|conflicted_files|pr_review_conflict_scope\.py|git add -A|git push|same.repository|live.head|allowed_files|allowlist|py_compile|actionlint' \
  || true

printf '%s\n' '== Conflict-scope helper =='
show 'scripts/ci/pr_review_conflict_scope.py'

printf '%s\n' '== Independent reviewer workflow identity =='
printf 'expected=%s\n' "$expected_reviewer_blob"
printf 'base=%s\n' "$(git rev-parse "${base}:.github/workflows/opencode-review-dispatch.yml")"
printf 'head=%s\n' "$(git rev-parse "${head}:.github/workflows/opencode-review-dispatch.yml")"
if git diff --quiet "$base" "$head" -- .github/workflows/opencode-review-dispatch.yml; then
  printf '%s\n' 'unchanged_from_base=true'
else
  printf '%s\n' 'unchanged_from_base=false'
fi

printf '%s\n' '== Prohibited operations in repair components =='
for path in \
  .github/workflows/clearfolio-hourly-review-repair.yml \
  .github/workflows/pr-review-fix-scheduler.yml \
  .github/workflows/pr-review-autofix.yml \
  scripts/ci/pr_review_fix_scheduler.py \
  scripts/ci/pr_review_conflict_scope.py
do
  printf '\n-- %s --\n' "$path"
  git show "${head}:${path}" |
    grep -n -E -i \
      'gh[[:space:]]+pr[[:space:]]+(merge|review)|gh[[:space:]]+release|pulls/.*/(merge|reviews)|mergePullRequest|enablePullRequestAutoMerge|branches/.+protection|rulesets|/merges' \
    || true
done

printf '%s\n' '== Exact-head named workflow runs =='
for run in \
  31069588915 31069588922 31069588960 31069588951 31069588912 \
  31069589012 31069589172 31069588926 31069588916
do
  gh api "repos/ContextualWisdomLab/.github/actions/runs/${run}" \
    --jq '[.id,.name,.status,.conclusion,.head_sha,.event] | `@tsv`'
done

Length of output: 43952


@seonghobae Formal review completed for exact head 2f16cca4aae2d11ccc928f8e03fdcbd97a96d5a2 against f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae.

I found no actionable finding in the requested scope.

Verified controls:

  • The Clearfolio caller is schedule-only. It runs at 23 * * * *.
  • The caller sets max_dispatches: "1" and retry_hours: "1".
  • The caller and reusable scheduler use single-flight concurrency.
  • The reusable scheduler remains product-neutral.
  • The scheduler accepts but ignores canonical_ref.
  • The scheduler validates job.workflow_repository, job.workflow_sha, job.workflow_ref, and job.workflow_file_path.
  • The scheduler checks out the validated immutable SHA. It verifies the SHA and workflow path before it runs the scheduler helper.
  • The OpenCode worker enables only nvidia-nim.
  • The primary model is nvidia-nim/mistralai/mistral-nemotron.
  • The helper model is nvidia-nim/nvidia/nemotron-3-nano-30b-a3b.
  • secrets.NVIDIA_NIM_API_KEY is bound only to the two OpenCode execution steps.
  • Both model steps fail when NVIDIA_NIM_API_KEY is absent.
  • Both model child processes remove GitHub credentials and Actions OIDC request credentials.
  • The agent permission maps deny non-file interactions.
  • The ordinary autofix path validates changed and untracked paths against the review allowlist.
  • The conflict path records Git’s NUL-delimited unresolved-path inventory after the base merge.
  • The conflict path snapshots the post-merge workspace before OpenCode runs.
  • The conflict path verifies the snapshot against the conflict allowlist before git add -A.
  • The conflict verifier rejects changes outside the allowlist, including creation, deletion, mode changes, symlink retargeting, malformed evidence, and non-normalized path aliases.
  • The worker checks the live pull-request head before each push.
  • The repair components contain no approval, pull-request merge, release, branch-protection, or ruleset operation.
  • .github/workflows/opencode-review-dispatch.yml is byte-identical at blob 83f6830d5c21a324b4dbcd4e5c21a07968994b81.
  • All nine named workflows completed successfully for this exact head.

This review does not constitute a qualifying independent non-author approval. Repository branch-protection requirements still apply.

⚠️ Action not completed

Review rate limited.

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.

@seonghobae
seonghobae dismissed stale reviews from opencode-agent[bot] and opencode-agent[bot] August 6, 2026 04:25

Dismissed as stale: the review is anchored to predecessor head 4d69c58. Exact current head 2f16cca removes the branch-selected manual dispatch entrypoint that caused the reproduced coverage failure, and all direct exact-head focused, security, and supply-chain workflows are successful. A fresh current-head review and independent approval remain required.

@opencode-agent
opencode-agent Bot disabled auto-merge August 6, 2026 04:25

Copy link
Copy Markdown
Contributor Author

@opencode-agent @cwl-noema-review

Please submit a formal GitHub pull-request review for exact head 2f16cca4aae2d11ccc928f8e03fdcbd97a96d5a2, not only a Conversation verdict. Every direct exact-head workflow is successful: Hourly NVIDIA NIM Review Repair 31069588915, Python Security 31069588922, Security Scan 31069588960, CodeQL PR 31069588951, SAST Semgrep 31069588912, Secret Scan 31069589012, OSV 31069589172, Scorecard 31069588926, and SBOM 31069588916; unresolved inline threads are zero.

Independently verify the schedule-only Clearfolio caller, one-hour cadence and retry floor, one-dispatch and single-flight bounds, immutable called-workflow/repository-dispatch source identity, NVIDIA_NIM_API_KEY-only model authentication, absence of COPILOT_GITHUB_TOKEN and GitHub Models fallback, missing-secret fail-closed behavior, strict secret scope, GitHub/OIDC credential stripping, file-only OpenCode permissions, exact-head/live-head/file-allowlist/syntax/conflict guards, byte-stable independent reviewer workflow, and the prohibition on approval, merge, release, or branch-protection weakening by the repair worker. Submit APPROVE only if no exact-head blocker remains; otherwise submit actionable REQUEST_CHANGES.

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@cwl-noema-review
@opencode-agent

Please review exact current head 2f16cca4aae2d11ccc928f8e03fdcbd97a96d5a2. All direct exact-head quality, security, supply-chain, 100% coverage/docstring, and focused NVIDIA-NIM scheduler checks are green. Review only; do not update the branch, approve through a non-independent identity, enable auto-merge, merge, release, or alter branch protection.

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown

@seonghobae I will review exact head 2f16cca4aae2d11ccc928f8e03fdcbd97a96d5a2 only. I will perform a read-only review and will not approve, update the branch, enable auto-merge, merge, release, or change branch protection.

⚠️ Action not completed

Review rate limited.

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.

Copy link
Copy Markdown
Contributor Author

@coderabbitai review
@opencode-agent @cwl-noema-review @strix review

Re-evaluate exact current head 2f16cca4aae2d11ccc928f8e03fdcbd97a96d5a2 only against protected main at f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae. Every direct exact-head workflow is successful: Hourly NVIDIA NIM Review Repair 31069588915, Python Security 31069588922, Security Scan 31069588960, CodeQL PR 31069588951, SAST Semgrep 31069588912, Secret Scan 31069589012, OSV-Scanner PR 31069589172, Scorecard PR 31069588926, and SBOM Generation 31069588916; inline review threads are zero. Prior OpenCode reviews on 4d69c58c403c1db07a9c39d5c5180c5b6b0aae15, rate-limit notices, synthetic merge evidence, and wrapper-only checks are stale or insufficient.

Perform read-only review with no branch write, auto-merge, merge, release, approval synthesis, reviewer-identity change, or protection change. Submit an exact-head formal verdict and, only if reviewer independence and repository policy genuinely permit it, a qualifying non-author approval. Otherwise state the remaining external gate precisely.

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown

Your plan includes PR reviews subject to rate limits. More reviews will be available in 12 minutes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants