From d52f3726fc01da011cd5d47cc857e05899db6779 Mon Sep 17 00:00:00 2001 From: Bryan Helmkamp Date: Fri, 22 May 2026 12:57:30 -0400 Subject: [PATCH] fix: hide Ask Fabro reasoning deltas --- .../src/server/handler/sessions.rs | 35 ++++++++++++++++--- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/lib/crates/fabro-server/src/server/handler/sessions.rs b/lib/crates/fabro-server/src/server/handler/sessions.rs index 7cfe23985..0322a12fb 100644 --- a/lib/crates/fabro-server/src/server/handler/sessions.rs +++ b/lib/crates/fabro-server/src/server/handler/sessions.rs @@ -1025,12 +1025,13 @@ fn agent_event_payload(event_turn_id: TurnId, event: AgentEvent) -> Option Some( - EventBody::RunSessionAssistantDelta(RunSessionAssistantDeltaProps { + AgentEvent::TextDelta { delta } => Some(EventBody::RunSessionAssistantDelta( + RunSessionAssistantDeltaProps { turn_id: event_turn_id, delta, - }), - ), + }, + )), + AgentEvent::ReasoningDelta { .. } => None, AgentEvent::ToolCallStarted { tool_name, tool_call_id, @@ -1252,6 +1253,32 @@ fn parse_turn_id(value: &str) -> Result { mod tests { use super::*; + #[test] + fn agent_event_payload_maps_text_delta_to_session_assistant_delta() { + let turn_id = TurnId::new(); + let body = agent_event_payload(turn_id, AgentEvent::TextDelta { + delta: "Hello".to_string(), + }); + + match body { + Some(EventBody::RunSessionAssistantDelta(props)) => { + assert_eq!(props.turn_id, turn_id); + assert_eq!(props.delta, "Hello"); + } + other => panic!("expected assistant delta event, got {other:?}"), + } + } + + #[test] + fn agent_event_payload_drops_reasoning_delta() { + let turn_id = TurnId::new(); + let body = agent_event_payload(turn_id, AgentEvent::ReasoningDelta { + delta: "The user just said hello.".to_string(), + }); + + assert!(body.is_none(), "reasoning delta should not be visible"); + } + #[test] fn ask_fabro_tool_approval_allows_run_interact_and_run_events() { let policy = build_ask_fabro_tool_approval();