chore(config) rm experimental_use_freeform_apply_patch (#22565)

## Summary
Get rid of the `experimental_use_freeform_apply_patch` config option,
since it is now encoded in model config. No deprecation message since it
has been experimental this entire time.

## Testing
- [x] Updated unit tests

---------

Co-authored-by: Codex <noreply@openai.com>
This commit is contained in:
Dylan HurdandCodex authored and GitHub committed 2026-05-13 17:52:15 -07:00
1 parent 53a36fc1c2
commit e33cf9ae28
11 files changed
+2 -76

No files matched your search

-1
View File
@@ -443,7 +443,6 @@ pub struct ConfigToml {
pub experimental_instructions_file: Option<AbsolutePathBuf>, pub experimental_instructions_file: Option<AbsolutePathBuf>,
pub experimental_compact_prompt_file: Option<AbsolutePathBuf>, pub experimental_compact_prompt_file: Option<AbsolutePathBuf>,
pub experimental_use_unified_exec_tool: Option<bool>, pub experimental_use_unified_exec_tool: Option<bool>,
pub experimental_use_freeform_apply_patch: Option<bool>,
/// Preferred OSS provider for local models, e.g. "lmstudio" or "ollama". /// Preferred OSS provider for local models, e.g. "lmstudio" or "ollama".
pub oss_provider: Option<String>, pub oss_provider: Option<String>,
} }
-2
View File
@@ -54,13 +54,11 @@ pub struct ConfigProfile {
#[schemars(skip)] #[schemars(skip)]
pub experimental_instructions_file: Option<AbsolutePathBuf>, pub experimental_instructions_file: Option<AbsolutePathBuf>,
pub experimental_compact_prompt_file: Option<AbsolutePathBuf>, pub experimental_compact_prompt_file: Option<AbsolutePathBuf>,
pub include_apply_patch_tool: Option<bool>,
pub include_permissions_instructions: Option<bool>, pub include_permissions_instructions: Option<bool>,
pub include_apps_instructions: Option<bool>, pub include_apps_instructions: Option<bool>,
pub include_collaboration_mode_instructions: Option<bool>, pub include_collaboration_mode_instructions: Option<bool>,
pub include_environment_context: Option<bool>, pub include_environment_context: Option<bool>,
pub experimental_use_unified_exec_tool: Option<bool>, pub experimental_use_unified_exec_tool: Option<bool>,
pub experimental_use_freeform_apply_patch: Option<bool>,
pub tools: Option<ToolsToml>, pub tools: Option<ToolsToml>,
pub web_search: Option<WebSearchMode>, pub web_search: Option<WebSearchMode>,
pub analytics: Option<AnalyticsConfigToml>, pub analytics: Option<AnalyticsConfigToml>,
-15
View File
@@ -347,9 +347,6 @@
"experimental_compact_prompt_file": { "experimental_compact_prompt_file": {
"$ref": "#/definitions/AbsolutePathBuf" "$ref": "#/definitions/AbsolutePathBuf"
}, },
"experimental_use_freeform_apply_patch": {
"type": "boolean"
},
"experimental_use_unified_exec_tool": { "experimental_use_unified_exec_tool": {
"type": "boolean" "type": "boolean"
}, },
@@ -430,9 +427,6 @@
"exec_permission_approvals": { "exec_permission_approvals": {
"type": "boolean" "type": "boolean"
}, },
"experimental_use_freeform_apply_patch": {
"type": "boolean"
},
"experimental_use_unified_exec_tool": { "experimental_use_unified_exec_tool": {
"type": "boolean" "type": "boolean"
}, },
@@ -619,9 +613,6 @@
}, },
"type": "object" "type": "object"
}, },
"include_apply_patch_tool": {
"type": "boolean"
},
"include_apps_instructions": { "include_apps_instructions": {
"type": "boolean" "type": "boolean"
}, },
@@ -4090,9 +4081,6 @@
], ],
"description": "Experimental / do not use. Selects the thread store implementation." "description": "Experimental / do not use. Selects the thread store implementation."
}, },
"experimental_use_freeform_apply_patch": {
"type": "boolean"
},
"experimental_use_unified_exec_tool": { "experimental_use_unified_exec_tool": {
"type": "boolean" "type": "boolean"
}, },
@@ -4173,9 +4161,6 @@
"exec_permission_approvals": { "exec_permission_approvals": {
"type": "boolean" "type": "boolean"
}, },
"experimental_use_freeform_apply_patch": {
"type": "boolean"
},
"experimental_use_unified_exec_tool": { "experimental_use_unified_exec_tool": {
"type": "boolean" "type": "boolean"
}, },
-4
View File
@@ -4237,7 +4237,6 @@ async fn legacy_toggles_map_to_features() -> std::io::Result<()> {
let codex_home = TempDir::new()?; let codex_home = TempDir::new()?;
let cfg = ConfigToml { let cfg = ConfigToml {
experimental_use_unified_exec_tool: Some(true), experimental_use_unified_exec_tool: Some(true),
experimental_use_freeform_apply_patch: Some(true),
..Default::default() ..Default::default()
}; };
@@ -4248,11 +4247,8 @@ async fn legacy_toggles_map_to_features() -> std::io::Result<()> {
) )
.await?; .await?;
assert!(config.features.enabled(Feature::ApplyPatchFreeform));
assert!(config.features.enabled(Feature::UnifiedExec)); assert!(config.features.enabled(Feature::UnifiedExec));
assert!(config.include_apply_patch_tool);
assert!(config.use_experimental_unified_exec_tool); assert!(config.use_experimental_unified_exec_tool);
Ok(()) Ok(())
+1 -25
View File
@@ -269,13 +269,6 @@ fn explicit_feature_settings_in_config(cfg: &ConfigToml) -> Vec<(String, Feature
enabled, enabled,
)); ));
} }
if let Some(enabled) = cfg.experimental_use_freeform_apply_patch {
explicit_settings.push((
"experimental_use_freeform_apply_patch".to_string(),
Feature::ApplyPatchFreeform,
enabled,
));
}
for (profile_name, profile) in &cfg.profiles { for (profile_name, profile) in &cfg.profiles {
if let Some(features) = profile.features.as_ref() { if let Some(features) = profile.features.as_ref() {
for (key, enabled) in features.entries() { for (key, enabled) in features.entries() {
@@ -288,13 +281,6 @@ fn explicit_feature_settings_in_config(cfg: &ConfigToml) -> Vec<(String, Feature
} }
} }
} }
if let Some(enabled) = profile.include_apply_patch_tool {
explicit_settings.push((
format!("profiles.{profile_name}.include_apply_patch_tool"),
Feature::ApplyPatchFreeform,
enabled,
));
}
if let Some(enabled) = profile.experimental_use_unified_exec_tool { if let Some(enabled) = profile.experimental_use_unified_exec_tool {
explicit_settings.push(( explicit_settings.push((
format!("profiles.{profile_name}.experimental_use_unified_exec_tool"), format!("profiles.{profile_name}.experimental_use_unified_exec_tool"),
@@ -302,13 +288,6 @@ fn explicit_feature_settings_in_config(cfg: &ConfigToml) -> Vec<(String, Feature
enabled, enabled,
)); ));
} }
if let Some(enabled) = profile.experimental_use_freeform_apply_patch {
explicit_settings.push((
format!("profiles.{profile_name}.experimental_use_freeform_apply_patch"),
Feature::ApplyPatchFreeform,
enabled,
));
}
} }
explicit_settings explicit_settings
@@ -370,14 +349,11 @@ pub(crate) fn validate_feature_requirements_in_config_toml(
FeatureConfigSource { FeatureConfigSource {
features: cfg.features.as_ref(), features: cfg.features.as_ref(),
include_apply_patch_tool: None, include_apply_patch_tool: None,
experimental_use_freeform_apply_patch: cfg.experimental_use_freeform_apply_patch,
experimental_use_unified_exec_tool: cfg.experimental_use_unified_exec_tool, experimental_use_unified_exec_tool: cfg.experimental_use_unified_exec_tool,
}, },
FeatureConfigSource { FeatureConfigSource {
features: profile.features.as_ref(), features: profile.features.as_ref(),
include_apply_patch_tool: profile.include_apply_patch_tool, include_apply_patch_tool: None,
experimental_use_freeform_apply_patch: profile
.experimental_use_freeform_apply_patch,
experimental_use_unified_exec_tool: profile.experimental_use_unified_exec_tool, experimental_use_unified_exec_tool: profile.experimental_use_unified_exec_tool,
}, },
FeatureOverrides::default(), FeatureOverrides::default(),
+1 -7
View File
@@ -1881,7 +1881,6 @@ pub struct ConfigOverrides {
pub developer_instructions: Option<String>, pub developer_instructions: Option<String>,
pub personality: Option<Personality>, pub personality: Option<Personality>,
pub compact_prompt: Option<String>, pub compact_prompt: Option<String>,
pub include_apply_patch_tool: Option<bool>,
pub show_raw_agent_reasoning: Option<bool>, pub show_raw_agent_reasoning: Option<bool>,
pub tools_web_search_request: Option<bool>, pub tools_web_search_request: Option<bool>,
pub ephemeral: Option<bool>, pub ephemeral: Option<bool>,
@@ -2196,7 +2195,6 @@ impl Config {
developer_instructions, developer_instructions,
personality, personality,
compact_prompt, compact_prompt,
include_apply_patch_tool: include_apply_patch_tool_override,
show_raw_agent_reasoning, show_raw_agent_reasoning,
tools_web_search_request: override_tools_web_search_request, tools_web_search_request: override_tools_web_search_request,
ephemeral, ephemeral,
@@ -2250,7 +2248,6 @@ impl Config {
}; };
let tool_suggest = resolve_tool_suggest_config(&cfg, &config_layer_stack); let tool_suggest = resolve_tool_suggest_config(&cfg, &config_layer_stack);
let feature_overrides = FeatureOverrides { let feature_overrides = FeatureOverrides {
include_apply_patch_tool: include_apply_patch_tool_override,
web_search_request: override_tools_web_search_request, web_search_request: override_tools_web_search_request,
}; };
@@ -2258,14 +2255,11 @@ impl Config {
FeatureConfigSource { FeatureConfigSource {
features: cfg.features.as_ref(), features: cfg.features.as_ref(),
include_apply_patch_tool: None, include_apply_patch_tool: None,
experimental_use_freeform_apply_patch: cfg.experimental_use_freeform_apply_patch,
experimental_use_unified_exec_tool: cfg.experimental_use_unified_exec_tool, experimental_use_unified_exec_tool: cfg.experimental_use_unified_exec_tool,
}, },
FeatureConfigSource { FeatureConfigSource {
features: config_profile.features.as_ref(), features: config_profile.features.as_ref(),
include_apply_patch_tool: config_profile.include_apply_patch_tool, include_apply_patch_tool: None,
experimental_use_freeform_apply_patch: config_profile
.experimental_use_freeform_apply_patch,
experimental_use_unified_exec_tool: config_profile experimental_use_unified_exec_tool: config_profile
.experimental_use_unified_exec_tool, .experimental_use_unified_exec_tool,
}, },
-1
View File
@@ -194,7 +194,6 @@ fn drop_lockfile_inputs(lock_config: &mut ConfigToml) {
lock_config.default_permissions = None; lock_config.default_permissions = None;
lock_config.permissions = None; lock_config.permissions = None;
lock_config.experimental_use_unified_exec_tool = None; lock_config.experimental_use_unified_exec_tool = None;
lock_config.experimental_use_freeform_apply_patch = None;
} }
fn resolved_config_to_toml<Toml>( fn resolved_config_to_toml<Toml>(
-1
View File
@@ -423,7 +423,6 @@ pub async fn run_main(cli: Cli, arg0_paths: Arg0DispatchPaths) -> anyhow::Result
developer_instructions: None, developer_instructions: None,
personality: None, personality: None,
compact_prompt: None, compact_prompt: None,
include_apply_patch_tool: None,
show_raw_agent_reasoning: oss.then_some(true), show_raw_agent_reasoning: oss.then_some(true),
tools_web_search_request: None, tools_web_search_request: None,
ephemeral: ephemeral.then_some(true), ephemeral: ephemeral.then_some(true),
-11
View File
@@ -21,10 +21,6 @@ const ALIASES: &[Alias] = &[
legacy_key: "experimental_use_unified_exec_tool", legacy_key: "experimental_use_unified_exec_tool",
feature: Feature::UnifiedExec, feature: Feature::UnifiedExec,
}, },
Alias {
legacy_key: "experimental_use_freeform_apply_patch",
feature: Feature::ApplyPatchFreeform,
},
Alias { Alias {
legacy_key: "include_apply_patch_tool", legacy_key: "include_apply_patch_tool",
feature: Feature::ApplyPatchFreeform, feature: Feature::ApplyPatchFreeform,
@@ -72,7 +68,6 @@ pub(crate) fn feature_for_key(key: &str) -> Option<Feature> {
#[derive(Debug, Default)] #[derive(Debug, Default)]
pub(crate) struct LegacyFeatureToggles { pub(crate) struct LegacyFeatureToggles {
pub include_apply_patch_tool: Option<bool>, pub include_apply_patch_tool: Option<bool>,
pub experimental_use_freeform_apply_patch: Option<bool>,
pub experimental_use_unified_exec_tool: Option<bool>, pub experimental_use_unified_exec_tool: Option<bool>,
} }
@@ -84,12 +79,6 @@ impl LegacyFeatureToggles {
self.include_apply_patch_tool, self.include_apply_patch_tool,
"include_apply_patch_tool", "include_apply_patch_tool",
); );
set_if_some(
features,
Feature::ApplyPatchFreeform,
self.experimental_use_freeform_apply_patch,
"experimental_use_freeform_apply_patch",
);
set_if_some( set_if_some(
features, features,
Feature::UnifiedExec, Feature::UnifiedExec,
-8
View File
@@ -286,7 +286,6 @@ pub struct Features {
#[derive(Debug, Clone, Default)] #[derive(Debug, Clone, Default)]
pub struct FeatureOverrides { pub struct FeatureOverrides {
pub include_apply_patch_tool: Option<bool>,
pub web_search_request: Option<bool>, pub web_search_request: Option<bool>,
} }
@@ -294,17 +293,11 @@ pub struct FeatureOverrides {
pub struct FeatureConfigSource<'a> { pub struct FeatureConfigSource<'a> {
pub features: Option<&'a FeaturesToml>, pub features: Option<&'a FeaturesToml>,
pub include_apply_patch_tool: Option<bool>, pub include_apply_patch_tool: Option<bool>,
pub experimental_use_freeform_apply_patch: Option<bool>,
pub experimental_use_unified_exec_tool: Option<bool>, pub experimental_use_unified_exec_tool: Option<bool>,
} }
impl FeatureOverrides { impl FeatureOverrides {
fn apply(self, features: &mut Features) { fn apply(self, features: &mut Features) {
LegacyFeatureToggles {
include_apply_patch_tool: self.include_apply_patch_tool,
..Default::default()
}
.apply(features);
if let Some(enabled) = self.web_search_request { if let Some(enabled) = self.web_search_request {
if enabled { if enabled {
features.enable(Feature::WebSearchRequest); features.enable(Feature::WebSearchRequest);
@@ -470,7 +463,6 @@ impl Features {
for source in [base, profile] { for source in [base, profile] {
LegacyFeatureToggles { LegacyFeatureToggles {
include_apply_patch_tool: source.include_apply_patch_tool, include_apply_patch_tool: source.include_apply_patch_tool,
experimental_use_freeform_apply_patch: source.experimental_use_freeform_apply_patch,
experimental_use_unified_exec_tool: source.experimental_use_unified_exec_tool, experimental_use_unified_exec_tool: source.experimental_use_unified_exec_tool,
} }
.apply(&mut features); .apply(&mut features);
-1
View File
@@ -393,7 +393,6 @@ fn from_sources_applies_base_profile_and_overrides() {
}, },
FeatureOverrides { FeatureOverrides {
web_search_request: Some(false), web_search_request: Some(false),
..Default::default()
}, },
); );