From ef13ddb6b229bb98c55fad32f3bc982b7a8e26cb Mon Sep 17 00:00:00 2001 From: Xin Wang Date: Thu, 12 Feb 2026 14:40:22 +0800 Subject: [PATCH] Text drawer use generated opener --- engine/core/duplex_pipeline.py | 8 ++++++++ web/pages/Assistants.tsx | 12 ++++++------ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/engine/core/duplex_pipeline.py b/engine/core/duplex_pipeline.py index 2bff90a..ad42d13 100644 --- a/engine/core/duplex_pipeline.py +++ b/engine/core/duplex_pipeline.py @@ -540,6 +540,14 @@ class DuplexPipeline: greeting_to_speak = generated_greeting self.conversation.greeting = generated_greeting if greeting_to_speak: + await self._send_event( + ev( + "assistant.response.final", + text=greeting_to_speak, + trackId=self.session_id, + ), + priority=20, + ) await self._speak(greeting_to_speak) except Exception as e: diff --git a/web/pages/Assistants.tsx b/web/pages/Assistants.tsx index 24b2c44..ac11f7b 100644 --- a/web/pages/Assistants.tsx +++ b/web/pages/Assistants.tsx @@ -1635,11 +1635,11 @@ export const DebugDrawer: React.FC<{ if (textTtsEnabled) await ensureAudioContext(); await ensureWsSession(); await startVoiceCapture(); - setCallStatus('active'); - setMessages([{ role: 'model', text: assistant.opener || 'Hello!' }]); - } catch (e) { - console.error(e); - stopVoiceCapture(); + setCallStatus('active'); + setMessages([]); + } catch (e) { + console.error(e); + stopVoiceCapture(); setCallStatus('idle'); setWsStatus('error'); setWsError((e as Error)?.message || 'Failed to start voice call'); @@ -1707,7 +1707,7 @@ export const DebugDrawer: React.FC<{ if (textTtsEnabled) await ensureAudioContext(); await ensureWsSession(); setTextSessionStarted(true); - setMessages([{ role: 'model', text: assistant.opener || 'Hello!' }]); + setMessages([]); } catch (e) { console.error(e); setWsStatus('error');