Skip to content

πŸš€ CodeBuddy Code v2.160.0 Release ​

πŸ“¦ Version Information ​

ComponentVersion
CodeBuddy Code CLIv2.160.0
Agent SDK JSv0.3.268
Agent SDK Pythonv0.3.267

✨ New Features ​

Web UI Native Agent View v2 ​

Web UI session and directory data are now carried by a single unified bus, and subscriptions support resumption, so after a connection drop you can continue from where you left off without losing messages. A new session snapshot API lets the page fetch a complete snapshot first and then subscribe to increments, so history opens instantly and running state is strictly consistent with the snapshot. Multiple web pages are now peer writers: the same session can be opened and sent messages from multiple pages at once, with writes serialized and queued on the server, and the "This session is in use in another window or device" prompt no longer appears. Row state presentation has also been tightened: an agent row's busy state reflects only the main session hosted by the current page, and when a task fails but the process is still alive, it is clearly settled into a failed state instead of showing running indefinitely.

Web UI Dynamic Workflow Visualization ​

After starting a workflow (such as /deep-research), a live-updating workflow card appears in the conversation, showing run status, current phase, segmented progress, number of completed agents, and token usage. Clicking the card or typing /workflows opens the right sidebar, where you can view each agent's instructions, recent activity, and results by phase, and pause, resume, or stop the entire workflow, or skip a single agent. Intermediate steps of workflow subtasks are no longer flattened into the main conversation, and the related UI and approval cards now have complete Chinese and English text.

More Transparent Sandbox Approvals with Finer-Grained Authorization ​

Sandbox approvals now show the source of the rule that was actually hit, and you can view the corresponding rule or protection mechanism directly, instead of only a generic block message. On macOS, direct deletion in non-allowlisted directories supports separate Allow, Ask, and Deny settings (Ask by default). File approvals support session authorization for the current directory and its subdirectories, with read, write, and delete taking effect separately.

Library Upload Tool ​

Added the LibraryUpload tool, which uploads a single local file as a library node, including files outside the workspace (attachments are often in Documents or on the Desktop). Uploaded nodes remain private and no public share link is generated automatically. Large files are uploaded via streaming without being read entirely into memory. This capability is controlled by a gradual rollout switch and is disabled by default.

Background Workflow Reports Written Back to the Conversation ​

After a background workflow started by commands such as /deep-research completes, the final report is written back to the conversation and the main Agent is notified just like with other background tasks. You can view the full results at any time by task number.

Multiple Output Formats for Server Subscriptions ​

subscribe now supports four output formats: openai, messages, acp-v1, and acp-v2. The default remains the original messages output, so existing integrators need no changes. When full raw SDK events are needed, you can explicitly select them via format: 'openai'.

πŸ”§ Improvements ​

  • More restrained background task completion notifications: After a background task finishes, the assistant is no longer asked to look back through history and infer "what follow-up steps remain". These notifications are also clearly marked as system events rather than user messages, preventing them from being treated as user confirmation to continue.
  • Compress before answering when context is exceeded: When /btw exceeds the model's context limit, standard compression runs first before answering. The TUI reuses the same flow before switching to a smaller context window. If the session is running, or the context still does not fit the target window after compression, the current model is kept and a retry is suggested.
  • Error details include the actual domain: When a request fails, the error details record the domain the request actually hit, making it easier to troubleshoot by domain.
  • Configurable model input memory guard: The guard can be disabled via CODEBUDDY_DISABLE_MODEL_INPUT_MEMORY_GUARD=1, and /compact is allowed to complete context compression under memory pressure.
  • Incremental reading of background Shell output on demand: When reading output from background Shell tasks, only content added since the last read is returned by default, avoiding repeated context consumption from polling. Use full: true when a full snapshot is needed.
  • Faster session restore with lower memory usage: Session tails are now read asynchronously in bounded chunks, avoiding loading full files for medium and large sessions. Session list reading adds a concurrency limit, reducing resource contention and peak memory during startup.

πŸ› Bug Fixes ​

  • Built-in plugin marketplace no longer re-downloads repeatedly: Versions are now recorded correctly after installation, and downloads happen again only when the marketplace actually publishes a new version, making startup faster and saving bandwidth. Leftover downloaded files in the system temp directory are also cleaned up.
  • Subagents follow the main session's context window tier: After the main Agent switches to a tier such as 1M, newly created or woken subagents (including Agent Team members) automatically sync that selection. When the main session has no explicit selection, subagents fall back to their own model's default tier.
  • Web UI session sync: Creating, switching, or restoring sessions via direct links now shows history immediately and receives messages sent to the session from other clients (including the CLI) in real time. Fixed sessions occasionally showing running indefinitely after a turn ended, with the input box stuck in the queued state. Refreshing the page after rolling back a conversation no longer brings back the rolled-back replies.
  • Connection drops while empty-stream retries wait for usage: The turn is still retried automatically in this case, instead of being treated as a normal completion with no body.
  • Tool disable settings no longer stop working: While the tool management entry point is offline, saved tool and MCP disable settings no longer take effect, preventing tools from being disabled with no way to restore them via the UI.
  • Agents with numeric names are no longer missed: Unquoted finite numeric names and descriptions in Agent frontmatter are now supported, preventing files that exist from not appearing in the management directory.
  • Sandbox permissions no longer cross over when switching between sessions: Approvals, protection records, and audits for bulk deletion and "Allow for this session" always belong to the session that actually executes. Sessions with default permissions cannot borrow full-access permissions from other sessions to skip confirmation, and late approvals are no longer accepted after cancellation.
  • User message identity preserved after context compression: Fixed compression summaries polluting the identity of real user messages, and internal recovery continuations mistakenly triggering sandbox initialization.
  • Sandbox command output no longer lost: Fixed output and exit events possibly being lost during fast execution, leaving tools waiting indefinitely. Consecutively arriving output and exit status are now all preserved.
  • Server text reference display: Client references in plain text are no longer mistakenly displayed as files, while explicit resource references, images, and attachments continue to be restored normally.
  • Session-level MCP tools appear in the tool list: Fixed session-level MCP tools injected via /server not appearing in the search list after deferred loading. The list refreshes with tool changes, configuration replacement, and removal, while maintaining session isolation.
  • Web UI working directory follows the CLI launch directory: The home directory of the default Agent (main conversation) no longer stays on a historical directory. The time shown for that row in the sidebar now reflects the most recent user message in the main session.
  • Agents derived from workflows and multitask fully inherit the main session mode: Workflow progress is kept in the workflow view, and arrow-key selection and Enter to enter a regular Agent in the main interface are restored.
  • Worktrees can be recreated after creation fails in large repositories: Fixed half-created directories and branches being left behind after worktree creation timed out and was aborted, which prevented subsequent creation. The creation wait time has also been extended.