Run core code mode tests through the IPC host

This commit is contained in:
Channing Conger
2026-06-10 17:22:26 -07:00
parent cf6c29cd06
commit 3ff68176a0
4 changed files with 15 additions and 9 deletions

2
codex-rs/Cargo.lock generated
View File

@@ -4612,7 +4612,7 @@ dependencies = [
"assert_cmd",
"base64 0.22.1",
"codex-arg0",
"codex-code-mode",
"codex-code-mode-client",
"codex-config",
"codex-core",
"codex-exec-server",

View File

@@ -41,6 +41,7 @@ codex_rust_crate(
unit_test_timeout = "long",
extra_binaries = [
"//codex-rs/bwrap:bwrap",
"//codex-rs/code-mode-host:codex-code-mode-host",
"//codex-rs/linux-sandbox:codex-linux-sandbox",
"//codex-rs/rmcp-client:test_stdio_server",
"//codex-rs/rmcp-client:test_streamable_http_server",

View File

@@ -17,7 +17,7 @@ assert_cmd = { workspace = true }
base64 = { workspace = true }
codex-arg0 = { workspace = true }
codex-config = { workspace = true }
codex-code-mode = { workspace = true }
codex-code-mode-client = { workspace = true }
codex-core = { workspace = true }
codex-extension-api = { workspace = true }
codex-exec-server = { workspace = true }

View File

@@ -12,6 +12,8 @@ use std::time::Duration;
use anyhow::Context;
use anyhow::Result;
use anyhow::anyhow;
use codex_code_mode_client::CodeModeHostCommand;
use codex_code_mode_client::IpcCodeModeSessionProvider;
use codex_config::CloudConfigBundleLoader;
use codex_core::CodexThread;
use codex_core::ThreadManager;
@@ -520,13 +522,16 @@ impl TestCodexBuilder {
installation_id,
/*attestation_provider*/ None,
);
let thread_manager = if std::env::var_os("CODEX_CODE_MODE_HOST_PATH").is_some() {
thread_manager
} else {
thread_manager.with_code_mode_session_provider(Arc::new(
codex_code_mode::InProcessCodeModeSessionProvider,
))
};
let code_mode_session_provider =
match codex_utils_cargo_bin::cargo_bin("codex-code-mode-host") {
Ok(program) => IpcCodeModeSessionProvider::new(CodeModeHostCommand {
program,
args: Vec::new(),
}),
Err(_) => IpcCodeModeSessionProvider::default(),
};
let thread_manager =
thread_manager.with_code_mode_session_provider(Arc::new(code_mode_session_provider));
let thread_manager = Arc::new(thread_manager);
let user_shell_override = self.user_shell_override.clone();