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

@@ -1,24 +0,0 @@
#!/bin/bash
set -e
# Clean logs first
rm -rf ~/RustroverProjects/g3/logs/*.log ~/RustroverProjects/g3/logs/*.txt 2>/dev/null || true
# Create test requirements file
mkdir -p /tmp/g3-test-planning/g3-plan
cat > /tmp/g3-test-planning/g3-plan/new_requirements.md <<'EOF'
Simple test task: List all .rs files in the src directory.
EOF
# Initialize git repo for test (planning mode requires git)
cd /tmp/g3-test-planning
if [ ! -d .git ]; then
git init
git config user.name "Test User"
git config user.email "test@example.com"
git add .
git commit -m "Initial commit" || true
fi
echo "Test environment ready at /tmp/g3-test-planning"
echo "Run: cd /tmp && ~/RustroverProjects/g3/target/release/g3 --planning --codepath /tmp/g3-test-planning --no-git"