Skip to content

Commit e4b051b

Browse files
authored
fix: prevent completion sound from replaying when reopening completed tasks (#4885) (#5249)
1 parent 37619d7 commit e4b051b

File tree

2 files changed

+32
-6
lines changed

2 files changed

+32
-6
lines changed

webview-ui/src/components/chat/ChatView.tsx

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -348,9 +348,6 @@ const ChatViewComponent: React.ForwardRefRenderFunction<ChatViewRef, ChatViewPro
348348
setSecondaryButtonText(undefined)
349349
break
350350
case "resume_task":
351-
if (!isAutoApproved(lastMessage) && !isPartial) {
352-
playSound("notification")
353-
}
354351
setSendingDisabled(false)
355352
setClineAsk("resume_task")
356353
setEnableButtons(true)
@@ -359,9 +356,6 @@ const ChatViewComponent: React.ForwardRefRenderFunction<ChatViewRef, ChatViewPro
359356
setDidClickCancel(false) // special case where we reset the cancel button state
360357
break
361358
case "resume_completed_task":
362-
if (!isPartial) {
363-
playSound("celebration")
364-
}
365359
setSendingDisabled(false)
366360
setClineAsk("resume_completed_task")
367361
setEnableButtons(true)

webview-ui/src/components/chat/__tests__/ChatView.spec.tsx

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1020,6 +1020,38 @@ describe("ChatView - Sound Playing Tests", () => {
10201020
expect(mockPlayFunction).toHaveBeenCalled()
10211021
})
10221022
})
1023+
1024+
it("does not play sound when resuming a task from history", async () => {
1025+
renderChatView()
1026+
mockPlayFunction.mockClear()
1027+
1028+
// Send resume_task message
1029+
mockPostMessage({
1030+
clineMessages: [
1031+
{ type: "say", say: "task", ts: Date.now() - 2000, text: "Initial task" },
1032+
{ type: "ask", ask: "resume_task", ts: Date.now(), text: "Resume task", partial: false },
1033+
],
1034+
})
1035+
1036+
await new Promise((resolve) => setTimeout(resolve, 100))
1037+
expect(mockPlayFunction).not.toHaveBeenCalled()
1038+
})
1039+
1040+
it("does not play sound when resuming a completed task from history", async () => {
1041+
renderChatView()
1042+
mockPlayFunction.mockClear()
1043+
1044+
// Send resume_completed_task message
1045+
mockPostMessage({
1046+
clineMessages: [
1047+
{ type: "say", say: "task", ts: Date.now() - 2000, text: "Initial task" },
1048+
{ type: "ask", ask: "resume_completed_task", ts: Date.now(), text: "Resume completed", partial: false },
1049+
],
1050+
})
1051+
1052+
await new Promise((resolve) => setTimeout(resolve, 100))
1053+
expect(mockPlayFunction).not.toHaveBeenCalled()
1054+
})
10231055
})
10241056

10251057
describe("ChatView - Focus Grabbing Tests", () => {

0 commit comments

Comments
 (0)