From 42aa5bc802b8ff5de2ee3dc47af7e534ae798c02 Mon Sep 17 00:00:00 2001 From: Ahmed Ibrahim Date: Tue, 14 Apr 2026 00:16:43 -0700 Subject: [PATCH] Simplify realtime final answer filtering --- codex-rs/core/src/codex.rs | 10 +++------- codex-rs/core/src/realtime_conversation.rs | 19 +++---------------- 2 files changed, 6 insertions(+), 23 deletions(-) diff --git a/codex-rs/core/src/codex.rs b/codex-rs/core/src/codex.rs index d8eb660c44..1429c21d65 100644 --- a/codex-rs/core/src/codex.rs +++ b/codex-rs/core/src/codex.rs @@ -2936,14 +2936,10 @@ impl Session { } async fn maybe_clear_realtime_handoff_for_event(&self, msg: &EventMsg) { - let EventMsg::TurnComplete(event) = msg else { + if !matches!(msg, EventMsg::TurnComplete(_)) { return; - }; - if let Err(err) = self - .conversation - .handoff_complete(event.last_agent_message.clone()) - .await - { + } + if let Err(err) = self.conversation.handoff_complete().await { debug!("failed to finalize realtime handoff output: {err}"); } self.conversation.clear_active_handoff().await; diff --git a/codex-rs/core/src/realtime_conversation.rs b/codex-rs/core/src/realtime_conversation.rs index 70d75e64e0..8200ba4908 100644 --- a/codex-rs/core/src/realtime_conversation.rs +++ b/codex-rs/core/src/realtime_conversation.rs @@ -448,10 +448,7 @@ impl RealtimeConversationManager { Ok(()) } - pub(crate) async fn handoff_complete( - &self, - final_output_text: Option, - ) -> CodexResult<()> { + pub(crate) async fn handoff_complete(&self) -> CodexResult<()> { let handoff = { let guard = self.state.lock().await; guard.as_ref().map(|state| state.handoff.clone()) @@ -467,19 +464,9 @@ impl RealtimeConversationManager { let Some(handoff_id) = handoff.active_handoff.lock().await.clone() else { return Ok(()); }; - let output_text = match final_output_text { - Some(output_text) => output_text, - None => { - let Some(output_text) = handoff.last_output_text.lock().await.clone() else { - return Ok(()); - }; - output_text - } - }; - - if output_text.is_empty() { + let Some(output_text) = handoff.last_output_text.lock().await.clone() else { return Ok(()); - } + }; handoff .output_tx