@@ -57,6 +57,7 @@ import { CheckpointWarning } from "./CheckpointWarning"
5757import QueuedMessages from "./QueuedMessages"
5858import { getLatestTodo } from "@roo/todo"
5959import { QueuedMessage } from "@roo-code/types"
60+ import { showSystemNotification } from "@/utils/showSystemNotification"
6061
6162export interface ChatViewProps {
6263 isHidden : boolean
@@ -276,6 +277,7 @@ const ChatViewComponent: React.ForwardRefRenderFunction<ChatViewRef, ChatViewPro
276277 switch ( lastMessage . ask ) {
277278 case "api_req_failed" :
278279 playSound ( "progress_loop" )
280+ showSystemNotification ( t ( "settings:notifications.system.apiReqFailed" ) )
279281 setSendingDisabled ( true )
280282 setClineAsk ( "api_req_failed" )
281283 setEnableButtons ( true )
@@ -284,6 +286,7 @@ const ChatViewComponent: React.ForwardRefRenderFunction<ChatViewRef, ChatViewPro
284286 break
285287 case "mistake_limit_reached" :
286288 playSound ( "progress_loop" )
289+ showSystemNotification ( t ( "settings:notifications.system.mistakeLimitReached" ) )
287290 setSendingDisabled ( false )
288291 setClineAsk ( "mistake_limit_reached" )
289292 setEnableButtons ( true )
@@ -293,6 +296,7 @@ const ChatViewComponent: React.ForwardRefRenderFunction<ChatViewRef, ChatViewPro
293296 case "followup" :
294297 if ( ! isPartial ) {
295298 playSound ( "notification" )
299+ showSystemNotification ( t ( "settings:notifications.system.followup" ) )
296300 }
297301 setSendingDisabled ( isPartial )
298302 setClineAsk ( "followup" )
@@ -307,6 +311,7 @@ const ChatViewComponent: React.ForwardRefRenderFunction<ChatViewRef, ChatViewPro
307311 case "tool" :
308312 if ( ! isAutoApproved ( lastMessage ) && ! isPartial ) {
309313 playSound ( "notification" )
314+ showSystemNotification ( t ( "settings:notifications.system.toolRequest" ) )
310315 }
311316 setSendingDisabled ( isPartial )
312317 setClineAsk ( "tool" )
@@ -342,6 +347,7 @@ const ChatViewComponent: React.ForwardRefRenderFunction<ChatViewRef, ChatViewPro
342347 case "browser_action_launch" :
343348 if ( ! isAutoApproved ( lastMessage ) && ! isPartial ) {
344349 playSound ( "notification" )
350+ showSystemNotification ( t ( "settings:notifications.system.browserAction" ) )
345351 }
346352 setSendingDisabled ( isPartial )
347353 setClineAsk ( "browser_action_launch" )
@@ -352,6 +358,7 @@ const ChatViewComponent: React.ForwardRefRenderFunction<ChatViewRef, ChatViewPro
352358 case "command" :
353359 if ( ! isAutoApproved ( lastMessage ) && ! isPartial ) {
354360 playSound ( "notification" )
361+ showSystemNotification ( t ( "settings:notifications.system.command" ) )
355362 }
356363 setSendingDisabled ( isPartial )
357364 setClineAsk ( "command" )
@@ -369,6 +376,7 @@ const ChatViewComponent: React.ForwardRefRenderFunction<ChatViewRef, ChatViewPro
369376 case "use_mcp_server" :
370377 if ( ! isAutoApproved ( lastMessage ) && ! isPartial ) {
371378 playSound ( "notification" )
379+ showSystemNotification ( t ( "settings:notifications.system.useMcpServer" ) )
372380 }
373381 setSendingDisabled ( isPartial )
374382 setClineAsk ( "use_mcp_server" )
@@ -380,6 +388,7 @@ const ChatViewComponent: React.ForwardRefRenderFunction<ChatViewRef, ChatViewPro
380388 // extension waiting for feedback. but we can just present a new task button
381389 if ( ! isPartial ) {
382390 playSound ( "celebration" )
391+ showSystemNotification ( t ( "settings:notifications.system.completionResult" ) )
383392 }
384393 setSendingDisabled ( isPartial )
385394 setClineAsk ( "completion_result" )
0 commit comments