mirror of
https://github.com/pchuan98/codex.git
synced 2026-07-01 00:31:56 +08:00
fix: close stdin when running an exec tool call (#636)
We were already doing this in the TypeScript version, but forgot to bring this over to Rust: https://github.com/openai/codex/blob/c38c2a59c72504a72a537123dc4b6026875cdfac/codex-cli/src/utils/agent/sandbox/raw-exec.ts#L76-L78
This commit is contained in:
committed by
GitHub
Unverified
parent
6a9c9f4b6c
commit
bfe6fac463
@@ -206,9 +206,17 @@ pub async fn exec(
|
||||
if let Some(dir) = &workdir {
|
||||
cmd.current_dir(dir);
|
||||
}
|
||||
cmd.stdout(Stdio::piped()).stderr(Stdio::piped());
|
||||
cmd.kill_on_drop(true);
|
||||
cmd.spawn()?
|
||||
|
||||
// Do not create a file descriptor for stdin because otherwise some
|
||||
// commands may hang forever waiting for input. For example, ripgrep has
|
||||
// a heuristic where it may try to read from stdin as explained here:
|
||||
// https://github.com/BurntSushi/ripgrep/blob/e2362d4d5185d02fa857bf381e7bd52e66fafc73/crates/core/flags/hiargs.rs#L1101-L1103
|
||||
cmd.stdin(Stdio::null());
|
||||
|
||||
cmd.stdout(Stdio::piped())
|
||||
.stderr(Stdio::piped())
|
||||
.kill_on_drop(true)
|
||||
.spawn()?
|
||||
};
|
||||
|
||||
let stdout_handle = tokio::spawn(read_capped(
|
||||
|
||||
Reference in New Issue
Block a user