@tencent-ai/codebuddy-code 2.125.4-next.41bad82.202607231203 → 2.126.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.
Files changed (80) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/codebuddy-headless.js +11 -11
  3. package/dist/codebuddy.js +13 -13
  4. package/dist/web-ui/docs/cn/cli/agent-teams.md +6 -0
  5. package/dist/web-ui/docs/cn/cli/cli-reference.md +3 -2
  6. package/dist/web-ui/docs/cn/cli/costs.md +7 -7
  7. package/dist/web-ui/docs/cn/cli/daemon.md +8 -2
  8. package/dist/web-ui/docs/cn/cli/env-vars.md +16 -6
  9. package/dist/web-ui/docs/cn/cli/hooks.md +26 -4
  10. package/dist/web-ui/docs/cn/cli/http-api.md +98 -5
  11. package/dist/web-ui/docs/cn/cli/iam.md +1 -1
  12. package/dist/web-ui/docs/cn/cli/models.md +43 -13
  13. package/dist/web-ui/docs/cn/cli/permissions.md +2 -1
  14. package/dist/web-ui/docs/cn/cli/plugins-reference.md +2 -0
  15. package/dist/web-ui/docs/cn/cli/release-notes/README.md +15 -0
  16. package/dist/web-ui/docs/cn/cli/release-notes/v2.120.0.md +31 -0
  17. package/dist/web-ui/docs/cn/cli/release-notes/v2.121.0.md +42 -0
  18. package/dist/web-ui/docs/cn/cli/release-notes/v2.121.1.md +20 -0
  19. package/dist/web-ui/docs/cn/cli/release-notes/v2.121.2.md +23 -0
  20. package/dist/web-ui/docs/cn/cli/release-notes/v2.121.3.md +21 -0
  21. package/dist/web-ui/docs/cn/cli/release-notes/v2.122.0.md +52 -0
  22. package/dist/web-ui/docs/cn/cli/release-notes/v2.123.0.md +28 -0
  23. package/dist/web-ui/docs/cn/cli/release-notes/v2.123.1.md +13 -0
  24. package/dist/web-ui/docs/cn/cli/release-notes/v2.124.0.md +30 -0
  25. package/dist/web-ui/docs/cn/cli/release-notes/v2.124.1.md +22 -0
  26. package/dist/web-ui/docs/cn/cli/release-notes/v2.125.0.md +44 -0
  27. package/dist/web-ui/docs/cn/cli/release-notes/v2.125.1.md +22 -0
  28. package/dist/web-ui/docs/cn/cli/release-notes/v2.125.2.md +13 -0
  29. package/dist/web-ui/docs/cn/cli/release-notes/v2.125.3.md +30 -0
  30. package/dist/web-ui/docs/cn/cli/release-notes/v2.125.4.md +33 -0
  31. package/dist/web-ui/docs/cn/cli/sdk-hooks.md +30 -0
  32. package/dist/web-ui/docs/cn/cli/settings.md +38 -4
  33. package/dist/web-ui/docs/cn/cli/slash-commands.md +2 -2
  34. package/dist/web-ui/docs/cn/cli/sub-agents.md +116 -11
  35. package/dist/web-ui/docs/cn/cli/troubleshooting.md +55 -0
  36. package/dist/web-ui/docs/cn/cli/web-ui.md +1 -0
  37. package/dist/web-ui/docs/en/cli/agent-teams.md +6 -0
  38. package/dist/web-ui/docs/en/cli/cli-reference.md +3 -2
  39. package/dist/web-ui/docs/en/cli/costs.md +4 -4
  40. package/dist/web-ui/docs/en/cli/daemon.md +8 -2
  41. package/dist/web-ui/docs/en/cli/env-vars.md +16 -6
  42. package/dist/web-ui/docs/en/cli/hooks.md +26 -4
  43. package/dist/web-ui/docs/en/cli/http-api.md +98 -5
  44. package/dist/web-ui/docs/en/cli/models.md +43 -13
  45. package/dist/web-ui/docs/en/cli/permissions.md +2 -1
  46. package/dist/web-ui/docs/en/cli/plugins-reference.md +10 -0
  47. package/dist/web-ui/docs/en/cli/release-notes/README.md +15 -0
  48. package/dist/web-ui/docs/en/cli/release-notes/v2.120.0.md +31 -0
  49. package/dist/web-ui/docs/en/cli/release-notes/v2.121.0.md +42 -0
  50. package/dist/web-ui/docs/en/cli/release-notes/v2.121.1.md +20 -0
  51. package/dist/web-ui/docs/en/cli/release-notes/v2.121.2.md +23 -0
  52. package/dist/web-ui/docs/en/cli/release-notes/v2.121.3.md +21 -0
  53. package/dist/web-ui/docs/en/cli/release-notes/v2.122.0.md +52 -0
  54. package/dist/web-ui/docs/en/cli/release-notes/v2.123.0.md +28 -0
  55. package/dist/web-ui/docs/en/cli/release-notes/v2.123.1.md +13 -0
  56. package/dist/web-ui/docs/en/cli/release-notes/v2.124.0.md +30 -0
  57. package/dist/web-ui/docs/en/cli/release-notes/v2.124.1.md +22 -0
  58. package/dist/web-ui/docs/en/cli/release-notes/v2.125.0.md +44 -0
  59. package/dist/web-ui/docs/en/cli/release-notes/v2.125.1.md +22 -0
  60. package/dist/web-ui/docs/en/cli/release-notes/v2.125.2.md +13 -0
  61. package/dist/web-ui/docs/en/cli/release-notes/v2.125.3.md +30 -0
  62. package/dist/web-ui/docs/en/cli/release-notes/v2.125.4.md +33 -0
  63. package/dist/web-ui/docs/en/cli/sdk-hooks.md +30 -0
  64. package/dist/web-ui/docs/en/cli/settings.md +37 -3
  65. package/dist/web-ui/docs/en/cli/slash-commands.md +2 -2
  66. package/dist/web-ui/docs/en/cli/sub-agents.md +114 -9
  67. package/dist/web-ui/docs/en/cli/troubleshooting.md +55 -0
  68. package/dist/web-ui/docs/en/cli/web-ui.md +3 -0
  69. package/dist/web-ui/docs/search-index-en.json +1 -1
  70. package/dist/web-ui/docs/search-index-zh.json +1 -1
  71. package/dist/web-ui/docs/sidebar-en.json +1 -1
  72. package/dist/web-ui/docs/sidebar-zh.json +1 -1
  73. package/package.json +2 -3
  74. package/product.cloudhosted.json +2 -2
  75. package/product.internal.json +2 -2
  76. package/product.ioa.json +2 -2
  77. package/product.json +2 -2
  78. package/product.selfhosted.json +2 -2
  79. package/dist/web-ui/docs/cn/cli/brokered-shell-macos.md +0 -778
  80. package/dist/web-ui/docs/en/cli/brokered-shell-macos.md +0 -778
