Use struct literals for collaboration mode config

This commit is contained in:
Charles Cunningham
2026-02-24 17:39:46 -08:00
parent 5bd19a2e07
commit 6bbc41882e
7 changed files with 24 additions and 29 deletions

View File

@@ -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)
});

View File

@@ -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 {

View File

@@ -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<CollaborationModeMask> {
@@ -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));

View File

@@ -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)

View File

@@ -397,11 +397,11 @@ pub async fn run_main(cli: Cli, codex_linux_sandbox_exe: Option<PathBuf>) -> 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()

View File

@@ -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,

View File

@@ -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()