test(testing): build test-scan suite payloads without MSYS path conversion
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 72/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- bash, git, shell
- Lĩnh vực
- developer-experience, testing, tooling
Hướng nghiên cứu
Bắt đầu trong plugins/testing/hooks/test-scan.test.sh: tiền tố mỗi bộ dựng đường dẫn jq --arg (payload(), bash_payload(), diff_of(), và các lời gọi inline quanh các dòng 516, 522, 548, 607) theo từng lời gọi bằng MSYS_NO_PATHCONV=1 MSYS2_ARG_CONV_EXCL='*' như PR #6356 đã làm, không export các biến đó. Giữ nguyên oracle session-key 297a19f13bd5fbd8. Chạy bash plugins/testing/hooks/test-scan.test.sh trên Windows Git Bash với jq native; coi các mismatch .file/.repo còn lại tại các assertion đã liệt kê là follow-up nếu chúng vẫn thất bại.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Summary
On Windows Git Bash with a native jq.exe, plugins/testing/hooks/test-scan.test.sh builds its hook payloads by passing POSIX paths to jq through --arg, and MSYS rewrites those arguments to Windows form. The hook then hashes a converted transcript_path against an unconverted CLAUDE_PROJECT_DIR, so the project-key checks cannot match their literal. This is the same fixture defect #6266 fixed for the test-judge suites; PR #6356 added the per-call MSYS_NO_PATHCONV=1 MSYS2_ARG_CONV_EXCL='*' prefix there but did not touch test-scan.test.sh, which carries no such prefix anywhere.
This is a test-fixture defect. Live sessions are unaffected for the reasons #6266 gives: Claude Code supplies drive-letter paths, which MSYS leaves alone.
plugins/testing/skills/audit/scripts/cant-fail-scan.test.sh was checked and is not affected: its only jq call (:1734) reads a file operand, where conversion is wanted. A full local run on Windows Git Bash passed 1195 of 1195.
Steps to reproduce
- On Windows Git Bash where
jqresolves to a native Windows binary, runbash plugins/testing/hooks/test-scan.test.sh. - Look at the
pkey:checks.
Not run this pass (see Evidence); the failure is derived from the code.
Expected
The pkey: checks pass, as they do on Linux: the record lands under sessions/297a19f13bd5fbd8/.
Actual (derived)
payload() passes TPATH=/nonexistent/transcripts/-proj/a.jsonl through --arg tp. MSYS converts it to a path under the Git install root (for example C:/Program Files/Git/nonexistent/transcripts/-proj/a.jsonl), while CLAUDE_PROJECT_DIR=/nonexistent/proj reaches the hook unconverted through the environment. testing::pkey hashes the mixed pair, so the key is not 297a19f13bd5fbd8 and the checks at :437, :439, :441 and :446 fail. :446 also passes PCWD=$P through --arg c, which is converted too.
Evidence (file:line, origin/main 9680bdaa1)
plugins/testing/hooks/test-scan.test.sh:135-141:payload()runsjq -cn --arg t ... --arg f "$2" ... --arg tp "$TPATH" --arg c "$PCWD"with no MSYS prefix.test-scan.test.sh:434-446:P=/nonexistent/proj,TP=/nonexistent/transcripts/-proj;CLAUDE_PROJECT_DIR=$Pis set as an environment prefix (not converted),TPATHandPCWDgo throughpayload()(converted). Assertions expect/sessions/297a19f13bd5fbd8/.plugins/testing/hooks/test-scan.sh:55-63reads.cwdand.transcript_pathraw from the payload, and:90callstesting::pkey "${CLAUDE_PROJECT_DIR:-$pcwd}" "$tpath".plugins/testing/hooks/scanner-run.sh:37-44:testing::pkeyhashes$1and the directory of$2with no path-form normalization.- Other
--argpath builders in the same file with no prefix:bash_payload():474(--arg tp,--arg c),diff_of():481(--arg f), and inline builders at:516,:522,:548,:607. - Likely second failure, inferred:
:378-379asserts.file == "$REPO/src/mixed.test.ts" and .repo == "$REPO"with$REPOundermktemp -d(a/c/...or/tmp/...path). The recorded.filecomes from the converted payload path, and.repofrom the git toplevel, which Git for Windows reports inC:/...form. The per-call prefix alone may not fix this one, becausetest-scan.sh:94itself passes--arg file "$FILE"to native jq; PR #6356's Related section names the same hook-side follow-up for the judge hooks. - Precedent for the fix: PR #6356 (
judge-test-helpers.sh,test-judge.test.sh,test-judge-start.test.sh), andlib/hook-utils.test.sh:393-399. - Not run: this suite was not executed on Windows this pass, so no failure count is measured. The mechanism rests on the code above and on the native
jq.exeestablished in #6266.
Suggested fix
Prefix each jq call in test-scan.test.sh that passes a filesystem path through --arg into a payload (payload(), bash_payload(), diff_of(), and the inline builders at :516, :522, :548, :607) with MSYS_NO_PATHCONV=1 MSYS2_ARG_CONV_EXCL='*', per call, as PR #6356 did. Do not export either variable; the node exec-bash.mjs calls at :159 and :503 need conversion. Leave the 297a19f13bd5fbd8 literal as the independent oracle. Then run the suite on Windows Git Bash and handle any remaining .file/.repo path-form mismatches at :378-379, :544 and :610 separately.
Related: #6266, PR #6356, #6135.
- Ngôn ngữ chính
- Shell
- Star
- 22
- Fork
- 2
- Merge trung bình
- 5 giờ 4 phút
- Pull request đã merge (30 ngày)
- 825
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của melodic-software/claude-code-plugins
-
good first issue needs-triage priority: medium
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
melodic-software/claude-code-plugins#6499 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
needs-human needs-triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 80/100
melodic-software/claude-code-plugins#6496 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
good first issue needs-triage priority: low
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
melodic-software/claude-code-plugins#6386 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
needs-human needs-triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
melodic-software/claude-code-plugins#6363 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
good first issue needs-triage priority: medium
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
melodic-software/claude-code-plugins#6333 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của melodic-software/claude-code-plugins
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
collabnix/awesome-mcp-lists#179 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
electron tech debt
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
documentation
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
alunduil/alunduil-chezmoi#870 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 1 ngày
-
package-update
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
oSoWoSo/vOid_Community_repOsitory#268 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày