From 6bbc41882e688bc3e9e5bfa68ada6af54fde9394 Mon Sep 17 00:00:00 2001 From: Charles Cunningham Date: Tue, 24 Feb 2026 17:39:46 -0800 Subject: [PATCH] Use struct literals for collaboration mode config --- .../app-server/src/codex_message_processor.rs | 5 +++-- codex-rs/app-server/src/message_processor.rs | 6 +++--- .../collaboration_mode_presets.rs | 18 ++++++------------ codex-rs/core/tests/suite/client.rs | 6 +++--- codex-rs/exec/src/lib.rs | 6 +++--- codex-rs/mcp-server/src/message_processor.rs | 6 +++--- codex-rs/tui/src/app.rs | 6 +++--- 7 files changed, 24 insertions(+), 29 deletions(-) diff --git a/codex-rs/app-server/src/codex_message_processor.rs b/codex-rs/app-server/src/codex_message_processor.rs index 14748fa4b9..214ed553c8 100644 --- a/codex-rs/app-server/src/codex_message_processor.rs +++ b/codex-rs/app-server/src/codex_message_processor.rs @@ -5353,8 +5353,9 @@ impl CodexMessageProcessor { } }; - let collaboration_modes_config = - CollaborationModesConfig::new(thread.enabled(Feature::DefaultModeRequestUserInput)); + let collaboration_modes_config = CollaborationModesConfig { + default_mode_request_user_input: thread.enabled(Feature::DefaultModeRequestUserInput), + }; let collaboration_mode = params.collaboration_mode.map(|mode| { self.normalize_turn_start_collaboration_mode(mode, collaboration_modes_config) }); diff --git a/codex-rs/app-server/src/message_processor.rs b/codex-rs/app-server/src/message_processor.rs index 59c9690f50..79b6706ad8 100644 --- a/codex-rs/app-server/src/message_processor.rs +++ b/codex-rs/app-server/src/message_processor.rs @@ -178,11 +178,11 @@ impl MessageProcessor { auth_manager.clone(), SessionSource::VSCode, config.model_catalog.clone(), - CollaborationModesConfig::new( - config + CollaborationModesConfig { + default_mode_request_user_input: config .features .enabled(codex_core::features::Feature::DefaultModeRequestUserInput), - ), + }, )); let cloud_requirements = Arc::new(RwLock::new(cloud_requirements)); let codex_message_processor = CodexMessageProcessor::new(CodexMessageProcessorArgs { diff --git a/codex-rs/core/src/models_manager/collaboration_mode_presets.rs b/codex-rs/core/src/models_manager/collaboration_mode_presets.rs index a9a7321714..5c5b212403 100644 --- a/codex-rs/core/src/models_manager/collaboration_mode_presets.rs +++ b/codex-rs/core/src/models_manager/collaboration_mode_presets.rs @@ -21,14 +21,6 @@ pub struct CollaborationModesConfig { pub default_mode_request_user_input: bool, } -impl CollaborationModesConfig { - pub const fn new(default_mode_request_user_input: bool) -> Self { - Self { - default_mode_request_user_input, - } - } -} - pub(crate) fn builtin_collaboration_mode_presets( collaboration_modes_config: CollaborationModesConfig, ) -> Vec { @@ -130,10 +122,12 @@ mod tests { #[test] fn default_mode_instructions_replace_mode_names_placeholder() { - let default_instructions = default_preset(CollaborationModesConfig::new(true)) - .developer_instructions - .expect("default preset should include instructions") - .expect("default instructions should be set"); + let default_instructions = default_preset(CollaborationModesConfig { + default_mode_request_user_input: true, + }) + .developer_instructions + .expect("default preset should include instructions") + .expect("default instructions should be set"); assert!(!default_instructions.contains(KNOWN_MODE_NAMES_PLACEHOLDER)); assert!(!default_instructions.contains(REQUEST_USER_INPUT_AVAILABILITY_PLACEHOLDER)); diff --git a/codex-rs/core/tests/suite/client.rs b/codex-rs/core/tests/suite/client.rs index f61a3a33f2..e040e61e77 100644 --- a/codex-rs/core/tests/suite/client.rs +++ b/codex-rs/core/tests/suite/client.rs @@ -585,11 +585,11 @@ async fn prefers_apikey_when_config_prefers_apikey_even_with_chatgpt_tokens() { auth_manager, SessionSource::Exec, config.model_catalog.clone(), - CollaborationModesConfig::new( - config + CollaborationModesConfig { + default_mode_request_user_input: config .features .enabled(Feature::DefaultModeRequestUserInput), - ), + }, ); let NewThread { thread: codex, .. } = thread_manager .start_thread(config) diff --git a/codex-rs/exec/src/lib.rs b/codex-rs/exec/src/lib.rs index f99e8d2d14..89866f75c2 100644 --- a/codex-rs/exec/src/lib.rs +++ b/codex-rs/exec/src/lib.rs @@ -397,11 +397,11 @@ pub async fn run_main(cli: Cli, codex_linux_sandbox_exe: Option) -> any auth_manager.clone(), SessionSource::Exec, config.model_catalog.clone(), - CollaborationModesConfig::new( - config + CollaborationModesConfig { + default_mode_request_user_input: config .features .enabled(codex_core::features::Feature::DefaultModeRequestUserInput), - ), + }, )); let default_model = thread_manager .get_models_manager() diff --git a/codex-rs/mcp-server/src/message_processor.rs b/codex-rs/mcp-server/src/message_processor.rs index 624deb3ff6..94a5fa441f 100644 --- a/codex-rs/mcp-server/src/message_processor.rs +++ b/codex-rs/mcp-server/src/message_processor.rs @@ -63,11 +63,11 @@ impl MessageProcessor { auth_manager, SessionSource::Mcp, config.model_catalog.clone(), - CollaborationModesConfig::new( - config + CollaborationModesConfig { + default_mode_request_user_input: config .features .enabled(codex_core::features::Feature::DefaultModeRequestUserInput), - ), + }, )); Self { outgoing, diff --git a/codex-rs/tui/src/app.rs b/codex-rs/tui/src/app.rs index 32ddce6b12..e4340a0292 100644 --- a/codex-rs/tui/src/app.rs +++ b/codex-rs/tui/src/app.rs @@ -1248,11 +1248,11 @@ impl App { auth_manager.clone(), SessionSource::Cli, config.model_catalog.clone(), - CollaborationModesConfig::new( - config + CollaborationModesConfig { + default_mode_request_user_input: config .features .enabled(codex_core::features::Feature::DefaultModeRequestUserInput), - ), + }, )); let mut model = thread_manager .get_models_manager()