@tencent-ai/codebuddy-code 2.80.0 → 2.81.1-next.84eab07.20260409
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 +42 -0
- package/dist/codebuddy-headless.js +105 -94
- package/dist/codebuddy.js +130 -119
- package/dist/web-ui/assets/index-BH_HlE2i.css +32 -0
- package/dist/web-ui/assets/{index-CcRN0PLN.js → index-BPUMtuMu.js} +188 -164
- 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 +6 -2
- package/dist/web-ui/manifest.webmanifest +17 -0
- package/package.json +3 -2
- package/product.cloudhosted.json +2 -2
- package/product.internal.json +2 -2
- package/product.ioa.json +2 -2
- package/product.json +3 -3
- package/product.selfhosted.json +2 -2
- package/dist/web-ui/assets/index-C7MTLJe8.css +0 -32
|
@@ -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"
|
|
@@ -25,6 +25,7 @@ CodeBuddy Code includes a set of built-in tools to help understand and modify yo
|
|
|
25
25
|
| `LSP` | Provides code intelligence via Language Server. Automatically reports type errors and warnings after file edits. Also supports navigation operations such as go-to-definition, find references, get type info, list symbols, find implementations, and trace call hierarchies. Requires a [Code Intelligence Plugin](plugins.md) and its language server binary | No |
|
|
26
26
|
| `MultiEdit` | Performs multiple edits on the same file in a single atomic operation | Yes |
|
|
27
27
|
| `NotebookEdit` | Modifies Jupyter notebook cell contents | Yes |
|
|
28
|
+
| `PowerShell` | Executes PowerShell commands on Windows. Only available on Windows, see [PowerShell Tool Behavior](#powershell-tool-behavior) | Yes |
|
|
28
29
|
| `Read` | Reads file contents, supporting images, PDFs, and Jupyter notebooks | No |
|
|
29
30
|
| `SendMessage` | Sends messages to teammates in an [Agent Team](agent-teams.md) | No |
|
|
30
31
|
| `Skill` | Executes a [Skill](skills.md) in the main conversation | No |
|
|
@@ -53,6 +54,7 @@ Some tools have aliases that can be used interchangeably in permission rules:
|
|
|
53
54
|
| :--- | :--- |
|
|
54
55
|
| `TaskOutput` | `BashOutput` |
|
|
55
56
|
| `TaskStop` | `KillShell` |
|
|
57
|
+
| `PowerShell` | `pwsh`, `ps` |
|
|
56
58
|
|
|
57
59
|
## Bash Tool Behavior
|
|
58
60
|
|
|
@@ -73,6 +75,31 @@ The `dangerouslyDisableSandbox` parameter allows bypassing the sandbox on a per-
|
|
|
73
75
|
|
|
74
76
|
The `run_in_background` parameter allows running commands in the background, using the `TaskOutput` tool to read the output. This is suitable for long-running builds, tests, and similar scenarios.
|
|
75
77
|
|
|
78
|
+
## PowerShell Tool Behavior
|
|
79
|
+
|
|
80
|
+
The PowerShell tool is only available on Windows and provides native PowerShell command execution.
|
|
81
|
+
|
|
82
|
+
### Relationship with Bash Tool
|
|
83
|
+
|
|
84
|
+
* **With Git Bash**: Both Bash and PowerShell tools are available; the model chooses the appropriate tool based on the scenario
|
|
85
|
+
* **Without Git Bash**: The Bash tool is automatically disabled, and the PowerShell tool becomes the only shell tool
|
|
86
|
+
* The PowerShell tool is not available on macOS/Linux
|
|
87
|
+
|
|
88
|
+
### Version Adaptation
|
|
89
|
+
|
|
90
|
+
The PowerShell tool automatically detects the PowerShell version, preferring PowerShell 7+ (pwsh) and falling back to Windows PowerShell 5.1. Syntax guidance in prompts adjusts automatically based on version differences (e.g., the `&&` operator is only supported in 7+).
|
|
91
|
+
|
|
92
|
+
### Security Checks
|
|
93
|
+
|
|
94
|
+
The PowerShell tool includes a built-in security checker covering dangerous patterns such as code injection, download-and-execute, privilege escalation, and system destruction. Dangerous commands (e.g., `Invoke-Expression`, `Add-Type`) are blocked, and system-modifying commands require user confirmation.
|
|
95
|
+
|
|
96
|
+
### Environment Variables
|
|
97
|
+
|
|
98
|
+
| Environment Variable | Description |
|
|
99
|
+
|---------|------|
|
|
100
|
+
| `CODEBUDDY_POWERSHELL_PATH` | Explicitly specify the PowerShell path (takes priority over auto-detection) |
|
|
101
|
+
| `CODEBUDDY_USE_POWERSHELL_TOOL` | Set to `0` to disable the PowerShell tool |
|
|
102
|
+
|
|
76
103
|
## Deferred Tool Loading
|
|
77
104
|
|
|
78
105
|
Some tools (such as those provided via [MCP servers](mcp.md)) use deferred loading. These tools do not appear in the initial tool list and must be discovered and activated via `ToolSearch`. Once activated, tools remain available for the rest of the session.
|