unify tool tracking: ActiveToolCall with JoinHandle
One data structure for all in-flight tool calls — metadata for TUI display + JoinHandle for result collection and cancellation. Agent spawns tool calls via tokio::spawn, pushes to shared Arc<Mutex<Vec<ActiveToolCall>>>. TUI reads metadata, can abort(). No separate inflight/background collections. Non-background: awaited after stream ends. Background: persists, drained at next turn start. Co-Developed-By: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
17a018ff12
commit
a78f310e4d
5 changed files with 106 additions and 82 deletions
|
|
@ -168,7 +168,7 @@ impl App {
|
|||
)));
|
||||
lines.push(Line::raw(format!(" Reasoning: {}", self.reasoning_effort)));
|
||||
lines.push(Line::raw(format!(" Running processes: {}", self.running_processes)));
|
||||
lines.push(Line::raw(format!(" Active tools: {}", self.active_tools.read().unwrap().len())));
|
||||
lines.push(Line::raw(format!(" Active tools: {}", self.active_tools.lock().unwrap().len())));
|
||||
|
||||
let block = Block::default()
|
||||
.title_top(Line::from(SCREEN_LEGEND).left_aligned())
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue