docs(doctoring): land #2247 keep-with-residual supersession verdict - #2256
seonghobae wants to merge 45 commits into
Conversation
|
Warning Review limit reachedNext included review available in 58 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (26)
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 |
Semgrep OSS and Bandit B310 Medium alerts on main flagged dynamic urllib use in CodeQL identity and Strix evidence helpers. Fail closed unless the URL is https://api.github.com so file:// and arbitrary hosts cannot reach urlopen. Co-authored-by: Cursor <cursoragent@cursor.com>
Bumps [anyio](https://github.com/agronholm/anyio) from 4.14.0 to 4.14.2. - [Release notes](https://github.com/agronholm/anyio/releases) - [Commits](agronholm/anyio@4.14.0...4.14.2) --- updated-dependencies: - dependency-name: anyio dependency-version: 4.14.2 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
Replace retired urllib urlopen monkeypatches with direct CodeQL and Strix dedicated-opener patches. Remove the PR-specific global conftest bridge so both security helpers exercise the same explicit transport boundary without live network access.
Clears Bandit/Semgrep B310 on shared scripts/ci urlopen so the anyio bump is not blocked by unrelated SAST.
Restore the unrelated #2269 URL-opener paths to protected main while retaining the AnyIO 4.14.2 pin and hashes. The URL/redirect responsibility remains in canonical #2279; this PR owns only the dependency security update. Validated with 56 focused tests, 3,335 full tests plus 28 skipped/40 subtests, warnings-as-errors, diff check, and pip-audit reporting no known vulnerabilities.
…e the consumer root Green step for a8d6261. The 24 specialized cases in test_strix_quick_gate.sh installed the trusted gate/model/binder into $repo_root_dir/scripts/ci and ran ./scripts/ci/strix_quick_gate.sh, so a consumer-root binder lookup could never fail there and masked the #2292 defect. Each case now materializes into $tmp_dir/trusted-source/scripts/ci and runs the gate from that directory with STRIX_REPO_ROOT=$repo_root_dir, which keeps the old repo-root semantics (the gate defaults REPO_ROOT to SCRIPT_DIR/../..). Evidence: - tests/test_strix_trusted_fixture_boundary.py: fails on a8d6261 (CI job 106083294309), passes here. - bash scripts/ci/test_strix_quick_gate.sh on Linux, umask 022: a8d6261 PASS (rc=0, 727s) and this commit PASS (rc=0, 726s). - strix-related pytest (8 files): 242 passed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01P5o6j4zfxGPdRaH4Lug8UY
Remove the unused queue-health collector and CLI, validate run IDs at the shared parsing boundary, and exercise document-reader and scheduler edge cases. The main baseline failed the 100% gate before PR #2358.
- Select a target-scoped credential that can actually read code-scanning analyses before the GHAS base/head configuration identity check, instead of the first non-empty token (the OpenCode app token returns 403). Ported from #2275. - Replace the set-membership URL assertion flagged by CodeQL py/incomplete-url-substring-sanitization with an issubset check. Ported from #2351.
Preserve #2385, #2359, and #2286 as explicit parents while composing their byte-identical overlapping locks and endpoint contract. This creates one exact-head bootstrap stack for the coverage-image, 100% coverage, AnyIO audit, and CodeQL dispatch failures without force-push, rebase, or delta disposal.
|
Admission correction — exact current head |
|
Run 35278138086 / job 105467909801 reported the same two stale B310 findings. Root-cause repair (exact-head preserving, non-force). The failed Python Security evidence was inherited from the stale central base, not introduced by this PR's documentation delta. I ordinary-restacked this branch on current canonical security/CodeQL owner #2291 ( Post-restack evidence:
New exact head: |
|
Concurrent-head re-audit: 새 head는 0-behind·mergeable·미해결 thread 0·활성 CHANGES_REQUESTED 0·terminal workflow failure 0입니다. Checks는 queued/pending이나 review admission blocker가 아니므로 Ready로 복구합니다. 이전 head의 approval/Checks는 병합 근거로 승계하지 않습니다. Current head의 terminal Checks와 qualifying independent approval 전에는 merge하지 않습니다. |
There was a problem hiding this comment.
Pull request overview
OpenCode reviewed the current-head product diff. Coverage is a separate gate.
Changed files
.github/workflows/codeql-scan-dispatch.yml— GitHub Actions review job.github/workflows/opencode-review-dispatch.yml— GitHub Actions review jobCHANGELOG.d/20260920-strix-trusted-binder-runtime-fixture.md— repository behaviorCHANGELOG.md— repository behaviordocs/doctoring/pr-2247-supersession-keep-residual-20260918.md— operator or user guidancedocs/product-technical-gap-baseline.md— operator or user guidancerequirements-strix-ci-hashes.txt— repository behaviorrequirements-strix-ci.txt— repository behaviorscripts/ci/actions_queue_health.py— review and security gate shell pathscripts/ci/actions_queue_health_core.py— review and security gate shell pathscripts/ci/strix_quick_gate.sh— review and security gate shell pathscripts/ci/test_strix_quick_gate.sh— review and security gate shell pathtests/test_actions_queue_health_cancelled_before_runner.py— regression suitetests/test_actions_queue_health_post_evidence_retry.py— regression suitetests/test_actions_queue_health_snapshot_consistency.py— regression suitetests/test_actions_queue_health_terminal_preexecution.py— regression suitetests/test_codeql_scan_dispatch_ghas_credential_contract.py— regression suitetests/test_noema_document_review_context.py— regression suitetests/test_noema_review_document_boundaries.py— regression suitetests/test_opencode_agent_contract.py— regression suitetests/test_organization_commercial_readiness_loop_receipt_contract.py— regression suitetests/test_pr_review_autofix_nvidia_nim_contract.py— regression suitetests/test_pr_review_merge_scheduler.py— regression suitetests/test_strix_evidence_binder_trusted_path.py— regression suitetests/test_strix_runtime_dependencies.py— regression suitetests/test_strix_trusted_fixture_boundary.py— regression suite
Changed behavior
flowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Workflow: codeql-scan-dispatch.yml"]
S1 --> I1["GitHub Actions review job"]
I1 --> R1["Review risk: Workflow: codeql-scan-dispatch.yml"]
R1 --> V1["actionlint plus required checks"]
Evidence --> S2["Workflow: opencode-review-dispatch.yml"]
S2 --> I2["GitHub Actions review job"]
I2 --> R2["Review risk: Workflow: opencode-review-dispatch.yml"]
R2 --> V2["actionlint plus required checks"]
Evidence --> S3["Repository file: 20260920-strix-trusted-binder-runtime-fixture.md"]
S3 --> I3["repository behavior"]
I3 --> R3["Review risk: Repository file: 20260920-strix-trusted-binder-runtime-fixture.md"]
R3 --> V3["required checks"]
Evidence --> S4["Repository file: CHANGELOG.md"]
S4 --> I4["repository behavior"]
I4 --> R4["Review risk: Repository file: CHANGELOG.md"]
R4 --> V4["required checks"]
Evidence --> S5["Docs: pr-2247-supersession-keep-residual-20260918.md (2 files)"]
S5 --> I5["operator or user guidance"]
I5 --> R5["Review risk: Docs: pr-2247-supersession-keep-residual-20260918.md (2 files)"]
R5 --> V5["docs review"]
Evidence --> S6["Repository file: requirements-strix-ci-hashes.txt"]
S6 --> I6["repository behavior"]
I6 --> R6["Review risk: Repository file: requirements-strix-ci-hashes.txt"]
R6 --> V6["required checks"]
Evidence --> S7["Repository file: requirements-strix-ci.txt"]
S7 --> I7["repository behavior"]
I7 --> R7["Review risk: Repository file: requirements-strix-ci.txt"]
R7 --> V7["required checks"]
Evidence --> S8["CI script: actions_queue_health.py"]
S8 --> I8["review and security gate shell path"]
I8 --> R8["Review risk: CI script: actions_queue_health.py"]
R8 --> V8["bash -n plus Strix self-test"]
Evidence --> S9["CI script: actions_queue_health_core.py"]
S9 --> I9["review and security gate shell path"]
I9 --> R9["Review risk: CI script: actions_queue_health_core.py"]
R9 --> V9["bash -n plus Strix self-test"]
Evidence --> S10["CI script: strix_quick_gate.sh"]
S10 --> I10["review and security gate shell path"]
I10 --> R10["Review risk: CI script: strix_quick_gate.sh"]
R10 --> V10["bash -n plus Strix self-test"]
Evidence --> S11["CI script: test_strix_quick_gate.sh"]
S11 --> I11["review and security gate shell path"]
I11 --> R11["Review risk: CI script: test_strix_quick_gate.sh"]
R11 --> V11["bash -n plus Strix self-test"]
Evidence --> S12["Test: test_actions_queue_health_cancelled_before_runner.py (14 files)"]
S12 --> I12["regression suite"]
I12 --> R12["Review risk: Test: test_actions_queue_health_cancelled_before_runner.py (14 files)"]
R12 --> V12["targeted test run"]
Findings
No source-backed product finding is synthesized from the coverage gate. A coverage miss belongs in the status comment.
- Head SHA:
dc274855cc037418454f87ff88630928bf49fadb - Workflow run: 36279935746
- Workflow attempt: 1
- Coverage gate:
failure
Review outcome
Coverage is a gate, not the review. This body reviews the changed product files.
Changed-File Evidence Map
flowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Workflow: codeql-scan-dispatch.yml"]
S1 --> I1["GitHub Actions review job"]
I1 --> R1["Review risk: Workflow: codeql-scan-dispatch.yml"]
R1 --> V1["actionlint plus required checks"]
Evidence --> S2["Workflow: opencode-review-dispatch.yml"]
S2 --> I2["GitHub Actions review job"]
I2 --> R2["Review risk: Workflow: opencode-review-dispatch.yml"]
R2 --> V2["actionlint plus required checks"]
Evidence --> S3["Repository file: 20260920-strix-trusted-binder-runtime-fixture.md"]
S3 --> I3["repository behavior"]
I3 --> R3["Review risk: Repository file: 20260920-strix-trusted-binder-runtime-fixture.md"]
R3 --> V3["required checks"]
Evidence --> S4["Repository file: CHANGELOG.md"]
S4 --> I4["repository behavior"]
I4 --> R4["Review risk: Repository file: CHANGELOG.md"]
R4 --> V4["required checks"]
Evidence --> S5["Docs: pr-2247-supersession-keep-residual-20260918.md (2 files)"]
S5 --> I5["operator or user guidance"]
I5 --> R5["Review risk: Docs: pr-2247-supersession-keep-residual-20260918.md (2 files)"]
R5 --> V5["docs review"]
Evidence --> S6["Repository file: requirements-strix-ci-hashes.txt"]
S6 --> I6["repository behavior"]
I6 --> R6["Review risk: Repository file: requirements-strix-ci-hashes.txt"]
R6 --> V6["required checks"]
Evidence --> S7["Repository file: requirements-strix-ci.txt"]
S7 --> I7["repository behavior"]
I7 --> R7["Review risk: Repository file: requirements-strix-ci.txt"]
R7 --> V7["required checks"]
Evidence --> S8["CI script: actions_queue_health.py"]
S8 --> I8["review and security gate shell path"]
I8 --> R8["Review risk: CI script: actions_queue_health.py"]
R8 --> V8["bash -n plus Strix self-test"]
Evidence --> S9["CI script: actions_queue_health_core.py"]
S9 --> I9["review and security gate shell path"]
I9 --> R9["Review risk: CI script: actions_queue_health_core.py"]
R9 --> V9["bash -n plus Strix self-test"]
Evidence --> S10["CI script: strix_quick_gate.sh"]
S10 --> I10["review and security gate shell path"]
I10 --> R10["Review risk: CI script: strix_quick_gate.sh"]
R10 --> V10["bash -n plus Strix self-test"]
Evidence --> S11["CI script: test_strix_quick_gate.sh"]
S11 --> I11["review and security gate shell path"]
I11 --> R11["Review risk: CI script: test_strix_quick_gate.sh"]
R11 --> V11["bash -n plus Strix self-test"]
Evidence --> S12["Test: test_actions_queue_health_cancelled_before_runner.py (14 files)"]
S12 --> I12["regression suite"]
I12 --> R12["Review risk: Test: test_actions_queue_health_cancelled_before_runner.py (14 files)"]
R12 --> V12["targeted test run"]
OpenCode Review Overview
Coverage evidence did not pass, so approval is blocked. The formal pull-request review is the source-backed diff review, not this status comment. |
Summary
docs/doctoring/pr-2247-supersession-keep-residual-20260918.md.scripts/ci/changes.Test plan
main.Made with Cursor