@tencent-ai/codebuddy-code 2.109.0 → 2.109.1
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.
- package/CHANGELOG.md +12 -0
- package/dist/codebuddy-headless.js +8 -8
- package/dist/codebuddy.js +9 -9
- package/dist/web-ui/docs/cn/cli/cli-reference.md +8 -3
- package/dist/web-ui/docs/cn/cli/env-vars.md +2 -1
- package/dist/web-ui/docs/cn/cli/iam.md +9 -5
- package/dist/web-ui/docs/cn/cli/interactive-mode.md +2 -2
- package/dist/web-ui/docs/cn/cli/permission-modes.md +373 -101
- package/dist/web-ui/docs/cn/cli/permissions.md +36 -14
- package/dist/web-ui/docs/cn/cli/prewarm.md +135 -0
- package/dist/web-ui/docs/cn/cli/release-notes/README.md +14 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.106.0.md +48 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.106.1.md +13 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.106.2.md +24 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.106.3.md +14 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.106.4.md +24 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.106.5.md +18 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.106.6.md +15 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.106.7.md +13 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.107.0.md +30 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.108.0.md +20 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.108.1.md +15 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.108.2.md +13 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.109.0.md +24 -0
- package/dist/web-ui/docs/cn/cli/settings.md +166 -2
- package/dist/web-ui/docs/en/cli/cli-reference.md +15 -10
- package/dist/web-ui/docs/en/cli/env-vars.md +6 -5
- package/dist/web-ui/docs/en/cli/iam.md +9 -5
- package/dist/web-ui/docs/en/cli/interactive-mode.md +3 -3
- package/dist/web-ui/docs/en/cli/permission-modes.md +373 -101
- package/dist/web-ui/docs/en/cli/permissions.md +46 -24
- package/dist/web-ui/docs/en/cli/prewarm.md +125 -0
- package/dist/web-ui/docs/en/cli/release-notes/README.md +14 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.106.0.md +48 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.106.1.md +13 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.106.2.md +24 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.106.3.md +14 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.106.4.md +24 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.106.5.md +18 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.106.6.md +15 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.106.7.md +13 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.107.0.md +30 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.108.0.md +20 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.108.1.md +15 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.108.2.md +13 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.109.0.md +24 -0
- package/dist/web-ui/docs/en/cli/settings.md +166 -2
- package/dist/web-ui/docs/search-index-en.json +1 -1
- package/dist/web-ui/docs/search-index-zh.json +1 -1
- package/dist/web-ui/docs/sidebar-en.json +1 -1
- package/dist/web-ui/docs/sidebar-zh.json +1 -1
- package/package.json +1 -1
- package/product.cloudhosted.json +2 -2
- package/product.internal.json +2 -2
- package/product.ioa.json +2 -2
- package/product.json +2 -2
- package/product.selfhosted.json +2 -2
|
@@ -4,22 +4,43 @@
|
|
|
4
4
|
|
|
5
5
|
## 权限系统概览
|
|
6
6
|
|
|
7
|
-
CodeBuddy Code
|
|
7
|
+
CodeBuddy Code 的权限不是“只看当前 mode”,而是一条分层求值链。每次工具调用,大致按下面顺序判定:
|
|
8
8
|
|
|
9
|
-
|
|
|
10
|
-
|
|
|
9
|
+
| 阶段 | 检查项 | 命中后行为 |
|
|
10
|
+
| :--- | :--- | :--- |
|
|
11
|
+
| 0 | **Hooks / 交互型工具特例** | `PreToolUse` 可直接 allow / deny / ask;`AskUserQuestion` 这类工具本身就要求交互 |
|
|
11
12
|
| 1 | **Deny 规则** | 立刻拒绝,最高优先级 |
|
|
12
|
-
| 2 | **可信 Allow 规则**(user /
|
|
13
|
-
| 3 | **命令安全检查**(仅交互式) | 高危
|
|
14
|
-
| 4 | **Ask 规则** |
|
|
15
|
-
| 5 | **Bypass 模式短路** | `bypassPermissions`
|
|
16
|
-
| 6 | **不可信 Allow
|
|
17
|
-
| 7 |
|
|
18
|
-
| 8 |
|
|
13
|
+
| 2 | **可信 Allow 规则**(user / CLI / session / policy / 已信任项目规则 / `--allowedTools`) | 立刻放行,且**可越过交互态危险命令检查** |
|
|
14
|
+
| 3 | **命令安全检查**(仅交互式) | 高危 Bash 命令强制进入 ask |
|
|
15
|
+
| 4 | **Ask 规则** | 强制 ask |
|
|
16
|
+
| 5 | **Bypass 模式短路** | `bypassPermissions` 在这里放行大多数动作;若已被禁用则退化 |
|
|
17
|
+
| 6 | **不可信 Allow 规则**(未信任项目规则、command / sandbox 来源) | 可放行,但**不能**越过上一步危险命令检查 |
|
|
18
|
+
| 7 | **权限模式基线策略** | 由当前 [权限模式](permission-modes.md) 决定默认是 allow 还是 ask |
|
|
19
|
+
| 8 | **非交互兜底** | 无法弹审批框时,把 unresolved `ask` 转成 `deny` |
|
|
20
|
+
| 9 | **`dontAsk` / `auto` 最终收口** | `dontAsk` 把 ask 改写为 deny;`auto` 只接管 ask 并交给分类器 |
|
|
21
|
+
|
|
22
|
+
> **要点 1**:`deny` 永远优先。
|
|
23
|
+
>
|
|
24
|
+
> **要点 2**:CodeBuddy 把 `allow` 分成“可信 allow”和“不可信 allow”两层。项目目录在你显式信任前,仓库内 `.codebuddy/settings.json` / `.codebuddy/settings.local.json` 的 allow 规则**不能越过危险命令检查**,目的是防止恶意仓库把自己的 settings 提交进来后悄悄放宽本地安全边界。
|
|
25
|
+
>
|
|
26
|
+
> **要点 3**:`auto` 不是整条链的替代品,它只处理“最后仍然会 ask 的动作”;显式 `ask` 规则不会进入 classifier。
|
|
27
|
+
|
|
28
|
+
读类工具(Read / Grep / Glob 等)默认在信任目录内不弹审批;Edit、Bash 与大多数副作用工具会走完整判定链。
|
|
29
|
+
|
|
30
|
+
### 权限模式和规则谁优先?
|
|
31
|
+
|
|
32
|
+
可以把权限系统理解成两层:
|
|
33
|
+
|
|
34
|
+
- **规则层**:`deny` / `ask` / `allow`
|
|
35
|
+
- **模式层**:`default` / `acceptEdits` / `auto` / `dontAsk` / ...
|
|
19
36
|
|
|
20
|
-
|
|
37
|
+
在 CodeBuddy 里,通常是**规则层先于模式层**。几个最重要的例子:
|
|
21
38
|
|
|
22
|
-
|
|
39
|
+
- `deny` 会先于任何 mode 生效
|
|
40
|
+
- 显式 `ask` 规则会先于 `auto` 生效,因此仍然需要人工确认
|
|
41
|
+
- `dontAsk` 不会绕过规则;它只是把最后得到的 `ask` 改写成 `deny`
|
|
42
|
+
- `bypassPermissions` 也不会抹掉前置规则;`deny` / `ask` 仍可能拦住它
|
|
43
|
+
- 交互式会话里的危险 Bash 命令,即使在 `bypassPermissions` 下,也可能因为安全检查而进入 ask
|
|
23
44
|
|
|
24
45
|
## 规则的三种行为
|
|
25
46
|
|
|
@@ -270,8 +291,9 @@ CodeBuddy 默认认为只有**当前工作目录**是受信任的。Read 工具
|
|
|
270
291
|
|
|
271
292
|
注意:
|
|
272
293
|
|
|
273
|
-
-
|
|
274
|
-
-
|
|
294
|
+
- `PreToolUse` 的结构化 `permissionDecision` 会在常规权限规则前生效:`allow` / `deny` / `ask` 分别直接放行、拒绝或强制询问
|
|
295
|
+
- 阻断式钩子(exit code 2)也能在常规 allow 规则前短路,所以可以“先放行 Bash 全部,但用钩子单独拦几条特定命令”
|
|
296
|
+
- 如果需要无条件的硬边界,仍建议优先使用 `permissions.deny`,便于在 `/permissions` 和 settings 中统一审计
|
|
275
297
|
|
|
276
298
|
## 与沙箱的协作
|
|
277
299
|
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# Prewarm 预热进程使用说明
|
|
2
|
+
|
|
3
|
+
> 适用:`@tencent-ai/codebuddy-code`(`cbc` / `codebuddy`)
|
|
4
|
+
|
|
5
|
+
预热进程让 `cbc` **先把冷启动跑完并挂起**(加载 bundle → 容器初始化 → 认证 →
|
|
6
|
+
产品配置 → MCP 发现),之后通过本地 IPC 唤醒时只需绑定工作目录即可立即服务。
|
|
7
|
+
适合需要"秒级拉起会话"的场景(如 serve/acp 网关、会话池、调度器预拉起)。
|
|
8
|
+
|
|
9
|
+
**收益**:本机实测单次会话的启动等待从约 **3.7s** 降至 **~1ms**。
|
|
10
|
+
|
|
11
|
+
> 默认关闭。仅在显式传 `--prewarm` 时启用,不影响任何现有用法。
|
|
12
|
+
|
|
13
|
+
## 快速上手
|
|
14
|
+
|
|
15
|
+
### 1. 启动一个预热进程(待命)
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
cbc --prewarm --prewarm-id pool1
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
进程会跑完冷启动,然后在本地 IPC 端点挂起待命(不绑定工作目录):
|
|
22
|
+
- macOS / Linux:unix socket `/tmp/codebuddy-prewarm-pool1.sock`(权限 `0600`,仅当前用户)
|
|
23
|
+
- Windows:named pipe `\\.\pipe\codebuddy-prewarm-pool1`
|
|
24
|
+
|
|
25
|
+
`--prewarm-id` 可省略,默认用进程 PID 作为标识。
|
|
26
|
+
|
|
27
|
+
### 2. 查看 / 唤醒(轻量管理命令 `cbc-prewarm`)
|
|
28
|
+
|
|
29
|
+
`cbc-prewarm` 是一个纯 Node 零依赖的轻量命令,不加载主程序 bundle,毫秒级返回。
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# 列出当前机器上发现的预热进程
|
|
33
|
+
cbc-prewarm list
|
|
34
|
+
|
|
35
|
+
# 探活
|
|
36
|
+
cbc-prewarm ping pool1
|
|
37
|
+
|
|
38
|
+
# 查询状态(idle / activating / active)
|
|
39
|
+
cbc-prewarm status pool1
|
|
40
|
+
|
|
41
|
+
# 唤醒:绑定到目标工作目录并开始服务
|
|
42
|
+
cbc-prewarm activate pool1 --cwd /path/to/project -- --serve
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
`activate` 的 `--` 之后的参数会透传给被唤醒的进程(等价于正常 `cbc <args>`)。
|
|
46
|
+
唤醒后该进程 `chdir` 到 `--cwd`、按透传参数进入对应模式(如 `--serve` / `--acp`),
|
|
47
|
+
并主动关闭 IPC socket(一次性唤醒,之后通过它自己的服务端口对外)。
|
|
48
|
+
|
|
49
|
+
> **`--cwd` 可选**:省略时预热进程保持冷启动时的工作目录(不 `chdir`、不广播 cwd
|
|
50
|
+
> 变更),适用于调用方无需切换目录、只想复用已预热容器的场景。需要绑定到特定项目
|
|
51
|
+
> 目录时才传 `--cwd`。
|
|
52
|
+
|
|
53
|
+
> **模式不受限**:透传参数可以是任意正常 `cbc` 参数,`--serve`、`--acp` 等常驻模式
|
|
54
|
+
> 都原样生效,预热进程对模式没有任何限制或改写。需要常驻服务就传 `--serve` / `--acp`;
|
|
55
|
+
> 不传常驻模式标志时走一次性命令路径,执行完即退出(headless 且无 TTY)。
|
|
56
|
+
|
|
57
|
+
## 外部程序集成(IPC 协议)
|
|
58
|
+
|
|
59
|
+
若想在自己的程序里唤醒预热进程,直接连本地 socket / pipe 发一行 JSON(NDJSON,每行一条),读一行 JSON 响应。
|
|
60
|
+
|
|
61
|
+
### 地址约定
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
macOS/Linux : /tmp/codebuddy-prewarm-<id>.sock
|
|
65
|
+
Windows : \\.\pipe\codebuddy-prewarm-<id>
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### 消息
|
|
69
|
+
|
|
70
|
+
```jsonc
|
|
71
|
+
// 探活
|
|
72
|
+
{ "cmd": "ping" }
|
|
73
|
+
// → { "ok": true, "cmd": "ping", "status": "idle", "pid": 12345 }
|
|
74
|
+
|
|
75
|
+
// 查询状态
|
|
76
|
+
{ "cmd": "status" }
|
|
77
|
+
// → { "ok": true, "status": "idle"|"activating"|"active", "cwd": "...", "endpoint": "..." }
|
|
78
|
+
|
|
79
|
+
// 唤醒(cwd 可选——省略则保持冷启动 cwd;args 为透传给 cbc 的参数)
|
|
80
|
+
{ "cmd": "activate", "cwd": "/path/to/project", "args": ["--serve"], "sessionId": "可选" }
|
|
81
|
+
// → { "ok": true, "cmd": "activate", "status": "activating", "cwd": "..." }
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
`activate` 只允许成功一次;重复 activate 返回 `{ ok: false, error: "already activated" }`。
|
|
85
|
+
|
|
86
|
+
### Node.js 示例
|
|
87
|
+
|
|
88
|
+
```js
|
|
89
|
+
const net = require('net');
|
|
90
|
+
|
|
91
|
+
function prewarmAddr(id) {
|
|
92
|
+
return process.platform === 'win32'
|
|
93
|
+
? `\\\\.\\pipe\\codebuddy-prewarm-${id}`
|
|
94
|
+
: `/tmp/codebuddy-prewarm-${id}.sock`;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
function activate(id, { cwd, args = [] }) {
|
|
98
|
+
return new Promise((resolve, reject) => {
|
|
99
|
+
const sock = net.connect(prewarmAddr(id), () => {
|
|
100
|
+
sock.write(JSON.stringify({ cmd: 'activate', cwd, args }) + '\n');
|
|
101
|
+
});
|
|
102
|
+
let buf = '';
|
|
103
|
+
sock.on('data', d => {
|
|
104
|
+
buf += d;
|
|
105
|
+
const nl = buf.indexOf('\n');
|
|
106
|
+
if (nl >= 0) { sock.end(); resolve(JSON.parse(buf.slice(0, nl))); }
|
|
107
|
+
});
|
|
108
|
+
sock.on('error', reject);
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// 唤醒 pool1,绑定目标目录并以 serve 模式启动
|
|
113
|
+
const res = await activate('pool1', { cwd: '/Users/me/project-A', args: ['--serve'] });
|
|
114
|
+
console.log(res); // { ok: true, cmd: 'activate', status: 'activating', cwd: '...' }
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## 行为与约束
|
|
118
|
+
|
|
119
|
+
- **一进程一会话**:每个预热进程一生只绑定一次工作目录(activate 那一刻),用完即弃。
|
|
120
|
+
需要服务多个目录时,预热多个进程(不同 `--prewarm-id`),各自独立、互不影响。
|
|
121
|
+
- **工作目录隔离**:activate 后会 `chdir` 并广播 cwd 变更,文件监听自动重绑、项目级缓存
|
|
122
|
+
(设置 / 记忆 / 技能 / 插件 / 产品配置)自动失效重扫,确保不会读到预热期临时目录的旧配置。
|
|
123
|
+
- **USER 级配置共享**:`~/.codebuddy/` 下的用户级设置 / 认证 / MCP 在所有预热进程间天然共享。
|
|
124
|
+
- **安全**:unix socket 权限收紧为 `0600`(仅属主),防止同机其他用户连接劫持。
|
|
125
|
+
- **退出清理**:优雅退出(SIGINT/SIGTERM)或 activate 完成后自动清理 socket;
|
|
126
|
+
SIGKILL 残留的 socket 在下次同 id 启动时会被自动覆盖。
|
|
127
|
+
|
|
128
|
+
## 配置方式
|
|
129
|
+
|
|
130
|
+
预热相关参数只能通过 CLI flag 配置:`--prewarm` / `--prewarm-id <id>` / `--prewarm-force`。
|
|
131
|
+
|
|
132
|
+
## 相关
|
|
133
|
+
|
|
134
|
+
- Benchmark 与收益数据:[scripts/benchmark/README.md](../../scripts/benchmark/README.md)
|
|
135
|
+
- CLI 参数总表:[cli-reference.md](cli-reference.md)
|
|
@@ -17,6 +17,20 @@ Release Notes 记录了每个版本的用户可见变更,包括:
|
|
|
17
17
|
|
|
18
18
|
<!-- 新版本自动添加到此处 -->
|
|
19
19
|
|
|
20
|
+
- [v2.109.0](./v2.109.0.md) - 2026-06-19
|
|
21
|
+
|
|
22
|
+
- [v2.108.2](./v2.108.2.md) - 2026-06-18
|
|
23
|
+
- [v2.108.1](./v2.108.1.md) - 2026-06-18
|
|
24
|
+
- [v2.108.0](./v2.108.0.md) - 2026-06-18
|
|
25
|
+
- [v2.107.0](./v2.107.0.md) - 2026-06-17
|
|
26
|
+
- [v2.106.7](./v2.106.7.md) - 2026-06-16
|
|
27
|
+
- [v2.106.6](./v2.106.6.md) - 2026-06-16
|
|
28
|
+
- [v2.106.5](./v2.106.5.md) - 2026-06-16
|
|
29
|
+
- [v2.106.4](./v2.106.4.md) - 2026-06-15
|
|
30
|
+
- [v2.106.3](./v2.106.3.md) - 2026-06-13
|
|
31
|
+
- [v2.106.2](./v2.106.2.md) - 2026-06-13
|
|
32
|
+
- [v2.106.1](./v2.106.1.md) - 2026-06-12
|
|
33
|
+
- [v2.106.0](./v2.106.0.md) - 2026-06-12
|
|
20
34
|
- [v2.105.2](./v2.105.2.md) - 2026-06-10
|
|
21
35
|
- [v2.105.1](./v2.105.1.md) - 2026-06-10
|
|
22
36
|
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# 🚀 CodeBuddy Code v2.106.0 发布
|
|
2
|
+
|
|
3
|
+
## 📦 版本信息
|
|
4
|
+
|
|
5
|
+
| 组件 | 版本 |
|
|
6
|
+
|------|------|
|
|
7
|
+
| CodeBuddy Code CLI | v2.106.0 |
|
|
8
|
+
| Agent SDK JS | v0.3.174 |
|
|
9
|
+
| Agent SDK Python | v0.3.173 |
|
|
10
|
+
|
|
11
|
+
## ✨ 新功能
|
|
12
|
+
|
|
13
|
+
### MCP Apps 交互式界面
|
|
14
|
+
|
|
15
|
+
CodeBuddy Code 现在支持 MCP server 声明交互式 HTML 工具界面,并在 Web UI 中以安全的沙箱 iframe 渲染。工具结果不再只能展示文本,适合表单、图表、可视化配置等更丰富的交互场景。
|
|
16
|
+
|
|
17
|
+
### MCP Apps 双向交互
|
|
18
|
+
|
|
19
|
+
MCP Apps 现在可以与 CodeBuddy Code 双向协作:
|
|
20
|
+
|
|
21
|
+
- UI 可将内容写回对话,支持直接发送或填入输入框再编辑
|
|
22
|
+
- UI 可为下一轮对话注入模型上下文
|
|
23
|
+
- UI 可请求显示模式切换、触发文件下载并通知资源销毁
|
|
24
|
+
- iframe 内反向调用工具时会先请求用户授权,保障安全可控
|
|
25
|
+
|
|
26
|
+
### 工具延迟加载覆盖
|
|
27
|
+
|
|
28
|
+
`--tools` 参数和自定义代理 frontmatter 的 `tools` 字段新增 `Defer(...)` / `NoDefer(...)` 修饰符。用户可以在会话或代理级别临时调整工具是否延迟加载,无需修改全局配置。
|
|
29
|
+
|
|
30
|
+
## 🔧 改进优化
|
|
31
|
+
|
|
32
|
+
- **MCP Apps 展示体验**:交互式界面常驻在工具卡片下方,不再需要展开工具调用详情才能看到主体内容
|
|
33
|
+
- **授权体验优化**:对同一 server / tool 选择"始终允许"后,本会话内不再重复弹窗;自动通过模式下自动放行
|
|
34
|
+
- **加载体验优化**:历史回放中仅在资源回拉超过 200ms 时显示加载状态,减少闪烁
|
|
35
|
+
- **反向调用稳定性**:同一 session / server 的反向工具调用会排队执行,避免并发过高导致审批流程卡住
|
|
36
|
+
- **MCP Apps 日志提示**:iframe 日志可按级别同步到控制台,warning 及以上级别会展示去重后的右下角提示
|
|
37
|
+
- **提示建议成本优化**:下一轮提示建议改用轻量模型和精简上下文生成,降低 token 成本
|
|
38
|
+
|
|
39
|
+
## 🐛 问题修复
|
|
40
|
+
|
|
41
|
+
- **MCP 工具描述漂移**:修复 MCP server 在连接状态变化时提示词仍残留已过滤工具的问题,减少模型误调用不存在工具的情况
|
|
42
|
+
- **Team credit 重复累计**:修复同一消息多次 usage 更新导致 credit 被重复累加的问题
|
|
43
|
+
- **跨版本升级配置异常**:修复旧版本产品配置缓存污染新版本配置的问题,减少升级后配置行为异常
|
|
44
|
+
- **链路埋点 ID 漂移**:修复多轮对话中 subagent / team agent 继承错误 rootRequestId 的问题,保证一次对话全链路 ID 一致
|
|
45
|
+
- **Team credit 统计准确性**:修复 Team 场景下 requestId 被篡改和 detached 模式 usage 未正确转发导致的统计不准确问题
|
|
46
|
+
- **请求取消错误提示**:取消请求时展示更友好的 cancelled 提示,不再暴露底层 JSON-RPC 结构
|
|
47
|
+
- **MCP Apps 历史恢复**:修复 Web UI 刷新后交互式界面不再显示的问题
|
|
48
|
+
- **MCP Apps 授权竞态**:修复反向工具调用时可能出现 `No active interruption to resolve` 的授权匹配错误
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# 🚀 CodeBuddy Code v2.106.1 发布
|
|
2
|
+
|
|
3
|
+
## 📦 版本信息
|
|
4
|
+
|
|
5
|
+
| 组件 | 版本 |
|
|
6
|
+
|------|------|
|
|
7
|
+
| CodeBuddy Code CLI | v2.106.1 |
|
|
8
|
+
| Agent SDK JS | v0.3.175 |
|
|
9
|
+
| Agent SDK Python | v0.3.174 |
|
|
10
|
+
|
|
11
|
+
## 🐛 问题修复
|
|
12
|
+
|
|
13
|
+
- **Delete 键失效(iTerm2 Natural Text Editing 预设)**:修复在 iTerm2 加载「Natural Text Editing」预设时,按下外接键盘上的 Forward Delete 键(⌦)后输入框无任何反应的问题。该预设会把物理 Delete 键改发为 Ctrl-D 码点,现已按通用编辑器约定处理:输入非空且光标后还有字符时删除光标后字符,输入为空时仍保留「双击 Ctrl-D 退出」的交互。
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# CodeBuddy Code v2.106.2 发布
|
|
2
|
+
|
|
3
|
+
## 版本信息
|
|
4
|
+
|
|
5
|
+
| 组件 | 版本 |
|
|
6
|
+
|------|------|
|
|
7
|
+
| CodeBuddy Code CLI | v2.106.2 |
|
|
8
|
+
| Agent SDK JS | v0.3.176 |
|
|
9
|
+
| Agent SDK Python | v0.3.175 |
|
|
10
|
+
|
|
11
|
+
## 新功能
|
|
12
|
+
|
|
13
|
+
### Stop Hook Prompt 类型支持
|
|
14
|
+
|
|
15
|
+
新增 E2E 测试覆盖 prompt 类型的 Stop hook 生命周期和健壮性验证,确保 prompt 事件触发下的 Stop hook 行为正确。
|
|
16
|
+
|
|
17
|
+
## 改进优化
|
|
18
|
+
|
|
19
|
+
- **Prompt Hook 诊断增强**:改进 prompt hook 执行失败时的日志输出,包含事件名称和具体错误信息,便于排查 Stop hook 不生效问题
|
|
20
|
+
- **DeferExecuteTool 图片支持**:MCP 工具返回图片内容时,自动转换为结构化格式传递给下游处理管线
|
|
21
|
+
|
|
22
|
+
## 问题修复
|
|
23
|
+
|
|
24
|
+
无
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# 🚀 CodeBuddy Code v2.106.3 发布
|
|
2
|
+
|
|
3
|
+
## 📦 版本信息
|
|
4
|
+
|
|
5
|
+
| 组件 | 版本 |
|
|
6
|
+
|------|------|
|
|
7
|
+
| CodeBuddy Code CLI | v2.106.3 |
|
|
8
|
+
| Agent SDK JS | v0.3.177 |
|
|
9
|
+
| Agent SDK Python | v0.3.176 |
|
|
10
|
+
|
|
11
|
+
## 🐛 问题修复
|
|
12
|
+
|
|
13
|
+
- **会话标题重复生成**:修复用户消息为数组形式(如包含图片或多段内容)时,会话标题被重复生成的问题。标题判定逻辑现已正确处理数组消息内容,仅在存在可见文本且非系统提醒时才触发生成。
|
|
14
|
+
- **压缩续聊重复注入上下文**:修复历史压缩后继续对话时,用户上下文被重复注入历史的问题,避免上下文冗余、提升续聊准确性。
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# 🚀 CodeBuddy Code v2.106.4 发布
|
|
2
|
+
|
|
3
|
+
## 📦 版本信息
|
|
4
|
+
|
|
5
|
+
| 组件 | 版本 |
|
|
6
|
+
|------|------|
|
|
7
|
+
| CodeBuddy Code CLI | v2.106.4 |
|
|
8
|
+
| Agent SDK JS | v0.3.178 |
|
|
9
|
+
| Agent SDK Python | v0.3.177 |
|
|
10
|
+
|
|
11
|
+
## ✨ 新功能
|
|
12
|
+
|
|
13
|
+
### 微信支付授权卡片
|
|
14
|
+
|
|
15
|
+
新增客户端支付授权卡片能力。当工具执行过程中需要用户确认支付时,CodeBuddy Code 可以在客户端展示支付卡片,支持用户完成授权、取消或查看支付结果,并将响应回传给正在执行的任务。
|
|
16
|
+
|
|
17
|
+
## 🔧 改进优化
|
|
18
|
+
|
|
19
|
+
- **沙箱运行时分发**:升级内置沙箱平台包版本,完善发布打包阶段的平台产物归集,提升沙箱运行时分发一致性。
|
|
20
|
+
- **支付卡片状态展示**:优化支付终态回传,支付成功、未完成或超时结束时展示更准确。
|
|
21
|
+
|
|
22
|
+
## 🐛 问题修复
|
|
23
|
+
|
|
24
|
+
- **MCP 动态授权状态**:修复 MCP 校验逻辑匹配范围过宽导致动态授权状态被误清理的问题,避免部分 MCP 配置或授权状态异常。
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# 🚀 CodeBuddy Code v2.106.5 发布
|
|
2
|
+
|
|
3
|
+
## 📦 版本信息
|
|
4
|
+
|
|
5
|
+
| 组件 | 版本 |
|
|
6
|
+
|------|------|
|
|
7
|
+
| CodeBuddy Code CLI | v2.106.5 |
|
|
8
|
+
| Agent SDK JS | v0.3.179 |
|
|
9
|
+
| Agent SDK Python | v0.3.178 |
|
|
10
|
+
|
|
11
|
+
## 🐛 问题修复
|
|
12
|
+
|
|
13
|
+
- **--help 模式挂起**:修复执行 `--help` 时因异步初始化阻塞导致进程无法退出的问题,增加超时保护和中断支持
|
|
14
|
+
- **MCP 服务器等待阻塞**:修复 `--help` 模式下 MCP 服务器启动等待阻塞输出的问题
|
|
15
|
+
- **错误恢复提示过时**:修复工具调用失败后,系统提示中的工具名列表未更新为当前实际工具名的问题
|
|
16
|
+
- **主对话结束后状态卡死**:修复交互模式下主任务结束后,底部加载状态偶发卡在"等待模型"、ESC 无响应的问题,后台辅助调用不再错误占用主会话运行状态
|
|
17
|
+
- **Glob 搜索工具挂起**:修复并行搜索场景下 Glob 工具可能永久挂起的问题,重构底层搜索流程的完成判定与超时控制,确保即使命中超大目录也能正常返回
|
|
18
|
+
- **多专家协作卡死**:修复多成员协作场景下,最后一个成员完成时主导方可能卡在"思考中"无输出的问题,确保完成通知可靠送达
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# 🚀 CodeBuddy Code v2.106.6 发布
|
|
2
|
+
|
|
3
|
+
## 📦 版本信息
|
|
4
|
+
|
|
5
|
+
| 组件 | 版本 |
|
|
6
|
+
|------|------|
|
|
7
|
+
| CodeBuddy Code CLI | v2.106.6 |
|
|
8
|
+
| Agent SDK JS | v0.3.180 |
|
|
9
|
+
| Agent SDK Python | v0.3.179 |
|
|
10
|
+
|
|
11
|
+
## 🐛 问题修复
|
|
12
|
+
|
|
13
|
+
- **命令执行兼容性**:修复在 fish 等非 POSIX 登录 shell 下执行命令失败的问题,自动回退到兼容 shell 执行命令,避免因 shell 语法不兼容导致直接报错。
|
|
14
|
+
- **自定义模型工具调用稳定性**:修复部分模型在流式响应中重复发送 tool call ID 时,工具调用失败的问题,提升工具调用链路稳定性。
|
|
15
|
+
- **后台任务输出读取**:将任务输出文件写入按用户和工作目录隔离的临时目录,避免共享环境中的目录权限冲突影响后台任务结果读取。
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# 🚀 CodeBuddy Code v2.107.0 发布
|
|
2
|
+
|
|
3
|
+
## 📦 版本信息
|
|
4
|
+
|
|
5
|
+
| 组件 | 版本 |
|
|
6
|
+
|------|------|
|
|
7
|
+
| CodeBuddy Code CLI | v2.107.0 |
|
|
8
|
+
| Agent SDK JS | v0.3.182 |
|
|
9
|
+
| Agent SDK Python | v0.3.181 |
|
|
10
|
+
|
|
11
|
+
## ✨ 新功能
|
|
12
|
+
|
|
13
|
+
### 预热进程(prewarm)
|
|
14
|
+
|
|
15
|
+
新增 `--prewarm` 待命模式,CodeBuddy Code 可以先完成启动初始化并挂起,等需要时再通过本地 IPC 唤醒并绑定工作目录。配套提供 `cbc-prewarm` 管理命令,支持查看、探活、查询状态和激活预热实例,在高频启动新会话的场景下可显著缩短等待时间。
|
|
16
|
+
|
|
17
|
+
## 🔧 改进优化
|
|
18
|
+
|
|
19
|
+
- **预热配置更统一**:预热能力统一改为通过 `--prewarm`、`--prewarm-id`、`--prewarm-force` CLI 参数控制,减少环境变量与命令行混用带来的排障成本。
|
|
20
|
+
- **工作目录切换更可靠**:切换工作目录时会自动刷新文件监听和项目级缓存,避免设置、记忆、技能、插件与产品配置继续引用旧目录。
|
|
21
|
+
- **预热实例管理更清晰**:`cbc-prewarm list` 现在可以正确发现待命实例;同一 `prewarmId` 默认不再互相抢占,只有显式传入 `--prewarm-force` 时才会接管旧实例。
|
|
22
|
+
- **ZIP marketplace 残留清理**:安装或更新成功后,会自动清理 `~/.codebuddy/plugins/marketplaces/` 下超过 1 小时的孤儿临时 zip 和解压目录,减少磁盘残留。
|
|
23
|
+
|
|
24
|
+
## 🐛 问题修复
|
|
25
|
+
|
|
26
|
+
- **空闲通知误报**:修复 agent 仍在输出或执行工具时反复弹出“等待输入”通知的问题,避免忙碌中的通知刷屏。
|
|
27
|
+
- **沙箱审批超时体验**:将沙箱命令审批等待时间延长到 30 分钟,并在超时后按“用户取消”处理,同时自动关闭残留审批弹框。
|
|
28
|
+
- **工作区信任红字误报**:修复工作区信任完成后仍残留 `apiKeyHelper blocked` 红字提示的问题,减少“已信任但看起来仍失败”的误解。
|
|
29
|
+
- **任务编号顺序**:修复并发创建多个任务时编号与计划顺序不一致的问题,让任务列表更符合实际创建顺序。
|
|
30
|
+
- **fish shell safe-delete 兼容性**:修复 fish 等非 POSIX shell 下 safe-delete 路径恢复逻辑在执行前直接报语法错误的问题。
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# 🚀 CodeBuddy Code v2.108.0 发布
|
|
2
|
+
|
|
3
|
+
## 📦 版本信息
|
|
4
|
+
|
|
5
|
+
| 组件 | 版本 |
|
|
6
|
+
|------|------|
|
|
7
|
+
| CodeBuddy Code CLI | v2.108.0 |
|
|
8
|
+
| Agent SDK JS | v0.3.183 |
|
|
9
|
+
| Agent SDK Python | v0.3.182 |
|
|
10
|
+
|
|
11
|
+
## ✨ 新功能
|
|
12
|
+
|
|
13
|
+
### 模型切换提示
|
|
14
|
+
|
|
15
|
+
当项目配置中已手动固定模型时,用户通过 `/model` 持久切换后,CodeBuddy Code 会明确提示:重启后项目配置仍会覆盖当前选择,并建议移除项目配置中的模型设置,以便真正持久化新的默认模型。
|
|
16
|
+
|
|
17
|
+
## 🐛 问题修复
|
|
18
|
+
|
|
19
|
+
- **请求追踪更准确**:修复多轮对话中多个模型请求复用同一组请求标识的问题,现在每次 HTTP 请求都会生成独立的 `X-Request-ID`,便于排查链路问题。
|
|
20
|
+
- **自定义 Agent 配置生成更稳定**:修复 AI 生成自定义 Agent 配置时,frontmatter 在多行描述或继承全部工具场景下可能不可解析的问题,降低生成后无法加载的情况。
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# 🚀 CodeBuddy Code v2.108.1 发布
|
|
2
|
+
|
|
3
|
+
## 📦 版本信息
|
|
4
|
+
|
|
5
|
+
| 组件 | 版本 |
|
|
6
|
+
|------|------|
|
|
7
|
+
| CodeBuddy Code CLI | v2.108.1 |
|
|
8
|
+
| Agent SDK JS | v0.3.184 |
|
|
9
|
+
| Agent SDK Python | v0.3.183 |
|
|
10
|
+
|
|
11
|
+
## 🐛 问题修复
|
|
12
|
+
|
|
13
|
+
- **专家团内容输出显示异常**:修复多智能体协作场景下,流式输出途中相邻片段因消息归组标识漂移,导致"深度思考"内容被拆成多条消息显示的问题;同时修复同一会话因竞态被重复触发并发运行、造成模型流式片段交错的问题
|
|
14
|
+
- **上下文摘要采样参数对齐主对话**:修复摘要请求绕过模型配置拦截器,导致缺失 temperature / reasoning 等采样参数的问题,现摘要请求与主对话使用一致的模型配置
|
|
15
|
+
- **safe-delete 在 fish shell 报语法错误**:修复 fish shell 下空 bootstrap 被拼入命令链导致的语法错误,确保普通 shell 命令和沙箱命令都能正常执行
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# 🚀 CodeBuddy Code v2.108.2 发布
|
|
2
|
+
|
|
3
|
+
## 📦 版本信息
|
|
4
|
+
|
|
5
|
+
| 组件 | 版本 |
|
|
6
|
+
|------|------|
|
|
7
|
+
| CodeBuddy Code CLI | v2.108.2 |
|
|
8
|
+
| Agent SDK JS | v0.3.185 |
|
|
9
|
+
| Agent SDK Python | v0.3.184 |
|
|
10
|
+
|
|
11
|
+
## 🐛 问题修复
|
|
12
|
+
|
|
13
|
+
- **对话积分归属**:修复多轮对话间请求标识复用,导致积分消耗可能串到上一轮消息的问题,确保每轮对话的积分消耗准确归属。
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# 🚀 CodeBuddy Code v2.109.0 发布
|
|
2
|
+
|
|
3
|
+
## 📦 版本信息
|
|
4
|
+
|
|
5
|
+
| 组件 | 版本 |
|
|
6
|
+
|------|------|
|
|
7
|
+
| CodeBuddy Code CLI | v2.109.0 |
|
|
8
|
+
| Agent SDK JS | v0.3.186 |
|
|
9
|
+
| Agent SDK Python | v0.3.185 |
|
|
10
|
+
|
|
11
|
+
## ✨ 新功能
|
|
12
|
+
|
|
13
|
+
### auto 权限模式
|
|
14
|
+
|
|
15
|
+
新增 `auto` 权限模式,让 CodeBuddy Code 在保证安全边界的前提下,更智能地判断每次工具调用是否需要用户审批,减少频繁确认对连续任务的打断。
|
|
16
|
+
|
|
17
|
+
- **智能分类放行**:根据操作风险、上下文语义和历史拒绝记录,动态决定当前工具调用是否可以直接执行。
|
|
18
|
+
- **二次校验机制**:新增 critique 复核环节,对分类结果再做一次检查,降低误放行概率。
|
|
19
|
+
- **会话内拒绝记忆**:记录用户手动拒绝过的工具调用,避免同一会话里反复请求相同操作。
|
|
20
|
+
- **权限说明自动注入**:自动向模型注入当前权限约束,帮助模型更准确地理解可执行边界。
|
|
21
|
+
|
|
22
|
+
## ⚠️ 升级提醒
|
|
23
|
+
|
|
24
|
+
- **Hook 权限模式输出变更**:`HookInput.permission_mode` 现在会输出真实运行时权限模式,可能包含 `plan`、`auto`、`bypassPermissions` 等新值。若你的自定义 hook 仍只处理 `default`、`acceptEdits`、`dontAsk` 三种情况,请同步补充分支逻辑。
|