Problem
AcpClient.initialize() uses bare child_process.spawn() which cannot locate npm-global .cmd shims on Windows, causing spawn gemini ENOENT when starting ACP agent processes.
Root Cause
The non-ACP CLI spawn path (cli-spawn.ts) already has a 3-tier Windows fallback (resolve .cmd → Git Bash → cmd.exe), but AcpClient was missing this handling.
Fix
PR #400 — reuse the same resolveWindowsShimSpawn / findGitBashPath / escape helpers from cli-spawn-win.ts in AcpClient.initialize(). Skipped when custom spawnFn is injected (test path unchanged).
Related: #64 (original Windows ENOENT discussion, now closed)
Problem
AcpClient.initialize()uses barechild_process.spawn()which cannot locate npm-global.cmdshims on Windows, causingspawn gemini ENOENTwhen starting ACP agent processes.Root Cause
The non-ACP CLI spawn path (
cli-spawn.ts) already has a 3-tier Windows fallback (resolve .cmd → Git Bash → cmd.exe), butAcpClientwas missing this handling.Fix
PR #400 — reuse the same
resolveWindowsShimSpawn/findGitBashPath/ escape helpers fromcli-spawn-win.tsinAcpClient.initialize(). Skipped when customspawnFnis injected (test path unchanged).Related: #64 (original Windows ENOENT discussion, now closed)