Skip to content

🚀 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 awareness
  • CODEBUDDY_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 a task_id you can use with TaskOutput (compatible with the legacy name BashOutput) to fetch subsequent progress/results. Long cold-start commands like yarn install / docker build / cargo build / make that 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: true for 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, long Copy-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: true now 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_MS with 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/failed based on the actual exit code (previously it stayed at running forever, 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 unhandledRejection warning — 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