All notable changes to AutoCodeAI will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Tool Executor System (
core/tools/tool_executor.py)- Whitelist-based command execution for security
- Support for git operations (clone, status, add, commit, push, pull, diff, log)
- Package management (pip install, uninstall, list, freeze)
- File operations (ls, mkdir, cat, rm, cp, mv)
- Python execution (run scripts, pytest)
- Environment utilities (env, pwd, which)
- Parameter sanitization with shlex.quote
- Timeout enforcement and error handling
- Working directory isolation
- Parallel Agent Execution in orchestrator
- Independent tasks run concurrently
- Automatic dependency management via
parallel_groupin plan steps - 3-5x faster completion for multi-step tasks
run_parallel()method for explicit parallel executionrun_parallel_coders()helper for multiple coder agents
- New API Endpoint:
POST /api/agent/run_parallel- Execute multiple steps concurrently
- Supports mixed agent types (coder, tester, tool)
- Returns results array preserving order
- Multi-Mode LLM Client (
core/utils/llm.py)- LiteLLM mode (default): unified interface to 100+ providers
- OpenAI mode: direct OpenAI API access
- DeepSeek mode: direct DeepSeek API integration
- Local mode: Ollama and compatible local endpoints
- Per-agent model routing maintained across all modes
- Seamless mode switching via environment variables
- Configuration Variables:
LLM_MODE: Choose provider modeOPENAI_API_KEY,DEEPSEEK_API_KEY: Provider-specific keysLOCAL_LLM_URL,LOCAL_MODEL: Local model configurationLLM_MODEL: Global model override
- Modern Web UI (
static/index.html)- Beautiful, responsive design with dark theme
- Real-time output streaming via SSE
- Task submission with file context
- Status indicators (idle, running, success, error)
- Clear output functionality
- Keyboard shortcuts (Shift+Enter to submit)
- Feature showcase cards
- Static File Serving in main.py
- Root redirect to web UI
- FastAPI StaticFiles mount
- Updated PlannerAgent
- Support for
toolagent type in plans parallel_groupfield for concurrent executiontool_nameandtool_paramsfor tool steps- Improved JSON schema documentation
- Support for
-
Orchestrator (
services/orchestrator.py)- Refactored
run()method to support parallel execution - Added
_execute_step()helper for unified step execution - Integrated ToolExecutor for tool steps
- Groups steps by
parallel_groupfor concurrent execution - Enhanced error handling for parallel tasks
- Tool output stored in memory for downstream agents
- Refactored
-
API Routes (
api/routes.py)- Added
ParallelRequestmodel - Enhanced documentation with examples
- Updated route descriptions
- Added
-
Main Application (
main.py)- Updated title to "AutoCodeAI"
- Version bumped to 2.0.0
- Added static file serving
- Root endpoint redirects to web UI
- Enhanced health endpoint with version info
-
Requirements (
requirements.txt)- Added explicit
openai>=1.30.0dependency - Updated LiteLLM dependency documentation
- Added explicit
-
Environment Configuration (
.env.example)- Added LLM_MODE configuration section
- Added tool executor settings
- Added parallel execution settings
- Reorganized for better clarity
- Added inline documentation
-
Documentation (
README.md)- Added "What's New in v2.0" section
- Updated project name to AutoCodeAI
- Enhanced architecture description
- Added tool executor to agents table
- Updated project structure with new files
- Comprehensive configuration table with sections
- Web UI usage examples
- Parallel execution examples
- LLM mode switching examples
- Updated API reference with new endpoints
-
Error Handling
- Better error messages in LLM client
- Tool executor validation and sanitization
- Parallel execution exception handling
-
Performance
- Concurrent task execution for independent steps
- Reduced latency for multi-step workflows
- Tool Executor
- Whitelist-only command execution
- Parameter sanitization prevents shell injection
- Timeout enforcement prevents runaway processes
- Working directory isolation
openai>=1.30.0- Direct API access for non-LiteLLM modes- All existing dependencies maintained
- Multi-agent orchestration (Planner, Coder, Tester, Debugger, Critic)
- Docker sandbox execution
- ChromaDB semantic memory
- Real-time streaming (SSE, WebSocket)
- Diff-based file editing
- Repository awareness and indexing
- LiteLLM integration for multiple providers
- REST API endpoints
- Comprehensive test suite
None! Version 2.0 is fully backward compatible.
-
Update environment configuration:
cp .env.example .env # Add new variables: LLM_MODE, TOOL_EXECUTOR_TIMEOUT, etc. -
Try the web UI:
uvicorn main:app --reload open http://localhost:8000
-
Test parallel execution:
# Plans can now include parallel_group { "steps": [ {"agent": "coder", "description": "Task 1", "parallel_group": 1}, {"agent": "coder", "description": "Task 2", "parallel_group": 1}, {"agent": "tester", "description": "Test", "parallel_group": 2} ] }
-
Try tool integration:
# Plans can now include tool steps { "steps": [ {"agent": "tool", "tool_name": "git_clone", "tool_params": {"url": "...", "dest": "lib"}}, {"agent": "coder", "description": "Use the library"} ] }
-
Experiment with different LLM modes:
# Try DeepSeek export LLM_MODE=deepseek export DEEPSEEK_API_KEY=sk-... # Or local models export LLM_MODE=local export LOCAL_MODEL=deepseek-coder
- All existing API endpoints remain unchanged
- Existing plans without
parallel_groupexecute sequentially (backward compatible) - Default
LLM_MODEislitellm(existing behavior) - Tool execution is opt-in via plan steps