fix(strix): accept legal Packrat fixture paths - #800
Conversation
|
Warning Review limit reached
Next review available in: 12 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (5)
📝 WalkthroughWalkthroughStrix 변경 경로 정책이 쉼표와 ASCII 괄호를 허용하도록 변경되었습니다. 경로 순회와 셸 구문 문자는 계속 차단됩니다. 회귀 테스트와 GitHub Actions 품질 검사 워크플로가 추가되었습니다. ChangesStrix 경로 정책
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 |
|
@opencode-agent @cwl-noema-review Review-only exact-head request for |
|
@coderabbitai review Review exact current head |
|
✅ Action performedReview finished.
|
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 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 @.github/workflows/strix-changed-path-quality-ci.yml:
- Around line 6-9: Update the workflow’s paths configuration to include
docs/doctoring/strix-legal-git-paths.md and CHANGELOG.md so changes to either
contract file trigger validation. In the workflow test step, replace the
single-test-file invocation with the full suite command using coverage and
pytest against tests in quiet mode.
In `@tests/test_strix_changed_path_policy.py`:
- Around line 65-84: Reject raw “..” path components before normalization in the
changed-path normalizer, and add “safe/../target.txt” to the rejected cases in
tests/test_strix_changed_path_policy.py:65-84. Update
docs/doctoring/strix-legal-git-paths.md:20-29 to retain the traversal-rejection
claim only after this fix, and remove or limit the same fail-closed claim in
CHANGELOG.md:15 until the fix is applied.
🪄 Autofix
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: 306ffc18-d8b4-4332-a38e-0f618add47b9
📒 Files selected for processing (5)
.github/workflows/strix-changed-path-quality-ci.ymlCHANGELOG.mddocs/doctoring/strix-legal-git-paths.mdscripts/ci/strix_quick_gate.shtests/test_strix_changed_path_policy.py
| PIP_DISABLE_PIP_VERSION_CHECK: "1" | ||
| PIP_NO_INPUT: "1" | ||
| run: >- | ||
| python -m pip install --only-binary=:all: |
|
@coderabbitai review Review exact current head |
|
@opencode-agent @cwl-noema-review Review-only exact-head request for |
|
|
|
@coderabbitai review Please retry the exact-current-head review for |
|
|
|
@coderabbitai review Review exact current head |
|
I will verify the raw-traversal rejection boundary and the full-suite exact-head workflow. I will treat
|
Buyer-visible blocker
The organization-required Strix gate failed before security analysis for
ContextualWisdomLab/aFIPC#160exact head804ea97cd83144f94c5020a9d42f2573cc8cb442. Its changed-file list contains the tracked historical Packrat fixture path:packrat/lib/x86_64-pc-linux-gnu/3.4.1/packrat/tests/testthat/Ugly, but legal, path for a project (long)/bread/DESCRIPTIONThe central normalizer rejected that legal path solely because comma and ASCII parentheses were absent from its bounded allowlist. This left a valid generated-dependency cleanup without exact-head Strix evidence.
Focused repair
(and)in the existing changed-path allowlist;..components beforeposixpath.normpath()can collapse embedded traversal such assafe/../target.txt;Test-first evidence
f070c504c1cb06891b800d7ab0cf6ac7d3cf8eae: historical Packrat path regression failed before the allowlist repair.27f632b5c7d350efdf6a19745eb787268d86e940:safe/../target.txtwas proven to pass incorrectly, andStrix Changed Path Quality CIfailed specifically onAssertionError: 0 == 0for that candidate.899 passed, 16 subtests passedafter rejecting raw traversal components and running the complete repository test suite.GITHUB_TOKENcorrectly refused to push a workflow-file modification withoutworkflowspermission. The workflow change was therefore applied through the authorized GitHub connector, while the product-code repair was committed separately with no workflow mutation; protections and credentials were not broadened.Exact current head:
f48ee444097b741092c05fa99715b2a494550099.Final scope
.github/workflows/strix-changed-path-quality-ci.ymlCHANGELOG.mddocs/doctoring/strix-legal-git-paths.mdscripts/ci/strix_quick_gate.shtests/test_strix_changed_path_policy.pyMerge gate
Merge only after every exact-current-head CI, security, supply-chain, CodeRabbit, OpenCode, Noema, unresolved-thread, independent non-author approval, and branch-protection gate passes. Pending, queued, cancelled, skipped-required, absent, stale-head, failed, author-only, or predecessor-head evidence is not success. After merge, rerun the failed Strix evidence for unchanged
aFIPC#160exact head; do not reuse its predecessor failure or bypass the required check.