From aeb0ff11b37fa278c0bd373305f78b20007e9133 Mon Sep 17 00:00:00 2001 From: Shantur Date: Tue, 31 Mar 2026 18:59:52 +0100 Subject: [PATCH] fix(ui): stop conversation speech when voice input starts --- packages/ui/src/components/prompt-input.tsx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/ui/src/components/prompt-input.tsx b/packages/ui/src/components/prompt-input.tsx index a6e740db..daffa104 100644 --- a/packages/ui/src/components/prompt-input.tsx +++ b/packages/ui/src/components/prompt-input.tsx @@ -19,7 +19,12 @@ import { usePromptAttachments } from "./prompt-input/usePromptAttachments" import { usePromptPicker } from "./prompt-input/usePromptPicker" import { usePromptKeyDown } from "./prompt-input/usePromptKeyDown" import { usePromptVoiceInput } from "./prompt-input/usePromptVoiceInput" -import { canUseConversationMode, isConversationModeEnabled, toggleConversationMode } from "../stores/conversation-speech" +import { + canUseConversationMode, + clearConversationPlaybackForInstance, + isConversationModeEnabled, + toggleConversationMode, +} from "../stores/conversation-speech" const log = getLogger("actions") const LazyUnifiedPicker = lazy(() => import("./unified-picker")) @@ -492,6 +497,8 @@ export default function PromptInput(props: PromptInputProps) { const beginVoicePress = (event?: PointerEvent | KeyboardEvent) => { if (voiceButtonPressed || props.disabled || voiceInput.isTranscribing() || !voiceInput.canUseVoiceInput()) return voiceButtonPressed = true + // Treat a mic press as barge-in: stop any active assistant speech before listening. + clearConversationPlaybackForInstance(props.instanceId) if (event instanceof PointerEvent) { const target = event.currentTarget