test(testing): build test-scan suite payloads without MSYS path conversion
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 72/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- bash, git, shell
- Ambito
- developer-experience, testing, tooling
Direzione di ricerca
Inizia in plugins/testing/hooks/test-scan.test.sh: anteponi a ciascun path builder jq --arg (payload(), bash_payload(), diff_of() e le chiamate inline intorno alle righe 516, 522, 548, 607) per chiamata MSYS_NO_PATHCONV=1 MSYS2_ARG_CONV_EXCL='*' come ha fatto la PR #6356, senza esportare quelle variabili. Lascia invariato l’oracle della session-key 297a19f13bd5fbd8. Esegui bash plugins/testing/hooks/test-scan.test.sh su Windows Git Bash con jq nativo; tratta i rimanenti mismatch .file/.repo alle assertion elencate come follow-up se falliscono ancora.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- Shell
- Stelle
- 22
- Fork
- 2
- Merge medio
- 8h 27m
- PR unite (30g)
- 957
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di melodic-software/claude-code-plugins
-
priority: medium
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
melodic-software/claude-code-plugins#7351 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
agent-ready priority: high work-class: scoped
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
melodic-software/claude-code-plugins#7312 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
priority: medium
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
melodic-software/claude-code-plugins#7288 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
knowledge: docpage-digest dual verification defines no verdict vocabulary or pass/fail thresholdApertaneeds-human
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
melodic-software/claude-code-plugins#7286 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
priority: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
melodic-software/claude-code-plugins#7282 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di melodic-software/claude-code-plugins
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 1 giorno
-
Sourced-library load-guards use a top-level `return` that errors on direct execution (repo-wide)Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
rossoctl/automation#115 ·
I maintainer di solito rispondono entro 3 giorni
-
loongarch64: `unsupported linker arg: --no-rosegment` with rustc 1.100Forse già presa @monosans l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
rust-cross/cargo-zigbuild#503 ·
I maintainer di solito rispondono entro 1 giorno
-
area/CubeMaster bug needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
TencentCloud/CubeSandbox#1959 ·
I maintainer di solito rispondono entro 1 giorno
-
netbox status: backlog topic: testing type: housekeeping
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
netbox-community/netbox#23395 ·
I maintainer di solito rispondono entro 1 giorno