mirror of
https://github.com/openai/codex.git
synced 2026-10-17 17:08:55 +00:00
Update models.json (#31684)
Automated update of models.json. --------- Co-authored-by: sayan-oai <244841968+sayan-oai@users.noreply.github.com> Co-authored-by: sayan-oai <sayan@openai.com>
This commit is contained in:
co-authored by
sayan-oai
sayan-oai
parent
a7c72aee8b
commit
3380969a29
@@ -51,9 +51,13 @@ use tokio::time::timeout;
|
||||
use toml::Value as TomlValue;
|
||||
|
||||
async fn test_config_with_cli_overrides(
|
||||
cli_overrides: Vec<(String, TomlValue)>,
|
||||
mut cli_overrides: Vec<(String, TomlValue)>,
|
||||
) -> (TempDir, Config) {
|
||||
let home = TempDir::new().expect("create temp dir");
|
||||
cli_overrides.push((
|
||||
"model".to_string(),
|
||||
TomlValue::String("gpt-5.5".to_string()),
|
||||
));
|
||||
let config = ConfigBuilder::without_managed_config_for_tests()
|
||||
.codex_home(home.path().to_path_buf())
|
||||
.cli_overrides(cli_overrides)
|
||||
|
||||
@@ -316,7 +316,10 @@ fn resolve_mcp_oauth_credentials_store_mode(
|
||||
pub(crate) async fn test_config() -> Config {
|
||||
let codex_home = tempfile::tempdir().expect("create temp dir");
|
||||
Config::load_from_base_config_with_overrides(
|
||||
ConfigToml::default(),
|
||||
ConfigToml {
|
||||
model: Some("gpt-5.5".to_string()),
|
||||
..Default::default()
|
||||
},
|
||||
ConfigOverrides::default(),
|
||||
AbsolutePathBuf::from_absolute_path(codex_home.path()).expect("temp dir should resolve"),
|
||||
)
|
||||
|
||||
@@ -4170,6 +4170,10 @@ fn text_block(s: &str) -> serde_json::Value {
|
||||
async fn build_test_config(codex_home: &Path) -> Config {
|
||||
ConfigBuilder::without_managed_config_for_tests()
|
||||
.codex_home(codex_home.to_path_buf())
|
||||
.harness_overrides(ConfigOverrides {
|
||||
model: Some("gpt-5.5".to_string()),
|
||||
..Default::default()
|
||||
})
|
||||
.build()
|
||||
.await
|
||||
.expect("load default test config")
|
||||
|
||||
@@ -740,6 +740,9 @@ impl TestCodexBuilder {
|
||||
} else {
|
||||
load_default_config_for_test(home).await
|
||||
};
|
||||
// Keep generic tests stable when the bundled catalog default changes. Tests that need a
|
||||
// specific model can still override this with a config mutator.
|
||||
config.model = Some("gpt-5.5".to_string());
|
||||
config.cwd = cwd_override;
|
||||
config.model_provider = model_provider;
|
||||
if let Ok(path) = codex_utils_cargo_bin::cargo_bin("codex") {
|
||||
|
||||
@@ -325,6 +325,8 @@ async fn exec_cli_applies_model_instructions_file() {
|
||||
let mut cmd = Command::new(bin);
|
||||
cmd.arg("exec")
|
||||
.arg("--skip-git-repo-check")
|
||||
.arg("--model")
|
||||
.arg("gpt-5.5")
|
||||
.arg("-c")
|
||||
.arg(&provider_override)
|
||||
.arg("-c")
|
||||
@@ -395,6 +397,8 @@ async fn exec_cli_profile_applies_model_instructions_file() {
|
||||
let mut cmd = Command::new(bin);
|
||||
cmd.arg("exec")
|
||||
.arg("--skip-git-repo-check")
|
||||
.arg("--model")
|
||||
.arg("gpt-5.5")
|
||||
.arg("--profile")
|
||||
.arg("default")
|
||||
.arg("-c")
|
||||
|
||||
@@ -1312,6 +1312,7 @@ async fn stdio_image_responses_round_trip() -> anyhow::Result<()> {
|
||||
let rmcp_test_server_bin = remote_aware_stdio_server_bin()?;
|
||||
|
||||
let fixture = test_codex()
|
||||
.with_model("gpt-5.2")
|
||||
.with_config(move |config| {
|
||||
insert_mcp_server(
|
||||
config,
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -9,6 +9,24 @@ fn all_model_presets() -> Vec<ModelPreset> {
|
||||
crate::test_support::TEST_MODEL_PRESETS.clone()
|
||||
}
|
||||
|
||||
fn model_presets_with_test_upgrades() -> Vec<ModelPreset> {
|
||||
let mut presets = all_model_presets();
|
||||
for model in ["gpt-5.2", "gpt-5.4"] {
|
||||
let preset = presets
|
||||
.iter_mut()
|
||||
.find(|preset| preset.model == model)
|
||||
.unwrap_or_else(|| panic!("{model} preset present"));
|
||||
preset.upgrade = Some(ModelUpgrade {
|
||||
id: "gpt-5.5".to_string(),
|
||||
migration_config_key: "hide_test_migration_prompt".to_string(),
|
||||
model_link: None,
|
||||
upgrade_copy: None,
|
||||
migration_markdown: None,
|
||||
});
|
||||
}
|
||||
presets
|
||||
}
|
||||
|
||||
fn model_availability_nux_config(shown_count: &[(&str, u32)]) -> ModelAvailabilityNuxConfig {
|
||||
ModelAvailabilityNuxConfig {
|
||||
shown_count: shown_count
|
||||
@@ -40,23 +58,15 @@ fn model_migration_copy_to_plain_text(copy: &crate::model_migration::ModelMigrat
|
||||
#[tokio::test]
|
||||
async fn model_migration_prompt_only_shows_for_deprecated_models() {
|
||||
let seen = BTreeMap::new();
|
||||
let presets = model_presets_with_test_upgrades();
|
||||
assert!(should_show_model_migration_prompt(
|
||||
"gpt-5.2",
|
||||
"gpt-5.5",
|
||||
&seen,
|
||||
&all_model_presets()
|
||||
"gpt-5.2", "gpt-5.5", &seen, &presets
|
||||
));
|
||||
assert!(should_show_model_migration_prompt(
|
||||
"gpt-5.4",
|
||||
"gpt-5.5",
|
||||
&seen,
|
||||
&all_model_presets()
|
||||
"gpt-5.4", "gpt-5.5", &seen, &presets
|
||||
));
|
||||
assert!(!should_show_model_migration_prompt(
|
||||
"gpt-5.4",
|
||||
"gpt-5.4",
|
||||
&seen,
|
||||
&all_model_presets()
|
||||
"gpt-5.4", "gpt-5.4", &seen, &presets
|
||||
));
|
||||
}
|
||||
|
||||
@@ -339,7 +349,7 @@ async fn model_migration_prompt_shows_for_hidden_model() {
|
||||
.await
|
||||
.expect("config");
|
||||
|
||||
let mut available_models = all_model_presets();
|
||||
let mut available_models = model_presets_with_test_upgrades();
|
||||
let current = available_models
|
||||
.iter_mut()
|
||||
.find(|preset| preset.model == "gpt-5.2")
|
||||
|
||||
+4
-4
@@ -2,10 +2,10 @@
|
||||
source: tui/src/app/tests/model_catalog.rs
|
||||
expression: model_migration_copy_to_plain_text(©)
|
||||
---
|
||||
Introducing GPT-5.5
|
||||
Codex just got an upgrade. Introducing GPT-5.5.
|
||||
|
||||
GPT-5.5 is now available in Codex. It's our strongest agentic coding model yet, built to reason through large codebases, check assumptions with tools, and keep going until the work is done.
|
||||
We recommend switching from gpt-5.2 to gpt-5.5.
|
||||
|
||||
Learn more: https://openai.com/index/introducing-gpt-5-5/
|
||||
Frontier model for complex coding, research, and real-world work.
|
||||
|
||||
You can always keep using GPT-5.4 if you prefer.
|
||||
You can continue using gpt-5.2 if you prefer.
|
||||
|
||||
+1
-1
@@ -17,4 +17,4 @@ expression: normalize_snapshot_paths(term.backend().vt100().screen().contents())
|
||||
|
||||
› Ask Codex to do anything
|
||||
|
||||
gpt-5.5 default · /tmp/project
|
||||
gpt-5.6-sol default · /tmp/project
|
||||
|
||||
+1
-1
@@ -17,4 +17,4 @@ expression: normalize_snapshot_paths(term.backend().vt100().screen().contents())
|
||||
|
||||
› Ask Codex to do anything
|
||||
|
||||
gpt-5.5 default · /tmp/project
|
||||
gpt-5.6-sol default · /tmp/project
|
||||
|
||||
+1
-1
@@ -11,4 +11,4 @@ expression: normalize_snapshot_paths(term.backend().vt100().screen().contents())
|
||||
|
||||
› Ask Codex to do anything
|
||||
|
||||
gpt-5.5 default · /tmp/project
|
||||
gpt-5.6-sol default · /tmp/project
|
||||
|
||||
+1
-2
@@ -1,6 +1,5 @@
|
||||
---
|
||||
source: tui/src/chatwidget/tests/status_and_layout.rs
|
||||
assertion_line: 2288
|
||||
expression: normalize_snapshot_paths(term.backend().vt100().screen().contents())
|
||||
---
|
||||
|
||||
@@ -26,4 +25,4 @@ expression: normalize_snapshot_paths(term.backend().vt100().screen().contents())
|
||||
|
||||
› Ask Codex to do anything
|
||||
|
||||
gpt-5.5 default · /tmp/project
|
||||
gpt-5.6-sol default · /tmp/project
|
||||
|
||||
+1
-1
@@ -19,4 +19,4 @@ expression: normalize_snapshot_paths(term.backend().vt100().screen().contents())
|
||||
|
||||
› Ask Codex to do anything
|
||||
|
||||
gpt-5.5 default · /tmp/project
|
||||
gpt-5.6-sol default · /tmp/project
|
||||
|
||||
+1
-1
@@ -8,4 +8,4 @@ expression: snapshot
|
||||
" "
|
||||
"› Ask Codex to do anything "
|
||||
" "
|
||||
" gpt-5.5 default · /tmp/project Goal paused (/goal resume) "
|
||||
" gpt-5.6-sol default · /tmp/project Goal paused (/goal resume) "
|
||||
|
||||
+1
-1
@@ -8,4 +8,4 @@ expression: snapshot
|
||||
" "
|
||||
"› Ask Codex to do anything "
|
||||
" "
|
||||
" gpt-5.5 default · /tmp/project Goal paused (/goal resume) "
|
||||
" gpt-5.6-sol default · /tmp/project Goal paused (/goal resume) "
|
||||
|
||||
+1
-1
@@ -13,4 +13,4 @@ expression: normalize_snapshot_paths(term.backend().vt100().screen().contents())
|
||||
|
||||
› Ask Codex to do anything
|
||||
|
||||
gpt-5.5 default · /tmp/project
|
||||
gpt-5.6-sol default · /tmp/project
|
||||
|
||||
+1
-1
@@ -13,4 +13,4 @@ expression: normalize_snapshot_paths(term.backend().vt100().screen().contents())
|
||||
|
||||
› Ask Codex to do anything
|
||||
|
||||
gpt-5.5 default · /tmp/project
|
||||
gpt-5.6-sol default · /tmp/project
|
||||
|
||||
+1
-1
@@ -21,4 +21,4 @@ expression: normalize_snapshot_paths(term.backend().vt100().screen().contents())
|
||||
|
||||
› Ask Codex to do anything
|
||||
|
||||
gpt-5.5 default · /tmp/project
|
||||
gpt-5.6-sol default · /tmp/project
|
||||
|
||||
+1
-1
@@ -9,4 +9,4 @@ expression: normalize_snapshot_paths(rendered)
|
||||
|
||||
› Ask Codex to do anything
|
||||
|
||||
gpt-5.5 default · /tmp/project
|
||||
gpt-5.6-sol default · /tmp/project
|
||||
|
||||
+1
-1
@@ -21,4 +21,4 @@ expression: normalize_snapshot_paths(term.backend().vt100().screen().contents())
|
||||
|
||||
› Ask Codex to do anything
|
||||
|
||||
gpt-5.5 default · /tmp/project
|
||||
gpt-5.6-sol default · /tmp/project
|
||||
|
||||
+1
-1
@@ -8,4 +8,4 @@ expression: normalized_backend_snapshot(terminal.backend())
|
||||
" "
|
||||
"› Ask Codex to do anything "
|
||||
" "
|
||||
" gpt-5.5 default · /tmp/project "
|
||||
" gpt-5.6-sol default · /tmp/project "
|
||||
|
||||
+10
-7
@@ -5,12 +5,15 @@ expression: popup
|
||||
Select Model and Effort
|
||||
Access legacy models by running codex -m <model_name> or in your config.toml
|
||||
|
||||
1. gpt-5.5 (default) Frontier model for complex coding, research, and real-
|
||||
world work.
|
||||
2. gpt-5.4 Strong model for everyday coding.
|
||||
3. gpt-5.4-mini Small, fast, and cost-efficient model for simpler
|
||||
coding tasks.
|
||||
› 4. gpt-5.2 (current) Optimized for professional work and long-running
|
||||
agents.
|
||||
1. gpt-5.6-sol (default) Latest frontier agentic coding model.
|
||||
2. gpt-5.6-terra Balanced agentic coding model for everyday work.
|
||||
3. gpt-5.6-luna Fast and affordable agentic coding model.
|
||||
4. gpt-5.5 Frontier model for complex coding, research, and
|
||||
real-world work.
|
||||
5. gpt-5.4 Strong model for everyday coding.
|
||||
6. gpt-5.4-mini Small, fast, and cost-efficient model for simpler
|
||||
coding tasks.
|
||||
› 7. gpt-5.2 (current) Optimized for professional work and long-running
|
||||
agents.
|
||||
|
||||
Press enter to confirm or esc to go back
|
||||
|
||||
+1
-1
@@ -11,4 +11,4 @@ expression: normalize_snapshot_paths(term.backend().vt100().screen().contents())
|
||||
|
||||
› Ask Codex to do anything
|
||||
|
||||
gpt-5.5 default · /tmp/project
|
||||
gpt-5.6-sol default · /tmp/project
|
||||
|
||||
+1
-1
@@ -8,4 +8,4 @@ expression: normalized_backend_snapshot(terminal.backend())
|
||||
" "
|
||||
"› Ask Codex to do anything "
|
||||
" "
|
||||
" gpt-5.5 default · /tmp/project "
|
||||
" gpt-5.6-sol default · /tmp/project "
|
||||
|
||||
+1
-1
@@ -19,4 +19,4 @@ expression: normalize_snapshot_paths(term.backend().vt100().screen().contents())
|
||||
|
||||
› Ask Codex to do anything
|
||||
|
||||
gpt-5.5 default · /tmp/project
|
||||
gpt-5.6-sol default · /tmp/project
|
||||
|
||||
+1
-1
@@ -6,4 +6,4 @@ expression: terminal.backend()
|
||||
" "
|
||||
"› Check recently modified functions for compatibility "
|
||||
" "
|
||||
" gpt-5.5 Side from main thread · Ctrl+C to return "
|
||||
" gpt-5.6-sol Side from main thread · Ctrl+C to return "
|
||||
|
||||
+1
-1
@@ -6,4 +6,4 @@ expression: terminal.backend()
|
||||
" "
|
||||
"› Check recently modified functions for compatibility "
|
||||
" "
|
||||
" gpt-5.5 default… Side from main thread · main needs input · Ctrl+C to return "
|
||||
" gpt-5.6-sol def… Side from main thread · main needs input · Ctrl+C to return "
|
||||
|
||||
+1
-1
@@ -8,4 +8,4 @@ expression: normalized_backend_snapshot(terminal.backend())
|
||||
" "
|
||||
"› Ask Codex to do anything "
|
||||
" "
|
||||
" gpt-5.5 default Side starting... "
|
||||
" gpt-5.6-sol default Side starting... "
|
||||
|
||||
+1
-1
@@ -8,4 +8,4 @@ expression: normalized_backend_snapshot(terminal.backend())
|
||||
" "
|
||||
"› Ask Codex to do anything "
|
||||
" "
|
||||
" gpt-5.5 default · /tmp/project "
|
||||
" gpt-5.6-sol default · /tmp/project "
|
||||
|
||||
+1
-1
@@ -8,4 +8,4 @@ expression: normalized_backend_snapshot(terminal.backend())
|
||||
" "
|
||||
"› Ask Codex to do anything "
|
||||
" "
|
||||
" gpt-5.5 default · /tmp/project "
|
||||
" gpt-5.6-sol default · /tmp/project "
|
||||
|
||||
+1
-1
@@ -8,4 +8,4 @@ expression: normalize_snapshot_paths(rendered)
|
||||
|
||||
› Ask Codex to do anything
|
||||
|
||||
gpt-5.5 default · /tmp/project
|
||||
gpt-5.6-sol default · /tmp/project
|
||||
|
||||
@@ -1272,7 +1272,7 @@ async fn submit_user_message_emits_structured_plugin_mentions_from_bindings() {
|
||||
|
||||
#[tokio::test]
|
||||
async fn enter_submits_when_plan_stream_is_not_active() {
|
||||
let (mut chat, _rx, mut op_rx) = make_chatwidget_manual(/*model_override*/ None).await;
|
||||
let (mut chat, _rx, mut op_rx) = make_chatwidget_manual(Some("gpt-5.5")).await;
|
||||
chat.thread_id = Some(ThreadId::new());
|
||||
chat.set_feature_enabled(Feature::CollaborationModes, /*enabled*/ true);
|
||||
let plan_mask = collaboration_modes::mask_for_kind(chat.model_catalog.as_ref(), ModeKind::Plan)
|
||||
@@ -1562,7 +1562,7 @@ async fn set_reasoning_effort_does_not_override_active_plan_override() {
|
||||
|
||||
#[tokio::test]
|
||||
async fn collab_mode_is_sent_after_enabling() {
|
||||
let (mut chat, _rx, mut op_rx) = make_chatwidget_manual(/*model_override*/ None).await;
|
||||
let (mut chat, _rx, mut op_rx) = make_chatwidget_manual(Some("gpt-5.5")).await;
|
||||
chat.thread_id = Some(ThreadId::new());
|
||||
chat.set_feature_enabled(Feature::CollaborationModes, /*enabled*/ true);
|
||||
|
||||
@@ -1587,7 +1587,7 @@ async fn collab_mode_is_sent_after_enabling() {
|
||||
|
||||
#[tokio::test]
|
||||
async fn collab_mode_applies_default_preset() {
|
||||
let (mut chat, _rx, mut op_rx) = make_chatwidget_manual(/*model_override*/ None).await;
|
||||
let (mut chat, _rx, mut op_rx) = make_chatwidget_manual(Some("gpt-5.5")).await;
|
||||
chat.thread_id = Some(ThreadId::new());
|
||||
|
||||
chat.bottom_pane
|
||||
|
||||
Reference in New Issue
Block a user