Skip to content

fix(windows): preserve provider launch environment and test native shims - #16

Merged
dviejokfs merged 6 commits into
mainfrom
fix/windows-runtime-compatibility
Sep 23, 2026
Merged

dviejokfs merged 6 commits into
mainfrom
fix/windows-runtime-compatibility

Conversation

@dviejokfs

@dviejokfs dviejokfs commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

Windows provider launches need system/profile variables and npm shim resolution while preserving explicit argv and excluding unrelated credentials. This change preserves a case-insensitive environment allowlist, resolves bare Windows launchers against the effective PATH, and suppresses launch/cleanup console windows.

Native fixtures exercise JSON, Unicode, spaces, shell metacharacters, environment-expansion syntax, exact stdin, explicit environment overlays, nonzero exits and cancellation. Windows tests run Claude/Codex/OpenCode .cmd fixtures through the same launcher and reject CR/LF arguments before execution. Rust 1.88 includes the batch-escaping fix introduced in 1.77.2; no raw_arg is used.

Also forwards Fleet developer instructions to Codex thread start/resume, probes OpenCode through /global/health, and only treats deliberate attached-server termination as successful after a terminal protocol event. Verification exposed an early-exit race in extension commands: stdin and stdout now run concurrently under the existing deadline so a rejecting child's stderr is preserved instead of being replaced by BrokenPipe.

Validation:

  • Local macOS SDK suite: 302 passed, 1 existing ignored test.
  • Strict all-target/all-feature Clippy and cargo check passed.
  • New early-rejection regression fails before the fix and passes afterward.
  • Source security review passed; cross-platform GitHub CI verifies native Windows/macOS/Linux execution.

Authenticated provider journeys, Windows OS services and Job Object ownership are outside these fixtures. SSH password authentication remains Unix-only. The cancellation fixture proves immediate-child termination, not a full Windows descendant-process lifecycle.

@dviejokfs
dviejokfs merged commit f1e6156 into main Sep 23, 2026
6 checks passed
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