From 48fff266b44b2bdeac00f44597b1fcbe4ea26710 Mon Sep 17 00:00:00 2001 From: Dylan Hurd Date: Tue, 12 May 2026 21:38:35 -0700 Subject: [PATCH] codex: preserve request-input modes on model override Keep Default-mode request_user_input availability when turn-level feature overrides rebuild tool config after a model change. Co-authored-by: Codex --- codex-rs/core/src/session/turn_context.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/codex-rs/core/src/session/turn_context.rs b/codex-rs/core/src/session/turn_context.rs index 37e9363a4e..f89288387a 100644 --- a/codex-rs/core/src/session/turn_context.rs +++ b/codex-rs/core/src/session/turn_context.rs @@ -193,6 +193,13 @@ impl TurnContext { /*developer_instructions*/ None, ); let features = self.features.clone(); + let mut request_user_input_available_modes = + self.tools_config.request_user_input_available_modes.clone(); + if features.enabled(Feature::DefaultModeRequestUserInput) + && !request_user_input_available_modes.contains(&ModeKind::Default) + { + request_user_input_available_modes.push(ModeKind::Default); + } let provider_capabilities = self.provider.capabilities(); let tools_config = ToolsConfig::new(&ToolsConfigParams { model_info: &model_info, @@ -215,7 +222,7 @@ impl TurnContext { .with_web_search_config(self.tools_config.web_search_config.clone()) .with_request_user_input_config( self.tools_config.request_user_input_tool_enabled, - self.tools_config.request_user_input_available_modes.clone(), + request_user_input_available_modes, ) .with_allow_login_shell(self.tools_config.allow_login_shell) .with_environment_mode(self.tools_config.environment_mode)