fix(disksage): accept readiness schema v4 - #1239
Conversation
📝 WalkthroughWalkthroughThe verifier success protocol accepts schema versions 3 and 4. Tests cover both supported versions and reject version 5. Documentation defines the compatibility policy and validation rules. ChangesVerifier protocol update
Estimated code review effort: 2 (Simple) | ~10 minutes 🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@backend/scripts/disksage_copy_readiness_handoff.py`:
- Line 358: Update the schema validation in
backend/scripts/disksage_copy_readiness_handoff.py at lines 358-358 to accept
both schema versions 3 and 4, applying the appropriate validation for each.
Update the rejection test in
backend/tests/test_disksage_copy_readiness_handoff.py at lines 714-714 to assert
successful handling of version 3, and use a different unsupported version to
preserve rejection coverage.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 7b1e8841-56c2-4094-b77a-57e54fdd6e57
📒 Files selected for processing (2)
backend/scripts/disksage_copy_readiness_handoff.pybackend/tests/test_disksage_copy_readiness_handoff.py
|
PR governance metadata gate is not ready for
|
|
@cwl-noema-review please independently review the final exact head once the compatibility materializer completes. The required contract is explicit: accept deployed DiskSage schema v3 and WAL-consistent schema v4, reject unsupported versions, retain all bounded transport and fail-closed validations. |
|
@coderabbitai review Please review the exact current head |
|
@coderabbitai review Please review exact current head |
🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
expected='702623e80a4eebcef29dbd576c88cc0081783cde'
actual="$(git rev-parse HEAD)"
printf 'HEAD=%s\nEXPECTED=%s\n' "$actual" "$expected"
git status --short
git show --no-ext-diff --format=fuller --stat "$expected"
base="$(git merge-base "$expected" origin/develop 2>/dev/null || git merge-base "$expected" develop)"
printf 'MERGE_BASE=%s\n' "$base"
git diff --no-ext-diff --unified=80 "$base" "$expected" -- \
backend/scripts/disksage_copy_readiness_handoff.py \
backend/tests/test_disksage_copy_readiness_handoff.py
printf '\n=== OUTLINE: verifier ===\n'
ast-grep outline backend/scripts/disksage_copy_readiness_handoff.py --items all
printf '\n=== OUTLINE: tests ===\n'
ast-grep outline backend/tests/test_disksage_copy_readiness_handoff.py --items all
printf '\n=== VERSION AND VALIDATION REFERENCES ===\n'
rg -n -C 5 -e 'schema_version|schema.*version|version.*schema|artifact|status|path|readiness|fail' \
backend/scripts/disksage_copy_readiness_handoff.py \
backend/tests/test_disksage_copy_readiness_handoff.py
printf '\n=== PR AND CHECK STATUS ===\n'
gh pr view 1239 --repo ContextualWisdomLab/naruon \
--json number,headRefOid,baseRefName,mergeStateStatus,reviewDecision,statusCheckRollupLength of output: 129874 🏁 Script executed: #!/bin/bash
set -euo pipefail
repo='ContextualWisdomLab/naruon'
head='702623e80a4eebcef29dbd576c88cc0081783cde'
printf '%s\n' '=== VERSION POLICY DOCUMENT ==='
git show "${head}:docs/integrations/disksage-readiness-version-policy.md"
printf '%s\n' '=== ALL PR FILES AGAINST DEVELOP ==='
base="$(git merge-base "$head" origin/develop 2>/dev/null || git merge-base "$head" develop)"
git diff --name-status "$base" "$head"
printf '%s\n' '=== FAILED STRIX JOB ==='
gh run view 30896676326 --repo "$repo" --job 91951188096 --log-failed || true
printf '%s\n' '=== FAILED METADATA-ONLY GATE ==='
gh run view 30896674337 --repo "$repo" --job 91953742531 --log-failed || true
printf '%s\n' '=== BRANCH PROTECTION ==='
gh api "repos/${repo}/branches/develop/protection/required_status_checks" 2>&1 || true
printf '%s\n' '=== REPOSITORY RULESETS ==='
gh api "repos/${repo}/rulesets?includes_parents=true" 2>&1 || trueLength of output: 4464 🏁 Script executed: #!/bin/bash
set -euo pipefail
repo='ContextualWisdomLab/naruon'
head='702623e80a4eebcef29dbd576c88cc0081783cde'
printf '%s\n' '=== ACTIVE RULESET DETAILS ==='
for ruleset_id in 18156473 17214772 15586698; do
printf '\n--- ruleset %s ---\n' "$ruleset_id"
gh api "repos/${repo}/rulesets/${ruleset_id}" || true
done
printf '%s\n' '=== FAILED CHECK RUNS ON EXACT HEAD ==='
gh api \
"repos/${repo}/commits/${head}/check-runs?per_page=100" \
--jq '.check_runs[]
| select(.conclusion == "failure")
| {id, name, status, conclusion, details_url, started_at, completed_at, output}' || true
printf '%s\n' '=== CHECK-RUN ANNOTATIONS ==='
for check_id in $(
gh api "repos/${repo}/commits/${head}/check-runs?per_page=100" \
--jq '.check_runs[] | select(.conclusion == "failure") | .id' 2>/dev/null || true
); do
printf '\n--- check run %s ---\n' "$check_id"
gh api "repos/${repo}/check-runs/${check_id}/annotations?per_page=100" || true
doneLength of output: 7153
The implementation accepts exactly schema versions I found no blocking code defect. I cannot approve this PR yet. The required ✅ Action performedReview finished.
|
|
@opencode-agent Please review exact head |
|
@cwl-noema-review Please independently review exact current head |
|
@opencode-agent @cwl-noema-review Please review exact current head |
|
@opencode-agent @cwl-noema-review @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
repo='ContextualWisdomLab/naruon'
head='07b4bf267cf2f10bd4664652807ec981b7f180aa'
printf '%s\n' '=== EXACT HEAD ==='
actual="$(git rev-parse HEAD)"
printf 'checked_out=%s\nrequested=%s\n' "$actual" "$head"
if [ "$actual" != "$head" ]; then
printf '%s\n' 'ERROR: checked-out revision does not match the requested revision.'
exit 0
fi
git status --short
printf '%s\n' '=== DIFF AGAINST CURRENT DEVELOP ==='
git fetch --quiet origin develop
base="$(git merge-base "$head" origin/develop)"
printf 'merge_base=%s\norigin_develop=%s\n' "$base" "$(git rev-parse origin/develop)"
git diff --no-ext-diff --name-status "$base" "$head"
git diff --no-ext-diff --unified=100 "$base" "$head" -- \
backend/scripts/disksage_copy_readiness_handoff.py \
backend/tests/test_disksage_copy_readiness_handoff.py \
docs/integrations/disksage-readiness-version-policy.md
printf '%s\n' '=== RELEVANT FILE OUTLINES ==='
ast-grep outline backend/scripts/disksage_copy_readiness_handoff.py --items all
ast-grep outline backend/tests/test_disksage_copy_readiness_handoff.py --items all
printf '%s\n' '=== VALIDATION, TEST, AND POLICY CONTEXT ==='
rg -n -C 14 \
-e 'schema_version|SUPPORTED|version|duplicate|bounded|stdout|stderr|artifact|integrity|status|path|false.claim|cloud|evict|digest|verifier|allowlist' \
backend/scripts/disksage_copy_readiness_handoff.py \
backend/tests/test_disksage_copy_readiness_handoff.py \
docs/integrations/disksage-readiness-version-policy.md
printf '%s\n' '=== PR, EXACT-HEAD CHECKS, AND THREADS ==='
gh pr view 1239 --repo "$repo" \
--json headRefOid,baseRefName,mergeStateStatus,reviewDecision,statusCheckRollup
gh api "repos/${repo}/commits/${head}/check-runs?per_page=100" --paginate \
--jq '.check_runs[] | {name,status,conclusion,details_url,started_at,completed_at}'
gh api graphql -F owner='ContextualWisdomLab' -F name='naruon' -F number=1239 -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 } body } }
}
}
}
}
}' --jq '.data.repository.pullRequest.reviewThreads.nodes[]
| select(.isResolved == false)
| {author: .comments.nodes[0].author.login, body: .comments.nodes[0].body}'
printf '%s\n' '=== PROTECTION AND RULESETS ==='
gh api "repos/${repo}/branches/develop/protection/required_status_checks" 2>&1 || true
gh api "repos/${repo}/rulesets?includes_parents=true" \
--jq '.[] | {id,name,enforcement,target,conditions,rules}' 2>&1 || trueLength of output: 196234
I found no blocking code defect.
The change preserves fail-closed validation for bounded stdout and stderr, duplicate JSON members, exact field allowlisting, verifier provenance, path handling, provider and status allowlists, artifact fingerprints, and false cloud-write or source-eviction claims. The scope contains the expected three files. The compatibility policy matches the implementation. The current successful I did not execute repository code because the inspection sandbox does not run repository programs. APPROVE. [approve] You are interacting with an AI system. |
|
Review-only exact-head dispatch for |
|
@cwl-noema-review Independently 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
repo='ContextualWisdomLab/naruon'
head='07b4bf267cf2f10bd4664652807ec981b7f180aa'
printf '%s\n' '=== EXACT COMMIT ==='
actual="$(git rev-parse HEAD)"
printf 'checked_out=%s\nrequested=%s\n' "$actual" "$head"
if [ "$actual" != "$head" ]; then
printf '%s\n' 'ERROR: checked-out revision does not match the requested revision.'
exit 0
fi
git status --short
printf '%s\n' '=== DIFF AGAINST DEVELOP ==='
base="$(git merge-base "$head" origin/develop 2>/dev/null || git merge-base "$head" develop)"
printf 'merge_base=%s\n' "$base"
git diff --no-ext-diff --name-status "$base" "$head"
git diff --no-ext-diff --unified=100 "$base" "$head" -- \
backend/scripts/disksage_copy_readiness_handoff.py \
backend/tests/test_disksage_copy_readiness_handoff.py \
docs/integrations/disksage-readiness-version-policy.md
printf '%s\n' '=== FILE STRUCTURE ==='
ast-grep outline backend/scripts/disksage_copy_readiness_handoff.py --items all
ast-grep outline backend/tests/test_disksage_copy_readiness_handoff.py --items all
printf '%s\n' '=== VALIDATION, TEST, AND POLICY CONTEXT ==='
rg -n -C 16 \
-e 'schema_version|SUPPORTED|version|duplicate|bounded|stdout|stderr|artifact|integrity|status|path|false.claim|cloud|evict|digest|verifier|allowlist' \
backend/scripts/disksage_copy_readiness_handoff.py \
backend/tests/test_disksage_copy_readiness_handoff.py \
docs/integrations/disksage-readiness-version-policy.md
printf '%s\n' '=== PR, CHECKS, AND REVIEW THREADS ==='
gh pr view 1239 --repo "$repo" \
--json headRefOid,baseRefName,mergeStateStatus,reviewDecision,statusCheckRollup
gh api "repos/${repo}/commits/${head}/check-runs?per_page=100" --paginate \
--jq '.check_runs[] | {name,status,conclusion,details_url,started_at,completed_at}'
gh api graphql -F owner='ContextualWisdomLab' -F name='naruon' -F number=1239 -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 } body } }
}
}
}
}
}' --jq '.data.repository.pullRequest.reviewThreads.nodes[]
| select(.isResolved == false)
| {author: .comments.nodes[0].author.login, body: .comments.nodes[0].body}'Length of output: 195569
I found no blocking code defect. The final scope contains the expected three files.
The change retains fail-closed validation for bounded stdout and stderr, duplicate JSON members, exact field allowlisting, verifier provenance, absolute path handling, provider and readiness-state allowlists, artifact fingerprint format, and false safety-sensitive claims. The compatibility policy matches the implementation. The latest visible checks on this commit succeeded. This includes APPROVE. [approve] You are interacting with an AI system. |
|
@coderabbitai review Please review exact current head |
|
@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
repo='ContextualWisdomLab/naruon'
head='07b4bf267cf2f10bd4664652807ec981b7f180aa'
printf '%s\n' '=== EXACT COMMIT ==='
actual="$(git rev-parse HEAD)"
printf 'checked_out=%s\nrequested=%s\n' "$actual" "$head"
if [ "$actual" != "$head" ]; then
printf '%s\n' 'ERROR: checked-out revision does not match the requested revision.'
exit 0
fi
git status --short
printf '%s\n' '=== DIFF SCOPE AGAINST CURRENT DEVELOP ==='
git fetch --quiet origin develop
base="$(git merge-base "$head" origin/develop)"
printf 'merge_base=%s\norigin_develop=%s\n' "$base" "$(git rev-parse origin/develop)"
git diff --no-ext-diff --name-status "$base" "$head"
git diff --no-ext-diff --unified=120 "$base" "$head" -- \
backend/scripts/disksage_copy_readiness_handoff.py \
backend/tests/test_disksage_copy_readiness_handoff.py \
docs/integrations/disksage-readiness-version-policy.md
printf '%s\n' '=== SOURCE MAPS ==='
ast-grep outline backend/scripts/disksage_copy_readiness_handoff.py --items all
ast-grep outline backend/tests/test_disksage_copy_readiness_handoff.py --items all
printf '%s\n' '=== VALIDATOR, TEST, AND POLICY CONTEXT ==='
rg -n -C 18 \
-e 'schema_version|SUPPORTED|version|duplicate|bounded|stdout|stderr|artifact|integrity|status|path|false.claim|cloud|evict|digest|verifier|allowlist' \
backend/scripts/disksage_copy_readiness_handoff.py \
backend/tests/test_disksage_copy_readiness_handoff.py \
docs/integrations/disksage-readiness-version-policy.md
printf '%s\n' '=== PR AND EXACT-HEAD CHECK STATE ==='
gh pr view 1239 --repo "$repo" \
--json headRefOid,baseRefName,mergeStateStatus,reviewDecision,statusCheckRollup
gh api "repos/${repo}/commits/${head}/check-runs?per_page=100" --paginate \
--jq '.check_runs[] | {name,status,conclusion,details_url,started_at,completed_at}'
printf '%s\n' '=== UNRESOLVED REVIEW THREADS ==='
gh api graphql -F owner='ContextualWisdomLab' -F name='naruon' -F number=1239 -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 } body } }
}
}
}
}
}' --jq '.data.repository.pullRequest.reviewThreads.nodes[]
| select(.isResolved == false)
| {author: .comments.nodes[0].author.login, body: .comments.nodes[0].body}'Length of output: 198958
I found no blocking code defect.
The change retains fail-closed validation for bounded stdout and stderr, duplicate JSON member names, exact field allowlisting, verifier provenance, path handling, provider and readiness-state allowlists, artifact fingerprint format, and false cloud-write and source-eviction claims. The compatibility document matches the implementation. The final scope contains the expected three files. The current successful workflow executions include Application CI, Docker image validation, Bandit, Semgrep, Security Scan, Dependency Review, and Strix. An earlier APPROVE. [approve] You are interacting with an AI system. |
|
Review-only exact-head dispatch for |
|
@cwl-noema-review Independently review exact head |
|
Review-only exact-current-head dispatch. Do not update branches or merge. Reconfirm DiskSage readiness schema v3/v4 compatibility, unsupported-version fail-closed behavior, focused regression coverage, and current-base scope. |
|
@cwl-noema-review Independently review the exact current head for protocol compatibility, bounded validation, unsupported-version rejection, and absence of unrelated changes. |
There was a problem hiding this comment.
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
successwith required evidence or explicit no-source not-applicable evidence. -
Regression test: Keep the approval branch checking
needs.coverage-evidence.result == successbefore 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 head07b4bf267cf2f10bd4664652807ec981b7f180aa. -
Head SHA:
07b4bf267cf2f10bd4664652807ec981b7f180aa -
Workflow run: 31043844667
-
Workflow attempt: 1
Coverage evidence
Coverage evidence job did not run or did not publish coverage evidence.
Changed-File Evidence Map
flowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Backend (2 files)"]
S1 --> I1["API and service runtime"]
I1 --> R1["Review risk: Backend (2 files)"]
R1 --> V1["backend tests"]
Evidence --> S2["Docs: disksage-readiness-version-policy.md"]
S2 --> I2["operator or user guidance"]
I2 --> R2["Review risk: Docs: disksage-readiness-version-policy.md"]
R2 --> V2["docs review"]
OpenCode Review Overview
Pull request overviewOpenCode cannot approve yet because required coverage evidence did not pass. Review outcome1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence
Coverage evidenceCoverage evidence job did not run or did not publish coverage evidence. Changed-File Evidence Mapflowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Backend (2 files)"]
S1 --> I1["API and service runtime"]
I1 --> R1["Review risk: Backend (2 files)"]
R1 --> V1["backend tests"]
Evidence --> S2["Docs: disksage-readiness-version-policy.md"]
S2 --> I2["operator or user guidance"]
I2 --> R2["Review risk: Docs: disksage-readiness-version-policy.md"]
R2 --> V2["docs review"]
|
|
Branch refreshed onto live |
There was a problem hiding this comment.
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
successwith required evidence or explicit no-source not-applicable evidence. -
Regression test: Keep the approval branch checking
needs.coverage-evidence.result == successbefore 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 head2ee2ce8a44250c44adc49e4535bc9a64699a15a5. -
Head SHA:
2ee2ce8a44250c44adc49e4535bc9a64699a15a5 -
Workflow run: 31080399240
-
Workflow attempt: 1
Coverage evidence
Coverage evidence job did not run or did not publish coverage evidence.
Changed-File Evidence Map
flowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Backend (2 files)"]
S1 --> I1["API and service runtime"]
I1 --> R1["Review risk: Backend (2 files)"]
R1 --> V1["backend tests"]
Evidence --> S2["Docs: disksage-readiness-version-policy.md"]
S2 --> I2["operator or user guidance"]
I2 --> R2["Review risk: Docs: disksage-readiness-version-policy.md"]
R2 --> V2["docs review"]
|
Review-only exact-head request for |
|
@cwl-noema-review Independently review exact head |
|
@opencode-agent @cwl-noema-review @coderabbitai review Review exact current head only. Verify DiskSage readiness schemas 3 and 4 are accepted, every unsupported version fails closed, and path/status/artifact-integrity/bounded-output/false-claim validation plus focused/full tests remain intact. |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
repo='ContextualWisdomLab/naruon'
printf '%s\n' '=== PR CURRENT HEAD ==='
pr_json="$(gh pr view 1239 --repo "$repo" \
--json headRefOid,baseRefName,mergeStateStatus,reviewDecision,statusCheckRollup)"
printf '%s\n' "$pr_json"
head="$(printf '%s\n' "$pr_json" | jq -r '.headRefOid')"
printf '%s\n' '=== CHECKED-OUT REVISION ==='
actual="$(git rev-parse HEAD)"
printf 'checked_out=%s\npr_current_head=%s\n' "$actual" "$head"
if [ "$actual" != "$head" ]; then
printf '%s\n' 'ERROR: checked-out revision does not equal the PR current head.'
exit 0
fi
git status --short
printf '%s\n' '=== DIFF SCOPE AGAINST CURRENT DEVELOP ==='
git fetch --quiet origin develop
base="$(git merge-base "$head" origin/develop)"
printf 'merge_base=%s\norigin_develop=%s\n' "$base" "$(git rev-parse origin/develop)"
git diff --no-ext-diff --name-status "$base" "$head"
git diff --no-ext-diff --unified=100 "$base" "$head" -- \
backend/scripts/disksage_copy_readiness_handoff.py \
backend/tests/test_disksage_copy_readiness_handoff.py \
docs/integrations/disksage-readiness-version-policy.md
printf '%s\n' '=== SOURCE AND TEST MAP ==='
ast-grep outline backend/scripts/disksage_copy_readiness_handoff.py --items all
ast-grep outline backend/tests/test_disksage_copy_readiness_handoff.py --items all
printf '%s\n' '=== VERSION, VALIDATION, AND TEST EVIDENCE ==='
rg -n -C 18 \
-e 'schema_version|SUPPORTED|version|duplicate|bounded|stdout|stderr|artifact|integrity|status|path|false.claim|cloud|evict|digest|verifier|allowlist' \
backend/scripts/disksage_copy_readiness_handoff.py \
backend/tests/test_disksage_copy_readiness_handoff.py \
docs/integrations/disksage-readiness-version-policy.md
printf '%s\n' '=== TEST CONFIGURATION REFERENCES ==='
rg -n -C 4 \
-e 'test_disksage_copy_readiness_handoff|pytest|disksage_copy_readiness_handoff' \
README.md pyproject.toml pytest.ini tox.ini setup.cfg Makefile .github 2>/dev/null || true
printf '%s\n' '=== CURRENT-HEAD NON-SUCCESS CHECKS ==='
gh api "repos/${repo}/commits/${head}/check-runs?per_page=100" --paginate \
--jq '.check_runs[]
| select(.status != "completed" or (.conclusion != "success" and .conclusion != "neutral" and .conclusion != "skipped"))
| {name,status,conclusion,details_url,started_at,completed_at}'
printf '%s\n' '=== UNRESOLVED REVIEW THREADS ==='
gh api graphql -F owner='ContextualWisdomLab' -F name='naruon' -F number=1239 -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 } body } }
}
}
}
}
}' --jq '.data.repository.pullRequest.reviewThreads.nodes[]
| select(.isResolved == false)
| {author: .comments.nodes[0].author.login, body: .comments.nodes[0].body}'Length of output: 169524 🏁 Script executed: #!/bin/bash
set -euo pipefail
repo='ContextualWisdomLab/naruon'
head='2ee2ce8a44250c44adc49e4535bc9a64699a15a5'
printf '%s\n' '=== FAILED METADATA GATE DETAILS ==='
gh api "repos/${repo}/commits/${head}/check-runs?per_page=100" --paginate \
--jq '.check_runs[]
| select(.name == "metadata-only gate evaluation" and .conclusion == "failure")
| {id,name,conclusion,details_url,output}'
check_id="$(
gh api "repos/${repo}/commits/${head}/check-runs?per_page=100" --paginate \
--jq -r '.check_runs[]
| select(.name == "metadata-only gate evaluation" and .conclusion == "failure")
| .id' | head -n 1
)"
if [ -n "$check_id" ]; then
printf '%s\n' '=== FAILED METADATA GATE ANNOTATIONS ==='
gh api "repos/${repo}/check-runs/${check_id}/annotations?per_page=100" --paginate || true
fi
printf '%s\n' '=== FAILED METADATA GATE LOG ==='
gh run view 31078062775 --repo "$repo" --job 92540448960 --log-failed 2>&1 || true
printf '%s\n' '=== DEVELOP BRANCH PROTECTION ==='
gh api "repos/${repo}/branches/develop/protection/required_status_checks" 2>&1 || true
printf '%s\n' '=== APPLICABLE REPOSITORY RULESETS ==='
gh api "repos/${repo}/rulesets?includes_parents=true" \
--jq '.[] | {id,name,enforcement,target,conditions,rules}' 2>&1 || true
printf '%s\n' '=== PULL-REQUEST REVIEW REQUIREMENTS ==='
gh pr view 1239 --repo "$repo" \
--json reviewDecision,mergeStateStatus,reviews,latestReviewsLength of output: 2249 🏁 Script executed: #!/bin/bash
set -euo pipefail
repo='ContextualWisdomLab/naruon'
printf '%s\n' '=== PULL-REQUEST REVIEW STATE ==='
gh pr view 1239 --repo "$repo" \
--json headRefOid,reviewDecision,mergeStateStatus,reviews,latestReviews
printf '%s\n' '=== DEVELOP BRANCH PROTECTION ==='
gh api "repos/${repo}/branches/develop/protection" 2>&1 || true
printf '%s\n' '=== REPOSITORY RULESETS ==='
gh api "repos/${repo}/rulesets?includes_parents=true" 2>&1 || trueLength of output: 12878
I found no blocking code defect.
The focused tests cover versions The change preserves the existing fail-closed controls for:
The PR scope contains the expected three files. The compatibility document matches the implementation. Application CI succeeded on this head. Its workflow runs the backend pytest suite. I did not execute repository code in the inspection sandbox. I cannot approve this PR yet. The current You are interacting with an AI system. |
|
@coderabbitai review Please review the exact live head only. Verify DiskSage readiness handoff accepts exactly schema versions 3 and 4, rejects all other versions without weakening status/path/artifact-integrity/bounded-output/false-claim validation, and keeps the patch limited to the focused producer-consumer compatibility boundary. Require current exact-head application, security, central review, coverage, and zero-thread evidence. Review only; do not update the branch, merge, release, or alter protections. |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
repo='ContextualWisdomLab/naruon'
pr_number='1239'
printf '%s\n' '=== CURRENT PR METADATA ==='
pr_json="$(gh pr view "$pr_number" --repo "$repo" \
--json headRefOid,baseRefName,mergeStateStatus,reviewDecision,statusCheckRollup)"
printf '%s\n' "$pr_json"
head="$(printf '%s\n' "$pr_json" | jq -r '.headRefOid')"
printf '%s\n' '=== CHECKED-OUT REVISION ==='
actual="$(git rev-parse HEAD)"
printf 'checked_out=%s\ncurrent_pr_head=%s\n' "$actual" "$head"
if [ "$actual" != "$head" ]; then
printf '%s\n' 'ERROR: checked-out revision does not equal the current PR head.'
exit 0
fi
git status --short
printf '%s\n' '=== SCOPE AGAINST CURRENT DEVELOP ==='
git fetch --quiet origin develop
base="$(git merge-base "$head" origin/develop)"
printf 'merge_base=%s\norigin_develop=%s\n' "$base" "$(git rev-parse origin/develop)"
git diff --no-ext-diff --name-status "$base" "$head"
git diff --no-ext-diff --unified=100 "$base" "$head" -- \
backend/scripts/disksage_copy_readiness_handoff.py \
backend/tests/test_disksage_copy_readiness_handoff.py \
docs/integrations/disksage-readiness-version-policy.md
printf '%s\n' '=== SOURCE MAP ==='
ast-grep outline backend/scripts/disksage_copy_readiness_handoff.py --items all
ast-grep outline backend/tests/test_disksage_copy_readiness_handoff.py --items all
printf '%s\n' '=== PROTOCOL, VALIDATION, TEST, AND POLICY EVIDENCE ==='
rg -n -C 18 \
-e 'schema_version|SUPPORTED|version|duplicate|bounded|stdout|stderr|artifact|integrity|status|path|false.claim|cloud|evict|digest|verifier|allowlist|coverage|docstring' \
backend/scripts/disksage_copy_readiness_handoff.py \
backend/tests/test_disksage_copy_readiness_handoff.py \
docs/integrations/disksage-readiness-version-policy.md
printf '%s\n' '=== CURRENT-HEAD CHECKS ==='
gh api "repos/${repo}/commits/${head}/check-runs?per_page=100" --paginate \
--jq '.check_runs[] | {name,status,conclusion,details_url,started_at,completed_at}'
printf '%s\n' '=== NON-SUCCESS CURRENT-HEAD CHECKS ==='
gh api "repos/${repo}/commits/${head}/check-runs?per_page=100" --paginate \
--jq '.check_runs[]
| select(.status != "completed" or (.conclusion != "success" and .conclusion != "neutral" and .conclusion != "skipped"))
| {name,status,conclusion,details_url,output}'
printf '%s\n' '=== CURRENT REVIEWS AND UNRESOLVED THREADS ==='
gh pr view "$pr_number" --repo "$repo" --json reviews,latestReviews,reviewDecision,mergeStateStatus
gh api graphql -F owner='ContextualWisdomLab' -F name='naruon' -F number="$pr_number" -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 } body path line } }
}
}
}
}
}' --jq '.data.repository.pullRequest.reviewThreads.nodes[]
| select(.isResolved == false)
| {author: .comments.nodes[0].author.login, path: .comments.nodes[0].path, line: .comments.nodes[0].line, body: .comments.nodes[0].body}'Length of output: 189911
I found no blocking code defect.
The focused tests accept versions The change preserves the fail-closed controls for:
The diff contains only the requested three files. The compatibility document matches the implementation. Application CI, security checks, I cannot approve this PR yet. The current You are interacting with an AI system. |
There was a problem hiding this comment.
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
successwith required evidence or explicit no-source not-applicable evidence. -
Regression test: Keep the approval branch checking
needs.coverage-evidence.result == successbefore 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 head695b4c362e33dd6f49bc27bcb03ae097efb76f4c. -
Head SHA:
695b4c362e33dd6f49bc27bcb03ae097efb76f4c -
Workflow run: 31193462495
-
Workflow attempt: 1
Coverage evidence
Coverage evidence job did not run or did not publish coverage evidence.
Changed-File Evidence Map
flowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Backend (2 files)"]
S1 --> I1["API and service runtime"]
I1 --> R1["Review risk: Backend (2 files)"]
R1 --> V1["backend tests"]
Evidence --> S2["Docs: disksage-readiness-version-policy.md"]
S2 --> I2["operator or user guidance"]
I2 --> R2["Review risk: Docs: disksage-readiness-version-policy.md"]
R2 --> V2["docs review"]
|
Superseded by protected |
Summary
developand require fresh exact-head coverage/review evidence.Compatibility boundary
Schema v4 extends the producer contract with WAL-consistency evidence, while schema v3 remains deployed and valid. Naruon accepts exactly versions 3 and 4 and fails closed for every other protocol version.
Verification gate
The repository-local Application CI, Security Scan, Semgrep, Bandit, Dependency Review, and container checks succeeded on head
07b4bf267cf2f10bd4664652807ec981b7f180aa. The current OpenCode request-changes verdict reports missing central coverage evidence rather than a product-code defect. Merge remains prohibited until the branch is refreshed to livedevelop, the central coverage path produces same-head success, a qualifying independent approval is attached to that exact head, and every protection rule passes.