Remove the feature gate for async user messages (#39452)

## What changed

- Expose `send_user_message_async` to root agents whenever the selected model advertises support for it.
- Retain `send_async_message` as a removed compatibility flag so existing configuration is accepted without controlling tool availability.
- Update the async message test to cover model-driven tool exposure without enabling the legacy flag.

GitOrigin-RevId: 558b427c2b203a057dd7c836e0ec702ae6134346
This commit is contained in:
rka-oai
2026-08-19 08:55:01 +00:00
committed by copyberry
parent 3929c99a97
commit f5a3dc5540
3 changed files with 2 additions and 10 deletions

View File

@@ -1063,7 +1063,6 @@ fn add_core_utility_tools(context: &CoreToolPlanContext<'_>, registry: &mut Tool
} }
if !turn_context.session_source.is_non_root_agent() if !turn_context.session_source.is_non_root_agent()
&& features.enabled(Feature::SendAsyncMessage)
&& turn_context && turn_context
.model_info .model_info
.experimental_supported_tools .experimental_supported_tools

View File

@@ -1,6 +1,5 @@
use anyhow::Result; use anyhow::Result;
use codex_core::TurnInputRequest; use codex_core::TurnInputRequest;
use codex_features::Feature;
use codex_protocol::items::AgentMessageContent; use codex_protocol::items::AgentMessageContent;
use codex_protocol::items::AgentMessageDelivery; use codex_protocol::items::AgentMessageDelivery;
use codex_protocol::items::AgentMessageItem; use codex_protocol::items::AgentMessageItem;
@@ -57,12 +56,6 @@ async fn send_user_message_async_emits_item_and_does_not_end_the_turn() -> Resul
.experimental_supported_tools .experimental_supported_tools
.push("send_user_message_async".to_string()); .push("send_user_message_async".to_string());
}) })
.with_config(|config| {
config
.features
.enable(Feature::SendAsyncMessage)
.expect("test config should allow enabling async messages");
})
.build_with_auto_env(&server) .build_with_auto_env(&server)
.await?; .await?;

View File

@@ -262,7 +262,7 @@ pub enum Feature {
MentionsV2, MentionsV2,
/// Allow request_user_input in Default collaboration mode. /// Allow request_user_input in Default collaboration mode.
DefaultModeRequestUserInput, DefaultModeRequestUserInput,
/// Allow sending a user-visible message without ending the current turn. /// Removed compatibility flag for model-enabled async user messaging.
SendAsyncMessage, SendAsyncMessage,
/// Enable automatic review for approval prompts. /// Enable automatic review for approval prompts.
GuardianApproval, GuardianApproval,
@@ -1355,7 +1355,7 @@ pub const FEATURES: &[FeatureSpec] = &[
FeatureSpec { FeatureSpec {
id: Feature::SendAsyncMessage, id: Feature::SendAsyncMessage,
key: "send_async_message", key: "send_async_message",
stage: Stage::UnderDevelopment, stage: Stage::Removed,
default_enabled: false, default_enabled: false,
}, },
FeatureSpec { FeatureSpec {