@@ -69,6 +69,17 @@ The following paths do not require the `X-CodeBuddy-Request` header:
69
69
 
70
70
  This validation can be disabled via the environment variable `CODEBUDDY_DISABLE_REQUEST_VALIDATION=1`.
71
71
 
72
+ ### CORS Allowlist
73
+
74
+ Cross-origin request `Origin` headers are matched against the server's CORS allowlist. Sources not on the allowlist are rejected (preflight returns 204 without CORS headers; actual requests return 403 `Origin not allowed`). Allowlist sources:
75
+
76
+ - Local endpoints and their loopback variants (`localhost` / `127.0.0.1` / `[::1]`)
77
+ - Tunnel URL (if enabled)
78
+ - Configuration item `gateway.corsOrigins`
79
+ - Environment variable `CODEBUDDY_CODE_CORS_ORIGINS` (comma-separated, supports exact origin, `*.domain` subdomain wildcards, and `*` for all)
80
+
81
+ When binding to `0.0.0.0` (e.g., `--host 0.0.0.0`, common in cloud VM / LAN exposure scenarios), if `CODEBUDDY_CODE_CORS_ORIGINS` is not explicitly set, the server **automatically allows all origins** (equivalent to configuring `*`), enabling access to the Web UI via any IP or domain without additional configuration. When this environment variable is explicitly set, the user configuration takes precedence.
82
+
72
83
  ### Authentication
73
84
 
74
85
  Two modes are supported (controlled by environment variable `CODEBUDDY_GATEWAY_AUTH`):
@@ -286,10 +297,12 @@ Aligned with E2B process.proto, mapping gRPC methods to REST endpoints:
286
297
  | POST | `/api/v1/plugins/enable` | Enable plugin |
287
298
  | POST | `/api/v1/plugins/disable` | Disable plugin |
288
299
  | POST | `/api/v1/plugins/uninstall` | Uninstall plugin |
300
+ | POST | `/api/v1/plugins/update` | Update plugin to latest version |
289
301
  | GET | `/api/v1/plugins/marketplaces` | List configured plugin marketplaces |
290
- | POST | `/api/v1/plugins/marketplaces` | Add plugin marketplace |
302
+ | POST | `/api/v1/plugins/marketplaces` | Add plugin marketplace (optional `autoUpdate` to enable auto-update on add) |
291
303
  | POST | `/api/v1/plugins/marketplaces/browse` | Browse available plugins in marketplace |
292
304
  | POST | `/api/v1/plugins/marketplaces/update` | Update marketplace (sync remote repository content) |
305
+ | POST | `/api/v1/plugins/marketplaces/auto-update` | Enable/disable marketplace auto-update |
293
306
  | DELETE | `/api/v1/plugins/marketplaces/:name` | Delete plugin marketplace |
294
307
 
295
308
  ### Settings Management
@@ -302,6 +315,15 @@ Aligned with E2B process.proto, mapping gRPC methods to REST endpoints:
302
315
  | POST | `/api/v1/settings/:key/items` | Append values to an array-type setting |
303
316
  | POST | `/api/v1/settings/:key/remove` | Remove values from an array-type setting |
304
317
 
318
+ ### Workspace Directories
319
+
320
+ | Method | Endpoint | Description |
321
+ |--------|----------|-------------|
322
+ | GET | `/api/v1/workspace-dirs` | List current attached working directories |
323
+ | POST | `/api/v1/workspace-dirs` | Add a single working directory |
324
+ | DELETE | `/api/v1/workspace-dirs?path=` | Remove a single working directory |
325
+ | PUT | `/api/v1/workspace-dirs/sync` | Full sync of working directory list |
326
+
305
327
  ### Task Templates
306
328
 
307
329
  | Method | Endpoint | Description |
@@ -352,17 +374,46 @@ curl http://127.0.0.1:8080/api/v1/health
352
374
  ### Initiate Agent Execution
353
375
 
354
376
  ```bash
355
- # Send message
377
+ # Send message (body is Gateway Protocol format, id/type required)
356
378
  curl -X POST http://127.0.0.1:8080/api/v1/runs \
357
379
  -H "Content-Type: application/json" \
358
- -d '{"text": "Help me analyze code performance", "sender": {"id": "dev", "name": "Developer"}}'
380
+ -H "X-CodeBuddy-Request: 1" \
381
+ -d '{
382
+ "id": "run-1",
383
+ "type": "message",
384
+ "source": {"platform": "generic", "sender": {"id": "dev", "name": "Developer"}, "conversation": {"id": "run-1", "type": "direct"}},
385
+ "payload": {"text": "Help me analyze code performance"}
386
+ }'
359
387
 
360
388
  # Response: {"data": {"runId": "uuid-xxx", "status": "accepted"}}
361
389
 
362
- # Get results via SSE stream
363
- curl http://127.0.0.1:8080/api/v1/runs/uuid-xxx/stream
390
+ # Get results via SSE stream (also requires X-CodeBuddy-Request header)
391
+ curl -H "X-CodeBuddy-Request: 1" http://127.0.0.1:8080/api/v1/runs/uuid-xxx/stream
364
392
  ```
365
393
 
394
+ #### Request Body Fields (Gateway Protocol)
395
+
396
+ The request body for `POST /api/v1/runs` uses the Gateway Protocol inbound message format:
397
+
398
+ | Field | Required | Type | Description |
399
+ |------|------|------|------|
400
+ | `id` | ✅ | string | Unique message ID, generated by the caller, used for deduplication and tracing |
401
+ | `type` | ✅ | `"message"` \| `"action"` | Message type. `message` initiates a conversation, `action` sends a control command |
402
+ | `payload.text` | — | string | Prompt text (also accepts top-level `text` / `prompt`) |
403
+ | `payload.attachments` | — | array | Attachment list, elements contain `type` (`image`/`voice`/`video`/`file`), `url`, `urlType` (`local-path`/`url`), etc. |
404
+ | `version` | — | string | Protocol version, default `"1.0"` |
405
+ | `source.platform` | — | string | Source platform, default `"generic"` |
406
+ | `source.sender.id` | — | string | Sender ID, used for rate limiting; defaults to `"unknown"` |
407
+ | `source.sender.name` | — | string | Sender name |
408
+ | `source.conversation.id` | — | string | Conversation ID, defaults to `id` |
409
+ | `source.conversation.type` | — | `"direct"` \| `"group"` | Conversation type, default `"direct"` |
410
+ | `action` | — | `"cancel"` \| `"status"` | Control action, only used when `type="action"` |
411
+ | `callback.url` | — | string | Callback URL for async result delivery (mode B) |
412
+ | `callback.headers` | — | object | Custom headers for the callback request |
413
+ | `timeoutMs` | — | number | Single execution timeout (milliseconds), takes priority over `settings.gateway.runTimeoutMs`; can also use the `X-Codebuddy-Run-Timeout` request header. Set to 0 or negative to disable timeout protection |
414
+
415
+ > The authoritative definition is in the source code `src/node/remote-gateway/gateway-protocol.ts` as `GatewayInboundMessage`.
416
+
366
417
  ### PTY Terminal Management
