security: canonicalize public forbidden-root authority - #62
Conversation
|
Warning Review limit reached
Next review available in: 15 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the 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 configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (5)
Comment |
|
@opencode-agent Implement the bounded GREEN repair for exact current test-only head The immutable RED history is valid:
Apply only the minimal root-cause fix and documentation in these paths:
Required implementation:
The focused implementation has already been independently rehearsed against the exact merged package: all Do not modify |
|
@coderabbitai review Review exact current head |
|
|
|
@coderabbitai review Retry the exact-head review for |
|
|
|
@coderabbitai review Please review the unchanged exact current head |
|
|
|
@coderabbitai review Please perform a complete review of unchanged exact current head |
|
|
|
@coderabbitai review Review exact current head |
|
|
|
@coderabbitai review Review only exact current head |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
base='10d0c51daf2ad278d66f43be479df8cf6b08ba6d'
head='13cd59b5d0307f1a4dc1e4ffe777ed31b878c657'
printf '%s\n' '== Checked-out commit =='
git rev-parse HEAD
printf '%s\n' '== Requested commits =='
git show -s --format='%H%n%P%n%s' "$base" "$head"
printf '%s\n' '== Base ancestry =='
git merge-base --is-ancestor "$base" "$head" && echo 'base-is-ancestor=true'
printf '%s\n' '== Changed paths =='
git diff --name-status "$base" "$head"
printf '%s\n' '== Diff stat =='
git diff --stat "$base" "$head"
printf '%s\n' '== release_evidence outline =='
ast-grep outline src/egressweave/release_evidence.py --items all --view expanded
printf '%s\n' '== Relevant writer and helper references =='
rg -n -C 8 --glob 'src/egressweave/release_evidence.py' \
'def (_require_canonical_evidence_root|write_evidence_manifest)|forbidden_root|contain|fsync|open\(' \
src/egressweave/release_evidence.py
printf '%s\n' '== Exact diff =='
git diff --find-renames --find-copies --unified=80 "$base" "$head" -- \
src/egressweave/release_evidence.py \
tests/test_sealed_release_evidence_forbidden_root.py \
docs/sealed-release-evidence.md \
CHANGELOG.mdLength of output: 49156 🏁 Script executed: #!/bin/bash
set -euo pipefail
printf '%s\n' '== Canonical-root and writer implementation =='
nl -ba src/egressweave/release_evidence.py | sed -n '135,165p;605,715p'
printf '%s\n' '== Public writer call sites =='
rg -n -C 5 --glob '*.py' \
'\bwrite_evidence_manifest\s*\(' \
src tests
printf '%s\n' '== Relevant test files =='
fd -t f 'test_sealed_release_evidence.*\.py$' tests | sort
printf '%s\n' '== Output-boundary test structure =='
ast-grep outline tests/test_sealed_release_evidence_output_boundary.py --items all --view expanded
printf '%s\n' '== Output-boundary containment and writer tests =='
rg -n -C 12 --glob 'test_sealed_release_evidence*.py' \
'(write_evidence_manifest|forbidden_root|output.*(inside|outside)|symlink|fsync|parent)' \
tests
printf '%s\n' '== Documentation residual-race references =='
rg -n -C 4 'CWE-59|CWE-367|APA|race|TOCTOU|Time.of.check' \
docs/sealed-release-evidence.md CHANGELOG.mdLength of output: 1330 🏁 Script executed: #!/bin/bash
set -u
echo '== Canonical-root and writer implementation =='
sed -n '135,165p;605,715p' src/egressweave/release_evidence.py
echo '== Public writer call sites =='
rg -n -C 5 --glob '*.py' '\bwrite_evidence_manifest\s*\(' src tests || true
echo '== Relevant test files =='
find tests -type f -name 'test_sealed_release_evidence*.py' -print | sort
echo '== Output-boundary test structure =='
ast-grep outline tests/test_sealed_release_evidence_output_boundary.py --items all --view expanded || true
echo '== Output-boundary containment and writer tests =='
rg -n -C 12 --glob 'test_sealed_release_evidence*.py' \
'(write_evidence_manifest|forbidden_root|output.*(inside|outside)|symlink|fsync|parent)' \
tests || true
echo '== Documentation residual-race references =='
rg -n -C 4 'CWE-59|CWE-367|APA|race|TOCTOU|Time.of.check' \
docs/sealed-release-evidence.md CHANGELOG.md || trueLength of output: 76684
I found no actionable defects in the static review. The diff changes only the four allowed paths. The public writer canonicalizes The strict JSON encoding, exclusive owner-only creation, final-path protection, descriptor checks, and post-publication verification remain intact. The added tests cover symlinked, missing, non-directory, and resolution-failure roots. The documentation and changelog match the implementation. The guide retains the CWE-59 and CWE-367 residual-race guidance. I did not execute tests in this sandbox. I therefore do not independently confirm the reported CI, coverage, package acceptance, SAST, or Security Scan results. I did not approve, merge, publish, or change the draft state. You are interacting with an AI system. |
|
@coderabbitai review Review only exact current head |
🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
base='10d0c51daf2ad278d66f43be479df8cf6b08ba6d'
head='13cd59b5d0307f1a4dc1e4ffe777ed31b878c657'
echo '== commit identity =='
printf 'checked_out='
git rev-parse HEAD
git show -s --format='base=%H%nbase_subject=%s' "$base"
git show -s --format='head=%H%nhead_subject=%s' "$head"
git merge-base --is-ancestor "$base" "$head" && echo 'base_is_ancestor=true'
echo '== changed paths =='
git diff --name-status "$base" "$head"
echo '== affected source outline =='
ast-grep outline src/egressweave/release_evidence.py --items all --view expanded
echo '== canonical-root helper and writer =='
rg -n -C 12 \
'def (_require_canonical_evidence_root|_require_canonical_forbidden_root|write_evidence_manifest)|forbidden_root|output_path\.parent\.mkdir|contain|fsync|dir_fd|open\(' \
src/egressweave/release_evidence.py
echo '== exact allowed-path diff =='
git diff --unified=50 "$base" "$head" -- \
src/egressweave/release_evidence.py \
tests/test_sealed_release_evidence_forbidden_root.py \
docs/sealed-release-evidence.md \
CHANGELOG.md
echo '== changed files outside allowlist =='
git diff --name-only "$base" "$head" | grep -Ev '^(src/egressweave/release_evidence\.py|tests/test_sealed_release_evidence_forbidden_root\.py|docs/sealed-release-evidence\.md|CHANGELOG\.md)$' || trueLength of output: 43306 🏁 Script executed: #!/bin/bash
set -euo pipefail
echo '== canonical evidence-root contract =='
sed -n '143,161p' src/egressweave/release_evidence.py
echo '== complete public forbidden-root regression module =='
cat -n tests/test_sealed_release_evidence_forbidden_root.py
echo '== existing writer and containment regression definitions =='
rg -n -C 8 --glob 'test_sealed_release_evidence*.py' \
'def test_.*(writer|output|contain|symlink|forbidden)|write_evidence_manifest\s*\(' \
tests
echo '== operator guide threat-model citations and new API guidance =='
rg -n -C 8 \
'Direct public API|forbidden_root|CWE-59|CWE-367|National Institute|race|TOCTOU|References' \
docs/sealed-release-evidence.md
echo '== writer call sites =='
rg -n -C 4 --glob '*.py' '\bwrite_evidence_manifest\s*\(' src testsLength of output: 49081
I found no actionable defects in the static review. The diff changes only the four allowed paths. It does not change workflow, credential, dependency, release, or transport boundaries.
The writer stores one The regression tests cover symlinked, missing, non-directory, and resolution-failure roots. The missing, non-directory, and resolution-failure tests verify that the output parent does not exist after failure. The public API guidance, CLI distinction, residual-race guidance, APA-style CWE-59/CWE-367 references, and I did not run tests or other runtime checks in this sandbox. I do not independently confirm the reported CI, coverage, package acceptance, SAST Semgrep, or Security Scan results. I did not approve, merge, publish, release, rebase, or retarget the PR.
|
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 head13cd59b5d0307f1a4dc1e4ffe777ed31b878c657. -
Head SHA:
13cd59b5d0307f1a4dc1e4ffe777ed31b878c657 -
Workflow run: 31092401095
-
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["Changed file (2 files)"]
S1 --> I1["repository behavior"]
I1 --> R1["Review risk: Changed file (2 files)"]
R1 --> V1["required checks"]
Evidence --> S2["Docs: sealed-release-evidence.md"]
S2 --> I2["operator or user guidance"]
I2 --> R2["Review risk: Docs: sealed-release-evidence.md"]
R2 --> V2["docs review"]
Evidence --> S3["Test: test_sealed_release_evidence_forbidden_root.py"]
S3 --> I3["regression suite"]
I3 --> R3["Review risk: Test: test_sealed_release_evidence_forbidden_root.py"]
R3 --> V3["targeted test run"]
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 Decision
Changed-File Evidence Mapflowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Changed file (2 files)"]
S1 --> I1["repository behavior"]
I1 --> R1["Review risk: Changed file (2 files)"]
R1 --> V1["required checks"]
Evidence --> S2["Docs: sealed-release-evidence.md"]
S2 --> I2["operator or user guidance"]
I2 --> R2["Review risk: Docs: sealed-release-evidence.md"]
R2 --> V2["docs review"]
Evidence --> S3["Test: test_sealed_release_evidence_forbidden_root.py"]
S3 --> I3["regression suite"]
I3 --> R3["Review risk: Test: test_sealed_release_evidence_forbidden_root.py"]
R3 --> V3["targeted test run"]
|
|
@opencode-agent Re-run the independent exact-head review for current head The current |
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 head13cd59b5d0307f1a4dc1e4ffe777ed31b878c657. -
Head SHA:
13cd59b5d0307f1a4dc1e4ffe777ed31b878c657 -
Workflow run: 31092401095
-
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["Changed file (2 files)"]
S1 --> I1["repository behavior"]
I1 --> R1["Review risk: Changed file (2 files)"]
R1 --> V1["required checks"]
Evidence --> S2["Docs: sealed-release-evidence.md"]
S2 --> I2["operator or user guidance"]
I2 --> R2["Review risk: Docs: sealed-release-evidence.md"]
R2 --> V2["docs review"]
Evidence --> S3["Test: test_sealed_release_evidence_forbidden_root.py"]
S3 --> I3["regression suite"]
I3 --> R3["Review risk: Test: test_sealed_release_evidence_forbidden_root.py"]
R3 --> V3["targeted test run"]
|
@opencode-agent Implement the minimal test-only GREEN repair on exact current head Central OpenCode coverage run Modify only Replace the environment-dependent deeply nested JSON fixture with a deterministic parser-failure regression: accept Do not modify the PR's four existing changed paths, package code, documentation, CHANGELOG, |
|
@coderabbitai review Review only exact current head |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
base='10d0c51daf2ad278d66f43be479df8cf6b08ba6d'
head='6a8f57c29c9ebb561c771829ba75501ba9a91eb8'
echo '== Exact commit identity =='
printf 'checked_out='
git rev-parse HEAD
git show -s --format='base=%H%nbase_subject=%s%nbase_parents=%P' "$base"
git show -s --format='head=%H%nhead_subject=%s%nhead_parents=%P' "$head"
git merge-base --is-ancestor "$base" "$head" && echo 'base_is_ancestor=true'
echo '== Full PR changed paths =='
git diff --name-status "$base" "$head"
echo '== Latest commit changed paths =='
git diff-tree --no-commit-id --name-status -r "$head"
echo '== Latest commit diff =='
git show --format=fuller --find-renames --find-copies --unified=80 "$head" -- \
tests/test_sealed_release_evidence_resource_limits.py
echo '== Full PR diff summary =='
git diff --stat "$base" "$head"
echo '== Relevant source outline =='
ast-grep outline src/egressweave/release_evidence.py --items all --view expanded
echo '== Canonical-root helper and public writer =='
nl -ba src/egressweave/release_evidence.py | sed -n '130,175p;590,735p'
echo '== Strict JSON loader =='
rg -n -C 20 \
'def _load_strict_json|json\.loads|RecursionError|must be a JSON object|not strict JSON' \
src/egressweave/release_evidence.py
echo '== Forbidden-root and output-boundary tests =='
rg -n -C 12 --glob 'test_sealed_release_evidence*.py' \
'def test_.*(forbidden|symlink|root|output|recursion)|write_evidence_manifest\s*\(|_load_strict_json\s*\(' \
tests
echo '== Public API guidance and changelog =='
rg -n -C 8 \
'forbidden_root|Direct public API|CLI|CWE-59|CWE-367|Unreleased|Security' \
docs/sealed-release-evidence.md CHANGELOG.md
echo '== Protected-boundary changes across full PR =='
git diff --name-only "$base" "$head" | grep -E \
'(^|/)\.github/|(^|/)(pyproject\.toml|poetry\.lock|requirements[^/]*|Pipfile(\.lock)?|setup\.(cfg|py)|Cargo\.toml|package(-lock)?\.json)$|credential|secret|sign|attest|release|transport|network' \
|| trueLength of output: 10208 🏁 Script executed: #!/bin/bash
set -euo pipefail
base='10d0c51daf2ad278d66f43be479df8cf6b08ba6d'
head='6a8f57c29c9ebb561c771829ba75501ba9a91eb8'
echo '== Canonical-root contract and public writer =='
sed -n '135,170p;580,740p' src/egressweave/release_evidence.py
echo '== Strict JSON loader =='
sed -n '255,385p' src/egressweave/release_evidence.py
echo '== Full forbidden-root regression module =='
cat -n tests/test_sealed_release_evidence_forbidden_root.py
echo '== Resource-limit regression module =='
cat -n tests/test_sealed_release_evidence_resource_limits.py
echo '== Existing output containment tests =='
rg -n -C 14 --glob 'test_sealed_release_evidence*.py' \
'output.*(inside|outside)|forbidden_root|descriptor|fsync|symlink|exclusive|owner' \
tests
echo '== Public API documentation and changelog excerpts =='
rg -n -C 10 \
'forbidden_root|public API|CLI|CWE-59|CWE-367|References|Unreleased|Security' \
docs/sealed-release-evidence.md CHANGELOG.md
echo '== Complete changed-path list, with protected-boundary verdict =='
changed_paths="$(git diff --name-only "$base" "$head")"
printf '%s\n' "$changed_paths"
if printf '%s\n' "$changed_paths" | grep -Eq \
'(^|/)\.github/|(^|/)(pyproject\.toml|poetry\.lock|requirements[^/]*|Pipfile(\.lock)?|setup\.(cfg|py)|Cargo\.toml|package(-lock)?\.json)$|(^|/).*(credential|secret|transport|network).*'; then
echo 'protected_boundary_changes=true'
else
echo 'protected_boundary_changes=false'
fi
echo '== Production source changes introduced by latest commit =='
git diff --name-only "${head}^" "$head" -- srcLength of output: 87907
I found no actionable defects in the static review. The checked-out commit matches the requested head. The requested base is an ancestor of that head. The full PR changes five files only. The latest commit changes only
The writer stores The existing exclusive creation, The new parser regression uses a small JSON object. It monkeypatches The documentation and I did not run repository code in this sandbox. I therefore do not independently verify CI, coverage, package acceptance, SAST, or Security Scan. I did not approve, merge, enable auto-merge, release, or publish. You are interacting with an AI system. |
|
@opencode-agent Review only exact current head The prior two Review the public |
|
@coderabbitai review Review exact current head |
|
@opencode-agent Perform a read-only exact-head review of The prior formal REQUEST_CHANGES reviews were anchored to |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
base='10d0c51daf2ad278d66f43be479df8cf6b08ba6d'
head='6a8f57c29c9ebb561c771829ba75501ba9a91eb8'
echo '== Commit identity and ancestry =='
printf 'checked_out='
git rev-parse HEAD
git show -s --format='base=%H%nbase_subject=%s%nhead_parent_check=' "$base"
git show -s --format='head=%H%nhead_subject=%s%nhead_parents=%P' "$head"
git merge-base --is-ancestor "$base" "$head" && echo 'base_is_ancestor=true'
echo '== Full PR paths =='
git diff --name-status "$base" "$head"
echo '== Latest commit paths =='
git diff-tree --no-commit-id --name-status -r "$head"
echo '== Full PR diff stat =='
git diff --stat "$base" "$head"
echo '== Latest test-only diff =='
git diff --unified=60 "${head}^" "$head" -- tests/test_sealed_release_evidence_resource_limits.py
echo '== Source outline =='
ast-grep outline src/egressweave/release_evidence.py --items all --view expanded
echo '== Canonical-root helper and writer =='
nl -ba src/egressweave/release_evidence.py | sed -n '130,175p;575,745p'
echo '== Strict JSON loader =='
rg -n -C 20 'def _load_strict_json|json\.loads|RecursionError|not strict JSON|must be a JSON object' \
src/egressweave/release_evidence.py
echo '== Forbidden-root tests =='
cat -n tests/test_sealed_release_evidence_forbidden_root.py
echo '== Resource-limit tests =='
cat -n tests/test_sealed_release_evidence_resource_limits.py
echo '== Documentation and changelog references =='
rg -n -C 8 'forbidden_root|public API|CLI|CWE-59|CWE-367|Unreleased|Security' \
docs/sealed-release-evidence.md CHANGELOG.md
echo '== Protected-boundary path check =='
git diff --name-only "$base" "$head" | grep -E \
'(^|/)\.github/|(^|/)(pyproject\.toml|poetry\.lock|requirements[^/]*|Pipfile(\.lock)?|setup\.(cfg|py)|Cargo\.toml|package(-lock)?\.json)$|credential|secret|permission|transport|network|sign|attest|release|publish' \
|| trueLength of output: 9504 🏁 Script executed: #!/bin/bash
set -euo pipefail
base='10d0c51daf2ad278d66f43be479df8cf6b08ba6d'
head='6a8f57c29c9ebb561c771829ba75501ba9a91eb8'
echo '== Canonical-root contract and public writer =='
sed -n '135,170p;580,740p' src/egressweave/release_evidence.py
echo '== Strict JSON loader =='
sed -n '250,385p' src/egressweave/release_evidence.py
echo '== Forbidden-root regression module =='
cat tests/test_sealed_release_evidence_forbidden_root.py
echo '== Resource-limit regression module =='
cat tests/test_sealed_release_evidence_resource_limits.py
echo '== Writer containment call sites =='
rg -n -C 7 \
'_require_output_outside_verified_set|canonical_forbidden_root|forbidden_root|output_path\.parent\.mkdir|_open_exclusive_manifest|os\.fsync' \
src/egressweave/release_evidence.py
echo '== Strict JSON parser and shape checks =='
rg -n -C 7 \
'json\.loads|RecursionError|JSONDecodeError|must be a JSON object|not strict JSON' \
src/egressweave/release_evidence.py tests/test_sealed_release_evidence_resource_limits.py
echo '== Documentation and changelog excerpts =='
rg -n -C 8 \
'forbidden_root|public API|CLI|CWE-59|CWE-367|Unreleased|Security' \
docs/sealed-release-evidence.md CHANGELOG.md
echo '== Full PR changed paths =='
git diff --name-only "$base" "$head"
echo '== Latest commit production-path check =='
git diff --name-only "${head}^" "$head" -- src docs CHANGELOG.md .github || true
echo '== Workflow and dependency paths in full PR =='
git diff --name-only "$base" "$head" | grep -E \
'(^|/)\.github/|(^|/)(pyproject\.toml|poetry\.lock|requirements[^/]*|Pipfile(\.lock)?|setup\.(cfg|py)|Cargo\.toml|package(-lock)?\.json)$' \
|| trueLength of output: 50069
I found no actionable defects in the static review. The checked-out commit matches the requested head. The requested base is an ancestor of this head.
The writer stores Exclusive creation, owner-only mode, final-path no-follow protection, descriptor identity checks, deterministic strict JSON encoding, and post-publication verification remain present. The latest commit changes only The full PR does not change workflow or dependency paths. The source, documentation, changelog, and tests match the stated boundary. I did not execute repository code in this sandbox. I therefore do not independently verify CI run You are interacting with an AI system. |
Superseded by exact current head 6a8f57c. The Python 3.14-only fixture instability identified by this prior-head review was repaired deterministically, and exact-head CI, SAST, and Security Scan now succeed. This dismissal does not constitute current-head approval; a fresh exact-head review and independent approval remain required.
|
@coderabbitai review Review only exact current head |
🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
base='10d0c51daf2ad278d66f43be479df8cf6b08ba6d'
head='6a8f57c29c9ebb561c771829ba75501ba9a91eb8'
echo '== Commit identity and ancestry =='
printf 'checked_out='; git rev-parse HEAD
git show -s --format='base=%H%nbase_subject=%s' "$base"
git show -s --format='head=%H%nhead_subject=%s%nhead_parents=%P' "$head"
git merge-base --is-ancestor "$base" "$head" && echo 'base_is_ancestor=true'
echo '== Changed paths: base..head =='
git diff --name-status "$base" "$head"
echo '== Changed paths: latest commit =='
git diff-tree --no-commit-id --name-status -r "$head"
echo '== Diff: public writer and canonical-root helper =='
git diff --unified=80 "$base" "$head" -- src/egressweave/release_evidence.py
echo '== Writer and strict JSON implementation =='
ast-grep outline src/egressweave/release_evidence.py --items all --view expanded
sed -n '130,180p;250,390p;575,750p' src/egressweave/release_evidence.py
echo '== Changed regression tests =='
git diff --unified=80 "$base" "$head" -- \
tests/test_sealed_release_evidence_forbidden_root.py \
tests/test_sealed_release_evidence_resource_limits.py
echo '== Full focused test modules =='
cat tests/test_sealed_release_evidence_forbidden_root.py
cat tests/test_sealed_release_evidence_resource_limits.py
echo '== Documentation and changelog diff =='
git diff --unified=60 "$base" "$head" -- docs/sealed-release-evidence.md CHANGELOG.md
echo '== Protected-boundary changed paths =='
git diff --name-only "$base" "$head" | grep -E \
'(^|/)\.github/|(^|/)(pyproject\.toml|poetry\.lock|requirements[^/]*|Pipfile(\.lock)?|setup\.(cfg|py)|Cargo\.toml|package(-lock)?\.json)$|credential|secret|transport|network|permission|sign|attest|release|publish' \
|| true
echo '== Exact-head GitHub checks =='
gh pr checks 62 --repo ContextualWisdomLab/EgressWeave --json name,state,workflow,link \
|| trueLength of output: 65340 🏁 Script executed: #!/bin/bash
set -euo pipefail
base='10d0c51daf2ad278d66f43be479df8cf6b08ba6d'
head='6a8f57c29c9ebb561c771829ba75501ba9a91eb8'
repo='ContextualWisdomLab/EgressWeave'
echo '== Diff whitespace check =='
git diff --check "$base" "$head"
echo '== Writer call sites and containment-test definitions =='
rg -n -C 10 --glob '*.py' \
'\bwrite_evidence_manifest\s*\(|def test_.*(output|contain|symlink|forbidden|exclusive|owner|fsync)' \
src tests
echo '== Public API guide references and residual-race citations =='
rg -n -C 6 \
'write_evidence_manifest|forbidden_root|CWE-59|CWE-367|References|race|TOCTOU' \
docs/sealed-release-evidence.md CHANGELOG.md
echo '== Exact SHA bound to requested workflow runs =='
for run in 31101925284 31101924971 31101925107; do
gh run view "$run" --repo "$repo" \
--json databaseId,headSha,status,conclusion,workflowName \
--jq '{databaseId, headSha, status, conclusion, workflowName}'
done
echo '== Latest commit is test-only =='
git diff --name-only "${head}^" "$head"Length of output: 49399 🏁 Script executed: #!/bin/bash
set -euo pipefail
repo='ContextualWisdomLab/EgressWeave'
for run in 31101924971 31101925107; do
gh api "repos/$repo/actions/runs/$run" \
--jq '{id, head_sha, status, conclusion, name, event}'
doneLength of output: 679
I found no actionable defects. The checked-out commit matches the requested head. The base is an ancestor of that head. The latest commit changes only
The writer stores The focused tests cover symlinked, missing, non-directory, and resolution-failure forbidden roots. They verify that invalid roots fail before output-parent creation. Existing regressions cover exclusive creation, owner-only mode, final-path symlink rejection, descriptor/path replacement, and synchronization failures. The new resource-limit regression uses a bounded JSON object. It injects The documentation describes the public API precondition, the stable error, canonical-root reuse, and the CLI distinction. It retains the CWE-59 and CWE-367 references. The changelog has an The full PR changes only five paths. It contains no workflow, dependency, credential, permission, transport, release, signing, attestation, or publication-boundary change. I verified these completed exact-head checks:
Each reports I did not execute repository tests in this sandbox. I did not approve, merge, enable auto-merge, release, publish, or modify branch state.
|
Test-first security repair
Closes #61 with a bounded public-API trust-boundary repair.
Exact tree binding
10d0c51daf2ad278d66f43be479df8cf6b08ba6d.35c31495f041b6980a4c6b003424eb8816ae2148.13cd59b5d0307f1a4dc1e4ffe777ed31b878c657.6a8f57c29c9ebb561c771829ba75501ba9a91eb8.Implemented boundary
Nonepublicforbidden_rootthrough the existing canonical evidence-root contract before output-parent creation or output-path access;evidence manifest forbidden root is missing or unsafe;fsynccontainment checks;[Unreleased]Security entry;.githubfile, dependency, credential, release permission, transport API, or review-agent identity.Deterministic central-coverage repair
Central OpenCode coverage run
31092401095, attempts 1 and 2, exposed an interpreter-dependent test fixture on Python 3.14: a 10,000-level JSON array was parsed successfully and reached the existing safe non-object rejection, while the test expectedjson.loadsitself to raiseRecursionError. Exact current commit6a8f57c29c9ebb561c771829ba75501ba9a91eb8changes onlytests/test_sealed_release_evidence_resource_limits.pyso the parser-recursion normalization contract is exercised deterministically through an injectedRecursionError. Production code and the non-object rejection remain unchanged.Exact-head evidence
CI run
31101925284succeeded on exact head6a8f57c29c9ebb561c771829ba75501ba9a91eb8:SAST Semgrep run
31101924971and Security Scan run31101925107also succeeded on the same exact head.Remaining gates
The earlier CodeRabbit review of
13cd59b5d0307f1a4dc1e4ffe777ed31b878c657does not establish exact-current-head review success. A completed automated review and central current-head review of6a8f57c29c9ebb561c771829ba75501ba9a91eb8, independent non-author approval, branch protection, and every repository policy gate remain mandatory. Do not merge, enable auto-merge, release, or publish before all gates are satisfied.