π CodeBuddy Code v2.154.0 Release β
π¦ Version Information β
| Component | Version |
|---|---|
| CodeBuddy Code CLI | v2.154.0 |
| Agent SDK JS | v0.3.262 |
| Agent SDK Python | v0.3.261 |
β¨ New Features β
Autonomous Team Building for Agent Home Agents β
Agents can now recruit teammates and form teams on their own. Three new collaboration tools have been added: autonomously creating colleagues, creating channels (create a group / invite members / wake everyone up with a one-line kickoff), and a channel task board. These capabilities are available only in Agent Home and are not visible to regular terminal sessions or subagents.
- Channel task board: Channels now support blackboard-style task collaboration. Tasks are claimed by a writer (each task has only one owner; preemption returns a conflict), can be assigned, and can reference artifacts (files / commits / PRs). Completing or releasing a task leaves an event on the channel timeline.
- Lead orchestration: A channel can designate a lead. The lead receives a snapshot of the task board each turn, can dispatch tasks in batches (idempotent, deduplicated by name), and can nudge members who are stuck or reclaim their claims.
- Team reporting: Once the team finishes its work, it proactively reports back to the delegator. When all tasks in a dispatched batch are completed, the channel posts a system message and asks the lead to report progress. Messages are not lost even if the delegator closes the window or the process restarts.
- Directory: A single call shows all colleagues and channels (id, session status, who is the lead, who is the delegator), so agents can see who is available before forming a team.
- Model and permission mode: When creating a colleague, you can specify the model and permission mode. These settings are persisted with the profile, so the colleague keeps the same settings after a restart instead of falling back to product defaults.
- Safety guardrails: Up to 50 colleagues, 20 channels, 2β6 members per channel, 50 task board items, and a creation depth of β€2, with key actions audited. Wake-ups are budget-controlled; when the budget is exceeded, members are only marked as stalled and are no longer woken up automatically.
- Web UI toggle: Settings now include an "Agent Team" group where you can turn off "Allow agents to form teams autonomously" with one click. When disabled, the autonomous tools and task writes become unavailable (reading the board is unaffected).
Channel Collaboration Experience β
- Group-chat-style turn taking: A user message starts a room round in which members speak in roster order, with the first speaker rotating each round. A single room session allows at most 3 rounds and 10 cumulative member messages across rounds, with at most 2 messages per member per round, keeping group chats bounded and preventing endless back-and-forth. Members only see new messages since their last message and can pass if there is nothing new.
- Option cards: Members can use
SpeakInChannelto post a card with "a question + 2β6 options" in a channel. When the user clicks an option, it returns to the room as a user message, and members can see the selected value in the next round. - Message quoting: Hovering over a bubble shows a "Quote" action bar. After sending, the quote is rendered above the bubble, and clicking it jumps back to the original message.
- Attachments and images: The channel input box supports uploading images / files. You can paste screenshots directly or drag files into the input box, and uploads happen only when the message is sent. Images can be clicked to enlarge, while other files are downloaded on click. For security, executable documents such as SVG / HTML are no longer inlined or opened as images; they are downloaded as file cards instead.
- Bubble rendering aligned with the main conversation: Message bodies support markdown (code highlighting and copy, tables, mermaid, formulas, image zoom). @ mentions remain chips, and
@inside code blocks and formulas is no longer misinterpreted. - Real-time refresh: When colleagues speak in a channel, the page shows the messages without switching or refreshing (SSE real-time push), and the same timeline is no longer fetched twice through two paths.
- Visible progress: The bottom of the channel shows a single "X is workingβ¦" line only while someone is working, and it disappears once everyone is idle.
- Diagnosable failures: Send failures now distinguish "cannot connect to the backend" (indicating the service may have just restarted, with your text preserved for an immediate retry) from other failures. Drafts are always kept in the input box.
Channel Task Board β
- Right-side info panel: The banner that used to occupy nearly a full screen of height above the conversation has been replaced with a right-side info panel, restoring the conversation column to full width. A top-bar button toggles it and shows a badge with the number of unfinished tasks. If you have never toggled it manually, it expands automatically only when unfinished tasks exist. An empty board takes up no space, and on narrow screens it becomes an overlay.
- Grouping and sorting: Tasks are grouped into Stalled / In Progress / Unclaimed / Completed. Items requiring human intervention are pinned to the top, and completed items are collapsed by default. Supports drag-and-drop reordering within a group, filtering by member, and in-place editing of title / details / assignee.
- Deleting tasks: Users and the lead can delete any task, while members can only delete unclaimed tasks they created themselves. Deletion appends a timeline record, and task numbers are not reused.
- Referenced artifacts: Cards list references directly (links can be opened; paths / commit SHAs can be copied), and references can be added or removed in edit mode.
- Feedback on failure: Failures to create / edit / delete / complete tasks are no longer silent; the original server message pops up as a toast. Pressing Escape on the "delete confirmation" no longer collapses the entire task board. When the editor is open, Escape cancels editing first without losing the draft. Task cards support Tab focus + Enter to edit.
stream-json Keepalive Heartbeat (Optional, Disabled by Default) β
During a turn executed with --output-format stream-json, the CLI can periodically output {type:"system", subtype:"keepalive"} messages driven by the event loop, helping downstream hosts distinguish "slow" from "hung". Because the heartbeat runs on the event loop, it is not emitted when the process is synchronously stuck; it is emitted only while the event loop is still running (asynchronously waiting on slow tools or IO), so healthy but slow workers are not mistakenly judged unresponsive.
This feature is controlled by CODEBUDDY_STREAM_KEEPALIVE_INTERVAL_MS and is enabled only when explicitly set to a positive number. When it is not configured, output is byte-for-byte identical to the behavior before this feature was introduced. The message reuses the existing system message family channel, so existing consumers that do not recognize this subtype will safely ignore or pass it through.
π§ Improvements β
- Narrower approval scope: After choosing "Allow for this session" for file, command, and network approvals, the session authorization cache is retained, but Security Center session rules are no longer added automatically, avoiding overwriting existing permissions or expanding the authorization scope.
- Working directory discovery: The upward search for a git repository now stops at the volume root / user container / temp directory root, so cold starts in temp directories no longer repeatedly probe for nonexistent
.gitdirectories. - Thinking level sync: After switching the thinking level in the CLI, the thinking effort selector in the Web UI updates accordingly instead of staying at the old value from the start of the session.
- Model information display: Removed the infinity symbol from model chips to avoid it being misread as unlimited quota / unlimited credits. Models with a 0 multiplier now display
0xdirectly instead of falling back to showing the context window size. - Custom model dialog: Clicking outside the dialog no longer closes it, preventing accidental loss of the entire form. The field order has been changed to Display Name β Provider β API URL β API Key β Model ID, and Model ID now allows vendor prefixes containing
/(such asz-ai/glm-5.3). - REPL tool calls: Tool signatures now clearly show the parameter object structure, and passing positional arguments by mistake returns a clear hint.
- Message merging cost: Multiple messages in a colleague's inbox are merged into a single model call, and a hint enqueue budget is applied per colleague, preventing large numbers of @ mentions from multiplying calls.
π Bug Fixes β
- More stable conversation traversal: Fixed an intermittent "Duplicate tool names" error caused by concurrent reordering of the MCP server cache, which interrupted the entire conversation turn.
- PTC mode tool surface: Deferred-loaded MCP tools are now consistently called inside the sandbox and no longer also appear in the conversation layer's direct tool list.
- Glob / Grep case sensitivity: Fixed an issue on Windows and macOS where glob arguments with mismatched case silently failed to find files. Linux retains case-sensitive semantics.
- Web UI scrolling up: When scrolling up to view history while the Agent is outputting, the conversation area is no longer automatically snapped back to the bottom. Following resumes after scrolling back to the bottom, and scrolling inside thinking content, streaming code blocks, and similar blocks no longer mistakenly stops following.
- Model selection popover: Fixed the "Thinking effort" secondary panel overflowing the viewport and being clipped, so all levels are fully displayed even with many models or a short window.
- Credit usage display: Credits already charged in the current turn are now displayed correctly even when the context window size cannot be resolved, without polluting the real context usage baseline.
- Calling disabled Skills: After directly calling a disabled Skill, the session no longer keeps showing the thinking state, and the request ends normally.
- Main Agent follow-up messages take effect: When PTC or a custom Agent is the main Agent, messages added while tools are executing now take effect in the next model request instead of waiting until the entire task finishes.
- Dialogs after stopping a task: Fixed late permission requests from old commands blocking subsequent delete confirmation dialogs after a task was stopped.
- Session titles: When images are sent together with text, titles no longer show
@image#N:and hashed file names. Resources such as apps and chat history are displayed with readable names. - macOS sandbox approvals: Fixed repeated sandbox delete approvals triggered when operations such as PPT screenshots cleaned up system caches.
- Server-side fixes: Fixed deferred tools in the workbuddy preset and explicit tools declarations not being discoverable or callable via ToolSearch, cold-start restoration selecting an old history branch after a session rollback, and the in-memory file system entry losing the caller's initial files and constructor options.
- Team member status: Fixed WorkBuddy team members missing their Team identity, members without a physical task during restoration being incorrectly reported as running, and permanently closed members being wrongly restored by subsequent messages.
- Channel collaboration fixes: Fixed user messages in channels getting no response, @ mentions being swallowed by the turn pointer, the first speaker of a round being the speaker themselves, invitations of new members being taken over by turns, colleagues stopped by the user being automatically restarted, and the channel page not responding to clicks.