From 2d87199bccbf5d63e63d2eba00ff4175ef0a7908 Mon Sep 17 00:00:00 2001 From: Charles Cunningham Date: Tue, 27 Jan 2026 14:01:23 -0800 Subject: [PATCH] Refactor personality nudge eligibility --- codex-rs/tui/src/chatwidget.rs | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/codex-rs/tui/src/chatwidget.rs b/codex-rs/tui/src/chatwidget.rs index a6db7cb0d8..992e6bc5aa 100644 --- a/codex-rs/tui/src/chatwidget.rs +++ b/codex-rs/tui/src/chatwidget.rs @@ -3483,11 +3483,7 @@ impl ChatWidget { if !self.is_session_configured() { return; } - if self.personality_nudge_hidden() { - self.personality_nudge = PersonalityNudgeState::Idle; - return; - } - if self.config.model_personality.is_some() || !self.current_model_supports_personality() { + if !self.personality_nudge_is_eligible() { self.personality_nudge = PersonalityNudgeState::Idle; return; } @@ -3498,17 +3494,13 @@ impl ChatWidget { } fn maybe_show_pending_personality_nudge(&mut self) { - if self.personality_nudge_hidden() { + if !self.personality_nudge_is_eligible() { self.personality_nudge = PersonalityNudgeState::Idle; return; } if !matches!(self.personality_nudge, PersonalityNudgeState::Pending) { return; } - if self.config.model_personality.is_some() || !self.current_model_supports_personality() { - self.personality_nudge = PersonalityNudgeState::Idle; - return; - } if !self.bottom_pane.no_modal_or_popup_active() { return; } @@ -3517,6 +3509,12 @@ impl ChatWidget { self.personality_nudge = PersonalityNudgeState::Shown; } + fn personality_nudge_is_eligible(&self) -> bool { + !self.personality_nudge_hidden() + && self.config.model_personality.is_none() + && self.current_model_supports_personality() + } + fn open_personality_nudge(&mut self) { let choose_actions: Vec = vec![Box::new(|tx| { tx.send(AppEvent::OpenPersonalityPopup);