The agent passed None for on_update, so tools (e.g. shell) never forwarded their incremental output — the UI only saw the final result. Now: - EventSink: Send + Sync (the forwarding closure must satisfy ToolUpdateSink) - ToolUpdateSink becomes lifetime-parameterized (bare trait-object aliases default to 'static, which forbade borrowing the caller's sink); all tool impls updated to &ToolUpdateSink<'_> - Agent::execute_single forwards each tool update as a ToolExecutionUpdate event (Mutex provides interior mutability inside the Fn closure) - TUI: running tools show the tail of the output live (newest lines), done tools show the head + remaining-line hint regression test: a streaming tool's on_update texts appear as agent events in order. |
||
|---|---|---|
| .. | ||
| src | ||
| tests | ||
| Cargo.toml | ||