fix(ci): regenerate OpenCode review lock for Python 3.14 - #639
Conversation
📝 WalkthroughWalkthroughOpenCode 리뷰용 Python 3.14 해시 잠금 문서와 생성 파일이 갱신되었습니다. base Python lock materialize CLI의 입력 오류, 결과 보고, 예외 처리 및 엔트리포인트 테스트가 추가되었고, required-workflow CheckRun 플레이스홀더 처리와 관련 테스트가 변경되었습니다. ChangesOpenCode 잠금 및 materialize 검증
Required-workflow 컨텍스트 처리
Estimated code review effort: 3 (Moderate) | ~20 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 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 `@requirements-opencode-review-ci-hashes.txt`:
- Around line 1-2: Regenerate requirements-opencode-review-ci-hashes.txt using
the --upgrade command prescribed in CLAUDE.md rather than editing the
hash-pinned file directly; update tests/test_opencode_agent_contract.py lines
428-435 to assert that the generated header includes --upgrade --generate-hashes
--python-version 3.14 --python-platform x86_64-manylinux_2_28, with the
requirements file requiring no direct hand edit.
🪄 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: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 4c73b737-5577-434d-b6d5-681e74e77c78
📒 Files selected for processing (4)
CLAUDE.mdrequirements-opencode-review-ci-hashes.txttests/test_materialize_base_python_requirements.pytests/test_opencode_agent_contract.py
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 head50d72e39b83892685e4027ce48863d1eab62f19e. -
Head SHA:
50d72e39b83892685e4027ce48863d1eab62f19e -
Workflow run: 30425667538
-
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["Changed file (2 files)"]
S1 --> I1["repository behavior"]
I1 --> R1["Review risk: Changed file (2 files)"]
R1 --> V1["required checks"]
Evidence --> S2["Test (2 files)"]
S2 --> I2["regression suite"]
I2 --> R2["Review risk: Test (2 files)"]
R2 --> V2["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 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["Changed file (2 files)"]
S1 --> I1["repository behavior"]
I1 --> R1["Review risk: Changed file (2 files)"]
R1 --> V1["required checks"]
Evidence --> S2["CI script (2 files)"]
S2 --> I2["review and security gate shell path"]
I2 --> R2["Review risk: CI script (2 files)"]
R2 --> V2["bash -n plus Strix self-test"]
Evidence --> S3["Test (3 files)"]
S3 --> I3["regression suite"]
I3 --> R3["Review risk: Test (3 files)"]
R3 --> V3["targeted test run"]
|
There was a problem hiding this comment.
🧹 Nitpick comments (1)
tests/test_pr_review_merge_scheduler.py (1)
1053-1075: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win실제 OpenCode CheckRun과 required-workflow 플레이스홀더를 구분하는 테스트를 추가하세요.
현재
opencode_check()는 정상적인 OpenCode CheckRun 형태이며 플레이스홀더 전용 필드가 없습니다. 따라서 이 테스트는 “환경 변수가 있으면 모든 CheckRun을 제외한다”는 동작만 검증합니다. 실제 CheckRun은 유지되고, 실제 플레이스홀더만 제외되는 fixture를 각각 추가해야 합니다.🤖 Prompt for 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. In `@tests/test_pr_review_merge_scheduler.py` around lines 1053 - 1075, Update the test around is_opencode_context to cover both cases explicitly: add fixtures for a real OpenCode CheckRun and for the required-workflow placeholder, ensuring only the placeholder is excluded when SCHEDULER_REQUIRED_WORKFLOW_REPOSITORY is set. Keep the existing real-check fixture intact and assert that the real CheckRun remains recognized while the placeholder is rejected.
🤖 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.
Nitpick comments:
In `@tests/test_pr_review_merge_scheduler.py`:
- Around line 1053-1075: Update the test around is_opencode_context to cover
both cases explicitly: add fixtures for a real OpenCode CheckRun and for the
required-workflow placeholder, ensuring only the placeholder is excluded when
SCHEDULER_REQUIRED_WORKFLOW_REPOSITORY is set. Keep the existing real-check
fixture intact and assert that the real CheckRun remains recognized while the
placeholder is rejected.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: d82de09c-8c9b-43e9-93a0-2697f0abd4f2
📒 Files selected for processing (2)
scripts/ci/pr_review_merge_scheduler.pytests/test_pr_review_merge_scheduler.py
Dismissed as stale non-authoritative tooling evidence for superseded head 50d72e3. Central run 30425667538 failed before target-code evaluation because main still lacked the CPython 3.14 coverage wheel hash; PR #639 fixes that trusted lock. Current head is a818e33 and requires a fresh exact-head review.
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 heada818e3372a23a49caaccb180a34a1a506e164cef. -
Head SHA:
a818e3372a23a49caaccb180a34a1a506e164cef -
Workflow run: 30426298844
-
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["Changed file (2 files)"]
S1 --> I1["repository behavior"]
I1 --> R1["Review risk: Changed file (2 files)"]
R1 --> V1["required checks"]
Evidence --> S2["CI script (2 files)"]
S2 --> I2["review and security gate shell path"]
I2 --> R2["Review risk: CI script (2 files)"]
R2 --> V2["bash -n plus Strix self-test"]
Evidence --> S3["Test (3 files)"]
S3 --> I3["regression suite"]
I3 --> R3["Review risk: Test (3 files)"]
R3 --> V3["targeted test run"]
Controlled bootstrap exception evidence for current headCurrent head: Actual central review run 30426298844 failed before executing PR code because the trusted workflow correctly loaded the coverage-tool lock from current This PR is the correction for that exact trusted lock and cannot consume its own unmerged lock by design. All other hosted current-head checks passed, including CodeQL, Semgrep, Trivy, OSV, dependency review, pip-audit, Bandit, gitleaks, SBOM, Scorecard, and Strix. PR SARIF/code-scanning and open Dependabot alert queries are empty. Local evidence is 656 tests, 100% statement coverage over 5,599 Accordingly, the exact-head OpenCode |
Dismissed as a documented trusted-main bootstrap failure, not a PR-code finding. Exact-head run 30426298844 failed before PR execution because main lacked the CPython 3.14 coverage wheel hash this PR adds. All independent hosted security/build checks and local 656-test/100%-coverage evidence passed; see the controlled bootstrap exception comment. A native central review will be rerun immediately after merge.
|
The first exact-head admin merge attempt was correctly rejected by GitHub because the documented trusted-main bootstrap run left the required |
Summary
--upgrade,--generate-hashes, Python 3.14, andx86_64-manylinux_2_28repository_dispatchreviews; central review evidence remains the publishedopencode-reviewcommit statusIncident evidence
Central dispatch run 30424062642 selected coverage 7.14.3 for CPython 3.14 on Linux but rejected
sha256:1bb93c2aa61d2a5b38f1526546d95cf4132cb681e541a337bf8dfd092be816e5because the trusted lock only retained older artifact hashes. The affected organization sweep and all still-running child dispatches were cancelled before this PR.The current-head central review run 30426298844 reproduced the same trusted-main bootstrap failure before any PR code executed: its coverage image rejected that exact CPython 3.14 wheel hash, while its review publication job completed. This PR contains that missing hash, but the trusted workflow intentionally reads the lock from
main, so the correction cannot validate itself until merged.Validation
60ebe967135f5f8e244700af329278e1cd677334pip --require-hashes --only-binary=:all:and imported coverage, interrogate, pytest, pytest_cov, and uvReview model note
In central mode, required-workflow CheckRuns on a target head are placeholders. A real central
repository_dispatchreview runs in the trusted.githubrepository and publishes aStatusContexton the target SHA; it does not create a target-head CheckRun. Therefore central mode deliberately excludes all target-head OpenCode CheckRuns and recognizes only the authoritative status context.