@tencent-ai/codebuddy-code 2.80.0 → 2.81.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.
Files changed (36) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/dist/codebuddy-headless.js +105 -94
  3. package/dist/codebuddy.js +130 -119
  4. package/dist/web-ui/assets/index-BH_HlE2i.css +32 -0
  5. package/dist/web-ui/assets/{index-CcRN0PLN.js → index-BPUMtuMu.js} +188 -164
  6. package/dist/web-ui/docs/cn/cli/env-vars.md +3 -1
  7. package/dist/web-ui/docs/cn/cli/keybindings.md +346 -0
  8. package/dist/web-ui/docs/cn/cli/memory.md +6 -7
  9. package/dist/web-ui/docs/cn/cli/release-notes/README.md +3 -0
  10. package/dist/web-ui/docs/cn/cli/release-notes/v2.79.1.md +45 -0
  11. package/dist/web-ui/docs/cn/cli/release-notes/v2.80.0.md +33 -0
  12. package/dist/web-ui/docs/cn/cli/release-notes/v2.81.0.md +40 -0
  13. package/dist/web-ui/docs/cn/cli/settings.md +8 -5
  14. package/dist/web-ui/docs/cn/cli/tools-reference.md +27 -0
  15. package/dist/web-ui/docs/en/cli/env-vars.md +3 -1
  16. package/dist/web-ui/docs/en/cli/keybindings.md +346 -0
  17. package/dist/web-ui/docs/en/cli/memory.md +6 -7
  18. package/dist/web-ui/docs/en/cli/release-notes/README.md +3 -0
  19. package/dist/web-ui/docs/en/cli/release-notes/v2.79.1.md +45 -0
  20. package/dist/web-ui/docs/en/cli/release-notes/v2.80.0.md +33 -0
  21. package/dist/web-ui/docs/en/cli/release-notes/v2.81.0.md +40 -0
  22. package/dist/web-ui/docs/en/cli/settings.md +7 -4
  23. package/dist/web-ui/docs/en/cli/tools-reference.md +27 -0
  24. package/dist/web-ui/docs/search-index-en.json +1 -1
  25. package/dist/web-ui/docs/search-index-zh.json +1 -1
  26. package/dist/web-ui/docs/sidebar-en.json +1 -1
  27. package/dist/web-ui/docs/sidebar-zh.json +1 -1
  28. package/dist/web-ui/index.html +6 -2
  29. package/dist/web-ui/manifest.webmanifest +17 -0
  30. package/package.json +1 -1
  31. package/product.cloudhosted.json +2 -2
  32. package/product.internal.json +2 -2
  33. package/product.ioa.json +2 -2
  34. package/product.json +3 -3
  35. package/product.selfhosted.json +2 -2
  36. package/dist/web-ui/assets/index-C7MTLJe8.css +0 -32
@@ -104,9 +104,11 @@ CodeBuddy Code 支持通过环境变量来控制其行为。这些变量可以
104
104
 
105
105
  | 环境变量 | 说明 |
106
106
  |---------|------|
107
- | `CODEBUDDY_CODE_SHELL` | 覆盖自动 shell 检测。支持的值:`bash`、`zsh`、`sh`、`powershell`、`cmd` |
107
+ | `CODEBUDDY_CODE_SHELL` | 覆盖自动 shell 检测。支持的值:`bash`、`zsh`、`sh`、`powershell` |
108
108
  | `CODEBUDDY_CODE_SHELL_PREFIX` | 包装所有 shell 命令的命令前缀(如用于日志或审计) |
109
109
  | `CODEBUDDY_CODE_GIT_BASH_PATH` | Windows 下显式指定 Git Bash 路径 |
110
+ | `CODEBUDDY_POWERSHELL_PATH` | 显式指定 PowerShell 可执行文件路径(优先于自动检测) |
111
+ | `CODEBUDDY_USE_POWERSHELL_TOOL` | 控制 PowerShell 工具启用状态。Windows 上默认启用,设为 `0` 可禁用 |
110
112
  | `CODEBUDDY_ENV_FILE` | 在执行每个 shell 命令前自动 source 的环境文件路径 |
111
113
 
112
114
  ## UI 和交互
