fix(ci): correct strix quick-gate opencode fuzz support-file case pattern - #1499
Conversation
…tern copy_required_scope_support_files() matched the dead fuzz/fuzz_opencode_normalize_output.py duplicate (calls a nonexistent extract_json_object) instead of the real, live fuzz target fuzz/fuzz_opencode_review_normalize_output.py, which imports scripts/ci/opencode_review_normalize_output.py. A PR touching only the real fuzz target never got the normalizer module copied into the Strix scan scope. Add regression coverage for this case arm.
|
Warning Review limit reachedNext included review available in 30 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: Team Run ID: 📒 Files selected for processing (2)
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-head-path-policy fails on this PR's own head not because of this PR's diff, but because of a pre-existing bug on main in test_strix_quick_gate.sh: the awk range /^ required-workflow-bootstrap:$/,/^[^ ]/ never finds its end pattern (every job key is indented 2 spaces, never column 0), so it captures the rest of the jobs section instead of just that job. A legitimate, unrelated if: added elsewhere in opencode-review.yml by PR #1497 gets swept into the captured block and trips the "must not depend on required-workflow event payload fields" assertion. This check runs on plain pull_request (not pull_request_target) against each PR's own head, so the base-branch fix in #1506 doesn't propagate here automatically; porting the same fix directly is what makes this PR's own check pass. Ports the exact fix from #1506.
|
|
Contextual-Orchestrator를 같이 손보든 어쩌든 해결하세요. Bypass merge 필요하면 가능 (chicken and eggs 상황이라면) + NVIDIA NIM 만 쓰는 건 허용하지 않아요. Contextual-Orchestrator를 쓰세요. |
|
Checking before acting on the bypass-merge point, since it's high-impact and I want to target it correctly: This PR's diff is scoped to
Neither is a chicken-and-egg deadlock for this PR specifically — #1499 doesn't block anything else, so bypass-merging it wouldn't unblock anything downstream, it would just skip its own review. The actual chicken-and-egg case I can see is PRs that fix the review pipeline itself (e.g. #1227, #1506, #1443) being unable to get reviewed because the review pipeline is what's broken — those are the ones a bypass would actually unstick. Given that mismatch, and that this goes beyond this PR's original scope (the fuzz-target case-pattern bug), I don't want to guess: should I (a) bypass-merge #1499 as-is despite the failing/stuck checks, (b) leave #1499 on normal review and instead look at unblocking the actual root-cause PRs, or (c) something else you had in mind for Contextual-Orchestrator here that I'm missing? Let me know and I'll act on it directly. Generated by Claude Code |
|
Contextual-Orchestrator와 관계한 것들을 같이 손보든 어쩌든 해결하세요. Bypass merge 필요하면 가능 (chicken and eggs 상황이라면) + NVIDIA NIM 만 쓰는 건 허용하지 않아요. Contextual-Orchestrator를 쓰세요. Timeout은 적어도 3시간으로 잡으세요. 120초 같은 건 당황스럽군요. Strix가 6시간 이상 동작해서 취약점 잡는 것도 본 일이 있습니다. Opencode와 Noema 는 Coderabbitai 및 Devin 수준으로 실제로 리뷰를 하게 하시오. Strix도 보안 리뷰를 꼼꼼하게 하도록 하시오. 특히 보안 리뷰는 전체 코드로 수행하는 것입니다. Contextual-Orchestrator는 실시간으로 빠르면서 능력이 좋은 모델에 요청을 보내어 시간을 당기시오. |
|
Understood — a few of these I can close the loop on directly:
Continuing to watch #1499 for CI and mergeability. Generated by Claude Code |
| include_strix_model_utils=1 | ||
| ;; | ||
| fuzz/fuzz_opencode_normalize_output.py | scripts/ci/opencode_review_normalize_output.py | tests/test_opencode_review_normalize_output.py) | ||
| fuzz/fuzz_opencode_review_normalize_output.py | scripts/ci/opencode_review_normalize_output.py | tests/test_opencode_review_normalize_output.py) |
There was a problem hiding this comment.
🟡 Legacy fuzz target loses scan dependency
When a PR changes the still-present fuzz_opencode_normalize_output.py, Strix omits its imported normalizer. The scoped review therefore lacks required context.
| fuzz/fuzz_opencode_review_normalize_output.py | scripts/ci/opencode_review_normalize_output.py | tests/test_opencode_review_normalize_output.py) | |
| fuzz/fuzz_opencode_normalize_output.py | fuzz/fuzz_opencode_review_normalize_output.py | scripts/ci/opencode_review_normalize_output.py | tests/test_opencode_review_normalize_output.py) |
Was this helpful? React with 👍 or 👎 to provide feedback.
| awk '/^ required-workflow-bootstrap:$/{p=1; print; next} p && /^ [A-Za-z0-9_-]+:/{exit} p' "$bootstrap_file" | | ||
| grep '^[[:space:]]*if:' >/dev/null |
Summary
copy_required_scope_support_files()inscripts/ci/strix_quick_gate.shmatchedfuzz/fuzz_opencode_normalize_output.py— a dead/orphaned duplicate fuzz target (it called a nonexistentextract_json_objectfunction) — instead of the real, live fuzz targetfuzz/fuzz_opencode_review_normalize_output.py, which actually imports and exercisesscripts/ci/opencode_review_normalize_output.pyand is referenced by.clusterfuzzlite/Dockerfileandtests/test_fuzz_targets.py.fuzz/fuzz_opencode_review_normalize_output.pynever setinclude_opencode_normalizer=1, soscripts/ci/opencode_review_normalize_output.pywas not copied into the Strix scan scope for that PR, even though the fuzz target imports it (from scripts.ci import opencode_review_normalize_output as normalizer).scripts/ci/test_strix_quick_gate.sh: a newpr-changed-scope-includes-opencode-normalizerscenario asserts that when the only changed file isfuzz/fuzz_opencode_review_normalize_output.py,scripts/ci/opencode_review_normalize_output.pyis present in the materialized PR scan scope.Verification
include_opencode_normalizerdownstream to confirmbuild_pull_request_scope_dir()is the actual mechanism that determines what Strix scans for a PR (it's the function that materializesTARGET_PATHfor the scan), so this was a real, functional gap and not just cosmetic.extract_json_objectdoes not exist anywhere inscripts/ci/opencode_review_normalize_output.py, corroborating that the old-named fuzz file was already dead/broken.scripts/ci/test_strix_quick_gate.shexercised this specific case arm before this change.Test plan
bash scripts/ci/test_strix_quick_gate.sh— full suite passes (test_strix_quick_gate: PASS), including the newpr-changed-scope-includes-opencode-normalizerscenario.coverage run -m pytest tests— 2117 passed, 1 skipped.coverage report --show-missing— 100% (branch coverage,scripts/ci).interrogate— 100% docstring coverage.Generated by Claude Code