diff --git a/src/lib/tauri.ts b/src/lib/tauri.ts index 90a299a..98374c1 100644 --- a/src/lib/tauri.ts +++ b/src/lib/tauri.ts @@ -282,7 +282,11 @@ export async function initializeTauriListeners() { const previousState = conv.characterState; // New response starting — clear all per-task sound flags. - if (mappedState === "thinking") { + // Only reset when entering from a clean-slate state, not mid-task. + // Transitioning from coding/searching/mcp/typing → thinking means we're + // still within the same task (between tool calls), so the sound must not replay. + const cleanSlateStates: CharacterState[] = ["idle", "success", "error"]; + if (mappedState === "thinking" && cleanSlateStates.includes(previousState)) { claudeStore.resetSoundState(resolvedConversationId); }