Route unified-exec through exec-server

Co-authored-by: Codex <noreply@openai.com>
This commit is contained in:
starr-openai
2026-03-18 01:49:24 +00:00
parent d329e6d2b5
commit 3971afd6d0
15 changed files with 580 additions and 11 deletions

View File

@@ -515,6 +515,14 @@ pub struct Config {
/// If set to `true`, used only the experimental unified exec tool.
pub use_experimental_unified_exec_tool: bool,
/// When `true`, route unified-exec process launches through `codex-exec-server`
/// instead of spawning them directly in-process.
pub experimental_unified_exec_use_exec_server: bool,
/// When `true`, start a session-scoped local `codex-exec-server` subprocess
/// during session startup and route unified-exec calls through it.
pub experimental_unified_exec_spawn_local_exec_server: bool,
/// Maximum poll window for background terminal output (`write_stdin`), in milliseconds.
/// Default: `300000` (5 minutes).
pub background_terminal_max_timeout: u64,
@@ -1298,6 +1306,14 @@ pub struct ConfigToml {
/// Default: `300000` (5 minutes).
pub background_terminal_max_timeout: Option<u64>,
/// When `true`, route unified-exec process launches through `codex-exec-server`
/// instead of spawning them directly in-process.
pub experimental_unified_exec_use_exec_server: Option<bool>,
/// When `true`, start a session-scoped local `codex-exec-server` subprocess
/// during session startup and route unified-exec calls through it.
pub experimental_unified_exec_spawn_local_exec_server: Option<bool>,
/// Optional absolute path to the Node runtime used by `js_repl`.
pub js_repl_node_path: Option<AbsolutePathBuf>,
@@ -2426,6 +2442,14 @@ impl Config {
let include_apply_patch_tool_flag = features.enabled(Feature::ApplyPatchFreeform);
let use_experimental_unified_exec_tool = features.enabled(Feature::UnifiedExec);
let experimental_unified_exec_use_exec_server = config_profile
.experimental_unified_exec_use_exec_server
.or(cfg.experimental_unified_exec_use_exec_server)
.unwrap_or(false);
let experimental_unified_exec_spawn_local_exec_server = config_profile
.experimental_unified_exec_spawn_local_exec_server
.or(cfg.experimental_unified_exec_spawn_local_exec_server)
.unwrap_or(false);
let forced_chatgpt_workspace_id =
cfg.forced_chatgpt_workspace_id.as_ref().and_then(|value| {
@@ -2717,6 +2741,8 @@ impl Config {
web_search_mode: constrained_web_search_mode.value,
web_search_config,
use_experimental_unified_exec_tool,
experimental_unified_exec_use_exec_server,
experimental_unified_exec_spawn_local_exec_server,
background_terminal_max_timeout,
ghost_snapshot,
features,