Windows timeout kill now uses taskkill /PID <pid> /T /F via _kill_process_tree_windows() — Popen.kill() only terminated the direct child, so runner-style commands (npx → node → server) leaked the real server process on every spawn test.
The spawned test process also gets CREATE_NO_WINDOW so the windowed exe doesn't flash a console window per Test launch / Test all.
Tests: a unit test pins the taskkill invocation; a Windows-only integration test spawns a parent-with-child and asserts (via tasklist) the child is dead after the spawn-test kill — this runs for real on the windows-latest CI job.
Closes #13.
- Windows timeout kill now uses `taskkill /PID <pid> /T /F` via `_kill_process_tree_windows()` — `Popen.kill()` only terminated the direct child, so runner-style commands (`npx` → `node` → server) leaked the real server process on every spawn test.
- The spawned test process also gets `CREATE_NO_WINDOW` so the windowed exe doesn't flash a console window per Test launch / Test all.
- Tests: a unit test pins the taskkill invocation; a Windows-only integration test spawns a parent-with-child and asserts (via `tasklist`) the **child** is dead after the spawn-test kill — this runs for real on the windows-latest CI job.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Popen.kill() only terminated the direct child, so runner-style commands
(npx -> node -> server) leaked the real server process on every Windows
spawn test. taskkill /PID <pid> /T /F walks the descendant tree. Also
sets CREATE_NO_WINDOW on the spawned test process so the windowed exe
doesn't flash a console per test.
Closes#13
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
the_og
merged commit ed7c40cac9 into main2026-07-12 13:31:15 -04:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Closes #13.
taskkill /PID <pid> /T /Fvia_kill_process_tree_windows()—Popen.kill()only terminated the direct child, so runner-style commands (npx→node→ server) leaked the real server process on every spawn test.CREATE_NO_WINDOWso the windowed exe doesn't flash a console window per Test launch / Test all.tasklist) the child is dead after the spawn-test kill — this runs for real on the windows-latest CI job.🤖 Generated with Claude Code