From 3ff68176a05dc464e4bbaa4be97e0c7bd73b253e Mon Sep 17 00:00:00 2001 From: Channing Conger Date: Wed, 10 Jun 2026 17:22:26 -0700 Subject: [PATCH] Run core code mode tests through the IPC host --- codex-rs/Cargo.lock | 2 +- codex-rs/core/BUILD.bazel | 1 + codex-rs/core/tests/common/Cargo.toml | 2 +- codex-rs/core/tests/common/test_codex.rs | 19 ++++++++++++------- 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/codex-rs/Cargo.lock b/codex-rs/Cargo.lock index 0950ca1235..d6c8255335 100644 --- a/codex-rs/Cargo.lock +++ b/codex-rs/Cargo.lock @@ -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", diff --git a/codex-rs/core/BUILD.bazel b/codex-rs/core/BUILD.bazel index 478699c0a1..4fb5ab0725 100644 --- a/codex-rs/core/BUILD.bazel +++ b/codex-rs/core/BUILD.bazel @@ -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", diff --git a/codex-rs/core/tests/common/Cargo.toml b/codex-rs/core/tests/common/Cargo.toml index c91903646a..b816f0b90e 100644 --- a/codex-rs/core/tests/common/Cargo.toml +++ b/codex-rs/core/tests/common/Cargo.toml @@ -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 } diff --git a/codex-rs/core/tests/common/test_codex.rs b/codex-rs/core/tests/common/test_codex.rs index 01c3d90415..cb2a77bb4b 100644 --- a/codex-rs/core/tests/common/test_codex.rs +++ b/codex-rs/core/tests/common/test_codex.rs @@ -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();