fix(strix): resolve the evidence binder next to the trusted gate - #2331
seonghobae wants to merge 1 commit into
Conversation
strix_quick_gate.sh looked for strix_evidence_binding.py under REPO_ROOT, which is the scanned consumer checkout, so every non-.github repository exited 2 after a clean scan (fast-mlsirm#2005/#2018). Resolve it from SCRIPT_DIR like strix_model_utils.sh, keep the fail-closed check, and copy the binder into the self-test fixture repositories. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LeLbwEgYXzCzpaFMTHDcBS
|
Warning Review limit reachedNext included review available in 1 minute. 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 (4)
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 |
|
Lead note: this duplicates the earlier #2291 (bbe225d, 2026-09-19), which changes the same binder line to |
|
Succession audit complete against canonical #2291. Valid delta from this sibling is now fully inherited by The remaining unique changes here are therefore either semantically duplicated or weaker than the canonical owner. No workflow/review receipt transfers. Closing this direct-main sibling is complete-succession cleanup, not evidence that #2291 is merge-ready; #2291 remains Draft pending fresh exact-head hosted checks and independent review. |
Root cause
fast-mlsirm#2005 and #2018 Strix reported 0 vulnerabilities and then exited 2 with
Strix evidence binder is missing: …/trusted-workspace/scripts/ci/strix_evidence_binding.py.strix.ymlruns the trusted.githubgate (TRUSTED_STRIX_GATE) withSTRIX_REPO_ROOTset to the consumer repository's base checkout.sanitize_remediation_evidence_claims()looked for the central binder under$REPO_ROOT/scripts/ci/, which is the consumer tree and does not contain the binder. Only.githubPRs passed, because there the gate and the scanned repository are the same checkout. The gate already loads its other helper the right way (. "$SCRIPT_DIR/strix_model_utils.sh").Change
scripts/ci/strix_quick_gate.sh: the binder is resolved at$SCRIPT_DIR/strix_evidence_binding.py. If the trusted copy is missing or a symlink, the gate still fails closed with exit 2.tests/test_strix_evidence_binder_trusted_path.py: runs the real bash function with a consumerREPO_ROOTthat has noscripts/ci, and asserts it succeeds. A second case asserts it still fails closed when the trusted copy is absent. Both fail on the previous gate and pass now.scripts/ci/test_strix_quick_gate.sh: the 25 fixture setups now copy the binder next to the copied gate. Fifteen pull-request-target cases had been failing with the same "binder is missing" error since 1e15046 (2026-09-17).Evidence
pytest tests/test_strix_evidence_binder_trusted_path.py: 2 passed. RED is 2 failed on main.bash scripts/ci/test_strix_quick_gate.shhit the local 50-minute limit before finishing. By that point none of the fifteen binder cases had failed, whereas the pre-change run showed 15 binder FAIL lines at the same stage. The three FAIL lines that remain are pre-existing and unrelated: OpenCode coverage-source contract wording (coverage-source-tree:,TARGET_REPOSITORY: ${{ needs.validate-pr-metadata.outputs.target_repository }},Report coverage source materialization failure). Hosted CI is the authoritative full run.🤖 Generated with Claude Code
https://claude.ai/code/session_01LeLbwEgYXzCzpaFMTHDcBS