Parent: spec #26 (.scratch/pr139-review/spec.md) — round-2 review item.
Status: done (records an inline fix for tracker completeness).
What this is
After the round-1 fixes landed, reviewer mrcfps (Looper) re-scanned and flagged one more non-blocking item: the T12 "falls back to the ZCode Electron exe when node is not on PATH" test (next invoke.test.ts + cli agents-invoke.test.ts) forces process.platform to "win32" at runtime, but its decisive assertion branched on the module-level USE_SHELL (const USE_SHELL = process.platform === "win32", evaluated once at import from the real host). So it passed on a win32 host but failed on Linux/macOS CI (USE_SHELL=false expects the unquoted exe path; production quotes it under the stubbed win32). The stubbed platform was also never restored, leaking win32 to later tests. Production spawn quoting was always correct — only the assertion was host-dependent.
Resolution
Fixed in dc98e80: assert the win32 spawn shape (quoted bin + shell: true) unconditionally and restore process.platform in try/finally, mirrored in next + cli. Verified: next invoke 32/32, cli T12 passes (only the 2 pre-existing win32 relative-binOverride baseline failures remain). Test-correctness only — no production change, no ADR/CONTEXT change. Replied + resolved on the upstream thread.
Parent: spec #26 (
.scratch/pr139-review/spec.md) — round-2 review item.Status: done (records an inline fix for tracker completeness).
What this is
After the round-1 fixes landed, reviewer
mrcfps(Looper) re-scanned and flagged one more non-blocking item: the T12 "falls back to the ZCode Electron exe when node is not on PATH" test (nextinvoke.test.ts+ cliagents-invoke.test.ts) forcesprocess.platformto"win32"at runtime, but its decisive assertion branched on the module-levelUSE_SHELL(const USE_SHELL = process.platform === "win32", evaluated once at import from the real host). So it passed on a win32 host but failed on Linux/macOS CI (USE_SHELL=false expects the unquoted exe path; production quotes it under the stubbed win32). The stubbed platform was also never restored, leaking win32 to later tests. Production spawn quoting was always correct — only the assertion was host-dependent.Resolution
Fixed in
dc98e80: assert the win32 spawn shape (quoted bin +shell: true) unconditionally and restoreprocess.platformin try/finally, mirrored in next + cli. Verified: next invoke 32/32, cli T12 passes (only the 2 pre-existing win32 relative-binOverride baseline failures remain). Test-correctness only — no production change, no ADR/CONTEXT change. Replied + resolved on the upstream thread.