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:
committed by
GitHub
parent
50262a44ce
commit
6039f8a126
@@ -74,7 +74,7 @@ pub fn builtin_model_presets(auth_mode: Option<AuthMode>) -> Vec<ModelPreset> {
|
|||||||
Some(AuthMode::ApiKey) => PRESETS
|
Some(AuthMode::ApiKey) => PRESETS
|
||||||
.iter()
|
.iter()
|
||||||
.copied()
|
.copied()
|
||||||
.filter(|p| !p.model.contains(SWIFTFOX_MEDIUM_MODEL))
|
.filter(|p| p.model != SWIFTFOX_MEDIUM_MODEL)
|
||||||
.collect(),
|
.collect(),
|
||||||
_ => PRESETS.to_vec(),
|
_ => PRESETS.to_vec(),
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
use anyhow::Context;
|
use anyhow::Context;
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
use serde::Serialize;
|
use serde::Serialize;
|
||||||
|
use std::io::ErrorKind;
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
|
|
||||||
@@ -31,7 +32,14 @@ impl InternalStorage {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
Err(error) => {
|
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)
|
Self::empty(storage_path)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -527,13 +527,8 @@ fn should_show_model_rollout_prompt(
|
|||||||
swiftfox_model_prompt_seen: bool,
|
swiftfox_model_prompt_seen: bool,
|
||||||
) -> bool {
|
) -> bool {
|
||||||
let login_status = get_login_status(config);
|
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()
|
active_profile.is_none()
|
||||||
&& debug_high_enabled
|
|
||||||
&& cli.model.is_none()
|
&& cli.model.is_none()
|
||||||
&& !swiftfox_model_prompt_seen
|
&& !swiftfox_model_prompt_seen
|
||||||
&& config.model_provider.requires_openai_auth
|
&& config.model_provider.requires_openai_auth
|
||||||
@@ -551,21 +546,7 @@ mod tests {
|
|||||||
use codex_core::auth::write_auth_json;
|
use codex_core::auth::write_auth_json;
|
||||||
use codex_core::token_data::IdTokenInfo;
|
use codex_core::token_data::IdTokenInfo;
|
||||||
use codex_core::token_data::TokenData;
|
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 {
|
fn make_config() -> Config {
|
||||||
enable_debug_high_env();
|
|
||||||
// Create a unique CODEX_HOME per test to isolate auth.json writes.
|
// Create a unique CODEX_HOME per test to isolate auth.json writes.
|
||||||
let mut codex_home = std::env::temp_dir();
|
let mut codex_home = std::env::temp_dir();
|
||||||
let unique_suffix = format!(
|
let unique_suffix = format!(
|
||||||
|
|||||||
Reference in New Issue
Block a user