Skip to content

πŸš€ CodeBuddy Code v2.172.1 Release ​

πŸ“¦ Version Information ​

ComponentVersion
CodeBuddy Code CLIv2.172.1
Agent SDK JSv0.3.287
Agent SDK Pythonv0.3.286

✨ New Features ​

Custom Subagents Can Disable Automatic Model Invocation ​

After setting disable-model-invocation: true in .codebuddy/agents/*.md, that subagent no longer appears in the model's list of Agent candidates, so it will not be selected automatically. It can still be delegated to by name (for example, by specifying the agent name in a skill), and its tools, model, and permission configuration remain unchanged.

FRP Relay Tunnels for Web UI Remote Connections ​

When devices on internal networks cannot reach each other, you can now establish remote SSH through an frp gateway relay:

  • Once your account is ready, local SSH is shared automatically by default. If no sshd is available, a public-key-only sshd is started silently; if this fails, you are notified and can retry (set CODEBUDDY_FRP_AUTO_SHARE=0 to disable)
  • Other devices under the same account appear under "Devices" in host management. Within the same iOA enterprise, you can also invite other accounts to share and revoke access at any time; the other party logs in with a dedicated key
  • Add a device as a remote host in one click: SSH connections try a direct connection first and fall back to the relay only if the direct connection fails, and the connection remains standard SSH afterward
  • Gateways can be added, modified, and deleted. When the logged-in account belongs to iOA, a built-in gateway is included and you can directly "Activate with iOA identity"; activating with the same iOA identity on different devices provisions the same account
  • The gateway address, frps server (host, port, TLS), and the local port used for connections are all customizable, and gateway configuration is isolated per logged-in account
  • Both ends of the connection are handled by CodeBuddy's own processes, with no need to install or run any frp programs

Tool Results Can Declare MCP App Views ​

Any tool (including results rewritten by a mod in tool.call) can declare, in the MCP metadata of its result, the MCP server hosting a ui:// resource and the data to display. The host only reads that resource and renders it into the current tool card, and card buttons call back MCP tools via the MCP Apps protocol; the host never executes tools on behalf of any caller. Set CBC_MCP_APP_VIEWS=0 to disable.

WeChat Pay Interception Can Be Disabled ​

Set CBC_WEIXINPAY_INTERCEPTION=0 (or false / no / off) to disable detection and interception of WeixinPay-Required. This takes precedence over remote configuration.

πŸ”§ Improvements ​

  • Cleaner command execution results: Bash and PowerShell execution results no longer repeat the command text from the call parameters, keeping only the actual output and execution status; this also applies to error receipts, background tasks, and code executor scenarios. Hooks that read the tool result body directly can obtain the invoked command via tool_input.command.
  • Smoother Web UI streaming output: When long replies are streamed, auto-scrolling to the bottom no longer triggers a page reflow on every frame, reducing CPU usage and stuttering.
  • More resource-efficient code block rendering: Completed code blocks are no longer re-highlighted as new content arrives, and code blocks still being output are first shown as plain text and highlighted once complete, making long answers smoother and reducing memory usage.
  • Better power efficiency in the background: After switching to another app, the decorative animations on sidebar agent avatars pause and pet animations lower their refresh rate, significantly reducing idle CPU usage in the background; they resume immediately when you return to the window.
  • Linux sandbox enabled by default: When the sandbox is enabled on Linux, commands are now executed by sandbox-cli by default, consistent with macOS / Windows (previously, enabling the sandbox on Linux still ran commands directly without isolation). The dependency check now only requires bubblewrap and no longer requires socat. Set ENABLE_LINUX_SANDBOX_CLI=0 to disable.
  • Onboarding state follows your account: The onboarding "already seen" state is now saved in server-side user settings, so it no longer pops up again when you switch ports or browsers.

πŸ› Bug Fixes ​

  • Unable to continue the conversation after a session got stuck: Fixed an issue where, after context compaction failed and the continuation was canceled, the session stayed in the running state indefinitely and subsequent questions received no reply.
  • Agent Teams member shutdown state: Fixed members being incorrectly marked as "Interrupted" after they had already delivered their output. Shutdown now waits for the current turn to end normally and keeps the "Completed" state, reducing duplicate completion notifications.
  • Grep searches with glob: Fixed glob-filtered searches in large repositories idling for 30 seconds and then failing with a timeout. When a search times out, results found so far are kept and you are prompted to narrow the scope.
  • Inner permission checks in auto mode: When tools are called in succession inside the code executor, inner actions are now evaluated individually based on the actual tool and arguments. Safe operations run directly and dangerous operations are blocked directly, eliminating cases where something that should have been auto-approved prompted for confirmation, or something that should have been blocked was let through. When the check is unavailable, actions that require confirmation prompt normally, and they do not proceed after being canceled.
  • Expert team wrap-up order: Fixed an issue where, after the last expert team member finished, the main conversation ended before the lead had finished processing the members' results, causing the lead's subsequent output to be attributed to the previous turn and the next question to be misplaced in the session.
  • Windows terminal redraw: When entering login and returning, or when resizing the window, the old welcome screen no longer lingers and piles up in the scrollback history.
  • Scheduled task exceptions: After the computer wakes from sleep or the process stalls for a long time, scheduled tasks no longer throw uncaught exceptions or print exception stack traces to the terminal.
  • Upgrade failure messages: When an npm upgrade fails, the specific reason is now shown instead of just exit code 1. Background auto-update failures no longer trigger a notification every hour; you are only alerted when the installation is corrupted and requires a manual fix.
  • Remote connection and installation: When CBC is missing on the remote host, it is installed automatically via npm; when Node.js / npm is missing, authorization is requested before installing. When incompatible, the specific reason is shown along with a one-click update. Also fixed host import not supporting a -p port written after the host, and connection failures caused by reusing a stale instance after the background service was upgraded.
  • Remote directory browsing: You can now navigate into the root directory, switching workspaces no longer throws errors, and the path bar refreshes as you navigate.
  • Automatic agent recovery: Clicking an exited agent in the Web UI sidebar or on the agent page now automatically relaunches it and continues the conversation, with no need to click "Restart" manually.
  • Replies from new agents render reliably: Fixed an issue where, after creating a new agent, the streaming reply repeatedly refreshed, the body text did not append as output arrived, and the input box state kept flickering back and forth.
  • Windows file search fallback: When the built-in search program occasionally fails to start, Glob search now automatically falls back to an alternative method to return results instead of failing with an error.
  • Context lost after a hook block: Fixed an issue where rebuilding the process after a UserPromptSubmit hook blocked a prompt lost the previous conversation context.
  • MCP App card buttons not working: Fixed calls triggered by buttons inside cards not carrying session information, which caused them to be rejected across the board in environments with sensitive outbound review enabled.