@tencent-ai/codebuddy-code 2.119.4 → 2.120.0
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 +20 -0
- package/dist/codebuddy-headless.js +40 -30
- package/dist/codebuddy.js +60 -50
- package/dist/web-ui/assets/{index-GcU4pZms.js → index-BfmXmm8w.js} +274 -274
- package/dist/web-ui/docs/cn/cli/brokered-shell-macos.md +778 -0
- package/dist/web-ui/docs/cn/cli/env-vars.md +10 -5
- package/dist/web-ui/docs/cn/cli/plugins-reference.md +114 -13
- package/dist/web-ui/docs/cn/cli/prewarm.md +18 -5
- package/dist/web-ui/docs/cn/cli/release-notes/README.md +11 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.117.0.md +35 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.117.1.md +18 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.117.2.md +28 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.118.0.md +29 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.118.1.md +18 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.118.2.md +13 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.119.0.md +38 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.119.1.md +15 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.119.2.md +23 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.119.3.md +15 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.119.4.md +13 -0
- package/dist/web-ui/docs/cn/cli/settings.md +2 -0
- package/dist/web-ui/docs/cn/cli/sub-agents.md +38 -0
- package/dist/web-ui/docs/en/cli/brokered-shell-macos.md +778 -0
- package/dist/web-ui/docs/en/cli/env-vars.md +10 -5
- package/dist/web-ui/docs/en/cli/plugins-reference.md +106 -13
- package/dist/web-ui/docs/en/cli/prewarm.md +18 -5
- package/dist/web-ui/docs/en/cli/release-notes/README.md +11 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.117.0.md +35 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.117.1.md +18 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.117.2.md +28 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.118.0.md +29 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.118.1.md +18 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.118.2.md +13 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.119.0.md +38 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.119.1.md +15 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.119.2.md +23 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.119.3.md +15 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.119.4.md +13 -0
- package/dist/web-ui/docs/en/cli/settings.md +2 -0
- package/dist/web-ui/docs/en/cli/sub-agents.md +38 -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/dist/web-ui/sw.js +1 -1
- package/package.json +4 -4
- 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
|
@@ -27,11 +27,16 @@ CodeBuddy Code supports environment variables to control its behavior. These var
|
|
|
27
27
|
| Environment Variable | Description |
|
|
28
28
|
|---------|------|
|
|
29
29
|
| `CODEBUDDY_MODEL` | Override the default agent model |
|
|
30
|
-
| `CODEBUDDY_SMALL_FAST_MODEL` |
|
|
31
|
-
| `CODEBUDDY_BIG_SLOW_MODEL` |
|
|
32
|
-
| `CODEBUDDY_CODE_SUBAGENT_MODEL` |
|
|
30
|
+
| `CODEBUDDY_SMALL_FAST_MODEL` | Override the model for the `lite` (lightweight, fast) scenario variant; takes priority over the `variantModels.lite` setting |
|
|
31
|
+
| `CODEBUDDY_BIG_SLOW_MODEL` | Override the model for the `reasoning` (enhanced reasoning) scenario variant; takes priority over the `variantModels.reasoning` setting |
|
|
32
|
+
| `CODEBUDDY_CODE_SUBAGENT_MODEL` | **Blanket override** of the model for all built-in sub-agents (highest priority, overrides the `subagents` setting). To configure per sub-agent, use the `/agents` panel or `settings.json`'s `subagents.agents.<subagent-name>.model` |
|
|
33
33
|
| `MAX_THINKING_TOKENS` | Enable extended thinking and set the token budget for the thinking process. Disabled by default |
|
|
34
34
|
|
|
35
|
+
> **Relationship between env and settings**: Model-related environment variables are **ops/CI-level highest-priority overrides**.
|
|
36
|
+
> - `CODEBUDDY_CODE_SUBAGENT_MODEL` applies a blanket override to **all** sub-agents; to specify **per sub-agent**, use `settings.json`'s `subagents.agents.<subagent-name>.model` (supports both global + project scope, editable in the `/agents` panel). See [Sub-Agents](sub-agents.md) for details.
|
|
37
|
+
> - `CODEBUDDY_SMALL_FAST_MODEL` / `CODEBUDDY_BIG_SLOW_MODEL` are set **per variant** independently (the former only affects `lite`, the latter only affects `reasoning`); the corresponding persistable setting is `variantModels` (editable in the `/model` panel's "Scenario Variants" section). See [Settings](settings.md) for details.
|
|
38
|
+
> - Priority: env (highest) > `settings` (project > global) > built-in default. Removing the env var restores the settings' effect.
|
|
39
|
+
|
|
35
40
|
## Bash Tool Configuration
|
|
36
41
|
|
|
37
42
|
| Environment Variable | Description |
|
|
@@ -99,8 +104,8 @@ CodeBuddy Code supports environment variables to control its behavior. These var
|
|
|
99
104
|
|---------|------|
|
|
100
105
|
| `CODEBUDDY_CODE_MAX_OUTPUT_TOKENS` | Set the maximum output tokens for most requests |
|
|
101
106
|
| `CODEBUDDY_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Override the default token limit for file reads (default: 20000) |
|
|
102
|
-
| `CODEBUDDY_STREAM_TIMEOUT_MS` | Maximum silent time between two data chunks in streaming responses (milliseconds) (default:
|
|
103
|
-
| `CODEBUDDY_FIRST_TOKEN_TIMEOUT_MS` | Maximum time to wait for the first model output (milliseconds) (default: 1200000) |
|
|
107
|
+
| `CODEBUDDY_STREAM_TIMEOUT_MS` | Maximum silent time between two data chunks in streaming responses (milliseconds) (default: 300000, i.e., 5 minutes). Silence mid-stream after tokens have started usually means the connection is broken, so this is decoupled from the first-token timeout and uses a shorter threshold |
|
|
108
|
+
| `CODEBUDDY_FIRST_TOKEN_TIMEOUT_MS` | Maximum time to wait for the first model output (milliseconds) (default: 1200000, i.e., 20 minutes). Slow first-token emission due to long-context prefill is a legitimate scenario |
|
|
104
109
|
| `CODEBUDDY_SESSION_MAX_ITEMS` | Maximum number of history messages to replay during `session/load` (default: 1000). Stops reading the JSONL in reverse when the threshold is reached and a user message is encountered. Increase (e.g., 2000 or more) when very long sessions need to be supported (such as sandbox scenarios); zero/negative/non-numeric values fall back to the default |
|
|
105
110
|
|
|
106
111
|
## Filesystem and Configuration
|
|
@@ -267,7 +267,16 @@ The manifest is optional. If omitted, CodeBuddy auto-discovers components in the
|
|
|
267
267
|
"hooks": "./config/hooks.json",
|
|
268
268
|
"mcpServers": "./mcp-config.json",
|
|
269
269
|
"outputStyles": "./styles/",
|
|
270
|
-
"lspServers": "./.lsp.json"
|
|
270
|
+
"lspServers": "./.lsp.json",
|
|
271
|
+
"defaultEnabled": false,
|
|
272
|
+
"dependencies": [
|
|
273
|
+
"audit-logger",
|
|
274
|
+
{ "name": "secrets-vault", "version": "~2.1.0" }
|
|
275
|
+
],
|
|
276
|
+
"experimental": {
|
|
277
|
+
"themes": "./themes/",
|
|
278
|
+
"monitors": "./monitors/monitors.json"
|
|
279
|
+
}
|
|
271
280
|
}
|
|
272
281
|
```
|
|
273
282
|
|
|
@@ -292,6 +301,8 @@ This name is used for component namespacing. For example, in the UI, the agent `
|
|
|
292
301
|
| `repository` | string | Source code URL | `"https://github.com/user/plugin"` |
|
|
293
302
|
| `license` | string | License identifier | `"MIT"`, `"Apache-2.0"` |
|
|
294
303
|
| `keywords` | array | Discovery tags | `["deployment", "ci-cd"]` |
|
|
304
|
+
| `defaultEnabled` | boolean | Whether the plugin is enabled when no explicit setting exists, default `true` | `false` |
|
|
305
|
+
| `dependencies` | array | Other plugins that this plugin depends on; can declare semver ranges and marketplace | `[{"name":"helper","version":"^2.0.0"}]` |
|
|
295
306
|
|
|
296
307
|
### Component Path Fields
|
|
297
308
|
|
|
@@ -303,10 +314,44 @@ This name is used for component namespacing. For example, in the UI, the agent `
|
|
|
303
314
|
| `hooks` | string \| array \| object | Hook configuration path or inline configuration | `"./my-extra-hooks.json"` |
|
|
304
315
|
| `mcpServers` | string \| array \| object | MCP configuration path or inline configuration | `"./my-extra-mcp-config.json"` |
|
|
305
316
|
| `outputStyles` | string \| array | Custom output style files/directories (replaces default `output-styles/`) | `"./styles/"` |
|
|
317
|
+
| `experimental.themes` | string \| array | Claude experimental field; CodeBuddy currently recognizes but does not load into runtime | `"./themes/"` |
|
|
318
|
+
| `experimental.monitors` | string \| array | Claude experimental field; CodeBuddy currently recognizes but does not start background monitors | `"./monitors/monitors.json"` |
|
|
306
319
|
| `lspServers` | string \| array \| object | LSP configuration path or inline configuration | `"./.lsp.json"` |
|
|
307
320
|
| `userConfig` | object | Values CodeBuddy prompts the user to provide when enabling the plugin. See [User Configuration](#user-configuration) | See below |
|
|
308
321
|
| `channels` | array | Channel declarations for message injection. See [Channels](#channels) | See below |
|
|
309
322
|
|
|
323
|
+
### Default Enabled
|
|
324
|
+
|
|
325
|
+
`defaultEnabled: false` keeps a newly installed plugin disabled. Existing `enabledPlugins` settings take priority over this default, so upgrading or reinstalling does not change the state the user has already explicitly chosen. If a plugin is a dependency of an enabled plugin, the dependency takes precedence and CodeBuddy explicitly enables it.
|
|
326
|
+
|
|
327
|
+
### Plugin Dependencies
|
|
328
|
+
|
|
329
|
+
`dependencies` can be declared in both `plugin.json` and the marketplace plugin entry; the two declarations are merged. String dependencies resolve to the marketplace where the declarant resides; objects support the following fields:
|
|
330
|
+
|
|
331
|
+
| Field | Required | Description |
|
|
332
|
+
|------|------|------|
|
|
333
|
+
| `name` | Yes | Plugin name |
|
|
334
|
+
| `version` | No | Node semver range, e.g., `~2.1.0`, `^2.0`, `>=1.4` |
|
|
335
|
+
| `marketplace` | No | The marketplace where the dependency resides; defaults to the declarant's marketplace when omitted |
|
|
336
|
+
|
|
337
|
+
Cross-marketplace auto-installation is blocked by default. It requires explicit authorization in the root plugin's marketplace's `marketplace.json`:
|
|
338
|
+
|
|
339
|
+
```json
|
|
340
|
+
{
|
|
341
|
+
"name": "acme-tools",
|
|
342
|
+
"allowCrossMarketplaceDependenciesOn": ["acme-shared"],
|
|
343
|
+
"plugins": []
|
|
344
|
+
}
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
Only the root marketplace's allowlist takes effect; trust is not transitive. Cross-marketplace dependencies that the user has already manually installed and whose versions satisfy the requirements can be reused directly.
|
|
348
|
+
|
|
349
|
+
Version constraints are resolved via Git tags. Publishers use the `{plugin-name}--v{version}` tag naming convention, e.g., `secrets-vault--v2.1.3`. CodeBuddy merges the ranges from all enabled plugins for the same dependency and selects the highest version that satisfies the intersection. The tag semver is recorded in `resolvedVersion`; the cache directory uses the declared version plus a 12-character commit SHA suffix, preventing force-moved tags from reusing stale content.
|
|
350
|
+
|
|
351
|
+
Installing a plugin automatically installs the full transitive dependency chain. Enabling a plugin only transitively enables already-installed dependencies; enabling fails when a dependency is missing. Disabling or uninstalling a plugin that is still depended on by enabled plugins is blocked.
|
|
352
|
+
|
|
353
|
+
Auto-installed dependencies are marked with `auto: true` in `installed_plugins.json`. Normal uninstallation preserves these dependencies; use `plugin prune` or `plugin uninstall --prune` to clean up auto dependencies no longer needed by any manually installed plugin. Explicitly installing an auto dependency promotes it to a manual installation, after which it will not be pruned.
|
|
354
|
+
|
|
310
355
|
### User Configuration
|
|
311
356
|
|
|
312
357
|
The `userConfig` field declares values that CodeBuddy prompts the user to provide when the plugin is enabled. Use this instead of asking users to edit `settings.json` manually.
|
|
@@ -326,7 +371,7 @@ The `userConfig` field declares values that CodeBuddy prompts the user to provid
|
|
|
326
371
|
}
|
|
327
372
|
```
|
|
328
373
|
|
|
329
|
-
Keys must be valid identifiers. Each value can be substituted as `${user_config.KEY}` in MCP and LSP server configs and hook commands, and (for non-sensitive values only) inside skill and agent content. Values are also exported as `CODEBUDDY_PLUGIN_OPTION_<KEY>` environment variables to plugin child processes.
|
|
374
|
+
Keys must be valid identifiers. Each value can be substituted as `${user_config.KEY}` in MCP and LSP server configs and hook commands, and (for non-sensitive values only) inside skill, command, and agent content. Values are also exported as `CLAUDE_PLUGIN_OPTION_<KEY>` and `CODEBUDDY_PLUGIN_OPTION_<KEY>` environment variables to plugin child processes. Non-alphanumeric, non-underscore characters in environment variable names are replaced with `_` and then uppercased.
|
|
330
375
|
|
|
331
376
|
Non-sensitive values are stored in `pluginConfigs[<plugin-id>].options` in `settings.json`. Sensitive values are stored in the system keychain (or in `~/.codebuddy/.credentials.json` if the keychain is unavailable). Keychain storage is shared with OAuth tokens and has a total limit of around 2 KB, so sensitive values should be kept small.
|
|
332
377
|
|
|
@@ -376,16 +421,26 @@ For `commands`, `agents`, `skills`, and `outputStyles`, a custom path **replaces
|
|
|
376
421
|
|
|
377
422
|
### Environment Variables
|
|
378
423
|
|
|
379
|
-
CodeBuddy provides
|
|
424
|
+
CodeBuddy provides three Claude Code-compatible path variables. They are substituted inline in skill, command, and agent content, hook configurations, and MCP or LSP server configurations, and are also exported as environment variables to hook, MCP, and LSP child processes. Each `CLAUDE_*` name has a corresponding `CODEBUDDY_*` alias.
|
|
380
425
|
|
|
381
426
|
**`${CODEBUDDY_PLUGIN_ROOT}`**: Absolute path to the plugin installation directory. Use it to reference scripts, binaries, and configuration files bundled with the plugin. This path changes when the plugin is updated, so files written here do not persist across updates.
|
|
382
427
|
|
|
383
428
|
**Compatibility**: The `${CLAUDE_PLUGIN_ROOT}` variable name is also supported for compatibility with Claude Code plugins.
|
|
384
429
|
|
|
385
|
-
**`${CODEBUDDY_PLUGIN_DATA}`**: A persistent directory for plugin state that survives updates. Use it for installed dependencies (such as `node_modules` or Python virtual environments), generated code, caches, and any files that need to persist across plugin versions. The directory is created automatically
|
|
430
|
+
**`${CODEBUDDY_PLUGIN_DATA}`**: A persistent directory for plugin state that survives updates. Use it for installed dependencies (such as `node_modules` or Python virtual environments), generated code, caches, and any files that need to persist across plugin versions. The directory is created automatically when first referenced by a placeholder or exported to a plugin child process.
|
|
386
431
|
|
|
387
432
|
**Compatibility**: The `${CLAUDE_PLUGIN_DATA}` variable name is also supported.
|
|
388
433
|
|
|
434
|
+
**`${CODEBUDDY_PROJECT_DIR}`**: The current workspace root directory. Used by plugin scripts to locate the user's project; should not be used to write the plugin's own persistent state.
|
|
435
|
+
|
|
436
|
+
**Compatibility**: The `${CLAUDE_PROJECT_DIR}` variable name is also supported.
|
|
437
|
+
|
|
438
|
+
Plugin child processes also receive the following option environment variables:
|
|
439
|
+
|
|
440
|
+
- `CLAUDE_PLUGIN_OPTION_<KEY>`: Claude Code standard name
|
|
441
|
+
- `CODEBUDDY_PLUGIN_OPTION_<KEY>`: CodeBuddy alias
|
|
442
|
+
- `PLUGIN_OPT_<KEY>`: Reserved compatibility name for existing CodeBuddy plugins
|
|
443
|
+
|
|
389
444
|
```json
|
|
390
445
|
{
|
|
391
446
|
"hooks": {
|
|
@@ -446,7 +501,7 @@ Scripts bundled under `${CODEBUDDY_PLUGIN_ROOT}` can run against the persisted `
|
|
|
446
501
|
}
|
|
447
502
|
```
|
|
448
503
|
|
|
449
|
-
When a plugin is uninstalled
|
|
504
|
+
When a plugin is uninstalled from its last remaining installation scope, the data directory is automatically deleted; if the same plugin is still installed in other scopes, it is preserved. The CLI deletes it by default; pass `--keep-data` to retain it. `plugin prune` deletes the data directories of orphaned auto dependencies.
|
|
450
505
|
|
|
451
506
|
---
|
|
452
507
|
|
|
@@ -457,7 +512,7 @@ Plugins can be specified in two ways:
|
|
|
457
512
|
- Via `codebuddy --plugin-dir`, valid for the current session only.
|
|
458
513
|
- Via marketplace installation, valid for future sessions.
|
|
459
514
|
|
|
460
|
-
For security and validation, CodeBuddy copies **marketplace** plugins to the user's local **plugin cache** (`~/.codebuddy/plugins/cache
|
|
515
|
+
For security and validation, CodeBuddy copies **marketplace** plugins to the user's local **versioned plugin cache** (`~/.codebuddy/plugins/cache/<marketplace>/<plugin>/<version>`) rather than using them in place. The marketplace source code is still stored in `~/.codebuddy/plugins/marketplaces/<marketplace>`. Understanding this behavior is important when developing plugins that reference external files.
|
|
461
516
|
|
|
462
517
|
### Path Traversal Restrictions
|
|
463
518
|
|
|
@@ -465,14 +520,18 @@ Installed plugins cannot reference files outside their own directory. Paths that
|
|
|
465
520
|
|
|
466
521
|
### Using External Dependencies
|
|
467
522
|
|
|
468
|
-
If a plugin needs access to files
|
|
523
|
+
If a plugin needs access to shared files within the same marketplace, you can create symlinks inside the plugin directory. Symlinks are processed by target location during cache copying:
|
|
524
|
+
|
|
525
|
+
- Pointing inside the plugin's own directory: preserved as relative symlinks.
|
|
526
|
+
- Pointing to other locations within the same marketplace: dereferenced and the target content is copied.
|
|
527
|
+
- Pointing outside the marketplace: the symlink is skipped.
|
|
469
528
|
|
|
470
529
|
```bash
|
|
471
530
|
# Inside the plugin directory
|
|
472
|
-
ln -s /
|
|
531
|
+
ln -s ../../shared-plugin/skills/foo ./skills/foo
|
|
473
532
|
```
|
|
474
533
|
|
|
475
|
-
|
|
534
|
+
This allows sharing files within a marketplace while preventing plugins from bringing arbitrary host files into the cache.
|
|
476
535
|
|
|
477
536
|
---
|
|
478
537
|
|
|
@@ -501,6 +560,10 @@ enterprise-plugin/
|
|
|
501
560
|
│ └── scripts/
|
|
502
561
|
├── output-styles/ # Output style definitions
|
|
503
562
|
│ └── terse.md
|
|
563
|
+
├── themes/ # Claude standard theme definitions; currently recognized but not loaded
|
|
564
|
+
│ └── dracula.json
|
|
565
|
+
├── monitors/ # Claude standard background monitor; currently recognized but not started
|
|
566
|
+
│ └── monitors.json
|
|
504
567
|
├── hooks/ # Hook configuration
|
|
505
568
|
│ ├── hooks.json # Primary hook configuration
|
|
506
569
|
│ └── security-hooks.json # Additional hooks
|
|
@@ -517,7 +580,7 @@ enterprise-plugin/
|
|
|
517
580
|
└── CHANGELOG.md # Version history
|
|
518
581
|
```
|
|
519
582
|
|
|
520
|
-
> **Important**: The `.codebuddy-plugin/` directory contains the `plugin.json` file. All other directories (`commands/`, `agents/`, `skills/`, `output-styles/`, `hooks/`) must live at the plugin root, not inside `.codebuddy-plugin/`. The `.workbuddy-plugin/` and `.claude-plugin/` directories are also supported for compatibility.
|
|
583
|
+
> **Important**: The `.codebuddy-plugin/` directory contains the `plugin.json` file. All other directories (`commands/`, `agents/`, `skills/`, `output-styles/`, `themes/`, `monitors/`, `hooks/`) must live at the plugin root, not inside `.codebuddy-plugin/`. The `.workbuddy-plugin/` and `.claude-plugin/` directories are also supported for compatibility.
|
|
521
584
|
|
|
522
585
|
### File Location Reference
|
|
523
586
|
|
|
@@ -528,11 +591,13 @@ enterprise-plugin/
|
|
|
528
591
|
| **Agents** | `agents/` | Sub-agent Markdown files |
|
|
529
592
|
| **Skills** | `skills/` | Skills following the `<name>/SKILL.md` structure |
|
|
530
593
|
| **Output styles** | `output-styles/` | Output style definitions |
|
|
594
|
+
| **Themes** | `themes/` | Claude standard field; CodeBuddy currently recognizes but does not load into runtime |
|
|
595
|
+
| **Monitors** | `monitors/monitors.json` | Claude standard field; CodeBuddy currently recognizes but does not start background monitors |
|
|
531
596
|
| **Hooks** | `hooks/hooks.json` | Hook configuration |
|
|
532
597
|
| **MCP servers** | `.mcp.json` | MCP server definitions |
|
|
533
598
|
| **LSP servers** | `.lsp.json` | Language server configuration |
|
|
534
599
|
| **Executables** | `bin/` | Executables added to the Bash tool PATH. When the plugin is enabled, files in this directory can be invoked as bare commands in any Bash tool call |
|
|
535
|
-
| **Settings** | `settings.json` |
|
|
600
|
+
| **Settings** | `settings.json` | Plugin default configuration. Currently the runtime applies `agent`; `subagentStatusLine` is recognized and preserved |
|
|
536
601
|
|
|
537
602
|
---
|
|
538
603
|
|
|
@@ -592,12 +657,29 @@ codebuddy plugin uninstall <plugin> [options]
|
|
|
592
657
|
|------|------|------|
|
|
593
658
|
| `-s, --scope <scope>` | Uninstall from scope: `user`, `project`, or `local` | `user` |
|
|
594
659
|
| `--keep-data` | Preserve the plugin's [persistent data directory](#persistent-data-directory) | |
|
|
660
|
+
| `--prune` | Also clean up auto dependencies no longer needed in this scope | |
|
|
661
|
+
| `-y, --yes` | Skip `--prune` confirmation; required when stdin or stdout is not a TTY | |
|
|
595
662
|
| `-h, --help` | Show command help | |
|
|
596
663
|
|
|
597
664
|
**Aliases**: `remove`, `rm`
|
|
598
665
|
|
|
599
666
|
By default, uninstalling from the last remaining scope also deletes the plugin's `${CODEBUDDY_PLUGIN_DATA}` directory. Use `--keep-data` to preserve it — for example, when reinstalling after testing a new version.
|
|
600
667
|
|
|
668
|
+
### plugin prune
|
|
669
|
+
|
|
670
|
+
Clean up auto dependencies in the specified scope that are no longer depended on by any manually installed plugin.
|
|
671
|
+
|
|
672
|
+
```bash
|
|
673
|
+
codebuddy plugin prune [options]
|
|
674
|
+
```
|
|
675
|
+
|
|
676
|
+
| Option | Description | Default |
|
|
677
|
+
|------|------|------|
|
|
678
|
+
| `-s, --scope <scope>` | Prune scope: `user`, `project`, or `local` | `user` |
|
|
679
|
+
| `--dry-run` | Only list plugins that would be pruned, without modifying settings and registry | |
|
|
680
|
+
| `-y, --yes` | Skip confirmation; only lists candidates when stdin or stdout is not a TTY and this is not specified | |
|
|
681
|
+
| `-h, --help` | Show command help | |
|
|
682
|
+
|
|
601
683
|
### plugin enable
|
|
602
684
|
|
|
603
685
|
Enable a disabled plugin.
|
|
@@ -614,7 +696,7 @@ codebuddy plugin enable <plugin> [options]
|
|
|
614
696
|
|
|
615
697
|
| Option | Description | Default |
|
|
616
698
|
|------|------|------|
|
|
617
|
-
| `-s, --scope <scope>` | Enable scope: `user`, `project`, or `local` |
|
|
699
|
+
| `-s, --scope <scope>` | Enable scope: `user`, `project`, or `local` | Auto-detect current installation scope |
|
|
618
700
|
| `-h, --help` | Show command help | |
|
|
619
701
|
|
|
620
702
|
### plugin disable
|
|
@@ -633,7 +715,7 @@ codebuddy plugin disable <plugin> [options]
|
|
|
633
715
|
|
|
634
716
|
| Option | Description | Default |
|
|
635
717
|
|------|------|------|
|
|
636
|
-
| `-s, --scope <scope>` | Disable scope: `user`, `project`, or `local` |
|
|
718
|
+
| `-s, --scope <scope>` | Disable scope: `user`, `project`, or `local` | Auto-detect current installation scope |
|
|
637
719
|
| `-h, --help` | Show command help | |
|
|
638
720
|
|
|
639
721
|
### plugin update
|
|
@@ -812,6 +894,17 @@ Follow semantic versioning for plugin releases:
|
|
|
812
894
|
>
|
|
813
895
|
> If the plugin is in a [marketplace](plugin-marketplaces.md) directory, you can manage versions via `marketplace.json` and omit the `version` field from `plugin.json`.
|
|
814
896
|
|
|
897
|
+
### Versioned Cache
|
|
898
|
+
|
|
899
|
+
CodeBuddy calculates the cache key by the following priority:
|
|
900
|
+
|
|
901
|
+
1. `version` from `plugin.json`
|
|
902
|
+
2. `version` from the marketplace plugin entry
|
|
903
|
+
3. Commit SHA for Git sources; `git-subdir` also includes a subdirectory path hash
|
|
904
|
+
4. `unknown` when the version cannot be determined
|
|
905
|
+
|
|
906
|
+
Git plugins without an explicit version use the 12-character commit SHA as the cache directory name. When resolving tags via version constraints, the cache directory additionally includes a 12-character commit SHA suffix; constraint validation uses the separately recorded `resolvedVersion` and does not rely on the potentially stale manifest version.
|
|
907
|
+
|
|
815
908
|
---
|
|
816
909
|
|
|
817
910
|
## IX. Compatibility with Claude Code
|
|
@@ -17,7 +17,7 @@ cbc --prewarm --prewarm-id pool1
|
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
The process will complete cold startup, then suspend at a local IPC endpoint in standby (without binding a working directory):
|
|
20
|
-
- macOS / Linux: unix socket `/tmp/codebuddy-prewarm-pool1.sock` (permission `0600`, current user only)
|
|
20
|
+
- macOS / Linux: unix socket `/tmp/codebuddy-prewarm-pool1.sock` (permission `0600`, current user only; socket directory can be overridden via env `CODEBUDDY_CODE_PREWARM_SOCKET_PATH`)
|
|
21
21
|
- Windows: named pipe `\\.\pipe\codebuddy-prewarm-pool1`
|
|
22
22
|
|
|
23
23
|
`--prewarm-id` can be omitted; defaults to using the process PID as the identifier.
|
|
@@ -54,10 +54,15 @@ To activate a prewarmed process from your own program, connect to the local sock
|
|
|
54
54
|
### Address Convention
|
|
55
55
|
|
|
56
56
|
```
|
|
57
|
-
macOS/Linux :
|
|
57
|
+
macOS/Linux : <dir>/codebuddy-prewarm-<id>.sock (<dir> defaults to /tmp)
|
|
58
58
|
Windows : \\.\pipe\codebuddy-prewarm-<id>
|
|
59
59
|
```
|
|
60
60
|
|
|
61
|
+
> The unix socket directory defaults to `/tmp` and can be overridden via the env `CODEBUDDY_CODE_PREWARM_SOCKET_PATH`
|
|
62
|
+
> (e.g., when `/tmp` is noexec / read-only mounted, or when you need to place it in a controlled directory). Both the
|
|
63
|
+
> process side and the client side read the same env to stay aligned. Windows named pipe has no directory concept and
|
|
64
|
+
> is unaffected by this env.
|
|
65
|
+
|
|
61
66
|
### Messages
|
|
62
67
|
|
|
63
68
|
```jsonc
|
|
@@ -82,9 +87,11 @@ Windows : \\.\pipe\codebuddy-prewarm-<id>
|
|
|
82
87
|
const net = require('net');
|
|
83
88
|
|
|
84
89
|
function prewarmAddr(id) {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
90
|
+
if (process.platform === 'win32') {
|
|
91
|
+
return `\\\\.\\pipe\\codebuddy-prewarm-${id}`;
|
|
92
|
+
}
|
|
93
|
+
const dir = (process.env.CODEBUDDY_CODE_PREWARM_SOCKET_PATH || '').trim() || '/tmp';
|
|
94
|
+
return require('path').join(dir, `codebuddy-prewarm-${id}.sock`);
|
|
88
95
|
}
|
|
89
96
|
|
|
90
97
|
function activate(id, { cwd, args = [] }) {
|
|
@@ -119,6 +126,12 @@ console.log(res); // { ok: true, cmd: 'activate', status: 'activating', cwd: '..
|
|
|
119
126
|
|
|
120
127
|
Prewarm-related parameters can only be configured via CLI flags: `--prewarm` / `--prewarm-id <id>` / `--prewarm-force`.
|
|
121
128
|
|
|
129
|
+
You can also override the unix socket directory via env:
|
|
130
|
+
|
|
131
|
+
| env | Purpose | Default |
|
|
132
|
+
|-----|---------|---------|
|
|
133
|
+
| `CODEBUDDY_CODE_PREWARM_SOCKET_PATH` | Custom unix socket directory (e.g., `/dev/abc/`, trailing slash optional). The process side creates and the client side reads the same env. Unix only; Windows named pipe is unaffected | `/tmp` |
|
|
134
|
+
|
|
122
135
|
## Related
|
|
123
136
|
|
|
124
137
|
- CLI parameter reference: [cli-reference.md](cli-reference.md)
|
|
@@ -17,6 +17,17 @@ Difference from CHANGELOG.md:
|
|
|
17
17
|
|
|
18
18
|
<!-- New versions are automatically added here -->
|
|
19
19
|
|
|
20
|
+
- [v2.119.4](./v2.119.4.md) - 2026-07-12
|
|
21
|
+
- [v2.119.3](./v2.119.3.md) - 2026-07-12
|
|
22
|
+
- [v2.119.2](./v2.119.2.md) - 2026-07-12
|
|
23
|
+
- [v2.119.1](./v2.119.1.md) - 2026-07-11
|
|
24
|
+
- [v2.119.0](./v2.119.0.md) - 2026-07-10
|
|
25
|
+
- [v2.118.2](./v2.118.2.md) - 2026-07-09
|
|
26
|
+
- [v2.118.1](./v2.118.1.md) - 2026-07-09
|
|
27
|
+
- [v2.118.0](./v2.118.0.md) - 2026-07-08
|
|
28
|
+
- [v2.117.2](./v2.117.2.md) - 2026-07-07
|
|
29
|
+
- [v2.117.1](./v2.117.1.md) - 2026-07-06
|
|
30
|
+
- [v2.117.0](./v2.117.0.md) - 2026-07-04
|
|
20
31
|
- [v2.116.0](./v2.116.0.md) - 2026-07-03
|
|
21
32
|
- [v2.115.0](./v2.115.0.md) - 2026-07-02
|
|
22
33
|
- [v2.114.3](./v2.114.3.md) - 2026-07-02
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# 🚀 CodeBuddy Code v2.117.0 Released
|
|
2
|
+
|
|
3
|
+
## 📦 Version Information
|
|
4
|
+
|
|
5
|
+
| Component | Version |
|
|
6
|
+
|-----------|---------|
|
|
7
|
+
| CodeBuddy Code CLI | v2.117.0 |
|
|
8
|
+
| Agent SDK JS | v0.3.201 |
|
|
9
|
+
| Agent SDK Python | v0.3.200 |
|
|
10
|
+
|
|
11
|
+
## ✨ New Features
|
|
12
|
+
|
|
13
|
+
### Daemon System Service Registration
|
|
14
|
+
|
|
15
|
+
Added `codebuddy daemon install` / `uninstall` commands to register the daemon as an OS-level service:
|
|
16
|
+
|
|
17
|
+
- **macOS**: LaunchAgent, auto-starts on login
|
|
18
|
+
- **Linux**: systemd user service, auto-starts on login
|
|
19
|
+
- **Windows**: Task Scheduler, auto-starts on login
|
|
20
|
+
|
|
21
|
+
Once registered, the daemon gains automatic crash recovery, eliminating the need to manually maintain background processes.
|
|
22
|
+
|
|
23
|
+
## 🔧 Improvements
|
|
24
|
+
|
|
25
|
+
- **Web UI real-time file watching**: Upgraded git status monitoring from polling to SSE real-time push for faster response and lower resource usage
|
|
26
|
+
- **Proactive git status refresh**: File operation tools (Write/Edit/Bash, etc.) now automatically trigger git status refresh upon completion, without waiting for the next polling cycle
|
|
27
|
+
- **File watching noise filtering**: Filters out high-frequency irrelevant paths such as node_modules and .git/objects to reduce unnecessary refreshes
|
|
28
|
+
- **Session title optimization**: Correctly handles channel XML-wrapped titles to display readable content
|
|
29
|
+
- **Removed external font dependency**: Removed Google Fonts Poppins loading in favor of a system font stack, speeding up first-screen rendering
|
|
30
|
+
- **Terminal panel double-click interaction**: Double-click the blank area of the tab list to create a new terminal; double-click a tab label to toggle panel maximization
|
|
31
|
+
- **Command paste stream expansion**: Slash commands now automatically expand paste stream references before execution
|
|
32
|
+
|
|
33
|
+
## 🐛 Bug Fixes
|
|
34
|
+
|
|
35
|
+
- **WorkBuddy expert panel replies**: Fixed an issue where some models only returned deep thinking without a body, causing the streaming response to miss the assistant message and resulting in no reply when continuing the conversation
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# 🚀 CodeBuddy Code v2.117.1 Released
|
|
2
|
+
|
|
3
|
+
## 📦 Version Information
|
|
4
|
+
|
|
5
|
+
| Component | Version |
|
|
6
|
+
|-----------|---------|
|
|
7
|
+
| CodeBuddy Code CLI | v2.117.1 |
|
|
8
|
+
| Agent SDK JS | v0.3.202 |
|
|
9
|
+
| Agent SDK Python | v0.3.201 |
|
|
10
|
+
|
|
11
|
+
## 🔧 Improvements
|
|
12
|
+
|
|
13
|
+
- **SCM Diff view optimization**: Clicking a file in the SCM file list now opens the Diff view in a separate tab, supporting viewing diffs of multiple files simultaneously instead of replacing the entire editor area
|
|
14
|
+
- **Web UI working directory management**: Added a workspace-store to centrally manage working directory sources, eliminating the coupling of scattered cwd fetching across stores
|
|
15
|
+
- **View switching optimization**: Editor and Changes views are now always mounted (visibility controlled by display), avoiding Monaco Editor and Diff view rebuild flicker during switching
|
|
16
|
+
- **Terminal switching optimization**: Terminals now immediately perform a fit when restored from hidden to visible, reducing blank flicker during switching
|
|
17
|
+
- **Theme adaptation**: Button foreground color changed from hardcoded `text-white` to the semantic `accent-brand-foreground` token, correctly adapting to light and dark themes
|
|
18
|
+
- **Editor empty state**: Extracted into a standalone component, using a Logo instead of an SVG icon, with shortcut hints automatically hidden when space is insufficient
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# 🚀 CodeBuddy Code v2.117.2 Release
|
|
2
|
+
|
|
3
|
+
## 📦 Version Information
|
|
4
|
+
|
|
5
|
+
| Component | Version |
|
|
6
|
+
|-----------|---------|
|
|
7
|
+
| CodeBuddy Code CLI | v2.117.2 |
|
|
8
|
+
| Agent SDK JS | v0.3.203 |
|
|
9
|
+
| Agent SDK Python | v0.3.202 |
|
|
10
|
+
|
|
11
|
+
## 🔧 Improvements
|
|
12
|
+
|
|
13
|
+
- **Authentication Startup Optimization**: The custom-token authentication type now includes a synchronous fast path — when the token is already present in an environment variable or config file, it is used directly, avoiding startup delays caused by waiting for network synchronization
|
|
14
|
+
|
|
15
|
+
## 🐛 Bug Fixes
|
|
16
|
+
|
|
17
|
+
- **Input Box Enter Unresponsive**: Fixed an issue where the TUI input box would occasionally not respond to Enter, requiring a space press before Enter to send
|
|
18
|
+
- **Input Box Anomaly After ESC Interrupt**: Fixed an issue where, after pressing ESC to interrupt AI output, the input box would occasionally turn yellow and become unable to accept further input
|
|
19
|
+
- **Web UI History Session Crash**: Fixed a white-screen crash when loading historical sessions with incomplete schemas
|
|
20
|
+
- **Model Max Output Token Fallback**: Fixed an issue where some model configurations missing the max output token would cause requests to lose their upper limit, ensuring fallback to the built-in capability table
|
|
21
|
+
- **Git Status Panel**: Fixed an issue where the Web UI Git panel did not show untracked files in nested directories
|
|
22
|
+
- **Settings Write Loss**: Fixed an issue where writing config could be based on a stale cache snapshot for a full rewrite, occasionally causing fields such as plugin enabled state to be lost
|
|
23
|
+
- **Agent Team Member Permissions**: Fixed an issue where passing the model in default mode could override sub-task permissions
|
|
24
|
+
- **Terminal WebSocket Keep-Alive**: The Web UI terminal panel now includes an application-layer heartbeat to prevent reverse proxies from disconnecting due to idle timeout
|
|
25
|
+
- **Streaming Response Stall**: Decoupled the inter-chunk silence timeout from the first-token timeout (5 minutes vs. 20 minutes), avoiding waiting 20 minutes before erroring and retrying after a mid-stream stall
|
|
26
|
+
- **CSV Chinese Garbled Text**: Writing `.csv` / `.tsv` files now prepends a UTF-8 BOM, fixing garbled Chinese characters when opening CSV files in Windows Excel
|
|
27
|
+
- **MCP Resource Discovery Timeout**: MCP resource discovery now uses parallel queries — a single server timeout no longer accumulates serially and blocks startup
|
|
28
|
+
- **Upstream Abnormal Stream Close Crash**: Fixed a crash caused by the upstream model abnormally closing the stream after only emitting reasoning content
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# 🚀 CodeBuddy Code v2.118.0 Release
|
|
2
|
+
|
|
3
|
+
## 📦 Version Information
|
|
4
|
+
|
|
5
|
+
| Component | Version |
|
|
6
|
+
|-----------|---------|
|
|
7
|
+
| CodeBuddy Code CLI | v2.118.0 |
|
|
8
|
+
| Agent SDK JS | v0.3.204 |
|
|
9
|
+
| Agent SDK Python | v0.3.203 |
|
|
10
|
+
|
|
11
|
+
## ✨ New Features
|
|
12
|
+
|
|
13
|
+
### Sub-Agent Reasoning Control
|
|
14
|
+
|
|
15
|
+
Sub-agents now have two new configuration options to independently control their reasoning behavior, decoupled from the main agent:
|
|
16
|
+
|
|
17
|
+
- `effort`: Sets the reasoning intensity of the sub-agent (`minimal` / `low` / `medium` / `high` / `xhigh` / `max`), effective for all sub-agents (including custom / plugin);
|
|
18
|
+
- `thinkingEnabled: false`: Forcefully disables thinking for this sub-agent at runtime, effective only for built-in sub-agents, preventing external sources from bypassing the model's reasoning product semantics.
|
|
19
|
+
|
|
20
|
+
The two are mutually exclusive — disabling takes priority; when the config is omitted, no intervention occurs and the session / model default is used. This capability only applies to sub-agent sessions and does not affect the main agent.
|
|
21
|
+
|
|
22
|
+
## 🐛 Bug Fixes
|
|
23
|
+
|
|
24
|
+
- **Context Ring Popover Data Missing**: After switching historical conversations, the context consumption breakdown data was not displayed. The replay path now supplements usage update events to restore the display
|
|
25
|
+
- **Credits Attribution Anomaly**: The main session now refreshes the attribution ID each turn, ensuring consumed credits are correctly associated with the current turn, fixing the issue of credits not being displayed
|
|
26
|
+
- **WSL1 Installation Unable to Run**: Fixed an issue where executing the binary after installation on WSL1 reported `Exec format error`. The build toolchain has been upgraded to fix this regression — the new binary runs normally on WSL1; meanwhile, install.sh retains WSL1 detection but changes it to a non-blocking warning, no longer directly blocking WSL1 users who can run normally
|
|
27
|
+
- **macOS "Install Developer Tools" Dialog**: When checking git availability before built-in marketplace installation, it now first determines whether the `git` on PATH is the `/usr/bin/git` stub present when Command Line Tools are not installed; if so, it no longer runs `git --version`, avoiding triggering the system dialog, and gracefully falls back to Zip marketplace installation
|
|
28
|
+
- **MCP Loading Stuck in stream-json Mode**: Fixed an issue with the order of argv/opts resolution when the pre-warmed process activates — causing incorrect headless detection and MCP initialization being skipped; in stream-json mode, USER-level MCP servers would be permanently stuck on connecting, and tools could not enter the first-round request. The complete state is now resolved before uniformly broadcasting the cwd change
|
|
29
|
+
- **WeChat Pay False Trigger**: Avoided false triggers of WeChat Pay detection caused by web page summaries or document content in WebFetch tool results
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# 🚀 CodeBuddy Code v2.118.1 Release
|
|
2
|
+
|
|
3
|
+
## 📦 Version Information
|
|
4
|
+
|
|
5
|
+
| Component | Version |
|
|
6
|
+
|-----------|---------|
|
|
7
|
+
| CodeBuddy Code CLI | v2.118.1 |
|
|
8
|
+
| Agent SDK JS | v0.3.205 |
|
|
9
|
+
| Agent SDK Python | v0.3.204 |
|
|
10
|
+
|
|
11
|
+
## 🔧 Improvements
|
|
12
|
+
|
|
13
|
+
- **Dependency Upgrade**: Upgraded the Galileo Node SDK to 0.3.17-beta.1, removing patch files for older versions that are no longer needed
|
|
14
|
+
|
|
15
|
+
## 🐛 Bug Fixes
|
|
16
|
+
|
|
17
|
+
- **Local ACP Authentication**: Fixed an issue where local loopback connections on some platforms (Windows x64) had the ACP `initialize` handshake misjudged as non-local, returning 401 `Authentication required` and preventing session establishment, blocking all tasks. All equivalent loopback address forms are now correctly recognized (127.0.0.0/8, `::1` and its expansions / IPv4-mapped / forms with brackets or zone IDs)
|
|
18
|
+
- **`/effort` and `/config` Consistency (Issue #58743)**: Fixed an inconsistency between `/config get reasoningEffort` and the `/effort` panel display after starting with `cbc --effort <level>`. `/config` now shows the merged effective settings (CLI has the highest priority); the `/effort` panel initial highlight = session override → CLI/global `reasoningEffort` → `high` fallback; `/effort <level>` (non-ultracode) now synchronously writes the session-level model effort override (via `setOverrideThinking`, the same channel as ACP `thought_level`), and invalid levels are directly rejected
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# 🚀 CodeBuddy Code v2.118.2 Release
|
|
2
|
+
|
|
3
|
+
## 📦 Version Information
|
|
4
|
+
|
|
5
|
+
| Component | Version |
|
|
6
|
+
|-----------|---------|
|
|
7
|
+
| CodeBuddy Code CLI | v2.118.2 |
|
|
8
|
+
| Agent SDK JS | v0.3.206 |
|
|
9
|
+
| Agent SDK Python | v0.3.205 |
|
|
10
|
+
|
|
11
|
+
## 🐛 Bug Fixes
|
|
12
|
+
|
|
13
|
+
- **reasoning-only response crash**: Fixed an issue where reasoning models returning only thinking content (without regular text, tool calls, or other normal responses) caused the SDK to generate an empty assistant message, leading the session to crash with `Cannot read properties of undefined (reading 'type')`. Such responses are now handled correctly, and sessions no longer crash.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# 🚀 CodeBuddy Code v2.119.0 Release
|
|
2
|
+
|
|
3
|
+
## 📦 Version Information
|
|
4
|
+
|
|
5
|
+
| Component | Version |
|
|
6
|
+
|-----------|---------|
|
|
7
|
+
| CodeBuddy Code CLI | v2.119.0 |
|
|
8
|
+
| Agent SDK JS | v0.3.207 |
|
|
9
|
+
| Agent SDK Python | v0.3.206 |
|
|
10
|
+
|
|
11
|
+
## ✨ New Features
|
|
12
|
+
|
|
13
|
+
### Plugin Dependencies and Cache Management
|
|
14
|
+
|
|
15
|
+
The plugin system has been comprehensively enhanced to support full dependency management and local caching:
|
|
16
|
+
|
|
17
|
+
- **Plugin dependencies**: Supports `dependencies` declaration, transitive installation and enabling, semver tag resolution, cross-marketplace allowlist, dependency conflict diagnostics, and orphaned dependency cleanup;
|
|
18
|
+
- **Plugin cache**: Newly installed marketplaces are uniformly placed in `plugins/marketplaces/<marketplace>`, and materialized to `plugins/cache/<marketplace>/<plugin>/<version>` with a manifest file written when enabling / installing plugins;
|
|
19
|
+
- **Plugin capabilities**: Supports plugin `bin/` PATH injection, root/data/project and `user_config` environments, persistent data lifecycle, `settings.json` allowlist, `defaultEnabled`, and other full capabilities.
|
|
20
|
+
|
|
21
|
+
## 🔧 Improvements
|
|
22
|
+
|
|
23
|
+
- **Deep Research output formatting**: Workflow results changed from JSON structure to readable Markdown reports, including summary, findings, disclaimers, and statistics
|
|
24
|
+
- **Sub-agent message isolation**: Usage messages forwarded by sub-agents are no longer rendered in the main conversation, used only for token consumption tracking, keeping the main conversation cleaner
|
|
25
|
+
- **Sub-agent tool title prefix**: Tool calls executed internally by sub-agents in the Web UI now display a type prefix, making it easier to distinguish their source
|
|
26
|
+
- **File revert anti-revival**: The Web UI file changes panel adds an anti-revival mechanism to prevent asynchronous broadcasts from re-adding reverted files to the list
|
|
27
|
+
- **Windows plugin performance**: Plugin data, MCPB, integrity checks, and Git detection now use asynchronous file I/O; Git/npm installation no longer synchronously blocks the main thread; MCPB reuses streaming decompression to improve installation speed
|
|
28
|
+
- **macOS sandbox runtime enhancement**: Controlled file access is now integrated for Python and Node file APIs within the macOS sandbox, making file read/write safer and more controllable
|
|
29
|
+
- **macOS sandbox file backup**: A backup pipeline is integrated before redirection, writing, and modification in the macOS sandbox shell (including `truncate` operations), allowing rollback from misoperations
|
|
30
|
+
|
|
31
|
+
## 🐛 Bug Fixes
|
|
32
|
+
|
|
33
|
+
- **Improved multi-turn conversation cache hit rate**: Fixed cache prefix jitter caused by inconsistent tool result serialization in parallel tool call scenarios, significantly improving cache hit rate and cost in multi-tool / sub-agent scenarios
|
|
34
|
+
- **Session wake-up lag**: Fixed a sorting race in stream-json + `--resume` scenarios where the `initialize` response was preempted by historical events writing to stdout, avoiding session wake-up being slowed down to 120s+ (#63837)
|
|
35
|
+
- **Tool approval delivery**: Fixed an issue where auto-continuation outside of conversations (background task completion, error recovery, scheduled / channel triggers) hitting high-risk command approvals caused the approval dialog to fail to reach the client, leaving the session stuck waiting for authorization
|
|
36
|
+
- **Authentication initialization**: Optimized the slow authentication path to prevent network configuration sync jitter from blocking headless mode authentication initialization
|
|
37
|
+
- **AskUserQuestion multiple-choice answers**: Fixed an issue where selecting both preset options and entering a custom option in multiple-choice questions caused the custom content to overwrite the selected options
|
|
38
|
+
- **PostToolUse image results**: Fixed an issue where hooks returning additional context corrupted structured image tool results, preventing image results from degrading to text or being lost
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# 🚀 CodeBuddy Code v2.119.1 Release
|
|
2
|
+
|
|
3
|
+
## 📦 Version Information
|
|
4
|
+
|
|
5
|
+
| Component | Version |
|
|
6
|
+
|-----------|---------|
|
|
7
|
+
| CodeBuddy Code CLI | v2.119.1 |
|
|
8
|
+
| Agent SDK JS | v0.3.208 |
|
|
9
|
+
| Agent SDK Python | v0.3.207 |
|
|
10
|
+
|
|
11
|
+
## 🐛 Bug Fixes
|
|
12
|
+
|
|
13
|
+
- **Custom model output quota**: When a custom model does not explicitly configure maximum output tokens, the model's capability limit is no longer automatically used as the per-request quota, preventing the quota from being unexpectedly exhausted
|
|
14
|
+
- **Credit consumption display inaccuracy**: Fixed an issue where credit consumption was displayed inaccurately after multi-turn conversations, making credit statistics more aligned with actual usage
|
|
15
|
+
- **Telemetry reporting stability**: Standardized integer field reporting values to prevent event reporting failures when fields such as Token contain decimal values
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# 🚀 CodeBuddy Code v2.119.2 Release
|
|
2
|
+
|
|
3
|
+
## 📦 Version Information
|
|
4
|
+
|
|
5
|
+
| Component | Version |
|
|
6
|
+
|-----------|---------|
|
|
7
|
+
| CodeBuddy Code CLI | v2.119.2 |
|
|
8
|
+
| Agent SDK JS | v0.3.209 |
|
|
9
|
+
| Agent SDK Python | v0.3.208 |
|
|
10
|
+
|
|
11
|
+
## 🔧 Improvements
|
|
12
|
+
|
|
13
|
+
This update focuses on the Web UI terminal and file tree experience, making remote terminals more stable and file browsing more intuitive.
|
|
14
|
+
|
|
15
|
+
- **Terminal Auto-reconnect**: After a WebSocket disconnection, automatically reconnects using a backoff sequence, falling back to manual reconnection only after exceeding the maximum retry count, so network jitter no longer causes frequent disconnects
|
|
16
|
+
- **PTY Flow Control**: Added an ACK-based flow control mechanism to prevent WebSocket buffer overflow and stuttering in high-output scenarios
|
|
17
|
+
- **File Tree Hidden File Toggle**: Supports one-click show/hide of common hidden files such as `.git` and `node_modules`, letting you focus on what matters
|
|
18
|
+
- **File Tree Git Status Coloring**: File tree nodes display colors based on their Git status (modified/added/deleted, etc.), making change distribution visible at a glance
|
|
19
|
+
- **File Tree Real-time Watching**: Monitors file system changes via an SSE watcher and automatically refreshes the file tree, eliminating the need for manual refresh
|
|
20
|
+
- **Terminal Link Enhancement**: Clicking a directory path in the terminal automatically expands it in the file tree; clicking a file path simultaneously opens the editor and navigates to the file in the file tree
|
|
21
|
+
- **Working Directory Isolated Storage**: Local storage persistence is isolated by working directory (similar to VSCode's workspaceStorage), so switching between multiple projects does not interfere with each other
|
|
22
|
+
- **Heartbeat Tolerance Optimization**: PTY heartbeat now uses dual-layer tolerance, preventing false connection kills after system sleep/wake
|
|
23
|
+
- **zsh Prompt Fix**: Eliminates the leading `%` marker via the `PROMPT_EOL_MARK` environment variable, replacing the previous exec-replace approach for cleaner output
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# 🚀 CodeBuddy Code v2.119.3 Release
|
|
2
|
+
|
|
3
|
+
## 📦 Version Information
|
|
4
|
+
|
|
5
|
+
| Component | Version |
|
|
6
|
+
|-----------|---------|
|
|
7
|
+
| CodeBuddy Code CLI | v2.119.3 |
|
|
8
|
+
| Agent SDK JS | v0.3.210 |
|
|
9
|
+
| Agent SDK Python | v0.3.209 |
|
|
10
|
+
|
|
11
|
+
## 🐛 Bug Fixes
|
|
12
|
+
|
|
13
|
+
- **Faster stdio Mode Startup**: Fixed an issue where the initialization handshake in stdio / stream-json mode was blocked by slow MCP servers (approximately 10 seconds in practice). Initialization now only waits for configuration parsing to complete rather than waiting for MCP readiness, significantly speeding up handshake response, while the message sending path still correctly waits for MCP assembly
|
|
14
|
+
- **Pre-warmed Process MCP Loading**: Fixed an issue where, after the pre-warmed process was activated, user-level MCP configuration (`~/.codebuddy/.mcp.json`) written just before activation could not be loaded, preventing related tools from appearing in the available tool list. User-level MCP configuration is now re-read upon activation, ensuring that MCP servers added while on standby take effect properly
|
|
15
|
+
- **Network Error Retry**: Reverted a previous wrapping change to the network error identification logic (the change had side effects requiring re-evaluation), restoring behavior to before the change was merged, to avoid affecting network error retry decisions
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# 🚀 CodeBuddy Code v2.119.4 Release
|
|
2
|
+
|
|
3
|
+
## 📦 Version Information
|
|
4
|
+
|
|
5
|
+
| Component | Version |
|
|
6
|
+
|-----------|---------|
|
|
7
|
+
| CodeBuddy Code CLI | v2.119.4 |
|
|
8
|
+
| Agent SDK JS | v0.3.211 |
|
|
9
|
+
| Agent SDK Python | v0.3.210 |
|
|
10
|
+
|
|
11
|
+
## 🔧 Improvements
|
|
12
|
+
|
|
13
|
+
- **Customizable Pre-warm Socket Directory**: Added the `CODEBUDDY_CODE_PREWARM_SOCKET_PATH` environment variable to specify the directory where the pre-warmed process socket file is stored (defaults to `/tmp`). Suitable for scenarios that require centralized temporary file management or adjusted storage locations. Only affects Unix platforms; Windows is unaffected
|