@@ -0,0 +1,346 @@
1
+ # 自定义快捷键
2
+
3
+ > 通过 keybindings 配置文件自定义 CodeBuddy Code 的键盘快捷键。
4
+
5
+ CodeBuddy Code 支持自定义键盘快捷键。运行 `/keybindings` 命令创建或打开位于 `~/.codebuddy/keybindings.json` 的配置文件。
6
+
7
+
8
+ ## 上下文(Contexts)
9
+
10
+ 每个绑定块指定一个 **context**,决定快捷键在何时生效:
11
+
12
+ | Context | 说明 |
13
+ | :--- | :--- |
14
+ | `Global` | 在应用的任何位置生效 |
15
+ | `Chat` | 聊天输入框获得焦点时 |
16
+ | `InputBox` | 文本输入框处于活跃状态时 |
17
+ | `Terminal` | 终端视图处于活跃状态时 |
18
+ | `Autocomplete` | 自动补全菜单显示时 |
19
+ | `Confirmation` | 确认/权限对话框显示时 |
20
+ | `HistorySearch` | 搜索命令历史时 (Ctrl+R) |
21
+ | `Task` | 任务/代理在前台运行时 |
22
+ | `Settings` | 设置面板打开时 |
23
+ | `CommandPalette` | 命令面板打开时 |
24
+ | `Select` | 选择/列表组件获得焦点时 |
25
+ | `PermissionDialog` | 工具权限对话框显示时 |
26
+ | `Help` | 帮助页面打开时 |
27
+ | `Plugin` | 插件对话框打开时 |
28
+ | `DiffDialog` | Diff 对话框打开时 |
29
+ | `MessageSelector` | 消息选择器 (rewind) 打开时 |
30
+
31
+ ---
32
+
33
+ ## 可用动作(Actions)
34
+
35
+ 动作遵循 `namespace:action` 格式,如 `chat:submit` 发送消息、`app:toggleTodos` 切换待办事项列表。每个上下文有特定的可用动作。
36
+
37
+ ### 应用动作
38
+
39
+ 在 `Global` 上下文中可用:
40
+
41
+ | 动作 | 默认按键 | 说明 |
42
+ | :--- | :--- | :--- |
43
+ | `app:interrupt` | Ctrl+C | 中断当前操作 |
44
+ | `app:exit` | Ctrl+D | 退出 CodeBuddy Code |
45
+ | `app:redraw` | Ctrl+L | 刷新终端屏幕 |
46
+ | `app:toggleTodos` | Ctrl+T | 切换待办事项列表 |
47
+ | `app:toggleTranscript` | Ctrl+O | 切换详细转录 |
48
+ | `app:toggleSidebar` | Cmd+B | 切换侧边栏(Web UI) |
49
+ | `app:toggleTerminal` | Cmd+J | 切换终端(Web UI) |
50
+ | `app:commandPalette` | Cmd+Shift+P / Ctrl+Shift+P | 打开命令面板(Web UI) |
51
+ | `app:newChat` | Cmd+N | 新建对话(Web UI) |
52
+ | `app:settings` | Cmd+, | 打开设置(Web UI) |
53
+ | `app:focusInput` | Cmd+L | 聚焦输入框(Web UI) |
54
+
55
+ ### 历史动作
56
+
57
+ 用于导航命令历史:
58
+
59
+ | 动作 | 默认按键 | 说明 |
60
+ | :--- | :--- | :--- |
61
+ | `history:search` | Ctrl+R | 打开历史搜索 |
62
+ | `history:previous` | Up | 上一条历史 |
63
+ | `history:next` | Down | 下一条历史 |
64
+
65
+ ### 聊天动作
66
+
67
+ 在 `Chat` 上下文中可用:
68
+
69
+ | 动作 | 默认按键 | 说明 |
70
+ | :--- | :--- | :--- |
71
+ | `chat:cancel` | Escape | 取消当前输入 |
72
+ | `chat:submit` | Enter | 发送消息 |
73
+ | `chat:killAgents` | Ctrl+X Ctrl+K | 终止所有后台代理 |
74
+ | `chat:cycleMode` | Shift+Tab* | 切换权限模式 |
75
+ | `chat:modelPicker` | Meta+P | 打开模型选择器 |
76
+ | `chat:thinkingToggle` | Meta+T | 切换扩展思考 |
77
+ | `chat:undo` | Ctrl+_, Ctrl+Shift+- | 撤销 |
78
+ | `chat:externalEditor` | Ctrl+G, Ctrl+X Ctrl+E | 在外部编辑器中打开 |
79
+ | `chat:stash` | Ctrl+S | 暂存当前输入 |
80
+ | `chat:imagePaste` | Ctrl+V (Windows: Alt+V) | 粘贴图片 |
81
+
82
+ \*在没有 VT 模式的 Windows 上(Node <24.2.0/<22.17.0,Bun <1.2.23),默认为 Meta+M。
83
+
84
+ ### 自动补全动作
85
+
86
+ 在 `Autocomplete` 上下文中可用:
87
+
88
+ | 动作 | 默认按键 | 说明 |
89
+ | :--- | :--- | :--- |
90
+ | `autocomplete:accept` | Tab | 接受建议 |
91
+ | `autocomplete:dismiss` | Escape | 关闭菜单 |
92
+ | `autocomplete:previous` | Up | 上一项 |
93
+ | `autocomplete:next` | Down | 下一项 |
94
+
95
+ ### 确认动作
96
+
97
+ 在 `Confirmation` 上下文中可用:
98
+
99
+ | 动作 | 默认按键 | 说明 |
100
+ | :--- | :--- | :--- |
101
+ | `confirm:yes` | Y, Enter | 确认 |
102
+ | `confirm:no` | N, Escape | 取消 |
103
+ | `confirm:previous` | Up | 上一项 |
104
+ | `confirm:next` | Down | 下一项 |
105
+ | `confirm:toggle` | Space | 切换选中 |
106
+ | `confirm:toggleExplanation` | Ctrl+E | 切换权限说明 |
107
+ | `permission:toggleDebug` | Ctrl+D | 切换权限调试信息 |
108
+
109
+ ### 转录动作
110
+
111
+ 在 `Transcript` 上下文中可用:
112
+
113
+ | 动作 | 默认按键 | 说明 |
114
+ | :--- | :--- | :--- |
115
+ | `transcript:toggleShowAll` | Ctrl+E | 切换显示全部内容 |
116
+ | `transcript:exit` | Q, Ctrl+C, Escape | 退出转录视图 |
117
+
118
+ ### 历史搜索动作
119
+
120
+ 在 `HistorySearch` 上下文中可用:
121
+
122
+ | 动作 | 默认按键 | 说明 |
123
+ | :--- | :--- | :--- |
124
+ | `historySearch:next` | Ctrl+R | 下一条匹配 |
125
+ | `historySearch:accept` | Escape, Tab | 接受选择 |
126
+ | `historySearch:cancel` | Ctrl+C | 取消搜索 |
127
+ | `historySearch:execute` | Enter | 执行选中命令 |
128
+
129
+ ### 任务动作
130
+
131
+ 在 `Task` 上下文中可用:
132
+
133
+ | 动作 | 默认按键 | 说明 |
134
+ | :--- | :--- | :--- |
135
+ | `task:background` | Ctrl+B | 将当前任务转入后台 |
136
+
137
+ ### 帮助动作
138
+
139
+ 在 `Help` 上下文中可用:
140
+
141
+ | 动作 | 默认按键 | 说明 |
142
+ | :--- | :--- | :--- |
143
+ | `help:dismiss` | Escape | 关闭帮助菜单 |
144
+
145
+ ### 设置动作
146
+
147
+ 在 `Settings` 上下文中可用:
148
+
149
+ | 动作 | 默认按键 | 说明 |
150
+ | :--- | :--- | :--- |
151
+ | `settings:search` | / | 进入搜索模式 |
152
+ | `settings:close` | Enter | 保存并关闭配置面板 |
153
+
154
+ ### 选择列表动作
155
+
156
+ 在 `Select` 上下文中可用:
157
+
158
+ | 动作 | 默认按键 | 说明 |
159
+ | :--- | :--- | :--- |
160
+ | `select:next` | Down, J, Ctrl+N | 下一项 |
161
+ | `select:previous` | Up, K, Ctrl+P | 上一项 |
162
+ | `select:accept` | Enter | 确认选择 |
163
+ | `select:cancel` | Escape | 取消选择 |
164
+
165
+ ### 命令面板动作
166
+
167
+ 在 `CommandPalette` 上下文中可用:
168
+
169
+ | 动作 | 默认按键 | 说明 |
170
+ | :--- | :--- | :--- |
171
+ | `commandPalette:previous` | Up | 上一项 |
172
+ | `commandPalette:next` | Down | 下一项 |
173
+ | `commandPalette:execute` | Enter | 执行命令 |
174
+ | `commandPalette:close` | Escape | 关闭面板 |
175
+
176
+ ### Diff 动作
177
+
178
+ 在 `DiffDialog` 上下文中可用:
179
+
180
+ | 动作 | 默认按键 | 说明 |
181
+ | :--- | :--- | :--- |
182
+ | `diff:dismiss` | Escape | 关闭 Diff 查看器 |
183
+ | `diff:previousFile` | Up | 上一个文件 |
184
+ | `diff:nextFile` | Down | 下一个文件 |
185
+ | `diff:viewDetails` | Enter | 查看详情 |
186
+
187
+ ### 消息选择器动作
188
+
189
+ 在 `MessageSelector` 上下文中可用:
190
+
191
+ | 动作 | 默认按键 | 说明 |
192
+ | :--- | :--- | :--- |
193
+ | `messageSelector:up` | Up, K, Ctrl+P | 向上移动 |
194
+ | `messageSelector:down` | Down, J, Ctrl+N | 向下移动 |
195
+ | `messageSelector:top` | Shift+Up | 跳到顶部 |
196
+ | `messageSelector:bottom` | Shift+Down | 跳到底部 |
197
+ | `messageSelector:select` | Enter | 选择消息 |
198
+
199
+ ### 插件动作
200
+
201
+ 在 `Plugin` 上下文中可用:
202
+
203
+ | 动作 | 默认按键 | 说明 |
204
+ | :--- | :--- | :--- |
205
+ | `plugin:toggle` | Space | 切换插件选中 |
206
+ | `plugin:install` | I | 安装选中插件 |
207
+
208
+ ---
209
+
210
+ ## 按键语法
211
+
212
+ ### 修饰键
213
+
214
+ 使用 `+` 分隔符组合修饰键:
215
+
216
+ - `ctrl` 或 `control` — Control 键
217
+ - `alt`、`opt` 或 `option` — Alt/Option 键
218
+ - `shift` — Shift 键
219
+ - `meta`、`cmd` 或 `command` — Meta/Command 键
220
+
221
+ 示例:
222
+
223
+ ```
224
+ ctrl+k 单个修饰键 + 按键
225
+ shift+tab Shift + Tab
226
+ meta+p Command/Meta + P
227
+ ctrl+shift+c 多个修饰键
228
+ ```
229
+
230
+ ### 弦序列(Chords)
231
+
232
+ 弦序列是用空格分隔的连续按键组合:
233
+
234
+ ```
235
+ ctrl+x ctrl+k 先按 Ctrl+X,松开,再按 Ctrl+K
236
+ ctrl+x ctrl+e 先按 Ctrl+X,松开,再按 Ctrl+E
237
+ ```
238
+
239
+ 弦序列有 1000ms 超时。如果超时未完成第二步,弦序列将被取消。
240
+
241
+ ### 特殊按键
242
+
243
+ - `escape` 或 `esc` — Escape 键
244
+ - `enter` 或 `return` — Enter 键
245
+ - `tab` — Tab 键
246
+ - `space` — 空格键
247
+ - `up`、`down`、`left`、`right` — 方向键
248
+ - `backspace`、`delete` — 删除键
249
+
250
+ ---
251
+
252
+ ## 解绑默认快捷键
253
+
254
+ 将动作设为 `null` 以解绑默认快捷键:
255
+
256
+ ```json
257
+ {
258
+ "bindings": [
259
+ {
260
+ "context": "Chat",
261
+ "bindings": {
262
+ "ctrl+s": null
263
+ }
264
+ }
265
+ ]
266
+ }
267
+ ```
268
+
269
+ 解绑弦序列的所有组合后,可以将前缀键用作单键绑定:
270
+
271
+ ```json
272
+ {
273
+ "bindings": [
274
+ {
275
+ "context": "Chat",
276
+ "bindings": {
277
+ "ctrl+x ctrl+k": null,
278
+ "ctrl+x ctrl+e": null,
279
+ "ctrl+x": "chat:newline"
280
+ }
281
+ }
282
+ ]
283
+ }
284
+ ```
285
+
286
+ 如果只解绑了部分弦序列,按下前缀键仍会进入弦等待模式。
287
+
288
+ ---
289
+
290
+ ## 保留快捷键
291
+
292
+ 以下快捷键不可重新绑定:
293
+
294
+ | 快捷键 | 原因 |
295
+ | :--- | :--- |
296
+ | Ctrl+C | 硬编码的中断/取消 |
297
+ | Ctrl+D | 硬编码的退出 |
298
+ | Ctrl+M | 在终端中等同于 Enter(两者都发送 CR) |
299
+
300
+ ---
301
+
302
+ ## 终端冲突
303
+
304
+ 某些快捷键可能与终端复用器冲突:
305
+
306
+ | 快捷键 | 冲突 |
307
+ | :--- | :--- |
308
+ | Ctrl+B | tmux 前缀键(按两次发送) |
309
+ | Ctrl+A | GNU screen 前缀键 |
310
+ | Ctrl+Z | Unix 进程挂起 (SIGTSTP) |
311
+
312
+ ---
313
+
314
+ ## Web UI 可视化配置
315
+
316
+ 除了编辑 JSON 文件,你还可以在 Web UI 中通过可视化界面管理快捷键:
317
+
318
+ 1. 在侧边栏点击 **快捷键** 导航项,或使用 URL `#/keybindings`
319
+ 2. 使用搜索框按名称、按键或上下文筛选快捷键
320
+ 3. 点击编辑按钮(铅笔图标)录制新的快捷键组合
321
+ 4. 录制对话框会实时显示冲突检测
322
+ 5. 用户自定义的绑定以左侧高亮边框标记
323
+ 6. 点击重置按钮可恢复单个绑定为默认值
324
+
325
+ ### REST API
326
+
327
+ Web UI 通过 REST API 管理快捷键:
328
+
329
+ | 端点 | 方法 | 说明 |
330
+ | :--- | :--- | :--- |
331
+ | `/api/v1/keybindings` | GET | 获取所有快捷键(默认 + 用户 + 合并) |
332
+ | `/api/v1/keybindings` | PUT | 保存用户快捷键配置 |
333
+ | `/api/v1/keybindings/reset` | POST | 重置为默认值(删除用户配置) |
334
+ | `/api/v1/keybindings/validate` | POST | 验证配置(不保存) |
335
+
336
+ ---
337
+
338
+ ## 验证
339
+
340
+ CodeBuddy Code 会验证你的快捷键配置并对以下情况显示警告:
341
+
342
+ - 解析错误(无效的 JSON 或结构)
343
+ - 无效的上下文名称
344
+ - 保留快捷键冲突
345
+ - 终端复用器冲突
346
+ - 同一上下文中的重复绑定
@@ -332,9 +332,9 @@ Auto Memory 是 CodeBuddy Code 的自动记忆系统,允许 CodeBuddy 在会
332
332
  - 通过 `settings.json` 配置:`"memory": { "autoMemoryEnabled": false }`
333
333
  - 通过环境变量:`CODEBUDDY_DISABLE_AUTO_MEMORY=1`
334
334
 
335
- ### Typed Memory 模式(Experimental)
335
+ ### Typed Memory 模式
336
336
 
337
- Typed Memory 是 Auto Memory 的增强版本,提供结构化的记忆类型系统。启用后,记忆文件使用 YAML frontmatter 和 4 种类型进行管理。
337
+ Typed Memory 是 Auto Memory 的增强版本,提供结构化的记忆类型系统(默认启用)。记忆文件使用 YAML frontmatter 和 4 种类型进行管理。
338
338
 
339
339
  **4 种记忆类型:**
340
340
 
@@ -357,13 +357,12 @@ type: user
357
357
  用户是资深后端工程师,拥有 10 年 Go 语言经验,但首次接触项目的 React 前端部分。
358
358
  ```
359
359
 
360
- **启用方式:**
360
+ **禁用方式(如需回退到通用格式):**
361
361
 
362
- - 通过 `/config` 面板启用 `[Experimental] Typed Memory`
363
- - 通过 `settings.json` 配置:`"memory": { "typedMemory": true }`
364
- - 通过环境变量:`CODEBUDDY_TYPED_MEMORY_ENABLED=true`
362
+ - 通过 `settings.json` 配置:`"memory": { "typedMemory": false }`
363
+ - 通过环境变量:`CODEBUDDY_TYPED_MEMORY_ENABLED=false`
365
364
 
366
- > **提示**:Typed Memory 关闭时,Auto Memory 会使用简化的通用格式,无类型系统和 YAML frontmatter。
365
+ > **提示**:Typed Memory 默认启用。如果禁用,Auto Memory 会使用简化的通用格式,无类型系统和 YAML frontmatter。
367
366
 
368
367
  ## 缓存与重载
369
368
 
@@ -17,6 +17,9 @@ Release Notes 记录了每个版本的用户可见变更,包括:
17
17
 
18
18
  <!-- 新版本自动添加到此处 -->
19
19
 
20
+ - [v2.81.0](./v2.81.0.md) - 2026-04-08
21
+ - [v2.80.0](./v2.80.0.md) - 2026-04-08
22
+ - [v2.79.1](./v2.79.1.md) - 2026-04-07
20
23
  - [v2.79.0](./v2.79.0.md) - 2026-04-07
21
24
  - [v2.78.1](./v2.78.1.md) - 2026-04-05
22
25
  - [v2.78.0](./v2.78.0.md) - 2026-04-05
@@ -0,0 +1,45 @@
1
+ # 🚀 CodeBuddy Code v2.79.1 发布
2
+
3
+ ## ✨ 新功能
4
+
5
+ ### Daemon 常驻模式与后台会话
6
+
7
+ 新增 Daemon 守护进程支持,可通过 `daemon start/stop/status/restart` 命令管理后台运行的 CLI 实例。同时支持 `--bg` 参数在后台启动任务,配合 `ps/logs/attach/kill` 命令对后台任务进行全生命周期管理。
8
+
9
+ ### Web UI Workers 与日志管理
10
+
11
+ Web UI 新增 Workers 页面,可视化管理所有 Worker 进程和 Daemon,支持启停、终止操作。同时新增独立日志查看器,支持 4 种日志类型(遥测/进程/调试/对话)切换、关键词搜索和语法高亮。
12
+
13
+ ### 系统监控视图
14
+
15
+ Web UI 新增 Metrics 页面,展示系统 CPU、内存、磁盘使用概览以及各实例进程级资源指标(RSS、Heap、运行时长),支持 8 秒自动轮询刷新,帮助随时掌握资源状态。
16
+
17
+ ### 编辑器体验全面升级
18
+
19
+ - **标签增强**:支持拖拽排序、固定标签(Pin)、溢出滚动箭头,以及增强右键菜单(复制路径、在文件树中定位、关闭右侧、关闭已保存)
20
+ - **面包屑导航**:编辑器顶部显示文件路径层级,点击可快速切换同级文件
21
+ - **快速打开**:支持 Cmd+P / Ctrl+P 快速搜索并打开文件
22
+ - **文件预览**:支持图片(缩放/拖拽/棋盘格背景)、Markdown、PDF、SVG 预览和二进制文件信息页
23
+ - **状态栏**:底部显示光标位置、选区信息、语言类型等编辑状态
24
+ - **最近文件**:空编辑器页面展示最近打开文件列表
25
+
26
+ ## 🔧 改进优化
27
+
28
+ - **执行阶段追踪**:Loading 状态栏新增细粒度执行阶段显示(preparing / waiting for model / streaming / processing / running tool),帮助了解 Agent 当前正在做什么
29
+ - **后台任务支持扩展**:stream-json 和 headless 模式现已支持后台任务,仅 print 模式(`-p`)保持原有限制
30
+ - **设置页面重构**:重构为数据驱动的设置面板,支持通过 REST API 读写用户级设置,包含开关、选择、文本输入、JSON 编辑等控件,操作后有保存反馈提示
31
+ - **代码块优化**:复制按钮改为悬停浮动显示,去除语言标签栏,界面更简洁
32
+ - **菜单交互改进**:斜杠命令、@ 文件补全、+ 功能面板现支持点击外部自动关闭
33
+
34
+ ## 🐛 问题修复
35
+
36
+ - **命令补全菜单**:修复输入命令参数时补全菜单仍然显示的问题,光标离开命令名区域后菜单会正确关闭
37
+ - **指标采集**:修复多实例场景下 metrics 接口的循环调用问题
38
+ - **会话工作目录**:修复 Web UI 会话工作目录设置为 URL 而非实际路径的问题
39
+
40
+ ## 📝 文档更新
41
+
42
+ - **Daemon 使用文档**:新增 Daemon 常驻模式完整使用指南
43
+ - **API 文档补充**:补充 Workers、Daemon、Metrics 等新增 API 端点文档
44
+ - **ACP 协议文档**:更新 ACP 协议文档,补充 Team 状态推送等新特性说明
45
+ - **发布说明同步**:同步 v2.77.0 ~ v2.79.0 发布说明到 IDE 文档站
@@ -0,0 +1,33 @@
1
+ # 🚀 CodeBuddy Code v2.80.0 发布
2
+
3
+ ## ✨ 新功能
4
+
5
+ ### Windows PowerShell 原生支持
6
+
7
+ 新增原生 PowerShell 命令执行工具,自动检测 PowerShell 7+ 和 Windows PowerShell 5.1 版本并适配语法指导。未安装 Git Bash 时,PowerShell 自动成为唯一 shell 工具,不再崩溃退出。内置 24 项安全验证,覆盖代码注入、下载执行、提权操作等危险模式。
8
+
9
+ ### Memory 系统全面升级
10
+
11
+ - Typed Memory 默认启用,使用 4 种记忆类型(user/feedback/project/reference)结构化管理跨会话记忆
12
+ - 根据用户查询自动选择最相关的记忆注入上下文,让 AI 更了解你的项目和偏好
13
+ - 超过 1 天的记忆附带陈旧警告,使用记忆中的文件路径或函数名前会提醒先验证是否仍存在
14
+ - 支持对话结束后自动提取记忆(需在设置中手动启用)
15
+
16
+ ### GLM-5.1 模型
17
+
18
+ 新增 GLM-5.1 及 GLM-5.1-ioa 模型配置。
19
+
20
+ ## 🔧 改进优化
21
+
22
+ - **Windows 进程管理增强**:使用 taskkill 进程树终止替代简单 kill,提升 Windows 上的进程清理可靠性
23
+ - **Windows 退出码语义**:正确解释 robocopy、xcopy 等 Windows 工具的非标准退出码
24
+ - **JSON 参数修复增强**:修复 LLM 输出中 `">` 被误用为 `":` 导致工具调用参数解析失败的问题
25
+ - **插件更新容错**:插件安装路径丢失时自动探测或重新安装,避免更新失败
26
+ - **评价面板交互**:评价面板打开时仅拦截评分按键,不再禁用整个输入框
27
+ - **请求兼容性**:移除尾部无 tool_calls 的 assistant 消息,兼容更多 OpenAI 兼容 API
28
+ - **企微群聊优化**:支持带 @机器人名 前缀的群聊消息权限回复、群聊自动跳过"下一步建议"、区分群聊/私聊欢迎语、权限确认消息添加 [请回复确认] 前缀
29
+
30
+ ## 🐛 问题修复
31
+
32
+ - **终端资源泄漏**:修复进程退出时 Web UI 终端 PTY 会话未被清理的问题,防止系统 PTY 设备耗尽
33
+ - **AskUserQuestion 防御性改进**:修复空问题/空选项时组件未正确处理的问题,增加自动拒绝无效问题和过滤空标签选项
@@ -0,0 +1,40 @@
1
+ # 🚀 CodeBuddy Code v2.81.0 发布
2
+
3
+ ## ✨ 新功能
4
+
5
+ ### 命令面板
6
+
7
+ 支持 Cmd+Shift+P (Mac) / Ctrl+Shift+P (Windows) 打开全局命令面板,模糊搜索命令、视图导航和操作,快速访问各项功能。
8
+
9
+ ### 全局快捷键
10
+
11
+ 新增 5 个全局快捷键,覆盖命令面板、侧边栏切换、终端切换、新建对话和打开设置,提升操作效率。
12
+
13
+ ### Toast 通知系统
14
+
15
+ 新增统一的 Toast 通知组件,替代之前静默吞噬的错误处理方式,确保重要信息不会被遗漏。
16
+
17
+ ### Error Boundary
18
+
19
+ 新增全局错误边界组件,防止单个组件崩溃导致整个页面白屏,提升应用稳定性。
20
+
21
+ ### 工具过程折叠
22
+
23
+ Agent 执行完成后,工具调用过程自动折叠为摘要行,保持对话界面整洁,需要时可按需展开查看细节。
24
+
25
+ ## 🔧 改进优化
26
+
27
+ - **确认对话框统一**:新增 ConfirmDialog 组件,统一全局确认交互体验
28
+ - **状态栏优化**:补全所有视图标题,增加模型名和连接状态显示,信息一目了然
29
+ - **无障碍增强**:添加全局焦点样式、ARIA 角色标注、disabled 状态规范,提升无障碍体验
30
+ - **移动端适配**:InputBox 安全区域适配、iOS 点击高亮修复、PWA manifest 支持
31
+ - **设计系统升级**:新增交互状态 CSS 变量、Tailwind 设计 token 扩展,提升视觉一致性
32
+ - **边框对比度修复**:修复浅色/深色主题边框几乎不可见的问题
33
+ - **插件市场来源校验**:新增 cnb.cool 和 cnb.woa.com 为可信来源,扩展插件安装渠道
34
+ - **ACP 协议合规**:移除不合规的自定义消息类型,严格遵循 ACP 规范
35
+ - **默认 Agent 配置**:支持通过 `settings.json` 的 `agent` 字段指定默认 agent
36
+
37
+ ## 🐛 问题修复
38
+
39
+ - **Compact 后 Agent 恢复**:修复上下文压缩后 session 错误使用 compact agent 的问题,确保后续对话正常恢复
40
+ - **AskUserQuestion 输入规范化**:修复模型返回错误字段名或格式时的兼容性问题,在工具层和 UI 层多点防御
@@ -63,6 +63,7 @@ CodeBuddy Code 使用分层配置系统,让您能够在不同级别进行个
63
63
  | `hooks` | 配置在工具执行前后运行的自定义命令。见 [hooks 文档](hooks.md) | `{"PreToolUse": {"Bash": "echo 'Running command...'"}}` |
64
64
  | `disableAllHooks` | 禁用所有 [hooks](hooks.md) | `true` |
65
65
  | `model` | 覆盖 CodeBuddy Code 使用的默认模型 | `"gpt-5"` |
66
+ | `agent` | 覆盖主线程使用的 agent 名称(内置或自定义 agent),应用该 agent 的 system prompt、工具限制和模型配置。优先级:`product.json default` → `plugin agent` → `settings.json agent` → `CLI --agent` | `"my-reviewer"` |
66
67
  | `statusLine` | 配置自定义状态行以显示上下文。见 [statusLine 文档](#状态行配置) | `{"type": "command", "command": "~/.codebuddy/statusline.sh"}` |
67
68
  | `enableAllProjectMcpServers` | 自动批准项目 `.mcp.json` 文件中定义的所有 MCP 服务器 | `true` |
68
69
  | `enabledMcpjsonServers` | 从 `.mcp.json` 文件批准的特定 MCP 服务器列表 | `["memory", "github"]` |
@@ -89,15 +90,16 @@ CodeBuddy Code 使用分层配置系统,让您能够在不同级别进行个
89
90
  | `defaultMode` | 打开 CodeBuddy Code 时的默认[权限模式](iam.md#权限模式) | `"acceptEdits"` |
90
91
  | `disableBypassPermissionsMode` | 设置为 `"disable"` 以防止激活 `bypassPermissions` 模式。这会禁用 `-y` 和 `--dangerously-skip-permissions` 命令行标志 | `"disable"` |
91
92
 
92
- ### 记忆功能配置(Experimental)
93
+ ### 记忆功能配置
93
94
 
94
95
  记忆功能允许 CodeBuddy Code 在会话之间保持持久化记忆,自动管理项目上下文和学习历史。
95
96
 
96
97
  | 配置键 | 描述 | 示例 |
97
98
  |:------|:-----|:-----|
98
- | `enabled` | 是否启用记忆功能(默认:`false`) | `true` |
99
99
  | `autoMemoryEnabled` | 是否启用 Auto Memory 功能(默认:`true`)。Auto Memory 允许 CodeBuddy 自动管理跨会话的持久化记忆,存储在 `~/.codebuddy/memories/` 目录 | `true` |
100
- | `typedMemory` | [Experimental] 是否启用 Typed Memory 模式(默认:`false`)。启用后使用 4 种记忆类型(user/feedback/project/reference)+ YAML frontmatter 格式管理记忆 | `true` |
100
+ | `typedMemory` | 是否启用 Typed Memory 模式(默认:`true`)。启用后使用 4 种记忆类型(user/feedback/project/reference)+ YAML frontmatter 格式管理记忆 | `true` |
101
+ | `relevanceSelection` | 是否启用记忆相关性选择(默认:`true`)。启用后根据用户查询自动选择最多 5 个相关记忆注入上下文 | `true` |
102
+ | `memoryExtraction` | 是否启用后台记忆提取(默认:`false`)。启用后在对话结束时自动从对话中提取值得记住的信息 | `true` |
101
103
  | `teamMemory.enabled` | 是否启用团队记忆模式(默认:`false`)。启用后,项目记忆存储在项目目录下,便于团队共享 | `true` |
102
104
  | `teamMemory.userId` | 团队用户 ID,用于隔离不同用户的记忆。默认自动获取(git user.name > 系统用户名) | `"yangsubo"` |
103
105
 
@@ -106,9 +108,10 @@ CodeBuddy Code 使用分层配置系统,让您能够在不同级别进行个
106
108
  ```json
