diff --git a/crates/agent/src/active_thread.rs b/crates/agent/src/active_thread.rs index ebad961a71..62cd1b8712 100644 --- a/crates/agent/src/active_thread.rs +++ b/crates/agent/src/active_thread.rs @@ -1017,6 +1017,15 @@ impl ActiveThread { self.play_notification_sound(cx); self.show_notification("Waiting for tool confirmation", IconName::Info, window, cx); } + ThreadEvent::ToolUseLimitReached => { + self.play_notification_sound(cx); + self.show_notification( + "Consecutive tool use limit reached.", + IconName::Warning, + window, + cx, + ); + } ThreadEvent::StreamedAssistantText(message_id, text) => { if let Some(rendered_message) = self.rendered_messages_by_id.get_mut(&message_id) { rendered_message.append_text(text, cx); diff --git a/crates/agent/src/agent_diff.rs b/crates/agent/src/agent_diff.rs index c1c2ed87bb..c01c7e85cd 100644 --- a/crates/agent/src/agent_diff.rs +++ b/crates/agent/src/agent_diff.rs @@ -1372,6 +1372,7 @@ impl AgentDiff { | ThreadEvent::ToolFinished { .. } | ThreadEvent::CheckpointChanged | ThreadEvent::ToolConfirmationNeeded + | ThreadEvent::ToolUseLimitReached | ThreadEvent::CancelEditing => {} } } diff --git a/crates/agent/src/thread.rs b/crates/agent/src/thread.rs index 0b0308340c..f907766759 100644 --- a/crates/agent/src/thread.rs +++ b/crates/agent/src/thread.rs @@ -1673,6 +1673,7 @@ impl Thread { } CompletionRequestStatus::ToolUseLimitReached => { thread.tool_use_limit_reached = true; + cx.emit(ThreadEvent::ToolUseLimitReached); } } } @@ -2843,6 +2844,7 @@ pub enum ThreadEvent { }, CheckpointChanged, ToolConfirmationNeeded, + ToolUseLimitReached, CancelEditing, CompletionCanceled, } diff --git a/crates/eval/src/example.rs b/crates/eval/src/example.rs index 5615179036..dc384668c3 100644 --- a/crates/eval/src/example.rs +++ b/crates/eval/src/example.rs @@ -246,6 +246,7 @@ impl ExampleContext { | ThreadEvent::StreamedAssistantThinking(_, _) | ThreadEvent::UsePendingTools { .. } | ThreadEvent::CompletionCanceled => {} + ThreadEvent::ToolUseLimitReached => {} ThreadEvent::ToolFinished { tool_use_id, pending_tool_use,