Skip to content

feat(rust): add exact-argv streaming (#190) - #196

Merged
konard merged 4 commits into
mainfrom
issue-190-3191ec24d668
Aug 11, 2026
Merged

feat(rust): add exact-argv streaming (#190)#196
konard merged 4 commits into
mainfrom
issue-190-3191ec24d668

Conversation

@konard

@konard konard commented Aug 11, 2026

Copy link
Copy Markdown
Member

Summary

  • add StreamingRunner::from_argv for spawning an executable with exact OS-native arguments
  • preserve StreamingRunner::new as the existing shell-command API
  • document both invocation modes and add a minor Rust changelog fragment

Root cause and reproduction

StreamingRunner previously stored only a command string and always invoked it through /bin/sh -c or cmd.exe /c. Callers with an executable plus an argument vector therefore had to flatten arguments into shell syntax; the existing POSIX quoting helper is not valid for Windows cmd.exe.

The new integration test invokes the current Rust test binary directly with spaces, shell metacharacters, and quotes in one argument. Before the implementation, it failed to compile because no exact-argv constructor existed. It now verifies successful execution and actual child output.

Verification

  • cargo fmt --all -- --check
  • cargo clippy --all-targets --all-features
  • cargo test --all-features
  • cargo test --doc --all-features
  • cargo build --release --all-features
  • cargo package --allow-dirty
  • all Rust release-script unit tests
  • changelog fragment validation
  • git diff --check

Language parity

This is intentionally Rust-only and labeled parity-exempt. The JavaScript API already supports exact executable/argument invocation through ProcessRunner exec mode; issue #190 identifies the missing Rust equivalent.

Fixes #190

Adding .gitkeep for PR creation (default mode).
This file will be removed when the task is complete.

Issue: #190
@konard konard self-assigned this Aug 11, 2026
Bypass the platform shell for executable/argument vectors so Windows callers do not rely on POSIX quoting.

Closes #190
@konard konard changed the title [WIP] Support exact argv in the Rust streaming runner on Windows feat(rust): add exact-argv streaming (#190) Aug 11, 2026
@konard konard added the parity-exempt Change is intentionally single-language; skip JS/Rust parity check label Aug 11, 2026
@konard
konard marked this pull request as ready for review August 11, 2026 11:01
@konard

konard commented Aug 11, 2026

Copy link
Copy Markdown
Member Author

Working session summary

Implemented issue #190 and finalized PR #196.

  • Added StreamingRunner::from_argv for shell-free, exact OS-native arguments.
  • Preserved existing StreamingRunner::new shell behavior.
  • Added regression coverage for spaces, quotes, and shell metacharacters.
  • Updated Rust documentation and changelog.
  • Merged latest main; branch is clean and pushed at cc7d6b7.
  • Local checks and final CI pass on Ubuntu, macOS, and Windows.
  • PR is mergeable and ready for review.

This summary was automatically extracted from the AI working session output.

@konard

konard commented Aug 11, 2026

Copy link
Copy Markdown
Member Author

🤖 Solution Draft Log

This log file contains the complete execution trace of the AI solution draft process.

💰 Cost estimation:

  • Model: GPT-5.6 Sol
  • Provider: OpenAI
  • Public pricing estimate: $13.312293

📊 Context and tokens usage:

  • 269.7K / 200K (135%) input tokens, 35.7K / 128K (28%) output tokens

Total: (269.7K + 9.0M cached) input tokens, 35.7K output tokens, $13.312293 cost

🤖 Models used:

  • Tool: OpenAI Codex
  • Requested: gpt-5.6-sol
  • Thinking level: xhigh (~31999 tokens)
  • Model: GPT 5.6 Sol (gpt-5.6-sol)

📎 Log file uploaded as Gist (3628KB)


Now working session is ended, feel free to review and add any feedback on the solution draft.

@konard
konard merged commit 391535a into main Aug 11, 2026
11 checks passed
@konard

konard commented Aug 11, 2026

Copy link
Copy Markdown
Member Author

🎉 Auto-merged

This pull request has been automatically merged by hive-mind.

  • All CI checks have passed

Auto-merged by hive-mind with --auto-merge flag

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

parity-exempt Change is intentionally single-language; skip JS/Rust parity check

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support exact argv in the Rust streaming runner on Windows

1 participant