diff --git a/codex-rs/tui/src/app.rs b/codex-rs/tui/src/app.rs index 9c30afdb4b..af1461cf9c 100644 --- a/codex-rs/tui/src/app.rs +++ b/codex-rs/tui/src/app.rs @@ -212,6 +212,7 @@ impl App { async fn handle_event(&mut self, tui: &mut tui::Tui, event: AppEvent) -> Result { match event { AppEvent::NewSession => { + self.reset_transcript_history_state(); let init = crate::chatwidget::ChatWidgetInit { config: self.config.clone(), frame_requester: tui.frame_requester(), @@ -367,6 +368,12 @@ impl App { Ok(true) } + pub(crate) fn reset_transcript_history_state(&mut self) { + self.transcript_cells.clear(); + self.deferred_history_lines.clear(); + self.has_emitted_history_lines = false; + } + pub(crate) fn token_usage(&self) -> codex_core::protocol::TokenUsage { self.chat_widget.token_usage() } diff --git a/codex-rs/tui/src/app_backtrack.rs b/codex-rs/tui/src/app_backtrack.rs index cbea2c02f7..b730c90a94 100644 --- a/codex-rs/tui/src/app_backtrack.rs +++ b/codex-rs/tui/src/app_backtrack.rs @@ -327,6 +327,7 @@ impl App { nth_user_message: usize, prefill: &str, ) { + self.reset_transcript_history_state(); let conv = new_conv.conversation; let session_configured = new_conv.session_configured; let init = crate::chatwidget::ChatWidgetInit {