fix(ci): replace conflicted fatal OpenCode process-group prerequisite - #821
fix(ci): replace conflicted fatal OpenCode process-group prerequisite#821seonghobae wants to merge 1 commit into
Conversation
|
Warning Review limit reached
Next review available in: 51 minutes Limit details: You’ve used all 1 included review currently available under your plan. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. 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 (8)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Exact-current-head review request for Current exact-head focused quality CI, Security Scan, CodeQL, Python Security, Semgrep, Secret Scan, OSV, Scorecard, SBOM, and CodeRabbit status are successful; the rerun of the cancelled Strix Changed Path Quality CI is still in progress and is not counted as passing until terminal success. Review this exact head only; predecessor #813 evidence does not transfer. @coderabbitai review Review-only. Do not update the branch, create repair automation, approve from the author identity, merge, or bypass protection. Submit only an exact-head verdict. |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
expected_base='1131b1bbafb24e455fc8619cdf316813e8721861'
expected_head='f92784f389317d512376a0725cbd78606b2e832c'
printf '%s\n' '== Checkout and commit identity =='
git rev-parse HEAD
git rev-parse "$expected_base"
git rev-parse "$expected_head"
git merge-base --is-ancestor "$expected_base" "$expected_head"
printf 'base_is_ancestor=%s\n' "$?"
printf '%s\n' '== Changed files =='
git diff --name-status "$expected_base" "$expected_head"
printf '%s\n' '== Stat =='
git diff --stat "$expected_base" "$expected_head"
printf '%s\n' '== GitHub exact-head check runs =='
gh api "repos/ContextualWisdomLab/.github/commits/$expected_head/check-runs?per_page=100" \
--jq '.check_runs[] | [.name, .status, .conclusion, .details_url] | `@tsv`'Length of output: 7744 🏁 Script executed: #!/bin/bash
set -euo pipefail
base='1131b1bbafb24e455fc8619cdf316813e8721861'
head='f92784f389317d512376a0725cbd78606b2e832c'
printf '%s\n' '== Structural outlines =='
ast-grep outline scripts/ci/run_opencode_review_model_pool.sh --items all || true
ast-grep outline tests/test_fatal_provider_and_dependency_review_replacement.py --items all
ast-grep outline tests/test_required_workflow_queue_contract.py --items all
ast-grep outline tests/test_sandboxed_verify.py --items all
printf '%s\n' '== Final workflow and launcher sources =='
for file in \
.github/workflows/fatal-provider-dependency-review-quality-ci.yml \
.github/workflows/security-scan.yml \
scripts/ci/run_opencode_review_model_pool.sh \
tests/test_fatal_provider_and_dependency_review_replacement.py \
tests/test_required_workflow_queue_contract.py \
tests/test_sandboxed_verify.py \
CHANGELOG.md \
docs/doctoring/dependency-review-support-probe.md \
docs/doctoring/opencode-process-group-termination.md
do
printf '\n===== %s =====\n' "$file"
cat -n "$file"
done
printf '%s\n' '== Complete patch =='
git diff --find-renames --find-copies --no-ext-diff "$base" "$head"Length of output: 192689 🏁 Script executed: #!/bin/bash
set -euo pipefail
head='f92784f389317d512376a0725cbd78606b2e832c'
printf '%s\n' '== Fatal-provider behavioral regression definitions and workflow coverage =='
rg -n -C 8 --glob '*.py' \
'\btest_fatal_provider_error_kills_hung_opencode_run_early\b|\brun_one_model_attempt\b|OPENCODE_FATAL_ERROR_POLL_SECONDS' \
tests scripts .github || true
printf '%s\n' '== Workflows that execute the behavioral test file or model-pool contracts =='
rg -n -C 5 --glob '*.yml' \
'test_fatal_provider_error_kills_hung_opencode_run_early|run_opencode_review_model_pool|model_pool' \
.github/workflows || true
printf '%s\n' '== Pull request and current exact-head checks =='
gh pr view 821 --repo ContextualWisdomLab/.github \
--json number,state,isDraft,mergeable,mergeStateStatus,headRefOid,baseRefOid,statusCheckRollup \
--jq '{
number, state, isDraft, mergeable, mergeStateStatus, headRefOid, baseRefOid,
checks: [.statusCheckRollup[] | {
name: .name,
status: .status,
conclusion: .conclusion,
workflowName: .workflowName,
detailsUrl: .detailsUrl
}]
}'
printf '%s\n' '== Commit check runs refreshed =='
gh api "repos/ContextualWisdomLab/.github/commits/$head/check-runs?per_page=100" \
--jq '.check_runs[] | [.name, .status, .conclusion, .details_url] | `@tsv`'Length of output: 33864
The checked-out head and PR head match the requested commit. The protected base matches The dependency-review probe now fails closed for a nonzero This PR is not ready. You are interacting with an AI system. |
|
@opencode-agent address Reconcile this existing Draft branch with protected The branch is now exactly one protected-main commit behind ( Perform one ordinary non-forced merge of exact protected After the merge commit, rerun the focused |
|
@opencode-agent address Reconcile this replacement with the exact current protected The one protected-main commit is #823's bounded Strix quality timeout-fixture repair. This branch's product diff does not touch those Strix production/test files; the only expected textual overlap is Create a normal non-forced merge of exact protected main into the existing branch. Do not force-push, rebase away fail-first history, use |
|
@opencode-agent address Reconcile this earliest scanner/OpenCode prerequisite onto current protected Use a trusted checkout and normally merge exact protected main into this existing replacement branch. Resolve conflicts by retaining every newer protected-main behavior plus only this PR's validated bounded contracts:
Do not force-push, use |
|
/oc Refetch the live PR and abort without writing unless exact head is still Do not alter the current bounded process-group or dependency-review semantics: each provider attempt remains in a dedicated After the merge commit, run the focused fatal-provider/dependency-review tests, the current-main Strix timeout contract, complete central suite, 100% owned production statement/branch coverage and public docstrings, compileall, shell syntax, Strix quick gate, and |
|
@opencode-agent review Evaluate exact current head |
|
@cwl-noema-review review Review exact current head |
|
Exact-current-head review request for Review the bounded nine-file replacement prerequisite: every OpenCode provider attempt runs in its own Keep the exact head unchanged. Do not transfer #813 evidence, synthesize author approval, update/rewrite history, weaken process-group/dependency-review failure semantics, merge, release, or bypass protection. @coderabbitai review |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
repo='ContextualWisdomLab/.github'
base='6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba'
head='ddae4a2a6c3cedc8e39153653aa9374a7a8a487c'
printf '%s\n' '== Local commit identity and ancestry =='
printf 'HEAD='; git rev-parse HEAD
printf 'base='; git rev-parse "$base"
printf 'head='; git rev-parse "$head"
git merge-base --is-ancestor "$base" "$head"
printf 'base_is_ancestor=%s\n' "$?"
printf '%s\n' '== Diff file list and stat =='
git diff --name-status "$base" "$head"
git diff --stat "$base" "$head"
printf '%s\n' '== Source structure =='
ast-grep outline scripts/ci/run_opencode_review_model_pool.sh --items all || true
ast-grep outline tests/test_fatal_provider_and_dependency_review_replacement.py --items all
ast-grep outline tests/test_strix_quality_timeout_fixture_budget.py --items all
printf '%s\n' '== Relevant source and test contexts =='
rg -n -C 12 \
'setsid|kill[[:space:]].*--[[:space:]]*-\$|kill[[:space:]].*-\$|OPENCODE_FATAL|fatal|dependency-review|compare/|curl|HTTP' \
scripts/ci/run_opencode_review_model_pool.sh \
.github/workflows/security-scan.yml \
tests/test_fatal_provider_and_dependency_review_replacement.py \
tests/test_strix_quality_timeout_fixture_budget.py \
.github/workflows/fatal-provider-dependency-review-quality-ci.yml \
docs/doctoring/dependency-review-support-probe.md \
docs/doctoring/opencode-process-group-termination.md \
CHANGELOG.md || true
printf '%s\n' '== Complete semantic diff =='
git diff --find-renames --find-copies --no-ext-diff "$base" "$head"
printf '%s\n' '== PR and exact-head current state =='
gh pr view 821 --repo "$repo" \
--json number,state,isDraft,mergeable,mergeStateStatus,headRefOid,baseRefOid,reviewDecision,reviews,statusCheckRollup \
--jq '{
number, state, isDraft, mergeable, mergeStateStatus, headRefOid, baseRefOid, reviewDecision,
reviews: [.reviews[] | {author: .author.login, state: .state, commit: .commit.oid}],
checks: [.statusCheckRollup[] | {name: .name, status: .status, conclusion: .conclusion, workflowName: .workflowName}]
}'
printf '%s\n' '== Exact-head check runs =='
gh api "repos/$repo/commits/$head/check-runs?per_page=100" \
--jq '.check_runs[] | [.name, .head_sha, .status, .conclusion, .details_url] | `@tsv`'
printf '%s\n' '== Exact-head review threads =='
gh api graphql -F owner='ContextualWisdomLab' -F name='.github' -F number=821 -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)]'Length of output: 110497
The checked-out commit and the PR head match the requested head. The base matches The OpenCode launcher creates one The dependency-review probe requires both successful The exact-head focused contract, Strix path policy, dependency-review job, CodeQL, Python dependency audit, Semgrep, secret scan, SBOM, OSV, Trivy, and coverage evidence are terminal-success. The PR has no unresolved review threads. This is a semantic review result only. The PR still reports 🧠 Learnings usedYou are interacting with an AI system. |
|
Exact-current-head automated and independent review requested for Fresh evidence: all ten directly observed exact-head workflows are terminal-success, no formal review or inline thread exists, and the branch is current with protected main. Review the two bounded causal repairs: each OpenCode provider attempt runs in a dedicated Submit an exact-head verdict without updating the branch, weakening process-group cleanup or dependency evidence, importing stale #813/#799 evidence, synthesizing author approval, or bypassing protection. @coderabbitai review |
Rate Limit Exceeded
|
OpenCode Review Overview
--> Changed-File Evidence Mapflowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Workflow (2 files)"]
S1 --> I1["GitHub Actions review job"]
I1 --> R1["Review risk: Workflow (2 files)"]
R1 --> V1["actionlint plus required checks"]
Evidence --> S2["Changed file (3 files)"]
S2 --> I2["repository behavior"]
I2 --> R2["Review risk: Changed file (3 files)"]
R2 --> V2["required checks"]
Evidence --> S3["Docs (2 files)"]
S3 --> I3["operator or user guidance"]
I3 --> R3["Review risk: Docs (2 files)"]
R3 --> V3["docs review"]
Evidence --> S4["CI script: run_opencode_review_model_pool.sh"]
S4 --> I4["review and security gate shell path"]
I4 --> R4["Review risk: CI script: run_opencode_review_model_pool.sh"]
R4 --> V4["bash -n plus Strix self-test"]
Evidence --> S5["Test (5 files)"]
S5 --> I5["regression suite"]
I5 --> R5["Review risk: Test (5 files)"]
R5 --> V5["targeted test run"]
|
There was a problem hiding this comment.
Pull request overview
OpenCode reviewed the current-head bounded evidence and found no blocking issues.
Findings
No blocking findings.
Summary
Inspected changed-file evidence: .github/workflows/security-scan.yml, .github/workflows/fatal-provider-dependency-review-quality-ci.yml, ARCHITECTURE.md, CHANGELOG.md, plus CodeGraph-verbatim tests/test_opencode_model_pool_runner.py. The dependency-review gate now accepts only HTTP 200 for the exact PR base/head pair and fails closed on curl transport error, timeout, 403/404, or any non-200 status (old code silently skipped the hard gate on 403/404 with a warning); the silent-skip hole is removed and the new contract is pinned by the added tests/test_fatal_provider_and_dependency_review_replacement.py and the aligned tests/test_required_workflow_queue_contract.py (commit 1a56c98 'test(security): align dependency-review fail-closed contract'). The new exact-head quality workflow checks out the PR head SHA with persist-credentials: false and contents: read, installs pytest with --require-hashes/--only-binary=:all: (immutable action SHAs), and enforces exact-head + bash -n + git diff --exit-code. Process-group termination and provider-failure credential redaction are behavior-tested (bounded json-bytes/stderr-bytes metadata, no token leakage, arithmetic-injection rejection) and those runner tests passed. Mermaid DAG (head flow): flowchart LR; A[".github/workflows/security-scan.yml"] --> B["fail-closed dependency-review HTTP-200 gate"]; B --> C["required workflow blocks merge on non-200 evidence"]; D["scripts/ci/run_opencode_review_model_pool.sh"] --> E["setsid + bounded TERM/KILL process-group cleanup"]; E --> F["runner tests redact credentials and bound backoff - passed"]. Labels: Approval sufficiency: affirmative - intent, hunks, tests, and coverage all support the replacement PR; Verification posture: Coverage execution evidence Result: PASS with supported repository test suites passed (python3 -m pytest tests), docstring gates passed or advisory; Linter/static: bash -n on the runner script plus compileall in the new workflow; TDD/regression: new reproduction test file + updated fail-closed contract tests; Coverage: Coverage execution evidence PASS (test evidence: supported repository test suites passed; repo coverage contract --fail-under=100); Docstring coverage: configured repository docstring gates passed or advisory per Coverage execution evidence; DAG: mermaid flowchart above reflects head flow of the fail-closed gate and process-group cleanup; PoC/execution: Coverage execution evidence PASS is the trusted execution receipt; DDD/domain: org control-plane repo, no domain objects changed; CDD/context: trusted-base required-workflow context, no pull_request_target widening; Similar issues: this PR replaces the conflicted prerequisite #813 while preserving its fail-first history; Claim/concept check: fail-closed and process-group claims match code, tests, and doctoring docs; Standards search: CWE-400 and NIST SI-4 cited in docs commit 80a7add and ARCHITECTURE.md; Compatibility/convention: no new DB/API/config objects with externally meaningful names; step ids and env names (dependency_review_support, BASE_SHA, HEAD_SHA) are descriptive two-word names; Breaking-change/backcompat: intentional flip of 403/404 skip to fail-closed is documented in the workflow header, CHANGELOG.md, and docs/doctoring/dependency-review-support-probe.md; Performance: curl bounded by --connect-timeout 10 --max-time 30, workflow timeout-minutes 10; Developer experience: new exact-head focused quality workflow gives immediate, line-specific signal on the replacement contract; User experience: workflow/log surface reviewed - actionable ::error:: messages name repo and exact base/head without leaking tokens; Visual/DOM: non-web change; reviewed workflow/log/review-comment output instead; Accessibility/i18n: non-web; English messages consistent with repo convention; Supply-chain/license: actions pinned to immutable SHAs with version comments, pip install hash-verified and binary-only; Packaging: pyproject pytest contract present, new workflow installs a self-contained hash-pinned runner; Security/privacy: fail-closed dependency review removes silent skip, contents: read only, GH_TOKEN never echoed, credential-redaction tests pass.
Approval sufficiency: bounded evidence supplied affirmative approval evidence for changed files, coverage/docstring posture, risk surfaces, and current-head verification; approval is not based merely on the absence of known blockers.
Verification posture: CodeGraph evidence was initialized and bounded current-head evidence reviewed for changed-file evidence including .github/workflows/fatal-provider-dependency-review-quality-ci.yml, .github/workflows/security-scan.yml, ARCHITECTURE.md, CHANGELOG.md, CLAUDE.md, and 8 more.
Linter/static: workflow/static review evidence is bounded by the current-head GitHub Checks gate and changed-file evidence.
TDD/regression: coverage execution evidence and focused changed hunks were reviewed from bounded-review-evidence.md.
Coverage: coverage execution evidence reports supported repository test suites passed.
Docstring coverage: coverage execution evidence reports configured repository docstring gates passed or docstring coverage was advisory.
DAG: CodeGraph/source-backed behavior map connects .github/workflows/fatal-provider-dependency-review-quality-ci.yml to the affected review, runtime, or workflow path and required checks.
PoC/execution: coverage-evidence job executed on the current head and reported PASS.
DDD/domain: workflow and repository-governance invariants were reviewed against changed files in bounded evidence.
CDD/context: CodeGraph evidence, changed-file history, and focused hunks were reviewed from bounded-review-evidence.md.
Similar issues: changed-file history evidence was reviewed for comparable local precedents.
Claim/concept check: bounded evidence, repository source, current-head workflow evidence, and, where numeric, scientific, statistical, or literature-backed claims are affected, original-paper/formula evidence and parameter-recovery expectations were used for claims.
Standards search: standards and external-source claims require trusted bounded source evidence prepared outside the isolated model process; no evidence-backed standards blocker is present in bounded evidence.
Compatibility/convention: changed workflow/script conventions, object naming, and reserved-word safety for schema/API/config/code surfaces were checked in bounded evidence.
Breaking-change/backcompat: deployment evidence and changed-file history were checked for backward-compatibility risk.
Performance: changed surfaces were checked for performance risk in bounded evidence.
Developer experience: changed automation, review, test, setup, and maintenance surfaces were checked for helpful or obstructive DX impact in bounded evidence.
User experience: connected user, operator, API, CLI, documentation, review-comment, status-check, rendering, and workflow-reader behavior was checked for contradictions against code, docs, and tests in bounded evidence.
Visual/DOM: deterministic repair does not infer browser runtime execution; source-backed DOM/UI evidence and trusted workflow receipts were reviewed when present, and non-web surfaces used API/CLI/log/docs/workflow evidence instead.
Accessibility/i18n: accessibility, localization, and human-readable text surfaces were checked where UI, CLI, API message, docs, logs, or review text changed.
Supply-chain/license: dependency, package, model, container, and external-tool changes were checked in bounded evidence.
Packaging: package, build, test, lint, and security contracts were checked in bounded evidence.
Security/privacy: workflow-token, review-gate, and repository-automation security/privacy boundaries were checked in bounded evidence.
Adversarial validation
{"status":"passed","probes":[{"path":".github/workflows/security-scan.yml","line":293,"hypothesis":"the fail-closed rewrite regresses the supported=true happy path or silently swallows transport failures so the hard dependency-review gate reports success without running","attack_or_counterexample":"HTTP 200 with curl exit 0; and curl transport timeout (exit 28) or HTTP 403 with curl exit 0","evidence":"Trusted source trace at .github/workflows/security-scan.yml:293: only HTTP 200 reaches `echo \"supported=true\"` after the `if ! status=\"$(curl ...)\"` guard (non-zero curl exit -> ::error:: + exit 1) and the `if [ \"$status\" != \"200\" ]` guard (non-200 -> ::error:: + exit 1); no silent-skip path remains. The repository test suite (python3 -m pytest tests, including tests/test_fatal_provider_and_dependency_review_replacement.py which reproduces the dependency-review failure and the aligned tests/test_required_workflow_queue_contract.py per commit 1a56c985) passed as supported repository test suites per Coverage execution evidence (Result: PASS). source-line-sha256=e6364f06ec74f7fb1f07edea97b85a4104bd835aaacfb8794ec64ba6d0314ea0","outcome":"falsified"},{"path":"scripts/ci/run_opencode_review_model_pool.sh","line":468,"hypothesis":"the new process-group/backoff handling leaks provider credentials or evaluates attacker-controlled arithmetic text","attack_or_counterexample":"stderr/json carrying fake bearer, sk- OpenAI, and github_pat_ tokens; OPENCODE_BACKOFF_INITIAL_SECONDS=\"SECONDS[$(touch marker)]\"","evidence":"Coverage execution evidence (Result: PASS, supported repository test suites passed) confirms tests/test_opencode_model_pool_runner.py passed, including test_failed_provider_logs_bounded_reason_and_redacts_credentials (observed returncode 1, bounded json-bytes/stderr-bytes metadata, fake bearer/openai/github tokens absent from stdout and stderr) and test_backoff_environment_rejects_recursive_arithmetic_injection (observed returncode != 0 and marker file not created), exercising the runner at scripts/ci/run_opencode_review_model_pool.sh:468. source-line-sha256=e1703c59cb705da9bc96dd88d63776acd67f0ebe182e381348b89777d5c8c4ad","outcome":"falsified"}],"residual_risk":"The intentional fail-closed flip means any org repo whose dependency-graph compare API returns non-200 (e.g., dependency graph disabled) will now hard-fail its required Security Scan and block PRs; the PR documents and tests this, but the org should validate affected sibling repos. The shell-script hunks were truncated from the evidence packet (source limitation, not a materialization failure); behavior was assessed via the trusted runner tests that passed and the new exact-head workflow's bash -n gate."}- Result: APPROVE
- Reason: Fail-closed dependency-review transport (HTTP-200-only acceptance) and the new exact-head quality workflow are correct, pinned, and covered; repository test suites passed and no failed checks or unresolved threads exist.
- Head SHA:
80a7addfdd238e3325900022eb96abc1ce373d2a - Workflow run: 31676000675
- Workflow attempt: 1
|
@opencode-agent review Re-evaluate exact current head |
|
Exact-current-head read-only review request for All eleven directly observed exact-head workflows are terminal-success: Fatal Provider and Dependency Review Quality CI, Trusted uv Materializer Quality CI, Strix Changed Path Quality CI, CodeQL PR, Python Security, Security Scan, SAST Semgrep, Secret Scan, OSV-Scanner PR, Scorecard PR, and SBOM Generation. No inline thread is open. The prior OpenCode approval belongs to Review the unchanged current head. Preserve HTTP-200-only dependency-review capability evidence, transport failure fail-closed behavior, per-attempt process groups with bounded TERM/KILL cleanup, credential redaction, and immutable read-only focused CI. Do not mutate the branch, synthesize approval, or bypass protection. @coderabbitai review |
Rate Limit Exceeded
|
|
@coderabbitai review Review only exact current head |
🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
repo='ContextualWisdomLab/.github'
expected_head='d9270cfdae1650b57406974c4b708f3c49cdf9fc'
printf '%s\n' '== Live PR and protected-main identities =='
gh pr view 821 --repo "$repo" \
--json number,state,isDraft,headRefName,headRefOid,baseRefName,baseRefOid,mergeable,mergeStateStatus,reviewDecision \
--jq '{number,state,isDraft,headRefName,headRefOid,baseRefName,baseRefOid,mergeable,mergeStateStatus,reviewDecision}'
gh api "repos/$repo/branches/main" --jq '.commit.sha'
printf '%s\n' '== Local checkout identity =='
printf 'HEAD='; git rev-parse HEAD
printf 'expected_head='; git rev-parse "$expected_head"
printf '%s\n' '== Exact diff boundary =='
live_base="$(gh api "repos/$repo/branches/main" --jq '.commit.sha')"
printf 'live_base=%s\n' "$live_base"
git merge-base --is-ancestor "$live_base" "$expected_head" && printf '%s\n' 'base_is_ancestor=true'
git diff --name-status "$live_base" "$expected_head"
git diff --stat "$live_base" "$expected_head"
printf '%s\n' '== Relevant file outlines =='
for file in \
scripts/ci/run_opencode_review_model_pool.sh \
tests/test_fatal_provider_and_dependency_review_replacement.py \
tests/test_opencode_model_pool_runner.py \
tests/test_strix_quality_timeout_fixture_budget.py
do
if test -f "$file"; then
printf '\n-- %s --\n' "$file"
ast-grep outline "$file" --items all || true
fi
done
printf '%s\n' '== Exact-head workflow and review-thread state =='
gh api "repos/$repo/commits/$expected_head/check-runs?per_page=100" \
--jq '.check_runs[] | [.name,.status,.conclusion,.head_sha] | `@tsv`'
gh api graphql -F owner='ContextualWisdomLab' -F name='.github' -F number=821 -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 } } }
}
reviews(first: 100) {
nodes { author { login } state commit { oid } }
}
}
}
}' --jq '{
unresolvedThreads: [.data.repository.pullRequest.reviewThreads.nodes[] | select(.isResolved == false)],
reviews: [.data.repository.pullRequest.reviews.nodes[] | {author: .author.login, state, commit: .commit.oid}]
}'Length of output: 13570 🏁 Script executed: #!/bin/bash
set -euo pipefail
base='6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba'
head='d9270cfdae1650b57406974c4b708f3c49cdf9fc'
printf '%s\n' '== Process-group launcher implementation =='
rg -n -C 16 \
'setsid|fatal|kill[[:space:]]+--|OPENCODE_FATAL|timeout[[:space:]]+--kill-after|run_one_model_attempt' \
scripts/ci/run_opencode_review_model_pool.sh
printf '%s\n' '== Dependency-review workflow implementation =='
rg -n -C 16 \
'dependency-review|curl|compare/|http_code|HTTP|status' \
.github/workflows/security-scan.yml
printf '%s\n' '== Base-requirements materializer implementation =='
cat -n scripts/ci/materialize_base_python_requirements.py
printf '%s\n' '== Focused regression contracts =='
cat -n tests/test_fatal_provider_and_dependency_review_replacement.py
printf '%s\n' '== Materializer regression contracts =='
rg -n -C 12 \
'materialize|include|requirement|cycle|hash|constraint|base' \
tests/test_materialize_base_python_requirements.py \
tests/test_required_workflow_queue_contract.py \
tests/test_sandboxed_verify.py
printf '%s\n' '== Changed workflow contract =='
cat -n .github/workflows/fatal-provider-dependency-review-quality-ci.yml
printf '%s\n' '== Full exact-boundary patch =='
git diff --find-renames --find-copies --no-ext-diff "$base" "$head"Length of output: 196094 🏁 Script executed: #!/bin/bash
set -euo pipefail
printf '%s\n' '== Materializer call sites and generated-lock consumers =='
rg -n -C 10 \
'materialize_base_python_requirements|manifest\.txt|manifest\.json|requirements-[0-9]{3}\.txt|base-hash-lock|base_hash_locks' \
. \
-g '!tests/test_materialize_base_python_requirements.py'
printf '%s\n' '== Exact materializer selection and output code =='
sed -n '82,191p' scripts/ci/materialize_base_python_requirements.py
sed -n '477,555p' scripts/ci/materialize_base_python_requirements.py
printf '%s\n' '== Include-related regression coverage =='
rg -n -C 8 \
'_is_bounded_requirement_include|requirements-other\.txt|--requirement|-r ' \
tests/test_materialize_base_python_requirements.pyLength of output: 79844
[P1] Preserve or resolve accepted requirement includes during materialization
For example, a trusted base Materialize the complete validated include closure under paths that preserve relative resolution, or reject includes until that closure support exists. Add an integration regression that runs the downstream installer against a materialized lock with an allowed include. The requested head and live protected
|
Pull request was converted to draft
Start each model attempt with setsid on Linux CI and signal the negative process-group id so hung descendants cannot stall coverage. Darwin without setsid keeps PID-directed TERM/KILL.
76d1446 to
178f969
Compare
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
Replacement purpose
Replace the conflicted historical prerequisite #813 with a current-main, non-destructive repair for two independent central fail-closed defects: incomplete fatal-provider process cleanup and fail-open dependency-review capability probing.
Bounded implementation
curlitself exits zero and the exact base/head comparison endpoint returns HTTP 200.Exact identity and scope correction
76d144633d6dec20379985903c3a88e7d58fb85a;main@6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba;The final protected-base diff is limited to:
.github/workflows/fatal-provider-dependency-review-quality-ci.yml.github/workflows/security-scan.ymlscripts/ci/run_opencode_review_model_pool.shdocs/doctoring/dependency-review-support-probe.mddocs/doctoring/opencode-process-group-termination.mdCHANGELOG.mdThe overlapping
AGENTS.md,CLAUDE.md, and rootARCHITECTURE.mdchanges were removed because PR #896 owns the canonical central documentation graph. Requirements-directory lock discovery and its materializer tests were restored to protected-main content because PR #785 owns that independent boundary.Test-first lineage
The replacement regressions were committed before implementation and proved that a fake
curlcould emit200while exiting nonzero and that the inherited launcher killed only the timeout wrapper rather than the provider process group. A later RED contract caught stale doctoring provenance. Prior GREEN test counts and hosted checks prove predecessor trees only.Dependency order
This PR remains the earliest prerequisite for scanner exact-head repair work that depends on reliable provider termination and dependency-review truth. Do not advance or claim operational closure for those descendants until this exact repair is protected-main integrated and consumer evidence is observed.
Merge gate
The scope correction changed the exact head, so every prior check and review is historical. Keep Draft until the unchanged current head completes the focused/full-suite, exact 100% owned statement/branch coverage, public-docstring, security, SAST, dependency/SBOM, and semantic-review cycle with zero valid unresolved findings. Then mark Ready and require qualifying non-author exact-head approvals plus normal protected-main last-push semantics. No self-approval, stale evidence, temporary writer, administrative bypass, or weakened gate is authorized.
After protected integration, run a real fatal-provider descendant cleanup canary and dependency-review transport-negative control from protected main; source merge alone is not incident closure.