From cd5f49a6192f2d306be1ff41e6992e95c826620e Mon Sep 17 00:00:00 2001 From: Ahmed Ibrahim Date: Wed, 4 Feb 2026 23:12:59 -0800 Subject: [PATCH] Make steer stable by default (#10690) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Promotes the Steer feature from Experimental to Stable and enables it by default. ## What is Steer mode? Steer mode changes how message submission works in the TUI: - **With Steer enabled (new default)**: - `Enter` submits messages immediately, even when a task is running - `Tab` queues messages when a task is running (allows building up a queue) - **With Steer disabled (old behavior)**: - `Enter` queues messages when a task is running - This preserves the previous "queue while a task is running" behavior ## How Steer vs Queue work The key difference is in the submission behavior: 1. **Steer mode** (`steer_enabled = true`): - Enter → `InputResult::Submitted` → sends immediately via `submit_user_message()` - Tab → `InputResult::Queued` → queues via `queue_user_message()` if a task is running - This gives users direct control: Enter for immediate submission, Tab for queuing 2. **Queue mode** (`steer_enabled = false`, previous default): - Enter → `InputResult::Queued` → always queues when a task is running - Tab → `InputResult::Queued` → queues when a task is running - This preserves the original behavior where Enter respects the running task queue ## Implementation details The behavior is controlled in `ChatComposer::handle_key_event_without_popup()`: - When `steer_enabled` is true, Enter calls `handle_submission(false)` (submit immediately) - When `steer_enabled` is false, Enter calls `handle_submission(true)` (queue) See `codex-rs/tui/src/bottom_pane/chat_composer.rs` for the implementation. ## Documentation For more details on the chat composer behavior, see: - [TUI Chat Composer documentation](docs/tui-chat-composer.md) - Feature flag definition: `codex-rs/core/src/features.rs` --- codex-rs/core/src/features.rs | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/codex-rs/core/src/features.rs b/codex-rs/core/src/features.rs index f6c286c57..e14373f85 100644 --- a/codex-rs/core/src/features.rs +++ b/codex-rs/core/src/features.rs @@ -556,12 +556,8 @@ pub const FEATURES: &[FeatureSpec] = &[ FeatureSpec { id: Feature::Steer, key: "steer", - stage: Stage::Experimental { - name: "Steer conversation", - menu_description: "Enter submits immediately; Tab queues messages when a task is running.", - announcement: "NEW! Try Steer mode: Enter submits immediately, Tab queues. Enable in /experimental!", - }, - default_enabled: false, + stage: Stage::Stable, + default_enabled: true, }, FeatureSpec { id: Feature::CollaborationModes,