@tencent-ai/codebuddy-code 2.81.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.
- package/CHANGELOG.md +15 -0
- package/dist/codebuddy-headless.js +33 -33
- package/dist/codebuddy.js +33 -33
- package/dist/web-ui/assets/{index-Dofz0a20.js → index-BPUMtuMu.js} +1 -1
- package/dist/web-ui/docs/cn/cli/env-vars.md +3 -1
- package/dist/web-ui/docs/cn/cli/keybindings.md +346 -0
- package/dist/web-ui/docs/cn/cli/memory.md +6 -7
- package/dist/web-ui/docs/cn/cli/release-notes/README.md +3 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.79.1.md +45 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.80.0.md +33 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.81.0.md +40 -0
- package/dist/web-ui/docs/cn/cli/settings.md +8 -5
- package/dist/web-ui/docs/cn/cli/tools-reference.md +27 -0
- package/dist/web-ui/docs/en/cli/env-vars.md +3 -1
- package/dist/web-ui/docs/en/cli/keybindings.md +346 -0
- package/dist/web-ui/docs/en/cli/memory.md +6 -7
- package/dist/web-ui/docs/en/cli/release-notes/README.md +3 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.79.1.md +45 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.80.0.md +33 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.81.0.md +40 -0
- package/dist/web-ui/docs/en/cli/settings.md +7 -4
- package/dist/web-ui/docs/en/cli/tools-reference.md +27 -0
- 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/dist/web-ui/index.html +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
|
@@ -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
|
-
###
|
|
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` |
|
|
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":
|
|
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
|
|
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
|
|
@@ -0,0 +1,346 @@
|
|
|
1
|
+
# Custom Keybindings
|
|
2
|
+
|
|
3
|
+
> Customize CodeBuddy Code keyboard shortcuts through the keybindings configuration file.
|
|
4
|
+
|
|
5
|
+
CodeBuddy Code supports custom keyboard shortcuts. Run the `/keybindings` command to create or open the configuration file located at `~/.codebuddy/keybindings.json`.
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
## Contexts
|
|
9
|
+
|
|
10
|
+
Each binding block specifies a **context** that determines when the shortcuts are active:
|
|
11
|
+
|
|
12
|
+
| Context | Description |
|
|
13
|
+
| :--- | :--- |
|
|
14
|
+
| `Global` | Active anywhere in the application |
|
|
15
|
+
| `Chat` | When the chat input box has focus |
|
|
16
|
+
| `InputBox` | When a text input box is active |
|
|
17
|
+
| `Terminal` | When the terminal view is active |
|
|
18
|
+
| `Autocomplete` | When the autocomplete menu is displayed |
|
|
19
|
+
| `Confirmation` | When a confirmation/permission dialog is displayed |
|
|
20
|
+
| `HistorySearch` | When searching command history (Ctrl+R) |
|
|
21
|
+
| `Task` | When a task/agent is running in the foreground |
|
|
22
|
+
| `Settings` | When the settings panel is open |
|
|
23
|
+
| `CommandPalette` | When the command palette is open |
|
|
24
|
+
| `Select` | When a select/list component has focus |
|
|
25
|
+
| `PermissionDialog` | When a tool permission dialog is displayed |
|
|
26
|
+
| `Help` | When the help page is open |
|
|
27
|
+
| `Plugin` | When the plugin dialog is open |
|
|
28
|
+
| `DiffDialog` | When the diff dialog is open |
|
|
29
|
+
| `MessageSelector` | When the message selector (rewind) is open |
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Available Actions
|
|
34
|
+
|
|
35
|
+
Actions follow the `namespace:action` format, such as `chat:submit` to send a message or `app:toggleTodos` to toggle the todo list. Each context has specific available actions.
|
|
36
|
+
|
|
37
|
+
### App Actions
|
|
38
|
+
|
|
39
|
+
Available in the `Global` context:
|
|
40
|
+
|
|
41
|
+
| Action | Default Key | Description |
|
|
42
|
+
| :--- | :--- | :--- |
|
|
43
|
+
| `app:interrupt` | Ctrl+C | Interrupt the current operation |
|
|
44
|
+
| `app:exit` | Ctrl+D | Exit CodeBuddy Code |
|
|
45
|
+
| `app:redraw` | Ctrl+L | Refresh the terminal screen |
|
|
46
|
+
| `app:toggleTodos` | Ctrl+T | Toggle the todo list |
|
|
47
|
+
| `app:toggleTranscript` | Ctrl+O | Toggle verbose transcript |
|
|
48
|
+
| `app:toggleSidebar` | Cmd+B | Toggle sidebar (Web UI) |
|
|
49
|
+
| `app:toggleTerminal` | Cmd+J | Toggle terminal (Web UI) |
|
|
50
|
+
| `app:commandPalette` | Cmd+Shift+P / Ctrl+Shift+P | Open command palette (Web UI) |
|
|
51
|
+
| `app:newChat` | Cmd+N | New conversation (Web UI) |
|
|
52
|
+
| `app:settings` | Cmd+, | Open settings (Web UI) |
|
|
53
|
+
| `app:focusInput` | Cmd+L | Focus input box (Web UI) |
|
|
54
|
+
|
|
55
|
+
### History Actions
|
|
56
|
+
|
|
57
|
+
For navigating command history:
|
|
58
|
+
|
|
59
|
+
| Action | Default Key | Description |
|
|
60
|
+
| :--- | :--- | :--- |
|
|
61
|
+
| `history:search` | Ctrl+R | Open history search |
|
|
62
|
+
| `history:previous` | Up | Previous history entry |
|
|
63
|
+
| `history:next` | Down | Next history entry |
|
|
64
|
+
|
|
65
|
+
### Chat Actions
|
|
66
|
+
|
|
67
|
+
Available in the `Chat` context:
|
|
68
|
+
|
|
69
|
+
| Action | Default Key | Description |
|
|
70
|
+
| :--- | :--- | :--- |
|
|
71
|
+
| `chat:cancel` | Escape | Cancel current input |
|
|
72
|
+
| `chat:submit` | Enter | Send message |
|
|
73
|
+
| `chat:killAgents` | Ctrl+X Ctrl+K | Kill all background agents |
|
|
74
|
+
| `chat:cycleMode` | Shift+Tab* | Cycle permission mode |
|
|
75
|
+
| `chat:modelPicker` | Meta+P | Open model picker |
|
|
76
|
+
| `chat:thinkingToggle` | Meta+T | Toggle extended thinking |
|
|
77
|
+
| `chat:undo` | Ctrl+_, Ctrl+Shift+- | Undo |
|
|
78
|
+
| `chat:externalEditor` | Ctrl+G, Ctrl+X Ctrl+E | Open in external editor |
|
|
79
|
+
| `chat:stash` | Ctrl+S | Stash current input |
|
|
80
|
+
| `chat:imagePaste` | Ctrl+V (Windows: Alt+V) | Paste image |
|
|
81
|
+
|
|
82
|
+
\*On Windows without VT mode (Node <24.2.0/<22.17.0, Bun <1.2.23), defaults to Meta+M.
|
|
83
|
+
|
|
84
|
+
### Autocomplete Actions
|
|
85
|
+
|
|
86
|
+
Available in the `Autocomplete` context:
|
|
87
|
+
|
|
88
|
+
| Action | Default Key | Description |
|
|
89
|
+
| :--- | :--- | :--- |
|
|
90
|
+
| `autocomplete:accept` | Tab | Accept suggestion |
|
|
91
|
+
| `autocomplete:dismiss` | Escape | Dismiss menu |
|
|
92
|
+
| `autocomplete:previous` | Up | Previous item |
|
|
93
|
+
| `autocomplete:next` | Down | Next item |
|
|
94
|
+
|
|
95
|
+
### Confirmation Actions
|
|
96
|
+
|
|
97
|
+
Available in the `Confirmation` context:
|
|
98
|
+
|
|
99
|
+
| Action | Default Key | Description |
|
|
100
|
+
| :--- | :--- | :--- |
|
|
101
|
+
| `confirm:yes` | Y, Enter | Confirm |
|
|
102
|
+
| `confirm:no` | N, Escape | Cancel |
|
|
103
|
+
| `confirm:previous` | Up | Previous item |
|
|
104
|
+
| `confirm:next` | Down | Next item |
|
|
105
|
+
| `confirm:toggle` | Space | Toggle selection |
|
|
106
|
+
| `confirm:toggleExplanation` | Ctrl+E | Toggle permission explanation |
|
|
107
|
+
| `permission:toggleDebug` | Ctrl+D | Toggle permission debug info |
|
|
108
|
+
|
|
109
|
+
### Transcript Actions
|
|
110
|
+
|
|
111
|
+
Available in the `Transcript` context:
|
|
112
|
+
|
|
113
|
+
| Action | Default Key | Description |
|
|
114
|
+
| :--- | :--- | :--- |
|
|
115
|
+
| `transcript:toggleShowAll` | Ctrl+E | Toggle show all content |
|
|
116
|
+
| `transcript:exit` | Q, Ctrl+C, Escape | Exit transcript view |
|
|
117
|
+
|
|
118
|
+
### History Search Actions
|
|
119
|
+
|
|
120
|
+
Available in the `HistorySearch` context:
|
|
121
|
+
|
|
122
|
+
| Action | Default Key | Description |
|
|
123
|
+
| :--- | :--- | :--- |
|
|
124
|
+
| `historySearch:next` | Ctrl+R | Next match |
|
|
125
|
+
| `historySearch:accept` | Escape, Tab | Accept selection |
|
|
126
|
+
| `historySearch:cancel` | Ctrl+C | Cancel search |
|
|
127
|
+
| `historySearch:execute` | Enter | Execute selected command |
|
|
128
|
+
|
|
129
|
+
### Task Actions
|
|
130
|
+
|
|
131
|
+
Available in the `Task` context:
|
|
132
|
+
|
|
133
|
+
| Action | Default Key | Description |
|
|
134
|
+
| :--- | :--- | :--- |
|
|
135
|
+
| `task:background` | Ctrl+B | Send current task to background |
|
|
136
|
+
|
|
137
|
+
### Help Actions
|
|
138
|
+
|
|
139
|
+
Available in the `Help` context:
|
|
140
|
+
|
|
141
|
+
| Action | Default Key | Description |
|
|
142
|
+
| :--- | :--- | :--- |
|
|
143
|
+
| `help:dismiss` | Escape | Dismiss help menu |
|
|
144
|
+
|
|
145
|
+
### Settings Actions
|
|
146
|
+
|
|
147
|
+
Available in the `Settings` context:
|
|
148
|
+
|
|
149
|
+
| Action | Default Key | Description |
|
|
150
|
+
| :--- | :--- | :--- |
|
|
151
|
+
| `settings:search` | / | Enter search mode |
|
|
152
|
+
| `settings:close` | Enter | Save and close settings panel |
|
|
153
|
+
|
|
154
|
+
### Select List Actions
|
|
155
|
+
|
|
156
|
+
Available in the `Select` context:
|
|
157
|
+
|
|
158
|
+
| Action | Default Key | Description |
|
|
159
|
+
| :--- | :--- | :--- |
|
|
160
|
+
| `select:next` | Down, J, Ctrl+N | Next item |
|
|
161
|
+
| `select:previous` | Up, K, Ctrl+P | Previous item |
|
|
162
|
+
| `select:accept` | Enter | Confirm selection |
|
|
163
|
+
| `select:cancel` | Escape | Cancel selection |
|
|
164
|
+
|
|
165
|
+
### Command Palette Actions
|
|
166
|
+
|
|
167
|
+
Available in the `CommandPalette` context:
|
|
168
|
+
|
|
169
|
+
| Action | Default Key | Description |
|
|
170
|
+
| :--- | :--- | :--- |
|
|
171
|
+
| `commandPalette:previous` | Up | Previous item |
|
|
172
|
+
| `commandPalette:next` | Down | Next item |
|
|
173
|
+
| `commandPalette:execute` | Enter | Execute command |
|
|
174
|
+
| `commandPalette:close` | Escape | Close palette |
|
|
175
|
+
|
|
176
|
+
### Diff Actions
|
|
177
|
+
|
|
178
|
+
Available in the `DiffDialog` context:
|
|
179
|
+
|
|
180
|
+
| Action | Default Key | Description |
|
|
181
|
+
| :--- | :--- | :--- |
|
|
182
|
+
| `diff:dismiss` | Escape | Dismiss diff viewer |
|
|
183
|
+
| `diff:previousFile` | Up | Previous file |
|
|
184
|
+
| `diff:nextFile` | Down | Next file |
|
|
185
|
+
| `diff:viewDetails` | Enter | View details |
|
|
186
|
+
|
|
187
|
+
### Message Selector Actions
|
|
188
|
+
|
|
189
|
+
Available in the `MessageSelector` context:
|
|
190
|
+
|
|
191
|
+
| Action | Default Key | Description |
|
|
192
|
+
| :--- | :--- | :--- |
|
|
193
|
+
| `messageSelector:up` | Up, K, Ctrl+P | Move up |
|
|
194
|
+
| `messageSelector:down` | Down, J, Ctrl+N | Move down |
|
|
195
|
+
| `messageSelector:top` | Shift+Up | Jump to top |
|
|
196
|
+
| `messageSelector:bottom` | Shift+Down | Jump to bottom |
|
|
197
|
+
| `messageSelector:select` | Enter | Select message |
|
|
198
|
+
|
|
199
|
+
### Plugin Actions
|
|
200
|
+
|
|
201
|
+
Available in the `Plugin` context:
|
|
202
|
+
|
|
203
|
+
| Action | Default Key | Description |
|
|
204
|
+
| :--- | :--- | :--- |
|
|
205
|
+
| `plugin:toggle` | Space | Toggle plugin selection |
|
|
206
|
+
| `plugin:install` | I | Install selected plugin |
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## Key Syntax
|
|
211
|
+
|
|
212
|
+
### Modifiers
|
|
213
|
+
|
|
214
|
+
Combine modifiers using the `+` separator:
|
|
215
|
+
|
|
216
|
+
- `ctrl` or `control` — Control key
|
|
217
|
+
- `alt`, `opt`, or `option` — Alt/Option key
|
|
218
|
+
- `shift` — Shift key
|
|
219
|
+
- `meta`, `cmd`, or `command` — Meta/Command key
|
|
220
|
+
|
|
221
|
+
Examples:
|
|
222
|
+
|
|
223
|
+
```
|
|
224
|
+
ctrl+k Single modifier + key
|
|
225
|
+
shift+tab Shift + Tab
|
|
226
|
+
meta+p Command/Meta + P
|
|
227
|
+
ctrl+shift+c Multiple modifiers
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
### Chords
|
|
231
|
+
|
|
232
|
+
Chords are consecutive key combinations separated by spaces:
|
|
233
|
+
|
|
234
|
+
```
|
|
235
|
+
ctrl+x ctrl+k Press Ctrl+X, release, then press Ctrl+K
|
|
236
|
+
ctrl+x ctrl+e Press Ctrl+X, release, then press Ctrl+E
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
Chords have a 1000ms timeout. If the second step is not completed before the timeout, the chord is cancelled.
|
|
240
|
+
|
|
241
|
+
### Special Keys
|
|
242
|
+
|
|
243
|
+
- `escape` or `esc` — Escape key
|
|
244
|
+
- `enter` or `return` — Enter key
|
|
245
|
+
- `tab` — Tab key
|
|
246
|
+
- `space` — Space key
|
|
247
|
+
- `up`, `down`, `left`, `right` — Arrow keys
|
|
248
|
+
- `backspace`, `delete` — Delete keys
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## Unbinding Default Shortcuts
|
|
253
|
+
|
|
254
|
+
Set an action to `null` to unbind a default shortcut:
|
|
255
|
+
|
|
256
|
+
```json
|
|
257
|
+
{
|
|
258
|
+
"bindings": [
|
|
259
|
+
{
|
|
260
|
+
"context": "Chat",
|
|
261
|
+
"bindings": {
|
|
262
|
+
"ctrl+s": null
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
]
|
|
266
|
+
}
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
After unbinding all chord combinations, the prefix key can be used as a single-key binding:
|
|
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
|
+
If only some chord sequences are unbound, pressing the prefix key will still enter chord waiting mode.
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
290
|
+
## Reserved Shortcuts
|
|
291
|
+
|
|
292
|
+
The following shortcuts cannot be rebound:
|
|
293
|
+
|
|
294
|
+
| Shortcut | Reason |
|
|
295
|
+
| :--- | :--- |
|
|
296
|
+
| Ctrl+C | Hard-coded interrupt/cancel |
|
|
297
|
+
| Ctrl+D | Hard-coded exit |
|
|
298
|
+
| Ctrl+M | Equivalent to Enter in terminals (both send CR) |
|
|
299
|
+
|
|
300
|
+
---
|
|
301
|
+
|
|
302
|
+
## Terminal Conflicts
|
|
303
|
+
|
|
304
|
+
Some shortcuts may conflict with terminal multiplexers:
|
|
305
|
+
|
|
306
|
+
| Shortcut | Conflict |
|
|
307
|
+
| :--- | :--- |
|
|
308
|
+
| Ctrl+B | tmux prefix key (press twice to send) |
|
|
309
|
+
| Ctrl+A | GNU screen prefix key |
|
|
310
|
+
| Ctrl+Z | Unix process suspend (SIGTSTP) |
|
|
311
|
+
|
|
312
|
+
---
|
|
313
|
+
|
|
314
|
+
## Web UI Visual Configuration
|
|
315
|
+
|
|
316
|
+
In addition to editing the JSON file, you can manage shortcuts through the visual interface in the Web UI:
|
|
317
|
+
|
|
318
|
+
1. Click **Keybindings** in the sidebar navigation, or use the URL `#/keybindings`
|
|
319
|
+
2. Use the search box to filter shortcuts by name, key, or context
|
|
320
|
+
3. Click the edit button (pencil icon) to record a new shortcut combination
|
|
321
|
+
4. The recording dialog shows real-time conflict detection
|
|
322
|
+
5. User-customized bindings are marked with a highlighted left border
|
|
323
|
+
6. Click the reset button to restore individual bindings to their defaults
|
|
324
|
+
|
|
325
|
+
### REST API
|
|
326
|
+
|
|
327
|
+
The Web UI manages shortcuts through the REST API:
|
|
328
|
+
|
|
329
|
+
| Endpoint | Method | Description |
|
|
330
|
+
| :--- | :--- | :--- |
|
|
331
|
+
| `/api/v1/keybindings` | GET | Get all shortcuts (default + user + merged) |
|
|
332
|
+
| `/api/v1/keybindings` | PUT | Save user shortcut configuration |
|
|
333
|
+
| `/api/v1/keybindings/reset` | POST | Reset to defaults (delete user configuration) |
|
|
334
|
+
| `/api/v1/keybindings/validate` | POST | Validate configuration (without saving) |
|
|
335
|
+
|
|
336
|
+
---
|
|
337
|
+
|
|
338
|
+
## Validation
|
|
339
|
+
|
|
340
|
+
CodeBuddy Code validates your keybinding configuration and displays warnings for the following:
|
|
341
|
+
|
|
342
|
+
- Parse errors (invalid JSON or structure)
|
|
343
|
+
- Invalid context names
|
|
344
|
+
- Reserved shortcut conflicts
|
|
345
|
+
- Terminal multiplexer conflicts
|
|
346
|
+
- Duplicate bindings within the same context
|
|
@@ -332,9 +332,9 @@ Each project has a `MEMORY.md` index file, whose first 200 lines are automatical
|
|
|
332
332
|
- Configure via `settings.json`: `"memory": { "autoMemoryEnabled": false }`
|
|
333
333
|
- Via environment variable: `CODEBUDDY_DISABLE_AUTO_MEMORY=1`
|
|
334
334
|
|
|
335
|
-
### Typed Memory Mode
|
|
335
|
+
### Typed Memory Mode
|
|
336
336
|
|
|
337
|
-
Typed Memory is an enhanced version of Auto Memory that provides a structured memory type system
|
|
337
|
+
Typed Memory is an enhanced version of Auto Memory that provides a structured memory type system (enabled by default). Memory files are managed using YAML frontmatter and 4 types.
|
|
338
338
|
|
|
339
339
|
**4 memory types:**
|
|
340
340
|
|
|
@@ -357,13 +357,12 @@ type: user
|
|
|
357
357
|
The user is a senior backend engineer with 10 years of Go experience, but new to the project's React frontend.
|
|
358
358
|
```
|
|
359
359
|
|
|
360
|
-
**How to
|
|
360
|
+
**How to disable (if you need to fall back to the general format):**
|
|
361
361
|
|
|
362
|
-
-
|
|
363
|
-
-
|
|
364
|
-
- Via environment variable: `CODEBUDDY_TYPED_MEMORY_ENABLED=true`
|
|
362
|
+
- Configure via `settings.json`: `"memory": { "typedMemory": false }`
|
|
363
|
+
- Via environment variable: `CODEBUDDY_TYPED_MEMORY_ENABLED=false`
|
|
365
364
|
|
|
366
|
-
> **Tip**:
|
|
365
|
+
> **Tip**: Typed Memory is enabled by default. If disabled, Auto Memory uses a simplified general format without a type system or YAML frontmatter.
|
|
367
366
|
|
|
368
367
|
## Cache and Reload
|
|
369
368
|
|
|
@@ -17,6 +17,9 @@ Difference from CHANGELOG.md:
|
|
|
17
17
|
|
|
18
18
|
<!-- New versions are automatically added here -->
|
|
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 Release
|
|
2
|
+
|
|
3
|
+
## ✨ New Features
|
|
4
|
+
|
|
5
|
+
### Daemon Persistent Mode & Background Sessions
|
|
6
|
+
|
|
7
|
+
Added Daemon process support, manageable via `daemon start/stop/status/restart` commands for background-running CLI instances. Also supports the `--bg` parameter to start tasks in the background, with `ps/logs/attach/kill` commands for full lifecycle management of background tasks.
|
|
8
|
+
|
|
9
|
+
### Web UI Workers & Log Management
|
|
10
|
+
|
|
11
|
+
Web UI now includes a Workers page for visual management of all Worker processes and Daemons, supporting start/stop and terminate operations. A new standalone log viewer supports 4 log types (telemetry/process/debug/conversation) switching, keyword search, and syntax highlighting.
|
|
12
|
+
|
|
13
|
+
### System Monitoring View
|
|
14
|
+
|
|
15
|
+
Web UI now includes a Metrics page displaying system CPU, memory, and disk usage overview along with per-instance process-level resource metrics (RSS, Heap, uptime), with 8-second auto-polling refresh to help you stay on top of resource status.
|
|
16
|
+
|
|
17
|
+
### Editor Experience Overhaul
|
|
18
|
+
|
|
19
|
+
- **Tab Enhancements**: Support for drag-and-drop reordering, pinned tabs (Pin), overflow scroll arrows, and enhanced context menu (copy path, reveal in file tree, close to the right, close saved)
|
|
20
|
+
- **Breadcrumb Navigation**: File path hierarchy displayed at the top of the editor, click to quickly switch between sibling files
|
|
21
|
+
- **Quick Open**: Support for Cmd+P / Ctrl+P to quickly search and open files
|
|
22
|
+
- **File Preview**: Support for image preview (zoom/drag/checkerboard background), Markdown, PDF, SVG preview, and binary file info page
|
|
23
|
+
- **Status Bar**: Bottom bar displaying cursor position, selection info, language type, and other editor status
|
|
24
|
+
- **Recent Files**: Empty editor page shows a list of recently opened files
|
|
25
|
+
|
|
26
|
+
## 🔧 Improvements
|
|
27
|
+
|
|
28
|
+
- **Execution Phase Tracking**: Loading status bar now shows fine-grained execution phases (preparing / waiting for model / streaming / processing / running tool), helping you understand what the Agent is currently doing
|
|
29
|
+
- **Extended Background Task Support**: stream-json and headless modes now support background tasks; only print mode (`-p`) retains the original limitation
|
|
30
|
+
- **Settings Page Refactoring**: Refactored into a data-driven settings panel with REST API support for reading/writing user-level settings, including toggle, select, text input, and JSON editor controls, with save feedback notification after operations
|
|
31
|
+
- **Code Block Optimization**: Copy button changed to hover-floating display, language label bar removed for a cleaner interface
|
|
32
|
+
- **Menu Interaction Improvements**: Slash commands, @ file completion, and + function panel now support click-outside-to-close
|
|
33
|
+
|
|
34
|
+
## 🐛 Bug Fixes
|
|
35
|
+
|
|
36
|
+
- **Command Completion Menu**: Fixed the issue where the completion menu remained visible while typing command arguments; the menu now correctly closes when the cursor leaves the command name area
|
|
37
|
+
- **Metrics Collection**: Fixed circular API call issue with the metrics endpoint in multi-instance scenarios
|
|
38
|
+
- **Session Working Directory**: Fixed the issue where Web UI session working directory was set to a URL instead of the actual path
|
|
39
|
+
|
|
40
|
+
## 📝 Documentation Updates
|
|
41
|
+
|
|
42
|
+
- **Daemon Usage Guide**: Added comprehensive Daemon persistent mode usage guide
|
|
43
|
+
- **API Documentation**: Added documentation for new API endpoints including Workers, Daemon, and Metrics
|
|
44
|
+
- **ACP Protocol Documentation**: Updated ACP protocol documentation with new features such as Team status push
|
|
45
|
+
- **Release Notes Sync**: Synced v2.77.0 ~ v2.79.0 release notes to IDE documentation site
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# 🚀 CodeBuddy Code v2.80.0 Release
|
|
2
|
+
|
|
3
|
+
## ✨ New Features
|
|
4
|
+
|
|
5
|
+
### Native Windows PowerShell Support
|
|
6
|
+
|
|
7
|
+
Added native PowerShell command execution tool that automatically detects PowerShell 7+ and Windows PowerShell 5.1 versions with adapted syntax guidance. When Git Bash is not installed, PowerShell automatically becomes the sole shell tool without crashing. Includes 24 built-in security validations covering dangerous patterns such as code injection, download-and-execute, and privilege escalation.
|
|
8
|
+
|
|
9
|
+
### Memory System Overhaul
|
|
10
|
+
|
|
11
|
+
- Typed Memory enabled by default, using 4 memory types (user/feedback/project/reference) for structured cross-session memory management
|
|
12
|
+
- Automatically selects the most relevant memories based on user queries to inject into context, helping the AI better understand your project and preferences
|
|
13
|
+
- Memories older than 1 day include a staleness warning; file paths or function names from memories trigger a reminder to verify they still exist before use
|
|
14
|
+
- Supports automatic memory extraction after conversation ends (must be manually enabled in settings)
|
|
15
|
+
|
|
16
|
+
### GLM-5.1 Model
|
|
17
|
+
|
|
18
|
+
Added GLM-5.1 and GLM-5.1-ioa model configurations.
|
|
19
|
+
|
|
20
|
+
## 🔧 Improvements
|
|
21
|
+
|
|
22
|
+
- **Windows Process Management Enhancement**: Replaced simple kill with taskkill process tree termination, improving process cleanup reliability on Windows
|
|
23
|
+
- **Windows Exit Code Semantics**: Correctly interprets non-standard exit codes from Windows tools such as robocopy and xcopy
|
|
24
|
+
- **JSON Parameter Fix Enhancement**: Fixed the issue where `">` was incorrectly used as `":` in LLM output, causing tool call parameter parsing failures
|
|
25
|
+
- **Plugin Update Resilience**: Automatically detects or reinstalls when plugin installation path is missing, preventing update failures
|
|
26
|
+
- **Rating Panel Interaction**: Rating panel now only intercepts rating key presses when open, no longer disabling the entire input box
|
|
27
|
+
- **Request Compatibility**: Removed trailing assistant messages without tool_calls, improving compatibility with more OpenAI-compatible APIs
|
|
28
|
+
- **WeChat Work Group Chat Optimization**: Support for group chat messages prefixed with @bot-name for permission replies, auto-skip "next step suggestions" in group chats, differentiated welcome messages for group/private chats, and added [Please reply to confirm] prefix for permission confirmation messages
|
|
29
|
+
|
|
30
|
+
## 🐛 Bug Fixes
|
|
31
|
+
|
|
32
|
+
- **Terminal Resource Leak**: Fixed the issue where Web UI terminal PTY sessions were not cleaned up on process exit, preventing system PTY device exhaustion
|
|
33
|
+
- **AskUserQuestion Defensive Improvement**: Fixed incorrect handling of empty questions/options in the component, added automatic rejection of invalid questions and filtering of empty label options
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# 🚀 CodeBuddy Code v2.81.0 Release
|
|
2
|
+
|
|
3
|
+
## ✨ New Features
|
|
4
|
+
|
|
5
|
+
### Command Palette
|
|
6
|
+
|
|
7
|
+
Support for Cmd+Shift+P (Mac) / Ctrl+Shift+P (Windows) to open the global command palette with fuzzy search for commands, view navigation, and actions for quick access to various features.
|
|
8
|
+
|
|
9
|
+
### Global Keyboard Shortcuts
|
|
10
|
+
|
|
11
|
+
Added 5 global keyboard shortcuts covering command palette, sidebar toggle, terminal toggle, new conversation, and open settings, improving operational efficiency.
|
|
12
|
+
|
|
13
|
+
### Toast Notification System
|
|
14
|
+
|
|
15
|
+
Added a unified Toast notification component, replacing the previous silent error swallowing approach to ensure important information is not missed.
|
|
16
|
+
|
|
17
|
+
### Error Boundary
|
|
18
|
+
|
|
19
|
+
Added a global error boundary component to prevent a single component crash from causing the entire page to go blank, improving application stability.
|
|
20
|
+
|
|
21
|
+
### Tool Process Collapsing
|
|
22
|
+
|
|
23
|
+
After Agent execution completes, tool call processes automatically collapse into summary lines, keeping the conversation interface clean while allowing on-demand expansion to view details.
|
|
24
|
+
|
|
25
|
+
## 🔧 Improvements
|
|
26
|
+
|
|
27
|
+
- **Unified Confirm Dialog**: Added ConfirmDialog component for a consistent global confirmation interaction experience
|
|
28
|
+
- **Status Bar Optimization**: Completed all view titles, added model name and connection status display for at-a-glance information
|
|
29
|
+
- **Accessibility Enhancement**: Added global focus styles, ARIA role annotations, and disabled state standards to improve accessibility
|
|
30
|
+
- **Mobile Adaptation**: InputBox safe area adaptation, iOS tap highlight fix, and PWA manifest support
|
|
31
|
+
- **Design System Upgrade**: Added interactive state CSS variables and Tailwind design token extensions for improved visual consistency
|
|
32
|
+
- **Border Contrast Fix**: Fixed nearly invisible borders in light/dark themes
|
|
33
|
+
- **Plugin Marketplace Source Validation**: Added cnb.cool and cnb.woa.com as trusted sources, expanding plugin installation channels
|
|
34
|
+
- **ACP Protocol Compliance**: Removed non-compliant custom message types, strictly adhering to ACP specification
|
|
35
|
+
- **Default Agent Configuration**: Support for specifying the default agent via the `agent` field in `settings.json`
|
|
36
|
+
|
|
37
|
+
## 🐛 Bug Fixes
|
|
38
|
+
|
|
39
|
+
- **Agent Recovery After Compact**: Fixed the issue where the session incorrectly used the compact agent after context compression, ensuring subsequent conversations resume normally
|
|
40
|
+
- **AskUserQuestion Input Normalization**: Fixed compatibility issues when the model returns incorrect field names or formats, with multi-point defense at both the tool layer and UI layer
|
|
@@ -63,6 +63,7 @@ The `settings.json` file is the official mechanism for configuring CodeBuddy Cod
|
|
|
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
65
|
| `model` | Override the default model used by CodeBuddy Code | `"gpt-5"` |
|
|
66
|
+
| `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"` |
|
|
66
67
|
| `statusLine` | Configure a custom status line to display context. See [statusLine documentation](#status-line-configuration) | `{"type": "command", "command": "~/.codebuddy/statusline.sh"}` |
|
|
67
68
|
| `enableAllProjectMcpServers` | Auto-approve all MCP servers defined in the project's `.mcp.json` file | `true` |
|
|
68
69
|
| `enabledMcpjsonServers` | List of specific MCP servers approved from `.mcp.json` files | `["memory", "github"]` |
|
|
@@ -95,9 +96,10 @@ Memory allows CodeBuddy Code to maintain persistent memory across sessions, auto
|
|
|
95
96
|
|
|
96
97
|
| Key | Description | Example |
|
|
97
98
|
|:------|:-----|:-----|
|
|
98
|
-
| `enabled` | Whether to enable memory (default: `false`) | `true` |
|
|
99
99
|
| `autoMemoryEnabled` | Whether to enable Auto Memory (default: `true`). Auto Memory allows CodeBuddy to automatically manage persistent cross-session memory, stored in `~/.codebuddy/memories/` | `true` |
|
|
100
|
-
| `typedMemory` |
|
|
100
|
+
| `typedMemory` | Whether to enable Typed Memory mode (default: `true`). When enabled, uses 4 memory types (user/feedback/project/reference) + YAML frontmatter format for memory management | `true` |
|
|
101
|
+
| `relevanceSelection` | Whether to enable memory relevance selection (default: `true`). When enabled, automatically selects up to 5 relevant memories to inject into context based on user queries | `true` |
|
|
102
|
+
| `memoryExtraction` | Whether to enable background memory extraction (default: `false`). When enabled, automatically extracts information worth remembering from conversations at the end of a session | `true` |
|
|
101
103
|
| `teamMemory.enabled` | Whether to enable team memory mode (default: `false`). When enabled, project memories are stored in the project directory for team sharing | `true` |
|
|
102
104
|
| `teamMemory.userId` | Team user ID for isolating different users' memories. Defaults to auto-detection (git user.name > system username) | `"yangsubo"` |
|
|
103
105
|
|
|
@@ -106,9 +108,10 @@ Memory allows CodeBuddy Code to maintain persistent memory across sessions, auto
|
|
|
106
108
|
```json
|
|
107
109
|
{
|
|
108
110
|
"memory": {
|
|
109
|
-
"enabled": true,
|
|
110
111
|
"autoMemoryEnabled": true,
|
|
111
|
-
"typedMemory":
|
|
112
|
+
"typedMemory": true,
|
|
113
|
+
"relevanceSelection": true,
|
|
114
|
+
"memoryExtraction": false,
|
|
112
115
|
"teamMemory": {
|
|
113
116
|
"enabled": true,
|
|
114
117
|
"userId": "yangsubo"
|