Migrate GPT-5.4 uses to GPT-5.6 variants (#33173)

## What changed

- Hide `gpt-5.4` and `gpt-5.4-mini` from model selection and direct existing users to `gpt-5.6-terra` and `gpt-5.6-luna`, respectively.
- Use Terra for memory consolidation and Luna for memory extraction and rate-limit switch prompts.
- Keep Amazon Bedrock GPT-5 catalog entries visible when their bundled model metadata is hidden.

## Testing

- Add coverage that all Amazon Bedrock GPT-5 models remain visible and update TUI expectations for the new model choices.

GitOrigin-RevId: fd69c8d5fb6b510c77204df6b7ac3f07e67cded2
This commit is contained in:
Sergio Mattei authored and copyberry committed 2026-07-14 21:50:19 +00:00
1 parent 518085387b
commit c38c30ef51
8 files changed
+31 -17

No files matched your search

@@ -3675,7 +3675,7 @@ async fn advanced_only_reasoning_option_requires_explicit_selection() {
#[tokio::test]
async fn auto_model_advertising_advanced_effort_opens_reasoning_picker() {
let (mut chat, mut rx, _op_rx) = make_chatwidget_manual(/*model_override*/ None).await;
let mut preset = get_available_model(&chat, "gpt-5.4");
let mut preset = get_available_model(&chat, "gpt-5.6-terra");
preset.id = "codex-auto-test".to_string();
preset.model = "codex-auto-test".to_string();
preset.display_name = "codex-auto-test".to_string();
@@ -401,7 +401,7 @@ async fn queued_slash_menu_cancel_drains_next_input() {
async fn queued_settings_selection_applies_before_next_input() {
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");
let mut preset = get_available_model(&chat, "gpt-5.6-terra");
preset.supported_reasoning_efforts.truncate(1);
let selected_effort = preset.supported_reasoning_efforts[0].effort.clone();
chat.model_catalog = std::sync::Arc::new(ModelCatalog::new(vec![preset]));
@@ -439,7 +439,7 @@ async fn queued_settings_selection_applies_before_next_input() {
match next_submit_op(&mut op_rx) {
Op::UserTurn { model, effort, .. } => assert_eq!(
(model, effort),
("gpt-5.4".to_string(), Some(selected_effort))
("gpt-5.6-terra".to_string(), Some(selected_effort))
),
other => panic!("expected queued message with updated model, got {other:?}"),
}