fix(automation): run hourly NVIDIA NIM review repair - #782
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
📝 WalkthroughWalkthroughClearfolio 시간별 호출자와 재사용 스케줄러를 구성했습니다. 스케줄러는 호출 워크플로의 저장소, 파일, SHA 및 체크아웃 결과를 검증합니다. 자동수정은 NVIDIA NIM, 허용 경로 목록 및 작업 트리 스냅샷을 사용합니다. Changes시간별 리뷰 복구 흐름
Estimated code review effort: 5 (Critical) | ~120 minutes Possibly related issues
Possibly related PRs
Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
@coderabbitai review @opencode-agent @cwl-noema-review Independently review exact current head Verify the one-hour cadence and retry floor, one-dispatch/single-flight bounds, immutable called-workflow and repository-dispatch source binding, |
|
@opencode-agent @cwl-noema-review @coderabbitai review Review exact current head |
🧩 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
doneLength 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
doneLength of output: 156113 🤖 web_search executed:
Length of output: 13390
I found no actionable findings in the requested scope. Verified items:
GitHub documents the This review covers current PR I do not issue approval. Approval must remain subject to the required independent reviewer and branch-protection policy.
|
|
@opencode-agent @cwl-noema-review @coderabbitai review Review exact current head |
|
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
|
|
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 || trueLength 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'
doneLength 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
doneLength of output: 39579
I verified commit You are interacting with an AI system. |
|
@opencode-agent @cwl-noema-review @coderabbitai review Please review exact head |
|
@coderabbitai review Please review exact current head |
|
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
doneLength 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
doneLength of output: 166782
High — Conflict resolution does not enforce its file boundaryIn The OpenCode agent has An unrelated model edit can therefore be committed during conflict resolution. Before I verified the following controls at 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. |
|
@opencode-agent Please independently review exact current head |
|
@cwl-noema-review Please perform a second independent exact-head review of |
|
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
doneLength 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
doneLength of output: 86050
I reviewed exact head 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 The permanent contract gate and all nine listed direct workflows completed successfully for this exact head. One blocking finding remains:
I cannot approve while this write-capable path remains unbounded. You are interacting with an AI system. |
|
@opencode-agent review Review exact current head |
Pull request was converted to draft
|
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
doneLength 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
doneLength of output: 245059
I reviewed only commit High — Conflict resolution does not enforce its file boundaryIn The OpenCode agent has An OpenCode conflict-resolution run can therefore modify an unrelated path, and the workflow can stage and push that modification. Before I verified these controls at the requested commit:
I cannot approve while the conflict-resolution write path remains unbounded. You are interacting with an AI system. |
|
/oc Refetch and abort without writing unless PR #782 is still Draft on branch RCA: exact-head Hourly NVIDIA NIM Review Repair and Strix runs fail after the intentional RED commit Implement the smallest secure GREEN vertical slice, test-first, without weakening any review, credential, path, check, or branch-protection boundary:
Verification: first run the four currently failing tests in |
|
@coderabbitai autofix Apply the remaining exact-current-head RCA scheduler repairs directly to branch
Run the focused RCA contracts first, then the complete Hourly NVIDIA NIM and Strix suites, preserving 100% production statement/branch/docstring gates. Keep the PR Draft and do not merge. |
|
Autofix skipped. No unresolved CodeRabbit review comments with fix instructions found. |
|
/oc Refetch and abort without writing unless PR #782 is still Draft, open, mergeable, based on protected RCA on exact-head runs Implement only the remaining secure GREEN slice. Preserve the already-green
Verification order: run the two current exact failures first; then all focused scheduler/context/collector tests; |
|
@opencode-agent address Execute the bounded exact-head GREEN repair specified in the immediately preceding maintainer instruction, issue comment |
|
Exact-current-head review request for The hourly scheduler now performs exact-head failed-check classification, trusted redacted evidence collection, RCA, materially distinct remediation enumeration, feasibility checks against actual writer authority/credential/path/dependency/verifiability boundaries, minimal reversible repair, and exact-head revalidation. All current-head Checks are successful and active inline threads are resolved. Review this unchanged head read-only. Preserve independent reviewer identities and the existing credential chain; do not update the branch, synthesize approval, or bypass protection. @coderabbitai review |
seonghobae
left a comment
There was a problem hiding this comment.
Exact-current-head review request for 471c6491ff3383be2e4ec778272df8d9dbf16260 over protected base 6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba.
The hourly RCA and remediation-feasibility runtime is complete. Exact-head Hourly NVIDIA NIM and Strix gates succeed; 1,108 tests plus 16 subtests pass; both production helpers have 100% statement and branch coverage and 100% docstrings; security, CodeQL, Semgrep, OSV, Scorecard, Secret Scan, and SBOM succeed; unresolved inline threads are zero.
Review read-only. Preserve reviewer identities and the existing credential chain. Do not update the branch, synthesize author approval, or bypass protection.
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
repo='ContextualWisdomLab/.github'
pr='782'
expected_head='471c6491ff3383be2e4ec778272df8d9dbf16260'
expected_base='6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba'
echo '== Live pull request identity =='
pr_json="$(gh api "repos/${repo}/pulls/${pr}")"
printf '%s\n' "$pr_json" | jq '{
number, state, draft,
head_sha: .head.sha, head_ref: .head.ref,
base_sha: .base.sha, base_ref: .base.ref,
mergeable, mergeable_state
}'
head_sha="$(printf '%s\n' "$pr_json" | jq -r '.head.sha')"
base_sha="$(printf '%s\n' "$pr_json" | jq -r '.base.sha')"
printf 'expected_head=%s\nlive_head=%s\nexpected_base=%s\nlive_base=%s\n' \
"$expected_head" "$head_sha" "$expected_base" "$base_sha"
if [ "$head_sha" != "$expected_head" ] || [ "$base_sha" != "$expected_base" ]; then
echo 'STOP: live pull request identity differs from the requested review identity.'
exit 0
fi
echo '== Commit, changed paths, and whitespace =='
git show -s --format='head=%H%nparents=%P%nsubject=%s' "$head_sha"
git diff --check "$base_sha" "$head_sha"
git diff --stat "$base_sha" "$head_sha"
git diff --name-status "$base_sha" "$head_sha"
echo '== Exact-head check runs that are nonterminal or unsuccessful =='
gh api "repos/${repo}/commits/${head_sha}/check-runs?per_page=100" --paginate \
--jq '.check_runs[]
| select(.status != "completed" or
(.conclusion != "success" and .conclusion != "neutral" and .conclusion != "skipped"))
| [.name, .status, (.conclusion // "null"), .app.slug, .details_url] | `@tsv`' \
| sort || true
echo '== Exact-head actions runs =='
gh api "repos/${repo}/actions/runs?head_sha=${head_sha}&per_page=100" --paginate \
--jq '.workflow_runs[]
| [.id, .name, .status, (.conclusion // "null"), .event, .html_url] | `@tsv`' \
| sort -n
echo '== Unresolved review threads =='
gh api graphql \
-F owner='ContextualWisdomLab' -F name='.github' -F number="$pr" \
-f query='
query($owner:String!, $name:String!, $number:Int!) {
repository(owner:$owner,name:$name) {
pullRequest(number:$number) {
reviewThreads(first:100) {
nodes {
isResolved
comments(first:1) { nodes { author { login } path originalLine } }
}
}
}
}
}' \
--jq '
[.data.repository.pullRequest.reviewThreads.nodes[] | select(.isResolved == false)] as $items |
"unresolved_count=\($items|length)",
($items[] | [.comments.nodes[0].author.login, (.comments.nodes[0].path // ""), (.comments.nodes[0].originalLine|tostring)] | `@tsv`)
'
echo '== Candidate source maps =='
for f in \
scripts/ci/pr_review_fix_scheduler.py \
scripts/ci/pr_review_autofix_context.py \
scripts/ci/collect_failed_check_evidence.sh \
.github/workflows/pr-review-autofix.yml \
.github/workflows/pr-review-fix-scheduler.yml \
.github/workflows/hourly-nvidia-nim-review-repair.yml \
docs/automation/hourly-review-repair.md \
CHANGELOG.md
do
if [ -f "$f" ]; then
echo "--- $f"
nl -ba "$f"
fi
done
echo '== Changed test and script candidates =='
fd -HI -t f . tests scripts 2>/dev/null \
| grep -E '(pr_review_fix_scheduler|pr_review_autofix_context|failed_check|hourly.*repair|strix)' \
| sort
echo '== Security-sensitive and RCA flow references =='
git grep -n -I -E \
'needs_rca_repair|repair_mode|failed-check-evidence|collect_failed_check_evidence|\
MUTATION_CREDENTIAL_AVAILABLE|NVIDIA_NIM_API_KEY|COPILOT_GITHUB_TOKEN|\
GITHUB_TOKEN|GH_TOKEN|ACTIONS_ID_TOKEN_REQUEST_(TOKEN|URL)|\
repository_dispatch|workflow_(repository|sha|ref|file_path)|\
gh pr (merge|review)|gh release|branches/.+protection' \
"$head_sha" -- .github/workflows scripts/ci tests docs CHANGELOG.md || true
echo '== Independent reviewer workflow identity =='
printf 'base_blob='
git rev-parse "${base_sha}:.github/workflows/opencode-review-dispatch.yml"
printf 'head_blob='
git rev-parse "${head_sha}:.github/workflows/opencode-review-dispatch.yml"
if git diff --no-ext-diff --quiet "$base_sha" "$head_sha" -- \
.github/workflows/opencode-review-dispatch.yml; then
echo 'reviewer_workflow_diff=none'
else
echo 'reviewer_workflow_diff=present'
fiLength of output: 4888
The live head changed before inspection completed:
The PR remains Draft and open. GitHub reports Please request a new review for the live head. I did not modify, approve, merge, release, or change protection. You are interacting with an AI system. |
|
|
||
| - Added an APA 7 doctoring record for conflict-control evidence isolation, including the Strix-reported trust-boundary failure, test-first remediation, canonical-path rule, operator contract, rollback, MITRE CWE-22, and current GitHub Actions secure-use guidance. | ||
| - Added operator and APA 7 doctoring records for the hourly cadence, immutable source identity, NVIDIA NIM provider and secret boundary, high-reasoning Mistral Small 4 writer, model-process credential isolation, modular MSA ownership, product-specific caller activation, verification contract, and rollback. | ||
| - Added the DiskSage caller doctoring record covering the unbounded-loop RCA, remediation-feasibility gate, non-cancelling single-flight policy, two-hour retry rationale, explicit credential boundary, standalone/MSA compatibility, verification contract, rollback, and APA 7th primary references. |
Purpose
Activate a protected one-hour Clearfolio review → RCA → realistic repair → exact-head revalidation loop while preserving the independent reviewer workflow, its credential system, and product-neutral reuse by other ContextualWisdomLab services.
Exact current identity
9d2a82ae184a18c32339def16ea4097681108482main:6eb06cdd08c79a06f7b390069d4ffa49e2eb7dbaEvery check, review, approval, and comment anchored to an earlier head is historical only.
Hourly product caller
clearfolio-hourly-review-repair.ymlruns at minute 23 of every hour and calls the central reusable scheduler with:The product caller has read-only workflow permissions, product-specific single-flight concurrency, explicit scheduler secret mapping, and no
secrets: inheritor direct model credential binding. The shared scheduler remains product-neutral and can be reused by other CWL repositories without copying privileged implementation.RCA and realistic-remediation contract
The scheduler classifies a candidate as review feedback, failed-check RCA, or merge-conflict repair. Before any edit, the worker must:
Queued reviews and checks remain merge blockers, but their latency is not treated as a reason to invent a patch or stop the broader loop. The next bounded eligible PR or buyer-visible product gap can still be processed.
Evidence and write boundary
repair_mode..github/andscripts/ci/are excluded from model-derived edit authority..gitand.git/*; model subprocesses receive neither GitHub write credentials nor Actions OIDC request credentials.github.tokenremains read-only. Mutation requiresPR_REVIEW_MERGE_TOKEN,OPENCODE_APPROVE_TOKEN, or the short-lived OpenCode GitHub App token exchanged from OIDC.NVIDIA_NIM_API_KEY;COPILOT_GITHUB_TOKENand GitHub tokens are not model credentials.Exact-head verification
For
9d2a82ae184a18c32339def16ea4097681108482:31259638623: success;31259638593: success;Both independent exact-head suites report:
1,100 passed, 16 subtests passed;scripts/ci/pr_review_autofix_context.py: 215/215 statements and 92/92 branches, 100%;scripts/ci/pr_review_conflict_scope.py: 226/226 statements and 64/64 branches, 100%;Current inline threads are resolved or outdated. No qualifying independent non-author formal
APPROVEDreview is anchored to this exact head.Activation and merge gate
Scheduled workflows execute only from protected
main; therefore the production heartbeat is not active while this PR remains unmerged. Keep the PR Draft. Merge only after a fresh exact-head automated review, a qualifying independent non-author approval, zero unresolved valid findings, all required checks, and branch protection succeed without bypass. Pending, queued, cancelled, skipped-required, neutral-required, absent, stale-head, status-only, author-only, or synthetic evidence is not acceptance.Documentation
docs/automation/hourly-review-repair.mddocs/doctoring/hourly-nvidia-nim-autofix.mddocs/doctoring/clearfolio-hourly-review-caller.mddocs/doctoring/conflict-control-evidence-isolation.mdCHANGELOG.mdSupersedes closed predecessor #779 only after protected merge and accepted-main verification.