From 8bd1e7f6fbfe4cda40c8eca3912c7ffc4135b262 Mon Sep 17 00:00:00 2001 From: canvrno-oai Date: Tue, 5 May 2026 16:18:12 -0700 Subject: [PATCH] Revert "fix(tui): dedupe repeated model metadata warnings" This reverts commit b45a5a283f6323f58e237936eda786e9a33d940f. --- codex-rs/tui/src/chatwidget.rs | 10 +------ codex-rs/tui/src/chatwidget/tests/helpers.rs | 1 - .../src/chatwidget/tests/status_and_layout.rs | 28 ------------------- codex-rs/tui/src/chatwidget/warnings.rs | 23 --------------- 4 files changed, 1 insertion(+), 61 deletions(-) delete mode 100644 codex-rs/tui/src/chatwidget/warnings.rs diff --git a/codex-rs/tui/src/chatwidget.rs b/codex-rs/tui/src/chatwidget.rs index 114a10e2d6..0b58a913cb 100644 --- a/codex-rs/tui/src/chatwidget.rs +++ b/codex-rs/tui/src/chatwidget.rs @@ -351,8 +351,6 @@ use self::status_surfaces::TerminalTitleStatusKind; mod user_messages; use self::user_messages::PendingSteerCompareKey; use self::user_messages::UserMessageDisplay; -mod warnings; -use self::warnings::WarningDisplayState; pub(crate) use crate::branch_summary::StatusLineGitSummary; use crate::streaming::chunking::AdaptiveChunkingPolicy; use crate::streaming::commit_tick::CommitTickScope; @@ -782,7 +780,6 @@ pub(crate) struct ChatWidget { plan_type: Option, codex_rate_limit_reached_type: Option, rate_limit_warnings: RateLimitWarningState, - warning_display_state: WarningDisplayState, rate_limit_switch_prompt: RateLimitSwitchPromptState, add_credits_nudge_email_in_flight: Option, adaptive_chunking: AdaptiveChunkingPolicy, @@ -3131,11 +3128,7 @@ impl ChatWidget { } fn on_warning(&mut self, message: impl Into) { - let message = message.into(); - if !self.warning_display_state.should_display(&message) { - return; - } - self.add_to_history(history_cell::new_warning_event(message)); + self.add_to_history(history_cell::new_warning_event(message.into())); self.request_redraw(); } @@ -4922,7 +4915,6 @@ impl ChatWidget { plan_type: initial_plan_type, codex_rate_limit_reached_type: None, rate_limit_warnings: RateLimitWarningState::default(), - warning_display_state: WarningDisplayState::default(), rate_limit_switch_prompt: RateLimitSwitchPromptState::default(), add_credits_nudge_email_in_flight: None, adaptive_chunking: AdaptiveChunkingPolicy::default(), diff --git a/codex-rs/tui/src/chatwidget/tests/helpers.rs b/codex-rs/tui/src/chatwidget/tests/helpers.rs index a604f9abb4..3f7c9bd5b2 100644 --- a/codex-rs/tui/src/chatwidget/tests/helpers.rs +++ b/codex-rs/tui/src/chatwidget/tests/helpers.rs @@ -208,7 +208,6 @@ pub(super) async fn make_chatwidget_manual( plan_type: None, codex_rate_limit_reached_type: None, rate_limit_warnings: RateLimitWarningState::default(), - warning_display_state: WarningDisplayState::default(), rate_limit_switch_prompt: RateLimitSwitchPromptState::default(), add_credits_nudge_email_in_flight: None, adaptive_chunking: crate::streaming::chunking::AdaptiveChunkingPolicy::default(), diff --git a/codex-rs/tui/src/chatwidget/tests/status_and_layout.rs b/codex-rs/tui/src/chatwidget/tests/status_and_layout.rs index 7e5e8a4dd7..96b2b681b6 100644 --- a/codex-rs/tui/src/chatwidget/tests/status_and_layout.rs +++ b/codex-rs/tui/src/chatwidget/tests/status_and_layout.rs @@ -1323,34 +1323,6 @@ async fn warning_event_adds_warning_history_cell() { ); } -#[tokio::test] -async fn repeated_model_metadata_warning_is_hidden_for_same_slug() { - let (mut chat, mut rx, _op_rx) = make_chatwidget_manual(/*model_override*/ None).await; - let warning = "Model metadata for `unknown-model` not found. Defaulting to fallback metadata; this can degrade performance and cause issues."; - - handle_warning(&mut chat, warning); - handle_warning(&mut chat, warning); - - let cells = drain_insert_history(&mut rx); - assert_eq!(cells.len(), 1, "expected one warning history cell"); - let rendered = lines_to_single_string(&cells[0]); - assert!( - rendered.contains("unknown-model"), - "warning cell missing model slug: {rendered}" - ); -} - -#[tokio::test] -async fn repeated_generic_warning_is_not_hidden() { - let (mut chat, mut rx, _op_rx) = make_chatwidget_manual(/*model_override*/ None).await; - - handle_warning(&mut chat, "test warning message"); - handle_warning(&mut chat, "test warning message"); - - let cells = drain_insert_history(&mut rx); - assert_eq!(cells.len(), 2, "expected both warning history cells"); -} - #[tokio::test] async fn status_line_invalid_items_warn_once() { let (mut chat, mut rx, _op_rx) = make_chatwidget_manual(/*model_override*/ None).await; diff --git a/codex-rs/tui/src/chatwidget/warnings.rs b/codex-rs/tui/src/chatwidget/warnings.rs deleted file mode 100644 index ef9660dcff..0000000000 --- a/codex-rs/tui/src/chatwidget/warnings.rs +++ /dev/null @@ -1,23 +0,0 @@ -use std::collections::HashSet; - -const FALLBACK_MODEL_METADATA_WARNING_PREFIX: &str = "Model metadata for `"; -const FALLBACK_MODEL_METADATA_WARNING_SUFFIX: &str = - "` not found. Defaulting to fallback metadata; this can degrade performance and cause issues."; - -#[derive(Default)] -pub(super) struct WarningDisplayState { - fallback_model_metadata_slugs: HashSet, -} - -impl WarningDisplayState { - pub(super) fn should_display(&mut self, message: &str) -> bool { - fallback_model_metadata_warning_slug(message) - .is_none_or(|slug| self.fallback_model_metadata_slugs.insert(slug.to_string())) - } -} - -fn fallback_model_metadata_warning_slug(message: &str) -> Option<&str> { - message - .strip_prefix(FALLBACK_MODEL_METADATA_WARNING_PREFIX)? - .strip_suffix(FALLBACK_MODEL_METADATA_WARNING_SUFFIX) -}