107
109
  {
108
110
  "memory": {
109
- "enabled": true,
110
111
  "autoMemoryEnabled": true,
111
- "typedMemory": false,
112
+ "typedMemory": true,
113
+ "relevanceSelection": true,
114
+ "memoryExtraction": false,
112
115
  "teamMemory": {
113
116
  "enabled": true,
114
117
  "userId": "yangsubo"
@@ -25,6 +25,7 @@ CodeBuddy Code 内置一系列工具来帮助理解和修改代码库。下表
25
25
  | `LSP` | 通过语言服务器提供代码智能。文件编辑后自动报告类型错误和警告。还支持跳转定义、查找引用、获取类型信息、列出符号、查找实现、追踪调用层级等导航操作。需要[代码智能插件](plugins.md)及其语言服务器二进制文件 | 否 |
26
26
  | `MultiEdit` | 在单个原子操作中对同一文件执行多步编辑 | 是 |
27
27
  | `NotebookEdit` | 修改 Jupyter notebook 单元格内容 | 是 |
28
+ | `PowerShell` | 在 Windows 上执行 PowerShell 命令。仅 Windows 可用,参见 [PowerShell 工具行为](#powershell-工具行为) | 是 |
28
29
  | `Read` | 读取文件内容,支持图片、PDF 和 Jupyter notebook | 否 |
29
30
  | `SendMessage` | 在 [Agent 团队](agent-teams.md)中向队友发送消息 | 否 |
30
31
  | `Skill` | 在主对话中执行 [Skill 技能](skills.md) | 否 |
@@ -53,6 +54,7 @@ CodeBuddy Code 内置一系列工具来帮助理解和修改代码库。下表
53
54
  | :--- | :--- |
54
55
  | `TaskOutput` | `BashOutput` |
55
56
  | `TaskStop` | `KillShell` |
57
+ | `PowerShell` | `pwsh`、`ps` |
56
58
 
57
59
  ## Bash 工具行为
58
60
 
@@ -73,6 +75,31 @@ Bash 工具支持[沙箱隔离](bash-sandboxing.md),可限制文件系统和
73
75
 
74
76
  通过 `run_in_background` 参数可将命令在后台运行,使用 `TaskOutput` 工具读取输出。适用于长时间运行的构建、测试等场景。
75
77
 
78
+ ## PowerShell 工具行为
79
+
80
+ PowerShell 工具仅在 Windows 上可用,提供原生 PowerShell 命令执行能力。
81
+
82
+ ### 与 Bash 工具的关系
83
+
84
+ * **有 Git Bash 时**:Bash 工具和 PowerShell 工具同时可用,模型根据场景选择合适的工具
85
+ * **无 Git Bash 时**:Bash 工具自动禁用,PowerShell 工具成为唯一的 shell 工具
86
+ * macOS/Linux 上 PowerShell 工具不可用
87
+
88
+ ### 版本适配
89
+
90
+ PowerShell 工具自动检测 PowerShell 版本,优先使用 PowerShell 7+(pwsh),其次使用 Windows PowerShell 5.1。prompt 中的语法指导会根据版本差异自动调整(如 `&&` 操作符仅 7+ 支持)。
91
+
92
+ ### 安全检查
93
+
94
+ PowerShell 工具内置安全检查器,覆盖代码注入、下载执行、提权操作、系统破坏等危险模式。危险命令(如 `Invoke-Expression`、`Add-Type`)会被阻止,系统修改类命令需要用户确认。
95
+
96
+ ### 环境变量
97
+
98
+ | 环境变量 | 说明 |
99
+ |---------|------|
100
+ | `CODEBUDDY_POWERSHELL_PATH` | 显式指定 PowerShell 路径(优先于自动检测) |
101
+ | `CODEBUDDY_USE_POWERSHELL_TOOL` | 设为 `0` 禁用 PowerShell 工具 |
102
+
76
103
  ## 延迟加载工具
77
104
 
78
105
  部分工具(如通过 [MCP 服务器](mcp.md)提供的工具)采用延迟加载机制。这些工具不会在初始工具列表中出现,需要通过 `ToolSearch` 发现和激活。一旦激活,工具在会话剩余时间内保持可用。
@@ -104,9 +104,11 @@ CodeBuddy Code supports environment variables to control its behavior. These var
104
104
 
105
105
  | Environment Variable | Description |
106
106
  |---------|------|
107
- | `CODEBUDDY_CODE_SHELL` | Override automatic shell detection. Supported values: `bash`, `zsh`, `sh`, `powershell`, `cmd` |
107
+ | `CODEBUDDY_CODE_SHELL` | Override automatic shell detection. Supported values: `bash`, `zsh`, `sh`, `powershell` |
108
108
  | `CODEBUDDY_CODE_SHELL_PREFIX` | Command prefix wrapping all shell commands (e.g., for logging or auditing) |
109
109
  | `CODEBUDDY_CODE_GIT_BASH_PATH` | Explicitly specify the Git Bash path on Windows |
110
+ | `CODEBUDDY_POWERSHELL_PATH` | Explicitly specify the PowerShell executable path (takes priority over auto-detection) |
111
+ | `CODEBUDDY_USE_POWERSHELL_TOOL` | Control PowerShell tool enablement. Enabled by default on Windows, set to `0` to disable |
110
112
  | `CODEBUDDY_ENV_FILE` | Path to an environment file that is automatically sourced before executing each shell command |
111
113
 
112
114
  ## UI and Interaction