🚀 CodeBuddy Code v2.95.0 Release
✨ New Features
Agent Team Capability Alignment
Team collaboration capabilities have been significantly enhanced, making multi-agent collaboration more stable and controllable:
- Teammate Idle Awareness: The team lead can now precisely query the real-time status of each teammate, wait for a specific teammate to become idle (with timeout and abort signal support), or register a "callback once idle" hook. UI display, task scheduling, graceful shutdown, and other scenarios no longer need to subscribe to a complex stream — a single API call reveals teammate status
- Plan Approval UX Alignment: When a teammate ends a plan in Plan mode, the approval dialog automatically appears in the lead's terminal, with the teammate's color badge, offering three options: "Approve / Continue Planning / Exit Plan Mode" (clearly distinguished from the regular tool-approval semantics of "Approve / Always Approve / Reject")
- Graceful Shutdown Handshake + Timeout Fallback: On
TeamDelete/ manual teammate shutdown, the lead sends a shutdown request and waits for the teammate's response; if the teammate does not respond within the default 15 seconds, the process is automatically force-terminated, preventing stuck teammates from hanging the cleanup flow indefinitely - Teammate Progress Snapshots: Real-time tracking of how many tool-call rounds each teammate has run, the cumulative text generated, and the most recent 10 tool activity summaries — laying the groundwork for "what is the teammate doing" displays in TUI/Web UI
New Environment Variables
CODEBUDDY_TEAM_IDLE_DETECTION_DISABLED: Disable teammate idle awarenessCODEBUDDY_TEAM_SHUTDOWN_GRACEFUL_TIMEOUT_MS: Shutdown fallback timeout in milliseconds (default 15000, set to 0 to disable)CODEBUDDY_BASH_ASSISTANT_BUDGET_MS: Main conversation response budget (shared by Bash/PowerShell)CODEBUDDY_BASH_AUTO_BACKGROUND_DISABLED: Disable auto-backgrounding on timeout
🔧 Improvements
Bash Tool
- Auto-Backgrounding on Timeout: When a foreground command hits
timeout, the child process is no longer killed directly — it is automatically converted into a background task that keeps running, returning atask_idyou can use with TaskOutput (compatible with the legacy name BashOutput) to fetch subsequent progress/results. Long cold-start commands likeyarn install/docker build/cargo build/makethat far exceed the default timeout are no longer wrongly killed by the tool layer - Updated Long-Command Guidance: The description template guides you to explicitly pass
run_in_background: truefor long commands and explains the new semantics where timeout is no longer "kill" but "auto-background"
PowerShell Tool
- Auto-Backgrounding on Timeout: Aligned with the Bash tool — large file downloads via
Invoke-WebRequest, longCopy-Item -Recurse, builds invoked through PowerShell, and other cold-start timeouts are no longer wrongly killed by the tool layer - Background Task Status Query: Background commands explicitly passed with
run_in_background: truenow fully support TaskOutput querying — you can pull stdout/stderr/status the same way as Bash - Ctrl+B to Background: Upgraded from a "not implemented" placeholder to a real feature
- Main Conversation Response Budget: Shares
CODEBUDDY_BASH_ASSISTANT_BUDGET_MSwith Bash; commands exceeding the budget are automatically backgrounded to keep the conversation responsive
Session Interruption Semantics
- Both Bash and PowerShell tools now distinguish between "user-initiated cancellation" and "internal flow switch" interruption signals. On internal flow switches, the running command is no longer killed — instead the tool tries to convert it to a background task to keep running, avoiding wrongly killing long commands due to concurrent calls or turn switching
🐛 Bug Fixes
- PowerShell Background Task Status Update: After backgrounding, task status now updates to
completed/failedbased on the actual exit code (previously it stayed atrunningforever, so TaskOutput queries never saw the final status) - PowerShell Background Task Exception Backfill: After backgrounding, if the command later terminates abnormally, it no longer bubbles up as a Node
unhandledRejectionwarning — the error details are backfilled into the task's stderr output for TaskOutput querying and display - PowerShell Background Wording Accuracy: The returned messages now accurately distinguish among the five sources: timeout / main conversation budget / Ctrl+B / explicit background / internal interruption, no longer reusing similar wording that caused semantic pollution