feat: tighten preset filter, tame storage load logs, enable rollout prompt by default (#3628)

Summary
- common: use exact equality for Swiftfox exclusion to avoid hiding
future slugs that merely contain the substring
- core: treat missing internal_storage.json as expected (debug), warn
only on real IO/parse errors
- tui: drop DEBUG_HIGH gate; always consider showing rollout prompt, but
suppress under ApiKey auth mode
This commit is contained in:
Thibault Sottiaux
2025-09-14 23:05:41 -07:00
committed by GitHub
parent 50262a44ce
commit 6039f8a126
3 changed files with 10 additions and 21 deletions

View File

@@ -74,7 +74,7 @@ pub fn builtin_model_presets(auth_mode: Option<AuthMode>) -> Vec<ModelPreset> {
Some(AuthMode::ApiKey) => PRESETS
.iter()
.copied()
.filter(|p| !p.model.contains(SWIFTFOX_MEDIUM_MODEL))
.filter(|p| p.model != SWIFTFOX_MEDIUM_MODEL)
.collect(),
_ => PRESETS.to_vec(),
}

View File

@@ -1,6 +1,7 @@
use anyhow::Context;
use serde::Deserialize;
use serde::Serialize;
use std::io::ErrorKind;
use std::path::Path;
use std::path::PathBuf;
@@ -31,7 +32,14 @@ impl InternalStorage {
}
},
Err(error) => {
tracing::warn!("failed to read internal storage: {error:?}");
if error.kind() == ErrorKind::NotFound {
tracing::debug!(
"internal storage not found at {}; initializing defaults",
storage_path.display()
);
} else {
tracing::warn!("failed to read internal storage: {error:?}");
}
Self::empty(storage_path)
}
}

View File

@@ -527,13 +527,8 @@ fn should_show_model_rollout_prompt(
swiftfox_model_prompt_seen: bool,
) -> bool {
let login_status = get_login_status(config);
// TODO(jif) drop.
let debug_high_enabled = std::env::var("DEBUG_HIGH")
.map(|v| v.eq_ignore_ascii_case("1"))
.unwrap_or(false);
active_profile.is_none()
&& debug_high_enabled
&& cli.model.is_none()
&& !swiftfox_model_prompt_seen
&& config.model_provider.requires_openai_auth
@@ -551,21 +546,7 @@ mod tests {
use codex_core::auth::write_auth_json;
use codex_core::token_data::IdTokenInfo;
use codex_core::token_data::TokenData;
use std::sync::Once;
fn enable_debug_high_env() {
static DEBUG_HIGH_ONCE: Once = Once::new();
DEBUG_HIGH_ONCE.call_once(|| {
// SAFETY: Tests run in a controlled environment and require this env variable to
// opt into the GPT-5 High rollout prompt gating. We only set it once.
unsafe {
std::env::set_var("DEBUG_HIGH", "1");
}
});
}
fn make_config() -> Config {
enable_debug_high_env();
// Create a unique CODEX_HOME per test to isolate auth.json writes.
let mut codex_home = std::env::temp_dir();
let unique_suffix = format!(