367
418
 
368
419
  ```bash
@@ -541,6 +592,11 @@ curl -X POST http://127.0.0.1:8080/api/v1/plugins/uninstall \
541
592
  -H "Content-Type: application/json" \
542
593
  -d '{"plugin": "my-plugin@my-marketplace"}'
543
594
 
595
+ # Update plugin to latest version (pass waitForApply=true to wait for rebuild to take effect before returning)
596
+ curl -X POST http://127.0.0.1:8080/api/v1/plugins/update \
597
+ -H "Content-Type: application/json" \
598
+ -d '{"plugin": "my-plugin@my-marketplace"}'
599
+
544
600
  # List plugin marketplaces
545
601
  curl http://127.0.0.1:8080/api/v1/plugins/marketplaces
546
602
 
@@ -549,6 +605,11 @@ curl -X POST http://127.0.0.1:8080/api/v1/plugins/marketplaces \
549
605
  -H "Content-Type: application/json" \
550
606
  -d '{"source": "https://example.com/marketplace", "name": "my-marketplace"}'
551
607
 
608
+ # Add plugin marketplace with auto-update enabled by default (equivalent to adding and then calling marketplaces/auto-update)
609
+ curl -X POST http://127.0.0.1:8080/api/v1/plugins/marketplaces \
610
+ -H "Content-Type: application/json" \
611
+ -d '{"source": "https://example.com/marketplace", "name": "my-marketplace", "autoUpdate": true}'
612
+
552
613
  # Browse plugins in marketplace
553
614
  curl -X POST http://127.0.0.1:8080/api/v1/plugins/marketplaces/browse \
554
615
  -H "Content-Type: application/json" \
@@ -559,6 +620,11 @@ curl -X POST http://127.0.0.1:8080/api/v1/plugins/marketplaces/update \
559
620
  -H "Content-Type: application/json" \
560
621
  -d '{"marketplace": "my-marketplace"}'
561
622
 
623
+ # Enable/disable marketplace auto-update (when enabled, periodically syncs and upgrades installed plugins in the background)
624
+ curl -X POST http://127.0.0.1:8080/api/v1/plugins/marketplaces/auto-update \
625
+ -H "Content-Type: application/json" \
626
+ -d '{"marketplace": "my-marketplace", "autoUpdate": true}'
627
+
562
628
  # Delete plugin marketplace
563
629
  curl -X DELETE http://127.0.0.1:8080/api/v1/plugins/marketplaces/my-marketplace
564
630
  ```
@@ -591,6 +657,33 @@ curl -X POST http://127.0.0.1:8080/api/v1/settings/permissions/remove \
591
657
  -d '{"values": ["Allow: Read(**)"]}'
592
658
  ```
593
659
 
660
+ ### Workspace Directories
661
+
662
+ Manage attached working directories so that the permission system allows file operations under these directories (same effect as the `/add-dir` command).
663
+
664
+ ```bash
665
+ # List current attached working directories
666
+ curl http://127.0.0.1:8080/api/v1/workspace-dirs
667
+
668
+ # Add a working directory
669
+ curl -X POST http://127.0.0.1:8080/api/v1/workspace-dirs \
670
+ -H "Content-Type: application/json" \
671
+ -d '{"path": "/Users/me/other-project"}'
672
+
673
+ # Remove a working directory
674
+ curl -X DELETE "http://127.0.0.1:8080/api/v1/workspace-dirs?path=/Users/me/other-project"
675
+
676
+ # Full sync (call after page refresh recovery)
677
+ curl -X PUT http://127.0.0.1:8080/api/v1/workspace-dirs/sync \
678
+ -H "Content-Type: application/json" \
679
+ -d '{"dirs": ["/Users/me/project-a", "/Users/me/project-b"]}'
680
+ ```
681
+
682
+ **Notes**:
683
+ - Added directories are stored in CLI scope (process memory) and are lost when the instance shuts down
684
+ - The frontend persists them via the Web UI's workspace storage and automatically syncs to the backend on page refresh
685
+ - After adding, Agent tools (Read/Write/Glob/Grep/Bash) can access these directories without asking
686
+
594
687
  ### Usage Statistics
595
688
 
596
689
  ```bash
@@ -338,7 +338,7 @@ During a single CodeBuddy Code session, the model is switched based on the scena
338
338
  |------|------|---------|
339
339
  | `lite` | Lightweight fast model, used for background extraction, summarization, and other low-value requests; also the model corresponding to the Agent tool's `model: "lite"` parameter | **Active** |
340
340
  | `reasoning` | Reasoning-enhanced model, used for complex reasoning requiring deep thinking; the model corresponding to the Agent tool's `model: "reasoning"` parameter | **Active** |
341
- | `subagent` | Default model used by sub-agents / team members | **Reserved, not yet active** — currently the sub-agent model is determined by the `CODEBUDDY_CODE_SUBAGENT_MODEL` environment variable or the agent configuration's `models[0]`, and this field is not read |
341
+ | `subagent` | Default model used by sub-agents / team members | **Reserved, not yet active** — sub-agents use a separate `subagents` resolution chain and do not read this field |
342
342
  | `vision` | Vision understanding model, used for requests that need to process images | **Reserved, not yet active** — the type is defined but there is no call site consuming this variant |
343
343
  | `longContext` | Long-context model, used for requests with very long context | **Reserved, not yet active** — the type is defined but there is no call site consuming this variant |
344
344
 
@@ -347,7 +347,7 @@ During a single CodeBuddy Code session, the model is switched based on the scena
347
347
  **Key rule (must-read for custom models):**
348
348
 
349
349
  > Custom models added via `models.json` **do not inherit** the product's built-in `defaultRelatedModels`.
