mirror of
https://github.com/openai/codex.git
synced 2026-11-05 16:29:31 +00:00
Update models.json (#21818)
Automated update of models.json. --------- Co-authored-by: aibrahim-oai <219906144+aibrahim-oai@users.noreply.github.com> Co-authored-by: Ahmed Ibrahim <aibrahim@openai.com> Co-authored-by: Sayan Sisodiya <sayan@openai.com>
This commit is contained in:
32 files changed
+236
-283
No files matched your search
+1
-2
@@ -10,8 +10,7 @@ expression: popup
|
||||
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.3-codex Coding-optimized model.
|
||||
› 5. gpt-5.2 (current) Optimized for professional work and long-running
|
||||
› 4. gpt-5.2 (current) Optimized for professional work and long-running
|
||||
agents.
|
||||
|
||||
Press enter to confirm or esc to go back
|
||||
+1
-1
@@ -6,4 +6,4 @@ expression: normalized_backend_snapshot(terminal.backend())
|
||||
" "
|
||||
"› Ask Codex to do anything "
|
||||
" "
|
||||
" gpt-5.3-codex high · Roadmap cleanup "
|
||||
" gpt-5.2 high · Roadmap cleanup "
|
||||
+1
-1
@@ -6,4 +6,4 @@ expression: normalized_backend_snapshot(terminal.backend())
|
||||
" "
|
||||
"› Ask Codex to do anything "
|
||||
" "
|
||||
" gpt-5.3-codex medium Plan mode (shift+tab to cycle) "
|
||||
" gpt-5.2 medium Plan mode (shift+tab to cycle) "
|
||||
@@ -42,7 +42,7 @@ fn configured_thread_session(thread_id: ThreadId) -> crate::session_state::Threa
|
||||
forked_from_id: None,
|
||||
fork_parent_title: None,
|
||||
thread_name: None,
|
||||
model: "gpt-5.3-codex".to_string(),
|
||||
model: "gpt-5.2".to_string(),
|
||||
model_provider_id: "openai".to_string(),
|
||||
service_tier: None,
|
||||
approval_policy: AskForApproval::Never,
|
||||
@@ -311,7 +311,7 @@ async fn invalid_url_elicitation_is_declined() {
|
||||
|
||||
#[tokio::test]
|
||||
async fn thread_settings_updated_updates_visible_state_without_transcript() {
|
||||
let (mut chat, mut rx, _op_rx) = make_chatwidget_manual(Some("gpt-5.3-codex")).await;
|
||||
let (mut chat, mut rx, _op_rx) = make_chatwidget_manual(Some("gpt-5.2")).await;
|
||||
set_fast_mode_test_catalog(&mut chat);
|
||||
let thread_id = ThreadId::new();
|
||||
chat.handle_thread_session(configured_thread_session(thread_id));
|
||||
@@ -367,7 +367,7 @@ async fn thread_settings_updated_updates_visible_state_without_transcript() {
|
||||
|
||||
#[tokio::test]
|
||||
async fn thread_settings_updated_preserves_default_settings_for_plan_mode() {
|
||||
let (mut chat, mut rx, _op_rx) = make_chatwidget_manual(Some("gpt-5.3-codex")).await;
|
||||
let (mut chat, mut rx, _op_rx) = make_chatwidget_manual(Some("gpt-5.2")).await;
|
||||
let thread_id = ThreadId::new();
|
||||
let mut session = configured_thread_session(thread_id);
|
||||
session.model = "gpt-default".to_string();
|
||||
|
||||
@@ -297,9 +297,7 @@ pub(crate) fn set_fast_mode_test_catalog(chat: &mut ChatWidget) {
|
||||
"gpt-5.4", /*priority*/ 0, /*supports_fast_mode*/ true,
|
||||
),
|
||||
test_model_info(
|
||||
"gpt-5.3-codex",
|
||||
/*priority*/ 1,
|
||||
/*supports_fast_mode*/ false,
|
||||
"gpt-5.2", /*priority*/ 1, /*supports_fast_mode*/ false,
|
||||
),
|
||||
],
|
||||
}
|
||||
|
||||
@@ -1354,7 +1354,7 @@ async fn mode_switch_surfaces_model_change_notification_when_effective_model_cha
|
||||
|
||||
#[tokio::test]
|
||||
async fn mode_switch_surfaces_reasoning_change_notification_when_model_stays_same() {
|
||||
let (mut chat, mut rx, _op_rx) = make_chatwidget_manual(Some("gpt-5.3-codex")).await;
|
||||
let (mut chat, mut rx, _op_rx) = make_chatwidget_manual(Some("gpt-5.2")).await;
|
||||
chat.set_feature_enabled(Feature::CollaborationModes, /*enabled*/ true);
|
||||
chat.set_reasoning_effort(Some(ReasoningEffortConfig::High));
|
||||
|
||||
@@ -1368,7 +1368,7 @@ async fn mode_switch_surfaces_reasoning_change_notification_when_model_stays_sam
|
||||
.collect::<Vec<_>>()
|
||||
.join("\n");
|
||||
assert!(
|
||||
plan_messages.contains("Model changed to gpt-5.3-codex medium for Plan mode."),
|
||||
plan_messages.contains("Model changed to gpt-5.2 medium for Plan mode."),
|
||||
"expected reasoning-change notice in Plan mode, got: {plan_messages:?}"
|
||||
);
|
||||
}
|
||||
@@ -1614,10 +1614,10 @@ async fn collab_mode_applies_default_preset() {
|
||||
|
||||
#[tokio::test]
|
||||
async fn user_turn_includes_personality_from_config() {
|
||||
let (mut chat, _rx, mut op_rx) = make_chatwidget_manual(Some("gpt-5.3-codex")).await;
|
||||
let (mut chat, _rx, mut op_rx) = make_chatwidget_manual(Some("gpt-5.4")).await;
|
||||
chat.set_feature_enabled(Feature::Personality, /*enabled*/ true);
|
||||
chat.thread_id = Some(ThreadId::new());
|
||||
chat.set_model("gpt-5.3-codex");
|
||||
chat.set_model("gpt-5.4");
|
||||
chat.set_personality(Personality::Friendly);
|
||||
|
||||
chat.bottom_pane
|
||||
|
||||
@@ -3089,7 +3089,7 @@ async fn model_selection_popup_snapshot() {
|
||||
|
||||
#[tokio::test]
|
||||
async fn personality_selection_popup_snapshot() {
|
||||
let (mut chat, _rx, _op_rx) = make_chatwidget_manual(Some("gpt-5.3-codex")).await;
|
||||
let (mut chat, _rx, _op_rx) = make_chatwidget_manual(Some("gpt-5.4")).await;
|
||||
chat.thread_id = Some(ThreadId::new());
|
||||
chat.open_personality_popup();
|
||||
|
||||
@@ -3150,8 +3150,8 @@ async fn model_picker_hides_show_in_picker_false_models_from_cache() {
|
||||
|
||||
#[tokio::test]
|
||||
async fn server_overloaded_error_does_not_switch_models() {
|
||||
let (mut chat, mut rx, mut op_rx) = make_chatwidget_manual(Some("gpt-5.3-codex")).await;
|
||||
chat.set_model("gpt-5.3-codex");
|
||||
let (mut chat, mut rx, mut op_rx) = make_chatwidget_manual(Some("gpt-5.2")).await;
|
||||
chat.set_model("gpt-5.2");
|
||||
while rx.try_recv().is_ok() {}
|
||||
while op_rx.try_recv().is_ok() {}
|
||||
|
||||
@@ -3164,7 +3164,7 @@ async fn server_overloaded_error_does_not_switch_models() {
|
||||
while let Ok(event) = rx.try_recv() {
|
||||
if let AppEvent::UpdateModel(model) = event {
|
||||
assert_eq!(
|
||||
model, "gpt-5.3-codex",
|
||||
model, "gpt-5.2",
|
||||
"did not expect model switch on server-overloaded error"
|
||||
);
|
||||
}
|
||||
|
||||
@@ -399,7 +399,7 @@ async fn queued_slash_menu_cancel_drains_next_input() {
|
||||
|
||||
#[tokio::test]
|
||||
async fn queued_settings_selection_applies_before_next_input() {
|
||||
let (mut chat, mut rx, mut op_rx) = make_chatwidget_manual(Some("gpt-5.3-codex")).await;
|
||||
let (mut chat, mut rx, mut op_rx) = make_chatwidget_manual(Some("gpt-5.2")).await;
|
||||
chat.thread_id = Some(ThreadId::new());
|
||||
let mut preset = get_available_model(&chat, "gpt-5.4");
|
||||
preset.supported_reasoning_efforts.truncate(1);
|
||||
@@ -1203,7 +1203,7 @@ async fn slash_rename_without_existing_thread_name_starts_empty() {
|
||||
|
||||
#[tokio::test]
|
||||
async fn usage_error_slash_command_is_available_from_local_recall() {
|
||||
let (mut chat, mut rx, _op_rx) = make_chatwidget_manual(Some("gpt-5.3-codex")).await;
|
||||
let (mut chat, mut rx, _op_rx) = make_chatwidget_manual(Some("gpt-5.2")).await;
|
||||
|
||||
submit_composer_text(&mut chat, "/raw maybe");
|
||||
|
||||
@@ -2730,7 +2730,7 @@ async fn user_turn_carries_service_tier_after_fast_toggle() {
|
||||
|
||||
#[tokio::test]
|
||||
async fn model_switch_recomputes_catalog_default_service_tier() {
|
||||
let (mut chat, _rx, mut op_rx) = make_chatwidget_manual(Some("gpt-5.3-codex")).await;
|
||||
let (mut chat, _rx, mut op_rx) = make_chatwidget_manual(Some("gpt-5.2")).await;
|
||||
chat.thread_id = Some(ThreadId::new());
|
||||
set_chatgpt_auth(&mut chat);
|
||||
set_fast_mode_test_catalog(&mut chat);
|
||||
@@ -2753,7 +2753,7 @@ async fn model_switch_recomputes_catalog_default_service_tier() {
|
||||
Some(ServiceTier::Fast.request_value())
|
||||
);
|
||||
|
||||
chat.set_model("gpt-5.3-codex");
|
||||
chat.set_model("gpt-5.2");
|
||||
assert_eq!(chat.current_service_tier(), None);
|
||||
|
||||
chat.bottom_pane
|
||||
|
||||
@@ -1751,13 +1751,13 @@ async fn fast_status_indicator_requires_chatgpt_auth() {
|
||||
|
||||
#[tokio::test]
|
||||
async fn fast_status_indicator_is_hidden_for_models_without_fast_support() {
|
||||
let (mut chat, _rx, _op_rx) = make_chatwidget_manual(Some("gpt-5.3-codex")).await;
|
||||
let (mut chat, _rx, _op_rx) = make_chatwidget_manual(Some("gpt-5.2")).await;
|
||||
set_fast_mode_test_catalog(&mut chat);
|
||||
assert!(!get_available_model(&chat, "gpt-5.3-codex").supports_fast_mode());
|
||||
assert!(!get_available_model(&chat, "gpt-5.2").supports_fast_mode());
|
||||
chat.set_service_tier(Some(ServiceTier::Fast.request_value().to_string()));
|
||||
set_chatgpt_auth(&mut chat);
|
||||
set_fast_mode_test_catalog(&mut chat);
|
||||
assert!(!get_available_model(&chat, "gpt-5.3-codex").supports_fast_mode());
|
||||
assert!(!get_available_model(&chat, "gpt-5.2").supports_fast_mode());
|
||||
|
||||
assert!(!chat.should_show_fast_status(chat.current_model(), chat.current_service_tier(),));
|
||||
}
|
||||
@@ -2645,14 +2645,12 @@ async fn status_line_model_with_reasoning_includes_fast_for_fast_capable_models(
|
||||
Some(format!("gpt-5.4 xhigh fast · Context 0% used · {test_cwd}"))
|
||||
);
|
||||
|
||||
chat.set_model("gpt-5.3-codex");
|
||||
chat.set_model("gpt-5.2");
|
||||
chat.refresh_status_line();
|
||||
|
||||
assert_eq!(
|
||||
status_line_text(&chat),
|
||||
Some(format!(
|
||||
"gpt-5.3-codex xhigh · Context 0% used · {test_cwd}"
|
||||
))
|
||||
Some(format!("gpt-5.2 xhigh · Context 0% used · {test_cwd}"))
|
||||
);
|
||||
}
|
||||
|
||||
@@ -2664,9 +2662,9 @@ async fn terminal_title_model_updates_on_model_change_without_manual_refresh() {
|
||||
|
||||
assert_eq!(chat.last_terminal_title, Some("gpt-5.4".to_string()));
|
||||
|
||||
chat.set_model("gpt-5.3-codex");
|
||||
chat.set_model("gpt-5.2");
|
||||
|
||||
assert_eq!(chat.last_terminal_title, Some("gpt-5.3-codex".to_string()));
|
||||
assert_eq!(chat.last_terminal_title, Some("gpt-5.2".to_string()));
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
@@ -2686,7 +2684,7 @@ async fn status_line_and_terminal_title_reasoning_render_only_effort() {
|
||||
|
||||
#[tokio::test]
|
||||
async fn status_line_reasoning_updates_on_mode_switch_without_manual_refresh() {
|
||||
let (mut chat, _rx, _op_rx) = make_chatwidget_manual(Some("gpt-5.3-codex")).await;
|
||||
let (mut chat, _rx, _op_rx) = make_chatwidget_manual(Some("gpt-5.2")).await;
|
||||
chat.set_feature_enabled(Feature::CollaborationModes, /*enabled*/ true);
|
||||
chat.config.tui_status_line = Some(vec!["reasoning".to_string()]);
|
||||
chat.set_reasoning_effort(Some(ReasoningEffortConfig::High));
|
||||
@@ -2702,33 +2700,24 @@ async fn status_line_reasoning_updates_on_mode_switch_without_manual_refresh() {
|
||||
|
||||
#[tokio::test]
|
||||
async fn status_line_model_with_reasoning_updates_on_mode_switch_without_manual_refresh() {
|
||||
let (mut chat, _rx, _op_rx) = make_chatwidget_manual(Some("gpt-5.3-codex")).await;
|
||||
let (mut chat, _rx, _op_rx) = make_chatwidget_manual(Some("gpt-5.2")).await;
|
||||
chat.set_feature_enabled(Feature::CollaborationModes, /*enabled*/ true);
|
||||
chat.config.tui_status_line = Some(vec!["model-with-reasoning".to_string()]);
|
||||
chat.set_reasoning_effort(Some(ReasoningEffortConfig::High));
|
||||
|
||||
assert_eq!(
|
||||
status_line_text(&chat),
|
||||
Some("gpt-5.3-codex high".to_string())
|
||||
);
|
||||
assert_eq!(status_line_text(&chat), Some("gpt-5.2 high".to_string()));
|
||||
|
||||
let plan_mask = collaboration_modes::plan_mask(chat.model_catalog.as_ref())
|
||||
.expect("expected plan collaboration mode");
|
||||
chat.set_collaboration_mask(plan_mask);
|
||||
|
||||
assert_eq!(
|
||||
status_line_text(&chat),
|
||||
Some("gpt-5.3-codex medium".to_string())
|
||||
);
|
||||
assert_eq!(status_line_text(&chat), Some("gpt-5.2 medium".to_string()));
|
||||
|
||||
let default_mask = collaboration_modes::default_mask(chat.model_catalog.as_ref())
|
||||
.expect("expected default collaboration mode");
|
||||
chat.set_collaboration_mask(default_mask);
|
||||
|
||||
assert_eq!(
|
||||
status_line_text(&chat),
|
||||
Some("gpt-5.3-codex high".to_string())
|
||||
);
|
||||
assert_eq!(status_line_text(&chat), Some("gpt-5.2 high".to_string()));
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
@@ -2736,7 +2725,7 @@ async fn status_line_model_with_reasoning_plan_mode_footer_snapshot() {
|
||||
use ratatui::Terminal;
|
||||
use ratatui::backend::TestBackend;
|
||||
|
||||
let (mut chat, _rx, _op_rx) = make_chatwidget_manual(Some("gpt-5.3-codex")).await;
|
||||
let (mut chat, _rx, _op_rx) = make_chatwidget_manual(Some("gpt-5.2")).await;
|
||||
chat.show_welcome_banner = false;
|
||||
chat.set_feature_enabled(Feature::CollaborationModes, /*enabled*/ true);
|
||||
chat.config.tui_status_line = Some(vec!["model-with-reasoning".to_string()]);
|
||||
@@ -2763,7 +2752,7 @@ async fn renamed_thread_footer_title_snapshot() {
|
||||
use ratatui::Terminal;
|
||||
use ratatui::backend::TestBackend;
|
||||
|
||||
let (mut chat, _rx, _op_rx) = make_chatwidget_manual(Some("gpt-5.3-codex")).await;
|
||||
let (mut chat, _rx, _op_rx) = make_chatwidget_manual(Some("gpt-5.2")).await;
|
||||
chat.show_welcome_banner = false;
|
||||
chat.config.tui_status_line = Some(vec![
|
||||
"model-with-reasoning".to_string(),
|
||||
|
||||
Reference in new issue
Block a user