Files
codegraph/__tests__
Colby MchenryandClaude Opus 5.5 ad60dccd04 test(windows): the windowsHide guard fails closed on spawns it can't trace (#2312) (#2315)
the watcher's `git config --get core.excludesFile` call. That report is
against 1.6.1; the call (and the `ls-files --exclude-standard` one next to
it) already runs with windowsHide on main since #2280, which has not been
released yet. An audit of every child_process call in src/ found nothing
else missing it: 31 call sites, 29 hidden, 2 documented exceptions
(macOS-only vm_stat; the detached browser opener).

What #2280's AST guard could not see is how the next regression would slip
in. It only followed static named/namespace imports and passed silently on
anything else, so each of these shipped green with no windowsHide:

- child_process loaded by a default import, `import = require`,
  `require()`, `import()`, or a re-export
- a spawner aliased or passed as a value (`const run = execFileSync`,
  `promisify(execFile)`, `const { spawn } = cp`)
- options in a `let`, or a later spread that may set windowsHide back
- an options parameter of an exported wrapper (callers in other files),
  a wrapper used as a callback, or a wrapper call that omits the options

The guard now fails closed on all of them, and a second describe pins each
shape (plus the compliant ones it must keep passing) so the guard itself
can't go blind again.

Also credit #2312 on the existing changelog entry and drop the duplicate
copy of that entry #2280 left under [Unreleased].

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 04:55:49 +00:00
..