refactor: keep network proxy feature changes scoped

Co-authored-by: Codex noreply@openai.com
This commit is contained in:
viyatb-oai
2026-05-08 15:46:48 -07:00
parent 433db95272
commit 6168062904
2 changed files with 10 additions and 43 deletions

View File

@@ -58,7 +58,7 @@ use codex_core::config::edit::ConfigEditsBuilder;
use codex_core::config::find_codex_home;
use codex_features::FEATURES;
use codex_features::Stage;
use codex_features::feature_toggle_override_key;
use codex_features::is_known_feature_key;
use codex_login::AuthManager;
use codex_memories_write::clear_memory_roots_contents;
use codex_models_manager::bundled_models_response;
@@ -687,23 +687,22 @@ impl FeatureToggles {
fn to_overrides(&self) -> anyhow::Result<Vec<String>> {
let mut v = Vec::new();
for feature in &self.enable {
let key = Self::feature_override_key(feature)?;
v.push(format!("{key}=true"));
Self::validate_feature(feature)?;
v.push(format!("features.{feature}=true"));
}
for feature in &self.disable {
let key = Self::feature_override_key(feature)?;
v.push(format!("{key}=false"));
Self::validate_feature(feature)?;
v.push(format!("features.{feature}=false"));
}
Ok(v)
}
fn feature_override_key(feature: &str) -> anyhow::Result<String> {
feature_toggle_override_key(feature)
.ok_or_else(|| anyhow::anyhow!("Unknown feature flag: {feature}"))
}
fn validate_feature(feature: &str) -> anyhow::Result<()> {
Self::feature_override_key(feature).map(|_| ())
if is_known_feature_key(feature) {
Ok(())
} else {
anyhow::bail!("Unknown feature flag: {feature}")
}
}
}
@@ -2660,22 +2659,6 @@ mod tests {
);
}
#[test]
fn feature_toggles_preserve_configurable_feature_tables() {
let toggles = FeatureToggles {
enable: vec!["network_proxy".to_string()],
disable: vec!["multi_agent_v2".to_string()],
};
let overrides = toggles.to_overrides().expect("valid features");
assert_eq!(
overrides,
vec![
"features.network_proxy.enabled=true".to_string(),
"features.multi_agent_v2.enabled=false".to_string(),
]
);
}
#[test]
fn feature_toggles_accept_legacy_linux_sandbox_flag() {
let toggles = FeatureToggles {

View File

@@ -258,13 +258,6 @@ impl Feature {
self.info().default_enabled
}
pub fn uses_config_table(self) -> bool {
matches!(
self,
Feature::MultiAgentV2 | Feature::AppsMcpPathOverride | Feature::NetworkProxy
)
}
fn info(self) -> &'static FeatureSpec {
FEATURES
.iter()
@@ -580,15 +573,6 @@ pub fn is_known_feature_key(key: &str) -> bool {
feature_for_key(key).is_some()
}
pub fn feature_toggle_override_key(key: &str) -> Option<String> {
let feature = feature_for_key(key)?;
if feature.uses_config_table() {
Some(format!("features.{}.enabled", feature.key()))
} else {
Some(format!("features.{key}"))
}
}
/// Deserializable features table for TOML.
#[derive(Serialize, Deserialize, Debug, Clone, Default, PartialEq, JsonSchema)]
pub struct FeaturesToml {