fix(ci): correct strix quick-gate opencode fuzz support-file case pattern - #1499
fix(ci): correct strix quick-gate opencode fuzz support-file case pattern#1499seonghobae wants to merge 3 commits into
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.
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks 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.
|
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