diff --git a/codex-rs/core/src/features.rs b/codex-rs/core/src/features.rs index 687e8b162..1d775360c 100644 --- a/codex-rs/core/src/features.rs +++ b/codex-rs/core/src/features.rs @@ -27,16 +27,23 @@ pub enum Stage { /// Unique features toggled via configuration. #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] pub enum Feature { + // Stable. /// Create a ghost commit at each turn. GhostCommit, + /// Include the view_image tool. + ViewImageTool, + /// Send warnings to the model to correct it on the tool usage. + ModelWarnings, + /// Enable the default shell tool. + ShellTool, + + // Experimental /// Use the single unified PTY-backed exec tool. UnifiedExec, /// Enable experimental RMCP features such as OAuth login. RmcpClient, /// Include the freeform apply_patch tool. ApplyPatchFreeform, - /// Include the view_image tool. - ViewImageTool, /// Allow the model to request web searches. WebSearchRequest, /// Gate the execpolicy enforcement for shell/unified exec. @@ -47,14 +54,10 @@ pub enum Feature { WindowsSandbox, /// Remote compaction enabled (only for ChatGPT auth) RemoteCompaction, - /// Enable the default shell tool. - ShellTool, /// Allow model to call multiple tools in parallel (only for models supporting it). ParallelToolCalls, /// Experimental skills injection (CLI flag-driven). Skills, - /// Send warnings to the model to correct it on the tool usage. - ModelWarnings, } impl Feature { @@ -275,6 +278,12 @@ pub const FEATURES: &[FeatureSpec] = &[ stage: Stage::Stable, default_enabled: true, }, + FeatureSpec { + id: Feature::ModelWarnings, + key: "warnings", + stage: Stage::Stable, + default_enabled: true, + }, // Unstable features. FeatureSpec { id: Feature::UnifiedExec, @@ -330,12 +339,6 @@ pub const FEATURES: &[FeatureSpec] = &[ stage: Stage::Experimental, default_enabled: false, }, - FeatureSpec { - id: Feature::ModelWarnings, - key: "warnings", - stage: Stage::Experimental, - default_enabled: false, - }, FeatureSpec { id: Feature::Skills, key: "skills",