Refine planner mode UI and error handling

Improve planner mode user experience with better error reporting,
cleaner tool output, and consistent log file placement.

- Propagate and display classified LLM errors to users with
  appropriate icons and context
- Display tool calls on single lines with truncated arguments
- Show LLM text responses without overwriting via UiWriter
- Ensure all logs write to workspace/logs directory consistently
- Set G3_WORKSPACE_PATH early in planning mode initialization
This commit is contained in:
Jochen
2025-12-09 22:44:00 +11:00
parent a9dbe5f7d3
commit 75aa2d983e
10 changed files with 473 additions and 37 deletions

View File

@@ -40,7 +40,7 @@ impl UiWriter for MachineUiWriter {
println!("CONTEXT_THINNING: {}", message);
}
fn print_tool_header(&self, tool_name: &str) {
fn print_tool_header(&self, tool_name: &str, _tool_args: Option<&serde_json::Value>) {
println!("TOOL_CALL: {}", tool_name);
}

View File

@@ -78,7 +78,7 @@ impl UiWriter for ConsoleUiWriter {
let _ = io::stdout().flush();
}
fn print_tool_header(&self, tool_name: &str) {
fn print_tool_header(&self, tool_name: &str, _tool_args: Option<&serde_json::Value>) {
// Store the tool name and clear args for collection
*self.current_tool_name.lock().unwrap() = Some(tool_name.to_string());
self.current_tool_args.lock().unwrap().clear();