Skip to content

Commit a8a419b

Browse files
committed
fix: display loading UI after tool execution
1 parent dd39398 commit a8a419b

File tree

1 file changed

+18
-0
lines changed
  • crates/chat-cli/src/cli/chat

1 file changed

+18
-0
lines changed

crates/chat-cli/src/cli/chat/mod.rs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2868,6 +2868,11 @@ impl ChatContext {
28682868
} else {
28692869
self.conversation_state.add_tool_results(tool_results);
28702870
}
2871+
if self.interactive {
2872+
execute!(self.output, cursor::Hide)?;
2873+
execute!(self.output, style::Print("\n"), style::SetAttribute(Attribute::Reset))?;
2874+
self.spinner = Some(Spinner::new(Spinners::Dots, "Thinking...".to_string()));
2875+
}
28712876

28722877
self.send_tool_use_telemetry().await;
28732878
return Ok(ChatState::HandleResponseStream(
@@ -2888,6 +2893,19 @@ impl ChatContext {
28882893
let mut tool_uses = Vec::new();
28892894
let mut tool_name_being_recvd: Option<String> = None;
28902895

2896+
if self.interactive && self.spinner.is_some() {
2897+
drop(self.spinner.take());
2898+
queue!(
2899+
self.output,
2900+
style::SetForegroundColor(Color::Reset),
2901+
terminal::Clear(terminal::ClearType::CurrentLine),
2902+
cursor::MoveToColumn(0),
2903+
cursor::Show,
2904+
cursor::MoveUp(1),
2905+
terminal::Clear(terminal::ClearType::CurrentLine),
2906+
)?;
2907+
}
2908+
28912909
loop {
28922910
match parser.recv().await {
28932911
Ok(msg_event) => {

0 commit comments

Comments
 (0)