350
- > If `relatedModels` is not explicitly declared on the entry itself, all scenarios fall back to the main model itself meaning sub-agents, lite, and reasoning all run on the same large model, which is inefficient in both cost and speed.
350
+ > If a custom main model does not declare `relatedModels`, and there is no environment variable or `variantModels` override, `lite` and `reasoning` will fall back to the main model. Sub-agents do not read `relatedModels.subagent`, but sub-agents configured as `lite` or `reasoning` will still go through the variant resolution chain to determine the concrete model.
351
351
 
352
352
  **Configuration example (DeepSeek main model + flash as lite / reasoning):**
353
353
 
@@ -386,21 +386,51 @@ During a single CodeBuddy Code session, the model is switched based on the scena
386
386
  }
387
387
  ```
388
388
 
389
- **Resolution priority (from highest to lowest; currently only `lite` / `reasoning` go through this resolution chain):**
389
+ **Variant resolution priority (from highest to lowest; currently only `lite` / `reasoning` go through this resolution chain):**
390
390
 
391
- 1. Environment variables explicitly specified (`CODEBUDDY_SMALL_FAST_MODEL` corresponds to `lite`, `CODEBUDDY_BIG_SLOW_MODEL` corresponds to `reasoning`)
392
- 2. `relatedModels[variant]` on the current main model entry
393
- 3. The product's built-in `defaultRelatedModels[variant]` (**only takes effect for built-in models; custom models skip this step**)
394
- 4. Fall back to the main model itself
391
+ 1. Corresponding environment variables (`CODEBUDDY_SMALL_FAST_MODEL` for `lite`, `CODEBUDDY_BIG_SLOW_MODEL` for `reasoning`)
392
+ 2. Project-level `variantModels[variant]`
393
+ 3. User global `variantModels[variant]`
394
+ 4. `relatedModels[variant]` on the current main model entry
395
+ 5. The product's built-in `defaultRelatedModels[variant]` (**only takes effect for built-in models; custom models skip this step**)
396
+ 6. Fall back to the main model itself
395
397
 
396
- > **The resolution rule for sub-agent models does not go through `relatedModels.subagent`**, but follows an independent chain: the Agent tool's `model` parameter > the `CODEBUDDY_CODE_SUBAGENT_MODEL` environment variable > the agent configuration's `models[0]` > the main model.
398
+ `variantModels` is stored in `settings.json` and can also be edited via the **Scenario Models** area in the `/model` panel. It is suitable for fixing `lite` / `reasoning` to specific models within the user or project scope; `relatedModels` is suitable for letting the mapping follow the current main model.
397
399
 
398
- **Trade-offs with the environment variable approach:**
400
+ **Built-in sub-agent resolution priority (from highest to lowest):**
399
401
 
400
- - If you want a main model to automatically switch to another small model from the same vendor in the `lite` / `reasoning` scenarios: declaring `relatedModels` on the main model entry is the most intuitive way, and the binding follows the model.
401
- - If you want sub-agents to use a small model: currently you must go through the environment variable `CODEBUDDY_CODE_SUBAGENT_MODEL`, or write the small model into `models[0]` in the agent configuration — **not** via `relatedModels.subagent`.
402
- - If you want different large/small model combinations in different projects: use environment variables (`CODEBUDDY_MODEL` / `CODEBUDDY_BIG_SLOW_MODEL` / `CODEBUDDY_SMALL_FAST_MODEL` / `CODEBUDDY_CODE_SUBAGENT_MODEL`) combined with project-level `.env` switching.
403
- - When both approaches are active simultaneously, environment variables take priority.
402
+ 1. `CODEBUDDY_CODE_SUBAGENT_MODEL`, universally covers all sub-agents
403
+ 2. The Agent tool's `model` parameter
404
+ 3. Project-level `subagents.agents.<subagent-name>.model`
405
+ 4. User global `subagents.agents.<subagent-name>.model`
406
+ 5. Product built-in declaration, e.g., `Explore` uses `lite`
407
+ 6. Inherit the main conversation model
408
+
409
+ Sub-agent models do not read `relatedModels.subagent`. When a sub-agent is configured as `lite` or `reasoning`, it will continue through the variant resolution chain above to determine the concrete model.
410
+
411
+ The following configuration should be written to user-level or project-level `settings.json`:
412
+
413
+ ```json
414
+ {
415
+ "subagents": {
416
+ "agents": {
417
+ "Explore": { "model": "lite" },
418
+ "Plan": { "model": "reasoning" }
419
+ }
420
+ },
421
+ "variantModels": {
422
+ "lite": "<fast-model-id>",
423
+ "reasoning": "<reasoning-model-id>"
424
+ }
425
+ }
426
+ ```
427
+
428
+ **When to use different configuration approaches:**
429
+
430
+ - Use `relatedModels` to let scenario mapping follow the main model.
431
+ - Use `variantModels` or `/model` to fix specific `lite` / `reasoning` models within the user or project scope.
432
+ - Use `subagents.agents.<subagent-name>.model` or `/agents` to select models or scenario variants for built-in sub-agents individually.
433
+ - Use model environment variables for CI-level overrides. Environment variables take priority over persistent settings; after unsetting, the lower-priority settings will take effect again.
404
434
 
405
435
  ### Complete Example
406
436
 
@@ -235,10 +235,11 @@ Several ways to expand the trusted scope:
235
235
  | :--- | :--- |
236
236
  | `--add-dir <path>` startup argument | Process-level |
237
237
  | `/add-dir` command within a session | Session-level |
238
+ | Web UI add directory (`/api/v1/workspace-dirs`) | Process-level (persisted by frontend) |
238
239
  | `permissions.additionalDirectories` setting | Persistent |
239
240
  | `permissions.trustedDirectories` setting | Persistent |
240
241
 
241
- The effective trusted directory list = workspace root + `settings.trustedDirectories` + directories added at startup with `--add-dir` or in-session with `/add-dir`.
242
+ The effective trusted directory list = workspace root + `settings.trustedDirectories` + directories added at startup with `--add-dir`, in-session with `/add-dir`, or via the Web UI.
242
243
 
243
244
  > Both `--add-dir` and `permissions.additionalDirectories` only grant **file access**. They **do not** make CodeBuddy load `.codebuddy/` configuration from those directories (agents / hooks / settings, etc. still use the startup directory).
244
245
 
@@ -737,6 +737,14 @@ codebuddy plugin update <plugin> [options]
737
737
  | `-s, --scope <scope>` | Update scope: `user`, `project`, `local`, or `managed` | `user` |
738
738
  | `-h, --help` | Show command help | |
739
739
 
740
+ ### plugin list
741
+
742
+ List installed plugins and their versions, marketplace, enabled status, and dependency errors. `--json` can be used for scripts to read `dependencyErrors`.
743
+
744
+ ```bash
745
+ codebuddy plugin list --json
746
+ ```
747
+
740
748
  ### Marketplace Management
741
749
 
742
750
  ```bash
