diff --git a/codex-rs/core/src/agent/control.rs b/codex-rs/core/src/agent/control.rs index 4d58f68073..8334f4b1df 100644 --- a/codex-rs/core/src/agent/control.rs +++ b/codex-rs/core/src/agent/control.rs @@ -378,6 +378,7 @@ impl AgentControl { }) } + #[allow(clippy::too_many_arguments)] async fn spawn_forked_thread( &self, state: &Arc, diff --git a/codex-rs/core/src/config/mod.rs b/codex-rs/core/src/config/mod.rs index c552f06dad..465f00fb5d 100644 --- a/codex-rs/core/src/config/mod.rs +++ b/codex-rs/core/src/config/mod.rs @@ -827,7 +827,7 @@ pub struct Config { /// Maximum number of agent threads that can be open concurrently. pub agent_max_threads: Option, /// User-configured legacy thread limit before applying the locked multi-agent runtime. - pub(crate) configured_agent_max_threads: Option, + pub configured_agent_max_threads: Option, /// Maximum runtime in seconds for agent job workers before they are failed. pub agent_job_max_runtime_seconds: Option, diff --git a/codex-rs/core/src/thread_manager.rs b/codex-rs/core/src/thread_manager.rs index 76da8bbe9b..82b05cd58a 100644 --- a/codex-rs/core/src/thread_manager.rs +++ b/codex-rs/core/src/thread_manager.rs @@ -1232,9 +1232,7 @@ impl ThreadManagerState { let multi_agent_version = inherited_multi_agent_version .unwrap_or_else(|| config.multi_agent_version_from_features()); - let Some(multi_agent_version) = multi_agent_version else { - return None; - }; + let multi_agent_version = multi_agent_version?; let source_thread_id = match initial_history { InitialHistory::Resumed(resumed) => Some(resumed.conversation_id), InitialHistory::Forked(_) => forked_from_thread_id, diff --git a/codex-rs/core/src/thread_manager_tests.rs b/codex-rs/core/src/thread_manager_tests.rs index 47ccae1d22..d40d2370e6 100644 --- a/codex-rs/core/src/thread_manager_tests.rs +++ b/codex-rs/core/src/thread_manager_tests.rs @@ -900,7 +900,7 @@ async fn legacy_resume_continues_when_multi_agent_version_seed_fails() { Arc::new(codex_exec_server::EnvironmentManager::default_for_tests()), empty_extension_registry(), /*analytics_events_client*/ None, - thread_store, + Arc::clone(&thread_store), /*state_db*/ None, TEST_INSTALLATION_ID.to_string(), /*attestation_provider*/ None, diff --git a/codex-rs/thread-manager-sample/src/main.rs b/codex-rs/thread-manager-sample/src/main.rs index 9305a6f668..b062a963a9 100644 --- a/codex-rs/thread-manager-sample/src/main.rs +++ b/codex-rs/thread-manager-sample/src/main.rs @@ -224,6 +224,7 @@ fn new_config(model: Option, arg0_paths: Arg0DispatchPaths) -> anyhow::R project_doc_fallback_filenames: Vec::new(), tool_output_token_limit: None, agent_max_threads: Some(6), + configured_agent_max_threads: Some(6), agent_job_max_runtime_seconds: None, agent_interrupt_message_enabled: false, agent_max_depth: 1,