fix(review): expose coverage summary list read-only - #647
Conversation
📝 WalkthroughWalkthroughJavaScript/TypeScript coverage evidence 단계에서 ChangesCoverage summary 권한 처리
Estimated code review effort: 1 (Trivial) | ~5 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
tests/test_opencode_agent_contract.py (1)
400-403: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win계약 테스트의 범위를 JavaScript coverage helper로 좁혀 주세요.
현재 전체
measure_step에서chmod가--summary-list보다 앞서는지만 확인하므로,chmod가check_javascript_coverage_thresholds()밖으로 이동해도 테스트가 통과할 수 있습니다.find ... >"$summary_list"완료 후chmod 0444, 이후--summary-list순서를 같은 함수 블록에서 검증해 주세요.🤖 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_opencode_agent_contract.py` around lines 400 - 403, Update the contract assertions in the test around measure_step to isolate the check_javascript_coverage_thresholds() function block rather than inspecting the entire measure_step. Within that block, verify that find ... >"$summary_list" completes before chmod 0444 "$summary_list", and that chmod occurs before --summary-list "$summary_list".
🤖 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_opencode_agent_contract.py`:
- Around line 400-403: Update the contract assertions in the test around
measure_step to isolate the check_javascript_coverage_thresholds() function
block rather than inspecting the entire measure_step. Within that block, verify
that find ... >"$summary_list" completes before chmod 0444 "$summary_list", and
that chmod occurs before --summary-list "$summary_list".
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 3bd1c2d8-42ac-4cef-b9fc-104e8128f4f8
📒 Files selected for processing (3)
.github/workflows/opencode-review-dispatch.ymlscripts/ci/test_strix_quick_gate.shtests/test_opencode_agent_contract.py
|
@coderabbitai review |
✅ Action performedReview finished.
|
원인
중앙 OpenCode 실행 30443337486은
ContextualWisdomLab/naruon#1179@c705f89에서 pnpm offline 설치와 프런트엔드 394개 테스트를 모두 통과했지만, changed-source coverage gate에 전달한/tmp/javascript-coverage-summaries.*를 읽지 못했습니다.mktemp가 root 소유 mode0600파일을 만들고, 실제 coverage gate는 UID 65532의 비권한 sandbox 프로세스로 실행되기 때문에Permission denied가 발생했습니다.변경
0444로 고정합니다.check_javascript_coverage_thresholds()내부에서find,chmod,--summary-list순서를 검증합니다.current-HEAD 검증
320464674165c6287c418445d296da06a29a4679, base66b073b80903e51873f7f861200af251177b7fb8python3 -m pytest -q tests/test_opencode_agent_contract.py— 37 passedpython3 -m pytest -q— 674 passedscripts/ci/test_strix_quick_gate.sh— 242 scenarios PASSactionlint -shellcheck=, YAML parse, Bash syntax,git diff --check— PASS0444생성·비권한 읽기 증거 — PASS별도 중앙 dispatch 30446303444는 이 PR의 핵심인 coverage-evidence를 PASS로 확인했습니다. 이후 anonymous Zen 모델이 top-level control JSON을 내지 않아 strict normalizer가 안전하게 거부했고
opencode-reviewcommit status만 FAILURE가 되었습니다. 이는 coverage 수정의 소스 결함이 아니며, provider-native JSON 강제 후속은 #649에서 current-head 검증 중입니다.Unblocks ContextualWisdomLab/naruon#1179