@@ -905,6 +913,8 @@ CodeBuddy calculates the cache key by the following priority:
905
913
 
906
914
  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
915
 
916
+ Git marketplace plugins previously recorded as `unknown` are automatically migrated at startup: CodeBuddy resolves the commit SHA from the current marketplace checkout, materializes the source code into the corresponding SHA cache directory, and atomically updates `installed_plugins.json`. Old `unknown` directories are only marked as orphan; they are retained for at least 14 days, and are not deleted while they have the `.in_use` flag of an active session. Non-Git sources without an explicit version continue to use `unknown`.
917
+
908
918
  ---
909
919
 
910
920
  ## IX. Compatibility with Claude Code
@@ -17,6 +17,21 @@ Difference from CHANGELOG.md:
17
17
 
18
18
  <!-- New versions are automatically added here -->
19
19
 
20
+ - [v2.125.4](./v2.125.4.md) - 2026-07-23
21
+ - [v2.125.3](./v2.125.3.md) - 2026-07-23
22
+ - [v2.125.2](./v2.125.2.md) - 2026-07-22
23
+ - [v2.125.1](./v2.125.1.md) - 2026-07-22
24
+ - [v2.125.0](./v2.125.0.md) - 2026-07-21
25
+ - [v2.124.1](./v2.124.1.md) - 2026-07-19
26
+ - [v2.124.0](./v2.124.0.md) - 2026-07-17
27
+ - [v2.123.1](./v2.123.1.md) - 2026-07-16
28
+ - [v2.123.0](./v2.123.0.md) - 2026-07-16
29
+ - [v2.122.0](./v2.122.0.md) - 2026-07-15
30
+ - [v2.121.3](./v2.121.3.md) - 2026-07-15
31
+ - [v2.121.2](./v2.121.2.md) - 2026-07-14
32
+ - [v2.121.1](./v2.121.1.md) - 2026-07-14
33
+ - [v2.121.0](./v2.121.0.md) - 2026-07-14
34
+ - [v2.120.0](./v2.120.0.md) - 2026-07-13
20
35
  - [v2.119.4](./v2.119.4.md) - 2026-07-12
21
36
  - [v2.119.3](./v2.119.3.md) - 2026-07-12
22
37
  - [v2.119.2](./v2.119.2.md) - 2026-07-12
