Skip to content

Fix Windows dev launchers and bound captured-output cleanup - #77

Merged
bigboateng merged 1 commit into
mainfrom
codex/windows-dev-runtime
Oct 13, 2026
Merged

bigboateng merged 1 commit into
mainfrom
codex/windows-dev-runtime

Conversation

@bigboateng

@bigboateng bigboateng commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Change contract

When: A developer launches Codex or Qwen through pitot dev on Windows, or captures output from an agent that leaves a child holding its output pipe.
Before: npm .cmd launchers went directly to process execution, the dev integration tests skipped Windows, and inherited output pipes could delay cleanup and eventually report success.
After: Supported npm launchers resolve to their declared Node entrypoints with unchanged arguments. Incomplete captured output returns an error after a two-second drain limit. Native helper tests exercise runtime decisions and cleanup on all three supported operating systems.

Boundaries preserved

  • Accept only the complete standard npm Node wrapper, expected package and known Codex/Qwen entrypoint. Custom wrappers fail with explicit Node invocation guidance.
  • Preserve sibling node.exe precedence, direct executable invocation and the distinction between --exec field splitting and explicit argv.
  • Keep runtime teardown ordering and DeepSeek's separate ACP launch path.

Evidence

Scenario or check Expected result Observed result
Full Go suite Existing behavior and new native dev tests pass Passed locally on macOS
Launcher fixtures Global/local layout accepted; altered wrapper, package, entrypoint or missing interpreter rejected Passed locally and on native Windows CI
Dev lifecycle Allow/deny, exact argv, unique runtime paths; cleanup after success, failed start, nonzero exit and cancellation Passed locally
Inherited captured output Return an incomplete-output error without a success message Passed locally
Formatting, static checks and maintenance tests Pass Passed; 227 maintenance tests, 3 platform skips
Windows, macOS and Linux CI All checks and current agent report pass All 49 checks passed; current report has 33 agent and 3 runtime passes

Failure and recovery

Unsupported wrappers explain how to invoke the trusted Node entrypoint explicitly. Revert this change to restore prior launch behavior if a compatibility regression appears.

Remaining limits

Only the supported plain-Node npm wrapper is recognized. Package metadata checks do not authenticate installed code. The output drain limit does not terminate arbitrary descendant processes. Tests use local helpers and replay infrastructure without model calls.

@github-actions

Copy link
Copy Markdown

Pitot coding-agent E2E

Intelligence Flow is the verification source; Pitot's public README carries the latest main status.

Agent Ubuntu macOS Windows Result Evidence
Claude ✅ Pass · real CLI 2.1.296 · native · binary-observed anthropic messages ✅ Pass · real CLI 2.1.296 · native · binary-observed anthropic messages ✅ Pass · real CLI 2.1.296 · native · binary-observed anthropic messages ✅ Passing All platforms are required
Cursor ✅ Pass · real CLI 2026.10.01-e373342 · native · binary-observed cursor connect proto ✅ Pass · real CLI 2026.10.01-e373342 · native · binary-observed cursor connect proto ✅ Pass · real CLI 2026.10.01-e373342 · native · binary-observed cursor connect proto ✅ Passing All platforms are required
Codex ✅ Pass · real CLI 0.162.1 · native · binary-observed openai responses ✅ Pass · real CLI 0.162.1 · native · binary-observed openai responses ✅ Pass · real CLI 0.162.1 · native · binary-observed openai responses ✅ Passing All platforms are required
Devin ✅ Pass · real CLI 3000.11.3 · native · binary-observed devin connect proto ✅ Pass · real CLI 3000.11.3 · native · binary-observed devin connect proto ✅ Pass · real CLI 3000.11.3 · native · binary-observed devin connect proto ✅ Passing All platforms are required
DeepSeek Harness ✅ Pass · real CLI 0.2.0-rc.2 · native · binary-observed openai chat ✅ Pass · real CLI 0.2.0-rc.2 · native · binary-observed openai chat ✅ Pass · real CLI 0.2.0-rc.2 · native · binary-observed openai chat ✅ Passing All platforms are required
GitHub Copilot CLI ✅ Pass · real CLI 1.0.95 · native · binary-observed openai chat ✅ Pass · real CLI 1.0.95 · native · binary-observed openai chat ✅ Pass · real CLI 1.0.95 · native · binary-observed openai chat ✅ Passing All platforms are required
Gemini ✅ Pass · real CLI 0.63.0 · native · binary-observed gemini generate content ✅ Pass · real CLI 0.63.0 · native · binary-observed gemini generate content ✅ Pass · real CLI 0.63.0 · native · binary-observed gemini generate content ✅ Passing All platforms are required
Kimi Code ✅ Pass · real CLI 2.1.1 · native · binary-observed openai chat ✅ Pass · real CLI 2.1.1 · native · binary-observed openai chat ✅ Pass · real CLI 2.1.1 · native · binary-observed openai chat ✅ Passing All platforms are required
OpenCode ✅ Pass · real CLI 2.0.27 · native · binary-observed openai responses ✅ Pass · real CLI 2.0.27 · native · binary-observed openai responses ✅ Pass · real CLI 2.0.27 · native · binary-observed openai responses ✅ Passing All platforms are required
Pi ✅ Pass · real CLI 1.1.0 · native · binary-observed openai chat ✅ Pass · real CLI 1.1.0 · native · binary-observed openai chat ✅ Pass · real CLI 1.1.0 · native · binary-observed openai chat ✅ Passing All platforms are required
Qwen Code ✅ Pass · real CLI 0.25.1 · native · binary-observed openai chat ✅ Pass · real CLI 0.25.1 · native · binary-observed openai chat ✅ Pass · real CLI 0.25.1 · native · binary-observed openai chat ✅ Passing All platforms are required

Runtime capabilities

Capability Ubuntu macOS Windows Result
pitot request ✅ Pass · real runtime allow/deny ✅ Pass · real runtime allow/deny ✅ Pass · real runtime allow/deny ✅ Passing

Source commit: 933d2a6250cb

@bigboateng
bigboateng merged commit e1dbfb8 into main Oct 13, 2026
49 checks passed
@bigboateng
bigboateng deleted the codex/windows-dev-runtime branch October 13, 2026 14:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant