@tencent-ai/codebuddy-code 2.95.0 → 2.95.1-next.bd7ff53.20260508

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/dist/codebuddy-headless.js +130 -111
  3. package/dist/codebuddy.js +148 -129
  4. package/dist/web-ui/assets/index-CY6b2fbj.css +32 -0
  5. package/dist/web-ui/assets/{index-BY1JTnsk.js → index-bVNRRvKC.js} +165 -165
  6. package/dist/web-ui/docs/cn/cli/bash-sandboxing.md +11 -0
  7. package/dist/web-ui/docs/cn/cli/env-vars.md +6 -0
  8. package/dist/web-ui/docs/cn/cli/hooks.md +27 -0
  9. package/dist/web-ui/docs/cn/cli/interactive-mode.md +1 -1
  10. package/dist/web-ui/docs/cn/cli/mcp.md +13 -0
  11. package/dist/web-ui/docs/cn/cli/plugins-reference.md +3 -3
  12. package/dist/web-ui/docs/cn/cli/release-notes/README.md +6 -0
  13. package/dist/web-ui/docs/cn/cli/release-notes/v2.93.7.md +22 -0
  14. package/dist/web-ui/docs/cn/cli/release-notes/v2.94.0.md +23 -0
  15. package/dist/web-ui/docs/cn/cli/release-notes/v2.94.1.md +6 -0
  16. package/dist/web-ui/docs/cn/cli/release-notes/v2.94.2.md +5 -0
  17. package/dist/web-ui/docs/cn/cli/release-notes/v2.94.3.md +10 -0
  18. package/dist/web-ui/docs/cn/cli/release-notes/v2.94.4.md +5 -0
  19. package/dist/web-ui/docs/cn/cli/release-notes/v2.95.0.md +43 -0
  20. package/dist/web-ui/docs/cn/cli/settings.md +47 -0
  21. package/dist/web-ui/docs/cn/cli/skills.md +27 -0
  22. package/dist/web-ui/docs/en/cli/bash-sandboxing.md +11 -0
  23. package/dist/web-ui/docs/en/cli/env-vars.md +6 -0
  24. package/dist/web-ui/docs/en/cli/hooks.md +27 -0
  25. package/dist/web-ui/docs/en/cli/interactive-mode.md +1 -1
  26. package/dist/web-ui/docs/en/cli/mcp.md +13 -0
  27. package/dist/web-ui/docs/en/cli/plugins-reference.md +525 -461
  28. package/dist/web-ui/docs/en/cli/release-notes/README.md +6 -0
  29. package/dist/web-ui/docs/en/cli/release-notes/v2.94.0.md +23 -0
  30. package/dist/web-ui/docs/en/cli/release-notes/v2.94.1.md +6 -0
  31. package/dist/web-ui/docs/en/cli/release-notes/v2.94.2.md +5 -0
  32. package/dist/web-ui/docs/en/cli/release-notes/v2.94.3.md +10 -0
  33. package/dist/web-ui/docs/en/cli/release-notes/v2.94.4.md +5 -0
  34. package/dist/web-ui/docs/en/cli/release-notes/v2.95.0.md +43 -0
  35. package/dist/web-ui/docs/en/cli/settings.md +47 -0
  36. package/dist/web-ui/docs/en/cli/skills.md +27 -0
  37. package/dist/web-ui/docs/search-index-en.json +1 -1
  38. package/dist/web-ui/docs/search-index-zh.json +1 -1
  39. package/dist/web-ui/docs/sidebar-en.json +1 -1
  40. package/dist/web-ui/docs/sidebar-zh.json +1 -1
  41. package/dist/web-ui/index.html +2 -2
  42. package/dist/web-ui/sw.js +1 -1
  43. package/package.json +3 -2
  44. package/product.cloudhosted.json +7 -4
  45. package/product.internal.json +5 -3
  46. package/product.ioa.json +5 -3
  47. package/product.json +6 -4
  48. package/product.selfhosted.json +5 -3
  49. package/vendor/sandbox/msvcp140.dll +0 -0
  50. package/vendor/sandbox/sandbox-cli +0 -0
  51. package/vendor/sandbox/sandbox-cli.exe +0 -0
  52. package/vendor/sandbox/sandbox_ffi.dll +0 -0
  53. package/vendor/sandbox/tsbx.dll +0 -0
  54. package/vendor/sandbox/tsbx_sdk.dll +0 -0
  55. package/vendor/sandbox/vcruntime140.dll +0 -0
  56. package/vendor/sandbox/vcruntime140_1.dll +0 -0
  57. package/dist/web-ui/assets/index-BjcZsltA.css +0 -32
@@ -17,6 +17,12 @@ Difference from CHANGELOG.md:
17
17
 
18
18
  <!-- New versions are automatically added here -->
19
19
 
20
+ - [v2.95.0](./v2.95.0.md) - 2026-05-01
21
+ - [v2.94.4](./v2.94.4.md) - 2026-05-01
22
+ - [v2.94.3](./v2.94.3.md) - 2026-04-29
23
+ - [v2.94.2](./v2.94.2.md) - 2026-04-28
24
+ - [v2.94.1](./v2.94.1.md) - 2026-04-28
25
+ - [v2.94.0](./v2.94.0.md) - 2026-04-28
20
26
  - [v2.93.7](./v2.93.7.md) - 2026-04-26
21
27
  - [v2.93.6](./v2.93.6.md) - 2026-04-25
22
28
  - [v2.93.5](./v2.93.5.md) - 2026-04-23
@@ -0,0 +1,23 @@
1
+ # 🚀 CodeBuddy Code v2.94.0 Release
2
+
3
+ ## ✨ New Features
4
+
5
+ ### ComputerUse Tool (Experimental)
6
+
7
+ Adds macOS desktop control capabilities, letting CodeBuddy Code directly "see" the screen and "click" on UI elements:
8
+
9
+ - Supports 14 actions: screenshot, mouse click / double-click / right-click, drag, scroll, keyboard input, key combinations, wait for window to appear, etc.
10
+ - Screenshots are returned directly to the model as images, no need to read the file separately
11
+ - Disabled by default; set the environment variable `CODEBUDDY_COMPUTER_USE_ENABLED=1` before use
12
+ - The first time you use mouse/keyboard actions, you need to grant the terminal "Accessibility" and "Screen Recording" permissions in System Settings → Privacy & Security
13
+
14
+ ## 🔧 Improvements
15
+
16
+ - **WeCom Group Bot Voice-to-Text**: Voice messages from WeCom group bots can now automatically read the transcribed text delivered by the server and pass it to the model for understanding — users no longer need to repeat manually. When no transcription is available, an explicit prompt guides the user to send text instead
17
+ - **WeCom Group Bot Image + Text Combined Sending**: When users send both an image and text in a WeCom group, the message is no longer silently dropped; even if the message structure is abnormal, a placeholder fallback ensures it still enters the conversation
18
+ - **AskUserQuestion Multi-Question Fix**: When the model asks multiple questions, the stability of option display and selection has been greatly improved. Issues like "missing one question" or options leaking into another question no longer occur
19
+
20
+ ## 🐛 Bug Fixes
21
+
22
+ - **Hook Script Calling Service Proxy**: Fixed an issue where hook scripts calling the local service proxy interface via tools like curl were rejected due to missing custom request headers
23
+ - **WeCom Self-Built App Concurrent Messages**: Fixed an issue where two messages arriving concurrently in image + text combined sending scenarios overrode each other, leaving the CLI side unaware of the messages
@@ -0,0 +1,6 @@
1
+ # 🚀 CodeBuddy Code v2.94.1 Release
2
+
3
+ ## 🐛 Bug Fixes
4
+
5
+ - **DeepSeek V4+ Thinking Mode Compatibility**: Fixed an issue where continuing a conversation with history while using thinking mode on DeepSeek V4+ models would return `invalid_request_error`. This is now handled automatically
6
+ - **Custom Model Authentication**: Fixed an authentication issue with custom models
@@ -0,0 +1,5 @@
1
+ # 🚀 CodeBuddy Code v2.94.2 Release
2
+
3
+ ## 🐛 Bug Fixes
4
+
5
+ - **Self-Hosted Deployment Detection**: Removed the logic that inferred the Self-Hosted deployment type from enterprise endpoint configuration, to avoid incorrectly marking the deployment type as Self-Hosted when an enterprise endpoint is configured but the actual environment is cloud-hosted
@@ -0,0 +1,10 @@
1
+ # 🚀 CodeBuddy Code v2.94.3 Release
2
+
3
+ ## 🔧 Improvements
4
+
5
+ - **Enhanced Model Compatibility Adaptation**: The model compatibility adapter adds a "segment-boundary substring" matching fallback rule, which better supports custom model IDs with namespace prefixes like `org/xxx-model` while preserving the priority of exact / prefix matching to avoid false matches on short identifiers
6
+
7
+ ## 🐛 Bug Fixes
8
+
9
+ - **DeepSeek V4+ Thinking Mode Compatibility**: Fixed an issue where custom DeepSeek V4 models (such as `deepseek-v4-flash`) would return `The reasoning_content in the thinking mode must be passed back to the API` 400 errors in multi-turn conversations. Now, even if thinking mode is not explicitly enabled in the current turn, the reasoning fields are correctly populated based on history messages
10
+ - **Upstream Error Message Readability**: Now compatible with OpenAI-format upstream error responses (`{error: {message, code, type}}`), allowing specific error messages returned by custom models to be displayed in the UI instead of being uniformly replaced by the generic "Server error" placeholder
@@ -0,0 +1,5 @@
1
+ # 🚀 CodeBuddy Code v2.94.4 Release
2
+
3
+ ## 🐛 Bug Fixes
4
+
5
+ - **Custom Model Compatibility**: Fixed an issue where custom models (such as `custom-local:xxx`), when invoked through third-party OpenAI-compatible interfaces, would return 400 errors due to leftover Anthropic-style fields (`verbosity`, `reasoning_summary`, `reasoning_effort`) in the request body. Custom models now work correctly
@@ -0,0 +1,43 @@
1
+ # 🚀 CodeBuddy Code v2.95.0 Release
2
+
3
+ ## ✨ New Features
4
+
5
+ ### Agent Team Capability Alignment
6
+
7
+ Team collaboration capabilities have been significantly enhanced, making multi-agent collaboration more stable and controllable:
8
+
9
+ - **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
10
+ - **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")
11
+ - **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
12
+ - **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
13
+
14
+ ### New Environment Variables
15
+
16
+ - `CODEBUDDY_TEAM_IDLE_DETECTION_DISABLED`: Disable teammate idle awareness
17
+ - `CODEBUDDY_TEAM_SHUTDOWN_GRACEFUL_TIMEOUT_MS`: Shutdown fallback timeout in milliseconds (default 15000, set to 0 to disable)
18
+ - `CODEBUDDY_BASH_ASSISTANT_BUDGET_MS`: Main conversation response budget (shared by Bash/PowerShell)
19
+ - `CODEBUDDY_BASH_AUTO_BACKGROUND_DISABLED`: Disable auto-backgrounding on timeout
20
+
21
+ ## 🔧 Improvements
22
+
23
+ ### Bash Tool
24
+
25
+ - **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
26
+ - **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"
27
+
28
+ ### PowerShell Tool
29
+
30
+ - **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
31
+ - **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
32
+ - **Ctrl+B to Background**: Upgraded from a "not implemented" placeholder to a real feature
33
+ - **Main Conversation Response Budget**: Shares `CODEBUDDY_BASH_ASSISTANT_BUDGET_MS` with Bash; commands exceeding the budget are automatically backgrounded to keep the conversation responsive
34
+
35
+ ### Session Interruption Semantics
36
+
37
+ - 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
38
+
39
+ ## 🐛 Bug Fixes
40
+
41
+ - **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)
42
+ - **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
43
+ - **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
@@ -62,6 +62,7 @@ The `settings.json` file is the official mechanism for configuring CodeBuddy Cod
62
62
  | `permissions` | Permission configuration, see table below | |
63
63
  | `hooks` | Configure custom commands to run before and after tool execution. See [hooks documentation](hooks.md) | `{"PreToolUse": {"Bash": "echo 'Running command...'"}}` |
64
64
  | `disableAllHooks` | Disable all [hooks](hooks.md) | `true` |
65
+ | `allowUntrustedFrontmatterHooks` | Whether to allow execution of frontmatter `hooks` fields from agents/skills with **non-product-builtin** sources (including local user `.codebuddy/agents\|skills/*.md` and the plugin marketplace). Defaults to `false` to prevent untrusted md files from silently launching shell commands; only product-builtin agents/skills are unaffected. | `true` |
65
66
  | `model` | Override the default model used by CodeBuddy Code | `"gpt-5"` |
66
67
  | `agent` | Override the agent name used by the main thread (built-in or custom agent), applying that agent's system prompt, tool restrictions, and model configuration. Priority: `product.json default` → `plugin agent` → `settings.json agent` → `CLI --agent` | `"my-reviewer"` |
67
68
  | `statusLine` | Configure a custom status line to display context. See [statusLine documentation](#status-line-configuration) | `{"type": "command", "command": "~/.codebuddy/statusline.sh"}` |
@@ -80,6 +81,8 @@ The `settings.json` file is the official mechanism for configuring CodeBuddy Cod
80
81
  | `memory` | [Experimental] Memory feature configuration, see [Memory Configuration](#memory-configuration-experimental) | `{"enabled": true}` |
81
82
  | `trustedDirectories` | List of working directories that have already been trusted. Matching directories will not trigger the "trust this directory" authorization prompt at startup. Usually populated automatically by the first-run popup, but can also be edited manually | `["~/workspace/myproj"]` |
82
83
  | `trustAll` | Trust all working directories, so the "trust this directory" authorization prompt no longer appears at startup. **Only exempts directory trust authorization — does not skip tool execution approval.** Whether tool approval is prompted is still governed by `permissions.defaultMode` / `bypassPermissions` mode and is independent from this field | `true` |
84
+ | `gateway` | Remote Gateway configuration, see [Gateway Configuration](#gateway-configuration) | `{"runTimeoutMs": 1800000}` |
85
+ | `disableUEAutoExclude` | Disable Unreal Engine project auto-exclusion. Default `false`: when a `*.uproject` file exists at the top level of the cwd, the Grep/Glob tools automatically exclude the six UE compile-output and IDE cache directories `Intermediate/ DerivedDataCache/ Saved/ Binaries/ Build/ .vs/` from ripgrep searches. Set to `true` to disable this behavior so searches cover those directories | `true` |
83
86
 
84
87
  ### Permission Settings
85
88
 
@@ -233,6 +236,50 @@ To prevent CodeBuddy Code from accessing files containing sensitive information
233
236
 
234
237
  Files matching these patterns will be completely invisible to CodeBuddy Code, preventing any accidental exposure of sensitive data.
235
238
 
239
+ ## Gateway Configuration
240
+
241
+ The `gateway` field configures the behavior of the Remote Gateway (which exposes endpoints such as `/api/v1/runs` over HTTP/SSE in `--serve` mode).
242
+
243
+ ```json
244
+ {
245
+ "gateway": {
246
+ "auth": "none",
247
+ "maxConnections": 5,
248
+ "tokenTtlMs": 86400000,
249
+ "runTimeoutMs": 1800000
250
+ }
251
+ }
252
+ ```
253
+
254
+ | Field | Description | Default |
255
+ |:-----|:-----|:-----|
256
+ | `auth` | Authentication mode. `"password"` requires the client to present a password; `"none"` performs no authentication (recommended only for loopback) | `"none"` |
257
+ | `password` | The password used when `auth: "password"`. If empty, one is automatically generated and printed to the log on first launch | Auto-generated |
258
+ | `corsOrigins` | Additional Origins allowed for cross-origin Gateway access (no need to include loopback, which is allowed automatically) | `[]` |
259
+ | `maxConnections` | Maximum concurrent ACP protocol connections. The environment variable `CODEBUDDY_ACP_MAX_CONNECTIONS` takes higher priority | `5` |
260
+ | `tokenTtlMs` | ACP session token lifetime (milliseconds). The environment variable `CODEBUDDY_ACP_TOKEN_TTL_MS` takes higher priority | `86400000` (24 hours) |
261
+ | `runTimeoutMs` | Execution timeout for `/api/v1/runs` tasks (milliseconds). On timeout, returns `{code:'EXECUTION_ERROR', message:'Task timed out after Xmin'}` | `1800000` (30 minutes) |
262
+
263
+ ### `runTimeoutMs` Override Priority
264
+
265
+ Long-running tasks (such as complex agent multi-round searches or large-file processing) may exceed the default 30 minutes. Two override mechanisms are supported:
266
+
267
+ 1. **HTTP request header `X-Codebuddy-Run-Timeout`** (in milliseconds) — **per-request override**, highest priority
268
+ 2. **`gateway.runTimeoutMs` in `settings.json`** — process-level default
269
+ 3. **Built-in default** — 30 minutes
270
+
271
+ Example:
272
+
273
+ ```bash
274
+ # Give a single request 60 minutes
275
+ curl -X POST http://127.0.0.1:7890/api/v1/runs \
276
+ -H "Content-Type: application/json" \
277
+ -H "X-Codebuddy-Run-Timeout: 3600000" \
278
+ -d '{"id":"run-1","type":"message","payload":{"text":"..."}}'
279
+ ```
280
+
281
+ Set to `0` or a negative value to disable timeout protection (not recommended; an unfinished long-running task will keep occupying the SSE long connection).
282
+
236
283
  ## Sub-Agent Configuration
237
284
 
238
285
  CodeBuddy Code supports custom AI sub-agents configurable at user and project levels. These sub-agents are stored as Markdown files with YAML frontmatter:
@@ -80,6 +80,33 @@ Available tools:
80
80
  | `context` | No | When set to `fork`, the Skill executes in an isolated subagent context | `fork` |
81
81
  | `agent` | No | Specifies the subagent type, only effective when `context: fork` | `Explore` |
82
82
 
83
+ ## Variable Placeholders
84
+
85
+ The content of SKILL.md supports the following placeholders, which are automatically substituted at load or execution time. The same placeholders also apply to custom slash commands and subagent definitions.
86
+
87
+ | Placeholder | Replaced With | Applicable Sources |
88
+ |------|------|------|
89
+ | `${CODEBUDDY_PLUGIN_ROOT}` | Plugin installation root directory | Plugin-sourced skills only |
90
+ | `${CODEBUDDY_SKILL_DIR}` | Absolute path of the directory containing the current SKILL.md | All sources |
91
+ | `${CODEBUDDY_SESSION_ID}` | Current session ID (injected at runtime) | All sources |
92
+ | `${MY_ENV_VAR}` and other uppercase environment variables | The value of `process.env.MY_ENV_VAR` | All sources |
93
+ | `${MY_ENV_VAR:-default}` | The environment variable, or the default value when missing | All sources |
94
+
95
+ For compatibility with Claude Code, `${CLAUDE_PLUGIN_ROOT}`, `${CLAUDE_SKILL_DIR}`, and `${CLAUDE_SESSION_ID}` are also recognized as equivalent aliases.
96
+
97
+ Unset environment variable placeholders are left as-is rather than replaced with an empty string; in user- or project-sourced skills, `${CODEBUDDY_PLUGIN_ROOT}` is preserved literally (this variable applies only to plugin sources).
98
+
99
+ **Example**:
100
+
101
+ ```markdown
102
+ ---
103
+ description: Skill example with placeholders
104
+ ---
105
+
106
+ Read the script @${CODEBUDDY_SKILL_DIR}/scripts/analyze.py and execute it using the secret ${MY_API_TOKEN:-dev-fallback}.
107
+ Current session identifier: ${CODEBUDDY_SESSION_ID}
108
+ ```
109
+
83
110
  ## Execute Shell Commands
84
111
 
85
112
  Like [Slash Commands](slash-commands.md), Skills also support inline Shell command execution in SKILL.md using the `` !`command` `` syntax. When a Skill is triggered (whether automatically by AI or manually by the user via `/skill-name`), these commands are executed and their output replaces the command in the Skill content for subsequent AI analysis.