@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
@@ -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 (Experimental)
335
+ ### Typed Memory Mode
336
336
 
337
- Typed Memory is an enhanced version of Auto Memory that provides a structured memory type system. When enabled, memory files are managed using YAML frontmatter and 4 types.
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 enable:**
360
+ **How to disable (if you need to fall back to the general format):**
361
361
 
362
- - Enable `[Experimental] Typed Memory` via the `/config` panel
363
- - Configure via `settings.json`: `"memory": { "typedMemory": true }`
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**: When Typed Memory is disabled, Auto Memory uses a simplified general format without a type system or YAML frontmatter.
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` | [Experimental] Whether to enable Typed Memory mode (default: `false`). When enabled, uses 4 memory types (user/feedback/project/reference) + YAML frontmatter format | `true` |
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": 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 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.