@@ -0,0 +1,31 @@
1
+ # 🚀 CodeBuddy Code v2.120.0 Release
2
+
3
+ ## 📦 Version Information
4
+
5
+ | Component | Version |
6
+ |-----------|---------|
7
+ | CodeBuddy Code CLI | v2.120.0 |
8
+ | Agent SDK JS | v0.3.212 |
9
+ | Agent SDK Python | v0.3.211 |
10
+
11
+ ## ✨ New Features
12
+
13
+ ### Flexible Sub-Agent Model Configuration
14
+
15
+ You can now **independently specify models** at the granularity of built-in sub-agents (Explore / general-purpose / Plan, etc.). Each sub-agent operates independently and can be freely combined, instead of being forced to use a single model via environment variables.
16
+
17
+ - Added `subagents` configuration item (`subagents.agents.<agentName>.model`), supporting both global and project scopes;
18
+ - The `/agents` panel now displays the "effective model + source" for each sub-agent and supports visual editing;
19
+ - The environment variable `CODEBUDDY_CODE_SUBAGENT_MODEL` remains the highest priority and applies uniformly to all sub-agents.
20
+
21
+ ### Scenario Variant Model Configuration
22
+
23
+ Added the `variantModels` configuration item. You can view and modify the models currently mapped to the `lite` (lightweight fast) and `reasoning` (enhanced reasoning) scenario slots in the `/model` panel, supporting both global and project scopes. The corresponding environment variables `CODEBUDDY_SMALL_FAST_MODEL` / `CODEBUDDY_BIG_SLOW_MODEL` still apply per variant with the highest priority.
24
+
25
+ > Backward compatible: When no configuration is made, behavior remains identical to before the upgrade.
26
+
27
+ ## 🐛 Bug Fixes
28
+
29
+ - **Sandbox Bash Environment Variables**: Fixed an issue where MCP configurations such as Tencent Docs could not be passed through during Bash sandbox execution, causing related tools to be unavailable.
30
+ - **More Robust Sandbox Fallback**: Fixed an issue where a spurious `unhandledRejection` diagnostic warning appeared when the sandbox failed to start and fell back to local execution.
31
+ - **Skill Loading Priority**: Fixed an issue where a project-level Skill with the same name as a global Skill did not take precedence according to the nearest-first priority rule.
@@ -0,0 +1,42 @@
1
+ # 🚀 CodeBuddy Code v2.121.0 Release
2
+
3
+ ## 📦 Version Information
4
+
5
+ | Component | Version |
6
+ |-----------|---------|
7
+ | CodeBuddy Code CLI | v2.121.0 |
8
+ | Agent SDK JS | v0.3.213 |
9
+ | Agent SDK Python | v0.3.212 |
10
+
11
+ ## ✨ New Features
12
+
13
+ ### Working Directory Management
14
+
15
+ Added the `/api/v1/workspace-dirs` REST API, supporting listing, adding, removing, and fully syncing additional working directories. The Web UI input toolbar now includes a working directory stack icon for visually adding/removing additional working directories. Additional working directory information is automatically injected into the Agent system prompt, allowing the model to be aware of the complete working scope.
16
+
17
+ ### Plugin Update & Marketplace Auto-Update
18
+
19
+ - **Plugin Update Public API**: Added `POST /api/v1/plugins/update`, providing the ability to "update installed plugins to the latest version" via the public HTTP API. Supports specifying plugins, scope, and whether to wait for the update to take effect, serving as a prerequisite for client-side "suite auto-update" capabilities.
20
+ - **Marketplace Auto-Update Toggle**: Added `POST /api/v1/plugins/marketplaces/auto-update` to enable/disable marketplace auto-update. When enabled, the backend periodically syncs the marketplace and upgrades installed plugins to the latest version.
21
+
22
+ ### Permission Mode Extension
23
+
24
+ ACP now supports Full Access and Delegate permission modes, providing more flexible permission control options.
25
+
26
+ ## 🔧 Improvements
27
+
28
+ - **Hooks Output Replacement**: PostToolUse now supports replacing the output of all tools via `updatedToolOutput`, making it easier to compress verbose results and reduce context usage.
29
+ - **Background Task Toggle**: Added the environment variable `CODEBUDDY_CODE_DISABLE_BACKGROUND_TASKS`. When enabled by the host, it hides the background execution parameters for Agent, Bash, and PowerShell, and falls back to synchronous/foreground execution, ensuring results always flow back to the main response and avoiding result loss in request-response SDK scenarios.
30
+ - **PTY Stability**: Upgraded PTY underlying dependencies, incorporating a fix for file descriptor cleanup after PTY exit on macOS, improving terminal stability.
31
+ - **Input Toolbar**: Optimized the size of the Mode/Model selectors for a more compact layout.
32
+ - **File Tree Loading Experience**: Added delayed loading indicator for directory expansion, preventing flicker during fast loads.
33
+
34
+ ## 🐛 Bug Fixes
35
+
36
+ - **Empty Model Response Handling**: Fixed an issue where a model that finished normally but returned no valid content would cause the conversation to be silently cancelled, with only a placeholder shown in the UI. This is now handled as a retryable error, with a clear prompt when the response remains empty, preventing the session from being stuck and unable to continue.
37
+ - **--print stream-json False Error Report**: Fixed an issue where in this mode, after a "tool not found" error was automatically recovered, the final result still incorrectly reported `is_error=true`. Behavior is now consistent with interactive sessions.
38
+ - **Deferred Tool Parameter Stability**: Added parameter structure hints for the target tool during retry rounds, reducing the likelihood of misgenerating complex fields such as arrays.
39
+ - **AskUserQuestion Parameter Validation**: When parameters are invalid, instead of silently returning an empty result, a pre-validation step now returns a readable error message, and a rendering fallback is added for question cards.
40
+ - **ACP Message Timestamp Semantics**: Restored the semantics of recording an independent timestamp for each message, preventing the completion time from being truncated by the first streaming chunk time.
41
+ - **Log Flooding**: Downgraded MCP deferred tool indexing diagnostic logs to debug level and removed per-tool hot-path log lines, preventing log files from growing to GB scale during long sessions.
42
+ - **Linux Sandbox**: Enabled the sandbox-cli backend in WorkBuddy Linux, using pipe mode for command execution.
@@ -0,0 +1,20 @@
1
+ # 🚀 CodeBuddy Code v2.121.1 Release
2
+
3
+ ## 📦 Version Information
4
+
5
+ | Component | Version |
6
+ |-----------|---------|
7
+ | CodeBuddy Code CLI | v2.121.1 |
8
+ | Agent SDK JS | v0.3.214 |
9
+ | Agent SDK Python | v0.3.213 |
10
+
11
+ ## 🐛 Bug Fixes
12
+
13
+ - **Sub-Agent Stuck in preparing / ESC Crash**: Fixed an issue in the local CLI where, after the main Agent invoked the Agent tool to spawn a sub-agent, the sub-agent would remain stuck in the preparing phase for a long time without executing, and pressing ESC to interrupt would crash the process. Sub-agents no longer wait for a session that will never be ready when sandbox is not enabled; interruptions during the preparation phase no longer produce unhandled exceptions; and a request timeout has been added for MCP tool list queries to prevent slow/unresponsive MCP services from blocking sub-agent startup.
14
+ - **Tool Call Streaming Parsing**: Fixed an issue where some models split the tool call `id` and `name` across different streaming chunks, causing the client to fail recognition and resulting in tool call failures and session errors. The recognition conditions for the first chunk have been relaxed, allowing subsequent chunks to supply the tool name, compatible with field-splitting scenarios permitted by the protocol.
15
+ - **Web UI Crash**: Fixed an issue where the chat page crashed the browser due to a circular dependency.
16
+ - **Session Restore List**: Filtered out empty sessions with no real user input (e.g., sessions created and immediately switched away from, leaving only command bookkeeping messages), preventing titles from falling back to displaying command names.
17
+
18
+ ## 📝 Documentation Updates
19
+
20
+ - **HTTP API / Daemon Documentation**: Added request header and request body descriptions for `/api/v1/runs`, unified examples to Gateway Protocol format, and added a request body field table.
@@ -0,0 +1,23 @@
1
+ # 🚀 CodeBuddy Code v2.121.2 Release
2
+
3
+ ## 📦 Version Information
4
+
5
+ | Component | Version |
6
+ |-----------|---------|
7
+ | CodeBuddy Code CLI | v2.121.2 |
8
+ | Agent SDK JS | v0.3.215 |
9
+ | Agent SDK Python | v0.3.214 |
10
+
11
+ ## 🔧 Improvements
12
+
13
+ - **Daemon Auto-Update Enabled**: Fixed an issue where auto-update was skipped in daemon mode. As a long-running process, the daemon now always enables auto-update to keep versions up to date.
14
+ - **Daemon Diagnostics Enhancement**: The `daemon status` output now includes an auto-update status field, making it easier to check whether auto-update is currently enabled and why.
15
+
16
+ ## 🐛 Bug Fixes
17
+
18
+ - **Daemon Restart Preserves Host Binding**: Fixed an issue where host binding was lost after daemon restart. Restarts now reuse the previously configured host and port.
19
+ - **Clipboard Copy**: Fixed an issue where clipboard copy failed in non-HTTPS environments (e.g., HTTP tunnel access). A fallback mechanism has been added, and users are notified via a prompt when copy fails.
20
+ - **Cross-Origin Access**: Fixed a cross-origin issue when accessing the Web UI via IP or custom domain after starting with `--host 0.0.0.0`. Origins are now automatically allowed when no explicit origin whitelist is configured.
21
+ - **MCP Configuration Robustness**: When an MCP configuration in a given scope contains invalid entries (e.g., mistakenly written as a string / null / number), that entry is now skipped with a warning, instead of causing the entire scope to fail loading or affecting other normal MCP services.
22
+ - **Web UI Window Title**: Fixed an issue where the app name was duplicated in the conversation window title bar after installing the Web UI as a PWA.
23
+ - **Security Center Path Matching**: Fixed an issue on Windows where sandbox path matching for the user's home directory was too broad, preventing other accounts' directories from being mistakenly identified as the current user's directory and causing cross-account rule mismatches. Also fixed an issue where protected directories missed the file blocklist due to trailing slash differences.
@@ -0,0 +1,21 @@
1
+ # 🚀 CodeBuddy Code v2.121.3 Release
2
+
3
+ ## 📦 Version Information
4
+
5
+ | Component | Version |
6
+ |-----------|---------|
7
+ | CodeBuddy Code CLI | v2.121.3 |
8
+ | Agent SDK JS | v0.3.216 |
9
+ | Agent SDK Python | v0.3.215 |
10
+
11
+ ## 🔧 Improvements
12
+
13
+ - **stdio initialize Speedup**: The SDK `initialize` handshake is no longer blocked by slow MCP services when custom system prompts / Agent overrides are provided. Override injection is now performed in the background, and the handshake returns immediately. The first prompt still waits for overrides to take effect before executing. In practice, handshake latency has been reduced from hundreds of milliseconds to millisecond level.
14
+ - **Output Style Lazy Rendering**: Built-in output style template content is now rendered on demand. Loading the style list no longer unconditionally renders all templates; rendering and caching occur only when a style is actually applied, speeding up list loading.
15
+
16
+ ## 🐛 Bug Fixes
17
+
18
+ - **First Prompt Missing Some MCP Tools**: Fixed an issue in prewarm mode where the available tools list for the first prompt of a new session occasionally lacked user-level MCP tools that connected late, requiring a second prompt for them to appear. A tool index validation has been added to the runtime path; when late-connecting MCP services become ready, the Agent is rebuilt before execution, with no impact on pre-request performance.
19
+ - **Sub-Agent Delegation Crash**: Fixed a regression where sub-agent delegation failed. The telemetry interceptor crashed due to missing null checks when input was empty. Defensive null checks have been added at both the source and interceptor levels.
20
+ - **TUI Keyboard Input Crash**: Fixed an issue where pasting text or inputting specific escape sequences (such as Ctrl+function key sequences that can be embedded in large pastes) caused key name resolution to read a null value, triggering an uncaught exception that crashed the CLI process. Input boundaries have been uniformly normalized for null values.
21
+ - **Reverted Deferred Tool Retry Parameter Hint Approach**: Reverted the previous approach of injecting active tool parameter structure hints to guide the model in self-correction. This was found to be ineffective for some models after verification. The issue is now resolved via an upstream direct tool connection approach, avoiding the overhead of ineffective hints.
@@ -0,0 +1,52 @@
1
+ # 🚀 CodeBuddy Code v2.122.0 Release
2
+
3
+ ## 📦 Version Information
4
+
5
+ | Component | Version |
6
+ |-----------|---------|
7
+ | CodeBuddy Code CLI | v2.122.0 |
8
+ | Agent SDK JS | v0.3.217 |
9
+ | Agent SDK Python | v0.3.216 |
10
+
11
+ ## ✨ New Features
12
+
13
+ ### Web UI Account Login
14
+
15
+ After Gateway authentication, a new CBC account login flow (OAuth) has been added, supporting four login methods: domestic site, international site, enterprise domain, and iOA. The Gateway cookie validity period has been extended to 30 days with sliding-window auto-renewal support; the login token has been migrated to localStorage, keeping the user logged in after closing the tab.
16
+
17
+ ### Remote Control Bot Entry Points
18
+
19
+ Supports independently controlling the visibility of the WeChat bot and WeCom bot add-entry points via product configuration, while retaining management capabilities for existing channels.
20
+
21
+ ### Auto-Update Enabled by Default When Adding Marketplace
22
+
23
+ When adding a plugin marketplace, an optional auto-update toggle has been added. Once enabled, a single operation completes both "adding the marketplace" and "enabling auto-update for kits." Existing marketplaces also support idempotent retroactive enabling of auto-update.
24
+
25
+ ### Web UI Custom Model Management
26
+
27
+ A custom model management entry has been added to the "Models" section of the settings page. You can view, create, edit, and delete custom models (OpenAI-compatible endpoints) in a dialog, with configuration persisted to the user-level config file. In login scenarios, official models distributed to the account are no longer shadowed by a narrowed allowlist caused by custom models.
28
+
29
+ ### Web Chat `/skills` Inline Display
30
+
31
+ Entering `/skills` directly in the conversation no longer navigates to a separate page or sends to the model. Instead, the available skills list is displayed inline, grouped by source (user / project / plugin), aligning with the CLI Skills panel information architecture.
32
+
33
+ ### Web UI Plugin Page Filtering and Pagination
34
+
35
+ The installed and browse lists now support filtering by type (Skill / MCP / Hook / Tool) and enabled status, with client-side pagination. Switching filters automatically returns to the first page.
36
+
37
+ ### Web UI Settings Page TOC Navigation
38
+
39
+ A table of contents (TOC) navigation has been added to the settings page, highlighting the current section as the page scrolls. Clicking an entry smoothly scrolls to the corresponding settings block.
40
+
41
+ ## 🔧 Improvements
42
+
43
+ - **Port parsing fix**: Fixed an issue where URL port parsing was incorrect when using default ports (HTTP=80, HTTPS=443)
44
+ - **Daemon startup behavior**: Stale processes are now cleaned up before startup to avoid port conflicts or unclean state
45
+
46
+ ## 🐛 Bug Fixes
47
+
48
+ - **/btw side questions**: Fixed an issue where using `/btw` to ask a question during a main task's tool call resulted in a parameter error, preventing side questions from being used
49
+ - **WebUI terminal connection**: Fixed an issue where the WebUI terminal connection was disconnected after ~120 seconds under the standalone binary, causing repeated reconnection attempts and eventual errors
50
+ - **Plugin cache**: Git marketplace plugins without an explicit version now use the commit SHA as the cache version, with automatic migration of historical cache. Old directories still in use by a session are retained until safe cleanup
51
+ - **Plan mode**: Added a short suffix to plan file names to reduce the risk of plan file path conflicts in concurrent sessions
52
+ - **File tool sandbox approval**: When the sandbox is enabled, Edit, Write, MultiEdit, and NotebookEdit are uniformly routed through sandbox file rules for approval, fixing inconsistent behavior between the main Agent and sub-Agents
@@ -0,0 +1,28 @@
1
+ # 🚀 CodeBuddy Code v2.123.0 Release
2
+
3
+ ## 📦 Version Information
4
+
5
+ | Component | Version |
6
+ |-----------|---------|
7
+ | CodeBuddy Code CLI | v2.123.0 |
8
+ | Agent SDK JS | v0.3.218 |
9
+ | Agent SDK Python | v0.3.217 |
10
+
11
+ ## ✨ New Features
12
+
13
+ ### File Version Revert
14
+
15
+ Added the ability to preview and execute a full-round file revert per session request. You can preview the file versions that will be restored before reverting, with the preview results including the actual version identifier used, making the full-round file revert operation more intuitive and controllable.
16
+
17
+ ## 🔧 Improvements
18
+
19
+ - **Sentiment metrics toggle**: Sentiment friction analysis is now enabled on demand. Related queries and reporting only occur when the corresponding product feature is explicitly enabled, with no additional overhead by default.
20
+
21
+ ## 🐛 Bug Fixes
22
+
23
+ - **Daemon auto-update status**: Fixed the issue where `cbc daemon status` displayed "AutoUpdateService not available." The real status is now obtained from the running daemon process. An external upgrade detection has also been added, allowing the daemon to automatically detect and gracefully restart after a manual global upgrade.
24
+ - **/rewind rollback (Windows)**: Fixed an issue where inconsistent drive letter casing (e.g., `c:\` vs `C:\`) on Windows caused rollback code to silently fail. Drive letter casing is now normalized before matching files, ensuring alignment between the save and revert sides.
25
+ - **Revert code only option**: Fixed an issue where the "Revert code only" option was incorrectly hidden after the user made changes and then reverted them, preventing rollback to that node. The option is now displayed based on whether file edits occurred in that round.
26
+ - **Agent subtasks**: Fixed an issue where a subtask that was successfully created but failed during execution was incorrectly reported as "creation failed." The failure path cleanup has also been completed, ensuring consistent failure state and subsequent cleanup logic.
27
+ - **Custom expert**: Fixed an issue where creating a custom expert could write to the wrong directory due to not inheriting the config directory.
28
+ - **Sentiment analysis reporting**: Fixed sentiment analysis query issues caused by differences in request wrapper tags and gateway response wrapping that led to recall or parsing anomalies, ensuring analysis results are reported normally.
@@ -0,0 +1,13 @@
1
+ # 🚀 CodeBuddy Code v2.123.1 Release
2
+
3
+ ## 📦 Version Information
4
+
5
+ | Component | Version |
6
+ |-----------|---------|
7
+ | CodeBuddy Code CLI | v2.123.1 |
8
+ | Agent SDK JS | v0.3.219 |
9
+ | Agent SDK Python | v0.3.218 |
10
+
11
+ ## 🐛 Bug Fixes
12
+
13
+ - **Text processing**: Fixed an issue where cleaning terminal control characters in certain runtime environments could cause a call exception due to differences in module export forms. Unused dependencies have also been removed to reduce the installation size.
@@ -0,0 +1,30 @@
1
+ # 🚀 CodeBuddy Code v2.124.0 Release
2
+
3
+ ## 📦 Version Information
4
+
5
+ | Component | Version |
6
+ |-----------|---------|
7
+ | CodeBuddy Code CLI | v2.124.0 |
8
+ | Agent SDK JS | v0.3.220 |
9
+ | Agent SDK Python | v0.3.219 |
10
+
11
+ ## ✨ New Features
12
+
13
+ ### ShareLink One-Click Sharing Tool
14
+
15
+ A new built-in `ShareLink` tool has been added, enabling a single local HTML file to be deployed as a publicly accessible, online-rendered, shareable link with one click. This makes it easy to send generated reports and visualization pages directly to others for viewing.
16
+
17
+ - Automatically routes infrastructure based on the login environment, covering domestic / international / iOA scenarios
18
+ - Enabled by default, with two-level toggles via the environment variable `CODEBUDDY_SHARE_LINK_ENABLED=false` and cloud-side `productFeatures.ShareLink`
19
+ - Lazy-loaded on demand, reusing the current login session for authentication with no additional configuration required
20
+
21
+ ## 🔧 Improvements
22
+
23
+ - **CLI command alias**: Added `codebuddy-code` as a CLI command alias, providing an additional invocation method alongside the existing `codebuddy` / `cbc`.
24
+
25
+ ## 🐛 Bug Fixes
26
+
27
+ - **Large file edit freeze**: Fixed an issue where editing large files (e.g., large hardware netlists) on the desktop client caused the diff calculation to block for extended periods, freezing the core for tens of minutes. A timeout budget has been added for diff calculation; files that exceed the timeout are downgraded to only appearing in the change list (still viewable and revertable), no longer blocking subsequent operations.
28
+ - **Stop / SubagentStop Hook payload**: Fixed an issue where `last_assistant_message` in hooks could return stale history messages. The final output is now extracted from the current run result first.
29
+ - **Stop Hook continuation**: Fixed an issue where Stop Hook-triggered continuation in `-p` / ACP scenarios could cause the response to end prematurely, with subsequent output lost.
30
+ - **Linux managed runtime**: Fixed an issue where the bundled Node / Python runtime could not be invoked inside the sandbox on Linux environments such as Kylin OS.
@@ -0,0 +1,22 @@
1
+ # 🚀 CodeBuddy Code v2.124.1 Release
2
+
3
+ ## 📦 Version Information
4
+
5
+ | Component | Version |
6
+ |-----------|---------|
7
+ | CodeBuddy Code CLI | v2.124.1 |
8
+ | Agent SDK JS | v0.3.221 |
9
+ | Agent SDK Python | v0.3.220 |
10
+
11
+ ## 🔧 Improvements
12
+
13
+ - **Agent metrics aggregation**: The window flush interval is fixed at 30 seconds, removing the dependency on external configuration, making aggregator startup more stable and simpler.
14
+
15
+ ## 🐛 Bug Fixes
16
+
17
+ - **Plan mode non-interactive exit hang**: Fixed an issue where entering and exiting Plan mode in `-p` non-interactive mode caused the process to hang indefinitely. After exiting Plan mode, the task can now continue normally.
18
+ - **Prewarm process local plugin loading**: Fixed an issue where local plugins (including skills / agents / hooks / MCP) were not loaded in the first session when the prewarm process was activated for the first time. Plugins are now re-initialized and loaded after activation.
19
+ - **Reasoning Effort panel**: The Reasoning Effort option in the `/config` settings panel now includes the `max` level, aligning with the `/effort` command.
20
+ - **Source Control - Revert All**: Fixed an issue where "Revert All" could not handle both tracked changes and newly created files simultaneously. A single operation can now fully clean up.
21
+ - **Source Control - Panel refresh**: Fixed an issue where the panel did not update promptly after file changes. A timed polling fallback mechanism has been added.
22
+ - **Terminal session keep-alive**: Fixed an issue where creating a new terminal session on manual reconnect caused historical state loss. Existing sessions kept alive by the backend are now reused first.