diff --git a/codex-rs/core/src/agent/control.rs b/codex-rs/core/src/agent/control.rs index 0247b93cc6..57f38b899c 100644 --- a/codex-rs/core/src/agent/control.rs +++ b/codex-rs/core/src/agent/control.rs @@ -15,7 +15,7 @@ use crate::shell_snapshot::ShellSnapshot; use crate::thread_manager::ThreadManagerState; use crate::thread_rollout_truncation::truncate_rollout_to_last_n_fork_turns; use codex_features::Feature; -use codex_mcp::mcp_connection_manager::McpConnectionManager; +use codex_mcp::McpConnectionManager; use codex_protocol::AgentPath; use codex_protocol::ThreadId; use codex_protocol::error::CodexErr; diff --git a/codex-rs/core/src/thread_manager.rs b/codex-rs/core/src/thread_manager.rs index c51705327b..abeb550c44 100644 --- a/codex-rs/core/src/thread_manager.rs +++ b/codex-rs/core/src/thread_manager.rs @@ -20,7 +20,7 @@ use codex_app_server_protocol::TurnStatus; use codex_exec_server::EnvironmentManager; use codex_login::AuthManager; use codex_login::CodexAuth; -use codex_mcp::mcp_connection_manager::McpConnectionManager; +use codex_mcp::McpConnectionManager; use codex_model_provider_info::ModelProviderInfo; use codex_model_provider_info::OPENAI_PROVIDER_ID; use codex_models_manager::collaboration_mode_presets::CollaborationModesConfig; diff --git a/codex-rs/core/src/tools/handlers/multi_agents_tests.rs b/codex-rs/core/src/tools/handlers/multi_agents_tests.rs index c562e5b0dc..afaf169999 100644 --- a/codex-rs/core/src/tools/handlers/multi_agents_tests.rs +++ b/codex-rs/core/src/tools/handlers/multi_agents_tests.rs @@ -96,6 +96,9 @@ fn thread_manager() -> ThreadManager { async fn install_role_with_model_provider_and_profile_override(turn: &mut TurnContext) -> String { let role_name = "fork-context-role".to_string(); + tokio::fs::create_dir_all(&turn.config.codex_home) + .await + .expect("codex home should be created"); let role_config_path = turn.config.codex_home.join("fork-context-role.toml"); tokio::fs::write( &role_config_path, @@ -108,6 +111,12 @@ plan_mode_reasoning_effort = "minimal" profile = "role-profile" service_tier = "fast" +[model_providers.role-provider] +name = "Role Provider" +base_url = "https://role.example.com/v1" +env_key = "ROLE_PROVIDER_API_KEY" +wire_api = "responses" + [profiles.role-profile] model_provider = "role-provider" "#, @@ -133,7 +142,6 @@ model_provider = "role-provider" description: Some("Role with model-provider and profile overrides".to_string()), config_file: Some(role_config_path), nickname_candidates: None, - fork_context: None, }, ); turn.config = Arc::new(config); @@ -430,7 +438,6 @@ async fn spawn_agent_fork_context_ignores_child_model_overrides() { session.conversation_id = root.thread_id; let expected_model = turn.model_info.slug.clone(); let expected_model_provider_id = turn.config.model_provider_id.clone(); - let expected_model_provider_name = turn.provider.name.clone(); let expected_active_profile = turn.config.active_profile.clone(); let expected_reasoning_effort = turn.reasoning_effort; let expected_service_tier = turn.config.service_tier; @@ -471,7 +478,6 @@ async fn spawn_agent_fork_context_ignores_child_model_overrides() { assert_eq!(snapshot.model, expected_model); assert_eq!(snapshot.model_provider_id, expected_model_provider_id); - assert_eq!(snapshot.model_provider.name, expected_model_provider_name); assert_eq!(snapshot.active_profile, expected_active_profile); assert_eq!(snapshot.reasoning_effort, expected_reasoning_effort); assert_eq!(snapshot.service_tier, expected_service_tier); @@ -509,7 +515,6 @@ async fn multi_agent_v2_spawn_fork_turns_ignores_child_model_overrides() { }; let expected_model = turn.model_info.slug.clone(); let expected_model_provider_id = turn.config.model_provider_id.clone(); - let expected_model_provider_name = turn.provider.name.clone(); let expected_active_profile = turn.config.active_profile.clone(); let expected_reasoning_effort = turn.reasoning_effort; let expected_service_tier = turn.config.service_tier; @@ -553,7 +558,6 @@ async fn multi_agent_v2_spawn_fork_turns_ignores_child_model_overrides() { assert_eq!(snapshot.model, expected_model); assert_eq!(snapshot.model_provider_id, expected_model_provider_id); - assert_eq!(snapshot.model_provider.name, expected_model_provider_name); assert_eq!(snapshot.active_profile, expected_active_profile); assert_eq!(snapshot.reasoning_effort, expected_reasoning_effort); assert_eq!(snapshot.service_tier, expected_service_tier);