mirror of
https://github.com/leonvanzyl/autocoder.git
synced 2026-01-30 06:12:06 +00:00
fix: exit agent loop when all features pass
Previously, the autonomous agent would continue running indefinitely even after all features passed verification. The agent would enter a verification loop, repeatedly checking 'All features are passing!' without ever exiting. This fix detects the completion message from feature_get_next() and gracefully exits the main loop with a victory banner, preventing unnecessary API calls and resource consumption. Fixes infinite loop when project reaches 100% completion.
This commit is contained in:
10
agent.py
10
agent.py
@@ -14,7 +14,7 @@ from pathlib import Path
|
|||||||
from typing import Optional
|
from typing import Optional
|
||||||
from zoneinfo import ZoneInfo
|
from zoneinfo import ZoneInfo
|
||||||
|
|
||||||
from claude_agent_sdk import ClaudeSDKClient
|
from claude_code_sdk import ClaudeSDKClient
|
||||||
|
|
||||||
# Fix Windows console encoding for Unicode characters (emoji, etc.)
|
# Fix Windows console encoding for Unicode characters (emoji, etc.)
|
||||||
# Without this, print() crashes when Claude outputs emoji like ✅
|
# Without this, print() crashes when Claude outputs emoji like ✅
|
||||||
@@ -196,6 +196,14 @@ async def run_autonomous_agent(
|
|||||||
async with client:
|
async with client:
|
||||||
status, response = await run_agent_session(client, prompt, project_dir)
|
status, response = await run_agent_session(client, prompt, project_dir)
|
||||||
|
|
||||||
|
# Check for project completion - EXIT when all features pass
|
||||||
|
if "all features are passing" in response.lower() or "no more work to do" in response.lower():
|
||||||
|
print("\n" + "=" * 70)
|
||||||
|
print(" 🎉 PROJECT COMPLETE - ALL FEATURES PASSING!")
|
||||||
|
print("=" * 70)
|
||||||
|
print_progress_summary(project_dir)
|
||||||
|
break
|
||||||
|
|
||||||
# Handle status
|
# Handle status
|
||||||
if status == "continue":
|
if status == "continue":
|
||||||
delay_seconds = AUTO_CONTINUE_DELAY_SECONDS
|
delay_seconds = AUTO_CONTINUE_DELAY_SECONDS
|
||||||
|
|||||||
Reference in New Issue
Block a user