Fix auto-continue bug: don't return early when tools executed but final_output not called

The bug was in the chunk.finished block inside stream_completion_with_tools.
When no tool was executed in the CURRENT iteration (!tool_executed), the code
would return early without checking if tools were executed in PREVIOUS iterations
(any_tool_executed) and final_output was never called.

This caused the agent to terminate prematurely after executing tools like
todo_read when the LLM responded with text instead of calling final_output.

The fix adds a check: if any_tool_executed && !final_output_called, we break
to let the outer loop's auto-continue logic prompt the LLM to continue.

Also fixed missing debug! import in g3-console/src/main.rs.
This commit is contained in:
Dhanji R. Prasanna
2025-12-22 16:45:17 +11:00
parent 923def0ab2
commit da91459e09
3 changed files with 12 additions and 25 deletions

View File

@@ -16,7 +16,7 @@ use std::sync::Arc;
use tokio::sync::Mutex;
use tower_http::cors::CorsLayer;
use tower_http::services::ServeDir;
use tracing::Level;
use tracing::{debug, Level};
use tracing_subscriber;
#[derive(Parser, Debug)]