@tencent-ai/agent-sdk 0.3.155 → 0.3.158

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 (83) hide show
  1. package/cli/CHANGELOG.md +53 -0
  2. package/cli/dist/codebuddy-headless.js +218 -211
  3. package/cli/dist/web-ui/assets/index-C5x-jWxM.css +32 -0
  4. package/cli/dist/web-ui/assets/{index-bVNRRvKC.js → index-CU_ExRgj.js} +179 -167
  5. package/cli/dist/web-ui/assets/workbox-window.prod.es5-BBnX5xw4.js +2 -0
  6. package/cli/dist/web-ui/docs/cn/cli/codebuddy-dir.md +309 -0
  7. package/cli/dist/web-ui/docs/cn/cli/env-vars.md +21 -0
  8. package/cli/dist/web-ui/docs/cn/cli/goal.md +161 -0
  9. package/cli/dist/web-ui/docs/cn/cli/hooks.md +12 -4
  10. package/cli/dist/web-ui/docs/cn/cli/http-api.md +6 -0
  11. package/cli/dist/web-ui/docs/cn/cli/ide-integrations.md +2 -1
  12. package/cli/dist/web-ui/docs/cn/cli/monitoring.md +87 -0
  13. package/cli/dist/web-ui/docs/cn/cli/release-notes/README.md +9 -0
  14. package/cli/dist/web-ui/docs/cn/cli/release-notes/v2.96.1.md +17 -0
  15. package/cli/dist/web-ui/docs/cn/cli/release-notes/v2.97.0.md +186 -0
  16. package/cli/dist/web-ui/docs/cn/cli/release-notes/v2.97.1.md +24 -0
  17. package/cli/dist/web-ui/docs/cn/cli/release-notes/v2.97.2.md +16 -0
  18. package/cli/dist/web-ui/docs/cn/cli/release-notes/v2.97.3.md +17 -0
  19. package/cli/dist/web-ui/docs/cn/cli/release-notes/v2.97.4.md +9 -0
  20. package/cli/dist/web-ui/docs/cn/cli/release-notes/v2.97.5.md +20 -0
  21. package/cli/dist/web-ui/docs/cn/cli/release-notes/v2.98.0.md +48 -0
  22. package/cli/dist/web-ui/docs/cn/cli/release-notes/v2.98.1.md +19 -0
  23. package/cli/dist/web-ui/docs/cn/cli/slash-commands.md +1 -0
  24. package/cli/dist/web-ui/docs/en/cli/codebuddy-dir.md +309 -0
  25. package/cli/dist/web-ui/docs/en/cli/env-vars.md +23 -2
  26. package/cli/dist/web-ui/docs/en/cli/goal.md +161 -0
  27. package/cli/dist/web-ui/docs/en/cli/hooks.md +10 -2
  28. package/cli/dist/web-ui/docs/en/cli/http-api.md +6 -0
  29. package/cli/dist/web-ui/docs/en/cli/ide-integrations.md +2 -1
  30. package/cli/dist/web-ui/docs/en/cli/monitoring.md +87 -0
  31. package/cli/dist/web-ui/docs/en/cli/release-notes/README.md +9 -0
  32. package/cli/dist/web-ui/docs/en/cli/release-notes/v2.96.1.md +17 -0
  33. package/cli/dist/web-ui/docs/en/cli/release-notes/v2.97.0.md +186 -0
  34. package/cli/dist/web-ui/docs/en/cli/release-notes/v2.97.1.md +24 -0
  35. package/cli/dist/web-ui/docs/en/cli/release-notes/v2.97.2.md +16 -0
  36. package/cli/dist/web-ui/docs/en/cli/release-notes/v2.97.3.md +17 -0
  37. package/cli/dist/web-ui/docs/en/cli/release-notes/v2.97.4.md +9 -0
  38. package/cli/dist/web-ui/docs/en/cli/release-notes/v2.97.5.md +20 -0
  39. package/cli/dist/web-ui/docs/en/cli/release-notes/v2.98.0.md +48 -0
  40. package/cli/dist/web-ui/docs/en/cli/release-notes/v2.98.1.md +19 -0
  41. package/cli/dist/web-ui/docs/en/cli/slash-commands.md +1 -0
  42. package/cli/dist/web-ui/docs/search-index-en.json +1 -1
  43. package/cli/dist/web-ui/docs/search-index-zh.json +1 -1
  44. package/cli/dist/web-ui/docs/sidebar-en.json +1 -1
  45. package/cli/dist/web-ui/docs/sidebar-zh.json +1 -1
  46. package/cli/dist/web-ui/index.html +2 -2
  47. package/cli/dist/web-ui/sw.js +1 -1
  48. package/cli/dist/web-ui/{workbox-e082a648.js → workbox-fed2bdfe.js} +1 -1
  49. package/cli/package.json +1 -1
  50. package/cli/product.cloudhosted.json +281 -3
  51. package/cli/product.internal.json +4 -3
  52. package/cli/product.ioa.json +25 -3
  53. package/cli/product.json +27 -5
  54. package/cli/product.selfhosted.json +4 -3
  55. package/lib/auth.js +3 -2
  56. package/lib/auth.js.map +1 -1
  57. package/lib/connect.js +3 -2
  58. package/lib/connect.js.map +1 -1
  59. package/lib/index.js +1 -1
  60. package/lib/mcp/create-sdk-mcp-server.js +3 -2
  61. package/lib/mcp/create-sdk-mcp-server.js.map +1 -1
  62. package/lib/plugin.js +13 -22
  63. package/lib/plugin.js.map +1 -1
  64. package/lib/query.d.ts.map +1 -1
  65. package/lib/query.js +2 -2
  66. package/lib/query.js.map +1 -1
  67. package/lib/session.js +4 -4
  68. package/lib/session.js.map +1 -1
  69. package/lib/transport/index.js +2 -2
  70. package/lib/transport/index.js.map +1 -1
  71. package/lib/transport/process-transport.js +7 -17
  72. package/lib/transport/process-transport.js.map +1 -1
  73. package/lib/utils/cli-resolver.js +6 -6
  74. package/lib/utils/cli-resolver.js.map +1 -1
  75. package/lib/utils/env-utils.js +2 -1
  76. package/lib/utils/env-utils.js.map +1 -1
  77. package/lib/utils/process.js +2 -1
  78. package/lib/utils/process.js.map +1 -1
  79. package/lib/utils/type-guards.js +2 -1
  80. package/lib/utils/type-guards.js.map +1 -1
  81. package/package.json +1 -1
  82. package/cli/dist/web-ui/assets/index-CY6b2fbj.css +0 -32
  83. package/cli/dist/web-ui/assets/workbox-window.prod.es5-BIl4cyR9.js +0 -2
@@ -0,0 +1,87 @@
1
+ # Monitoring CodeBuddy Code with OpenTelemetry
2
+
3
+ CodeBuddy Code 支持把内部 traces 通过标准 OTLP 协议上报到用户自有的 OpenTelemetry Collector,便于企业自建可观测性平台对接。
4
+
5
+ > **MVP 范围**:当前仅支持 **traces**(链路追踪),暂不支持 metrics 与 logs 的自定义上报。后续会按需扩展。
6
+
7
+ ## 启用方式
8
+
9
+ 设置启用开关后,traces 会按 OTel 标准环境变量上报:
10
+
11
+ ```bash
12
+ export CODEBUDDY_CODE_ENABLE_TELEMETRY=1
13
+ export OTEL_EXPORTER_OTLP_ENDPOINT=https://otel-collector.example.com
14
+ codebuddy
15
+ ```
16
+
17
+ > 兼容 Claude Code 已有配置:`CLAUDE_CODE_ENABLE_TELEMETRY` 与 `CODEBUDDY_CODE_ENABLE_TELEMETRY` 等价。
18
+
19
+ ## 关键环境变量
20
+
21
+ 完整清单见 [env-vars.md](env-vars.md#opentelemetry-自定义上报traces),常用项:
22
+
23
+ | 变量 | 用途 |
24
+ |------|------|
25
+ | `CODEBUDDY_CODE_ENABLE_TELEMETRY=1` | 启用 OTel 上报开关 |
26
+ | `OTEL_TRACES_EXPORTER` | `otlp`(默认)/ `console` / `none` |
27
+ | `OTEL_EXPORTER_OTLP_ENDPOINT` | OTLP Collector 地址,会自动追加 `/v1/traces` |
28
+ | `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` | traces 专用完整 URL,优先级更高 |
29
+ | `OTEL_EXPORTER_OTLP_HEADERS` | 请求头 `k1=v1,k2=v2`,value 支持 URL 编码 |
30
+ | `OTEL_SERVICE_NAME` | 覆盖默认 `service.name` |
31
+ | `OTEL_RESOURCE_ATTRIBUTES` | 附加 resource 属性 |
32
+
33
+ ## 协议支持
34
+
35
+ 仅支持 **`http/protobuf`**(OTLP/HTTP + Protobuf 编码),与 Claude Code 默认一致。
36
+
37
+ 设置 `OTEL_EXPORTER_OTLP_PROTOCOL=grpc` 或 `http/json` 会被忽略并写入告警日志,回退到默认 protobuf。
38
+
39
+ ## 典型场景
40
+
41
+ ### 1. 上报到企业自建 Collector
42
+
43
+ ```bash
44
+ export CODEBUDDY_CODE_ENABLE_TELEMETRY=1
45
+ export OTEL_EXPORTER_OTLP_ENDPOINT=https://otel.corp.example.com
46
+ export OTEL_EXPORTER_OTLP_HEADERS=Authorization=Bearer%20<TOKEN>
47
+ export OTEL_SERVICE_NAME=codebuddy-code
48
+ export OTEL_RESOURCE_ATTRIBUTES=deployment.environment=prod,team=copilot
49
+ ```
50
+
51
+ ### 2. 本地调试 trace 输出
52
+
53
+ 调试时让 traces 直接打到 stdout:
54
+
55
+ ```bash
56
+ export CODEBUDDY_CODE_ENABLE_TELEMETRY=1
57
+ export OTEL_TRACES_EXPORTER=console
58
+ ```
59
+
60
+ ### 3. 临时关闭
61
+
62
+ ```bash
63
+ export OTEL_TRACES_EXPORTER=none
64
+ # 或全局禁用:
65
+ export DISABLE_TELEMETRY=1
66
+ ```
67
+
68
+ ## 优先级与回退
69
+
70
+ 1. `DISABLE_TELEMETRY=1` 拥有最高优先级,关闭所有遥测。
71
+ 2. 启用判定:内置 product 配置启用 **或** `CODEBUDDY_CODE_ENABLE_TELEMETRY` / `CLAUDE_CODE_ENABLE_TELEMETRY` 设置为 truthy 值(`1` / `true` / `yes` / `on`)。
72
+ 3. Endpoint 优先级:`OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` > `OTEL_EXPORTER_OTLP_ENDPOINT` > 内置 product 配置中的 `telemetry.tracing.url`。
73
+ 4. Headers:env 与 product 配置合并,env 同名 key 覆盖 product。
74
+
75
+ ## FAQ
76
+
77
+ ### 是否会把 prompt / 代码内容写到 trace?
78
+
79
+ 不会。CodeBuddy Code 的 trace 仅记录工具调用、模型调用、耗时等结构化指标,不包含用户对话内容或源代码。如果需要记录代码片段需另行启用 standard 报告通道(不在本特性范围)。
80
+
81
+ ### 与企业内部上报通道是否冲突?
82
+
83
+ 不冲突。OTel 自定义上报与内置 standard 报告(`telemetry.report.standard`)是两套独立通道,可同时启用。
84
+
85
+ ### 是否支持 metrics / logs?
86
+
87
+ 暂不支持,规划中。如有强诉求请反馈到对应 Issue。
@@ -17,6 +17,15 @@ Release Notes 记录了每个版本的用户可见变更,包括:
17
17
 
18
18
  <!-- 新版本自动添加到此处 -->
19
19
 
20
+ - [v2.98.1](./v2.98.1.md) - 2026-05-25
21
+ - [v2.98.0](./v2.98.0.md) - 2026-05-24
22
+ - [v2.97.5](./v2.97.5.md) - 2026-05-22
23
+ - [v2.97.4](./v2.97.4.md) - 2026-05-21
24
+ - [v2.97.3](./v2.97.3.md) - 2026-05-19
25
+ - [v2.97.2](./v2.97.2.md) - 2026-05-16
26
+ - [v2.97.1](./v2.97.1.md) - 2026-05-14
27
+ - [v2.97.0](./v2.97.0.md) - 2026-05-13
28
+ - [v2.96.1](./v2.96.1.md) - 2026-05-12
20
29
  - [v2.96.0](./v2.96.0.md) - 2026-05-11
21
30
  - [v2.95.1](./v2.95.1.md) - 2026-05-07
22
31
  - [v2.95.0](./v2.95.0.md) - 2026-05-01
@@ -0,0 +1,17 @@
1
+ # 🚀 CodeBuddy Code v2.96.1 发布
2
+
3
+ ## ✨ 新功能
4
+
5
+ - **自动化任务 Langfuse 标签**:定时任务触发的请求自动携带 `automation` 标签,便于在 Langfuse 看板中筛选和分析自动化任务的执行数据
6
+
7
+ ## 🔧 改进优化
8
+
9
+ - **宿主可关闭嵌入式 CLI 历史清理**:允许宿主应用通过配置关闭嵌入式 CLI 的历史会话自动清理行为,适配更多集成场景
10
+ - **统一上下文压缩触发路径**:合并多处压缩触发逻辑为统一入口,提升压缩流程的可靠性和一致性
11
+
12
+ ## 🐛 问题修复
13
+
14
+ - **SDK 模式自动压缩断联**:修复 SDK 模式下触发自动上下文压缩时导致连接中断的问题
15
+ - **上下文压缩失败卡住**:修复上下文压缩失败后会话卡住无法继续的问题
16
+ - **插件市场 UI 缓存未刷新**:修复插件市场更新后 Web UI 缓存未及时刷新的问题
17
+ - **插件子代理描述刷新**:修复插件子代理描述信息未正确刷新的问题
@@ -0,0 +1,186 @@
1
+ # 🚀 CodeBuddy Code v2.97.0 发布
2
+
3
+ ## ✨ 新功能
4
+
5
+ ### 完整快捷键系统
6
+
7
+ 参考 Claude Code 架构实现快捷键系统,支持上下文条件、弦序列(如 Ctrl+X Ctrl+K)、用户自定义覆盖。
8
+
9
+ - 配置文件:`~/.codebuddy/keybindings.json`
10
+ - 16 个上下文(Global / Chat / Terminal / Autocomplete 等)、60+ 个动作
11
+ - `/keybindings` 斜杠命令快速管理
12
+ - Web UI 新增可视化配置(按上下文分组、搜索、录制、实时冲突检测)
13
+ - REST API:`/api/v1/keybindings`(GET/PUT/POST reset/POST validate)
14
+
15
+ ### Skill / Subagent Frontmatter Hooks
16
+
17
+ 对齐 Claude Code 行为,支持在 `.codebuddy/agents/*.md` 与 `.codebuddy/skills/*/SKILL.md` 的 YAML frontmatter 中配置 `hooks:` 字段,子代理 / fork skill 生命周期内自动注册和清理。
18
+
19
+ - 支持 `command` / `prompt` / `agent` / `http` 四种 hook 类型
20
+ - `once: true` 自动移除、event matcher 语义
21
+ - **默认安全闸门**:非 product 内置来源的 frontmatter hooks 默认禁用(含本地与插件市场),需在 `settings.json` 中开启 `allowUntrustedFrontmatterHooks: true` 才生效
22
+
23
+ ### Hook 事件全面对齐 Claude Code
24
+
25
+ 新增 20+ 个 hook 事件覆盖工具失败、子代理生命周期、任务管理、权限审批、文件监视等场景:
26
+
27
+ - **生命周期**:PostToolUseFailure / SubagentStart / StopFailure / PostCompact / ConfigChange / InstructionsLoaded
28
+ - **权限与任务**:PermissionRequest / PermissionDenied(可拦截审批)、TaskCreated / TaskCompleted、TeammateIdle、Setup
29
+ - **文件监视**:FileChanged(声明 watchPaths)、CwdChanged(cwd 变化触发)
30
+ - **新增 hook 类型**:`http`(POST 任意 URL)、`agent`(复用 prompt 路径)
31
+ - **新增字段**:`if`(按工具名/参数匹配)、`shell`(切 PowerShell)、`once`(成功后不再触发)、`asyncRewake`、`allowedEnvVars`、`statusMessage`
32
+ - **异步协议**:hook 输出 `{"async": true, "asyncTimeout": N}` 立即放行 fire-and-forget
33
+
34
+ ### Skills / 命令 / Subagent 变量占位符
35
+
36
+ `.md` 文件中支持变量占位符替换:`${CODEBUDDY_PLUGIN_ROOT}` / `${CODEBUDDY_SKILL_DIR}` / `${CODEBUDDY_SESSION_ID}` 以及任意大写环境变量,支持 `${MY_ENV_VAR:-默认值}` 默认值语法。未设置的占位符原样保留,避免静默丢失配置。
37
+
38
+ ### 第三方插件市场自动更新
39
+
40
+ 新增 `autoUpdateThirdPartyMarketplaces` 产品配置和 `CODEBUDDY_AUTO_UPDATE_THIRD_PARTY_MARKETPLACES` 环境变量,支持全局启用第三方插件市场自动更新。市场配置项新增 `autoUpdate` 可选字段,可单独控制。
41
+
42
+ ### Remote Gateway 任务超时可配置
43
+
44
+ `/api/v1/runs` 端点默认超时从 10 分钟提升到 **30 分钟**,长任务不再被强制中断:
45
+
46
+ - 新增 `gateway.runTimeoutMs` settings 配置(毫秒)
47
+ - 新增 HTTP header `X-Codebuddy-Run-Timeout` 单次覆盖
48
+ - 设为 0 或负数关闭超时保护
49
+
50
+ ### Web UI PWA 自动检测新版本
51
+
52
+ 发布新版本后,已打开的 Web UI tab 不再需要手动强制刷新:
53
+
54
+ - 每 15 分钟自动询问后端是否有新 Service Worker
55
+ - 对话空闲时自动刷新切到新版本
56
+ - 对话进行中弹 toast 保留"立即刷新"按钮,订阅运行状态在 Agent 空闲后自动刷新
57
+
58
+ ### UE 项目自动排除大仓噪声目录
59
+
60
+ 在 cwd 检测到 `*.uproject` 时,Grep / Glob 自动叠加 `!Intermediate/` `!DerivedDataCache/` `!Saved/` `!Binaries/` `!Build/` `!.vs/` 排除,避免 Unreal Engine 项目(典型 10W+ 源码 / 300W+ 总文件)的编译产物污染搜索结果;可通过 `settings.disableUEAutoExclude: true` 关闭。Grep 内容搜索新增 `--max-columns 500` 避免单行 MB 级内容打爆 stdout。
61
+
62
+ ### 桌面文件系统 ACP 方法
63
+
64
+ 在 ACP StreamManager 中实现完整 `fs/*` 方法(list / read / write / exists / makeDir / remove / rename / getInfo / watchDir / unwatch),使 WorkBuddy Desktop"全部文件"标签页正常工作。
65
+
66
+ ## 🔧 改进优化
67
+
68
+ - **PowerShell 安全多层防御**:CLM 类型白名单(~90 类型)、Git 安全防护(裸仓库 / NTFS 8.3 / archive 提取器)、危险 Cmdlet 分类(7 集合 + 120+ 别名)、破坏性命令 UI 警告(16 种模式)、Unicode 破折号支持
69
+ - **ACP 连接稳定性**:GET SSE 连接 30 秒心跳防止反向代理(cloudflared / nginx)回收;连接关闭时等待历史写入完成防止 JSONL 日志被截断
70
+ - **Bash 工具 timeout 提示动态化**:工具描述中"最大 timeout"原先写死 600000ms,现动态注入与运行时实际 clamp 值保持一致
71
+ - **TUI Ctrl+F / Ctrl+B 光标导航**:支持 bash readline 风格的左右移动一字符,与已有 Ctrl+A / Ctrl+E / Ctrl+K / Ctrl+U 一致,emoji 多字节字符移动正确
72
+ - **Web UI 画布内嵌终端文字选择**:tile 聚焦后遮罩透传 pointerdown 给 xterm,支持选中复制;中键 / 右键 / Space + 左键仍走画布平移
73
+ - **Channel 权限 deny_and_exit_plan**:微信 / 企微用户可通过回复 `q` 退出计划模式;ExitPlanMode 工具新增专用提示
74
+ - **Request Purpose 标记**:新增 `X-Agent-Purpose` HTTP header 为不同类型 LLM 请求打分类标签,供 Langfuse 进行 trace 分析
75
+ - **图片压缩拦截器**:对用户发送的 base64 图片统一进行长边 2000px 压缩,确保 ACP / TUI / plugin-chat 各来源图片都经过尺寸优化
76
+ - **Worktree 目录切换**:创建或复用 worktree 后尽量保持进入与当前目录对应的相对子目录
77
+ - **Session API 统一**:合并 `listWorkspaces` 和 `listAcrossProjects` 为统一的 `GET /api/v1/sessions` 端点,支持 `cwd` 查询参数
78
+ - **模型权限错误自动恢复**:后端返回"模型不可用"时自动刷新产品配置并展示最新可用模型列表
79
+ - **下架历史模型并刷新积分系数**:下掉 HY 2.0 系列(3 个)和 GPT-5.2/5.1 共 4 个旧模型;按最新官方定价表刷新模型积分(iOA / 国内版 / 云托管版)
80
+ - **插件加载并发与缓存**:为市场插件列表 / 元数据 / 组件加载引入并发上限避免启动抖动;新增市场插件列表缓存与加载去重
81
+ - **自动化任务 Langfuse 标签**:定时任务触发的请求自动携带 `automation` 标签便于筛选
82
+
83
+ ## 🐛 问题修复
84
+
85
+ ### ACP 协议与稳定性
86
+
87
+ - **`/clear` 分隔符在重启后丢失**:修复 CBC / WorkBuddy Desktop 会话里插入的 `/clear` 分隔符在重启或 loadSession 回放后消失,以及随之出现的 400 错误
88
+ - **`/compact` 在 IM 场景下生效**:WorkBuddy Desktop IM 的 `/compact`/`/总结`原先无效,现通过 `_meta` 短路调用压缩
89
+ - **Cancel Barrier**:cancel 完成瞬间若有新 `session/prompt` 到达会被当作新对话启动,新增 500ms cancel barrier
90
+ - **取消标记泄漏**:prompt 终态与 `session/cancel` 同时发生时 pending cancellation 标记未被消费导致后续轮次 AskUserQuestion 被误判为取消
91
+ - **流式回复重复输出思考内容**:修复 WorkBuddy 对话流式回复重复输出思考内容
92
+ - **AskUserQuestion 显示"未回答"**:ACP 模式下用户回答 AskUserQuestion 后 UI 显示"未回答"
93
+ - **AskUserQuestion 误判为"拒绝回答"**:审批信号抢在工具执行路径建立等待者前到达导致答案被丢弃
94
+ - **会话查找竞态**:`session/prompt` 改用 `getRuntimeSession` 优先查询活跃会话避免"Session not found"
95
+ - **会话继承 CLI 启动参数**:`--serve` 模式下 ACP 创建的会话未继承 `--permission-mode` / `--model` 等参数
96
+ - **`session/load` 超时**:部分 Windows 环境下出现超时,在协议入口层增加 25s 兜底
97
+ - **模型切换不生效**:`unstable_setSessionModel` 立即把新模型写入 runtime session 不再只依赖订阅副作用
98
+ - **不再把内置命令当 skill 暴露**:`/clear` `/help` `/model` `/theme` `/status` `/resume` `/rename` 不再混入 `Skill` 工具列表
99
+
100
+ ### 上下文压缩(Compact)
101
+
102
+ - **自动取消循环**:压缩在某些场景出现"自动取消"假象后立刻又被重复触发,压缩调用等待上限从 60 秒放宽到 20 分钟
103
+ - **残留 XML 标签**:任务异常结束时残留 `</conversation_history_summary>` 标签
104
+ - **摘要与用户消息错位**:请求级自动预压缩场景下压缩摘要与用户原始消息在历史中错位
105
+ - **退化摘要**:长会话自动压缩后缺少有效新增内容时仍可能再次压缩生成无效摘要
106
+ - **失败卡住历史视图**:失败/取消后再次触发压缩仍被卡住
107
+ - **超时死锁与取消**:子 Agent compact 超时后状态机卡死;用户主动取消时取消信号被吞掉
108
+ - **自定义模型自动压缩窗口**:未配 `maxInputTokens` 时退回到 `CODEBUDDY_AUTO_COMPACT_WINDOW` 兜底窗口
109
+ - **SDK 模式自动压缩断联**:SDK / headless 模式下压缩输出泄露到 stdout 导致断联
110
+ - **自动压缩渲染裸 XML**:聊天界面被渲染为裸 `<conversation_history_summary>` 标签,与 `/compact` 走同一套渲染
111
+ - **失败保留用户消息**:发送前自动压缩失败后会保存用户消息并展示明确失败提示
112
+ - **历史 `Unknown content` 错误**:从历史会话继续对话时可能报 `Unknown content` 导致中断
113
+
114
+ ### 模型与请求处理
115
+
116
+ - **PTL 上下文超长恢复**:新增按 API 轮次精确截断历史的兜底机制,覆盖主流模型错误文案
117
+ - **空流自动重试**:识别上游网关只发占位/心跳帧后断开的"空流"场景,自动恢复
118
+ - **请求体超限恢复**:axios 显式设 `maxBodyLength: Infinity`,避免 follow-redirects 默认 10MB 上限本地拦截
119
+ - **`Tool X not found` 错误处理**:错误不再带产品实现细节的 agent 名;`ModelBehaviorError` 不再弹客户端错误框,走 `end_turn` 结束本轮
120
+ - **自定义模型 Gzip 检测**:`custom-local:` 前缀剥离导致无法匹配 product.models 配置的问题
121
+ - **自定义模型加载 400**:支持顶级数组和对象包裹两种 models.json 格式
122
+
123
+ ### 历史与会话
124
+
125
+ - **首条用户消息丢失**:含隐藏上下文的用户首条消息在 UI 中消失
126
+ - **Model error 渲染为助手回复**:因模型报错(6004/429)中断的轮次被当普通回答渲染
127
+ - **Orphaned tool_call 回放**:对中断的工具调用跳过回放并注入系统通知
128
+ - **老会话任务列表展示**:旧版本迁移的会话恢复后任务列表渲染为空
129
+ - **图片消息标题污染**:在历史回放和会话标题生成场景中泄漏本地图片路径
130
+ - **Plan 模式权限恢复**:从 Desktop 端启动 plan 模式时 `prePlanPermissionMode` 未正确传递
131
+
132
+ ### 工具与权限
133
+
134
+ - **恢复 Grep/Glob 工具注册**:之前误将 Grep/Glob 从 5 份 product.json 中删除导致降级为 Bash+rg
135
+ - **`--disallowedTools` 子命令规则**:带子命令的规则(如 `Bash(pkill:*)`)整个工具被移除
136
+ - **工具过滤绕过漏洞**:ToolSearch lookup 模式和 DeferExecuteTool 不检查工具可用性
137
+ - **Glob/Grep 空结果提示**:返回有意义的文本提示替代空数组
138
+ - **rm 批量删除风险等级**:从 MEDIUM 提升至 HIGH 确保 IM 侧批量删除触发用户确认
139
+ - **沙箱 strip_write 假成功**:静默丢弃写入/删除时不触发提权 UI
140
+
141
+ ### 配置目录
142
+
143
+ - **Bash Sandbox 配置目录路径**:`CODEBUDDY_CONFIG_DIR` 自定义目录下 Bash 沙箱白名单失效
144
+ - **Prompt 模板硬编码路径**:TeamCreate / TeamDelete / statusline-setup 工具描述模板通过 `{{codebuddyHome}}` 渲染实际目录
145
+ - **UI 面板硬编码路径**:Permissions / Agents / Skills / Memory 面板显示真实路径
146
+ - **沙盒开关存储层级**:Desktop 端沙盒开关从持久化改为内存层(session 级别)避免污染工作区目录
147
+
148
+ ### 插件市场
149
+
150
+ - **MCP 静态 Authorization 被 OAuth 覆盖**:在 `headers.Authorization` 显式配置时仍触发 OAuth 流程的问题
151
+ - **Marketplace 同名重复**:撞名出现两条同名套件且无法删除
152
+ - **Marketplace 重复添加报错**:改为自动触发更新流程
153
+ - **Marketplace 更新缓存未刷新**:`updateMarketplace` 后 `lastUpdated` 时间不更新
154
+ - **GithubMarketplace 目录名对齐**:非标准仓库 URL 目录名与 manifest.name 不一致
155
+ - **Git 不可用 ZIP 回退**:未安装 Git 的 Windows 环境下添加插件市场失败
156
+ - **内置套件市场 ZIP 分发**:默认套件市场无内容、添加市场失败
157
+ - **插件子代理描述刷新**:加载或切换插件子代理后描述未及时刷新
158
+ - **Skill 扫描悬空符号链接**:之前会让整个目录扫描中断
159
+
160
+ ### Windows 兼容性
161
+
162
+ - **PowerShell Office Automation**:Excel / Word / PowerPoint / Outlook 创建被安全策略误拦截
163
+ - **PowerShell 命令行包装**:`rawCommand=true` 时跳过 bash 包装避免反斜杠/反引号被吞
164
+ - **黑窗弹出**:`--bg` 后台会话以及 daemon 启动期间弹出 conhost / Git Bash 黑窗
165
+ - **插件 commands 不显示**:`CODEBUDDY_PLUGIN_DIRS` 改用 `path.delimiter` 避免盘符被当分隔符
166
+ - **Bash 工具中文乱码**:跨 chunk 拼回 UTF-8 多字节序列;Windows 注入 `PYTHONUTF8=1`
167
+
168
+ ### 其他
169
+
170
+ - **Daemon 端口竞态**:重启时 `EADDRINUSE` 启动失败或长连接阻塞
171
+ - **MessageQueueDeferredDispatch(Mode B)**:Agent 队列消息无法成功发送、"立刻发送"消息丢失
172
+ - **Team 消息实时投递**:队长忙碌期间队员 SendMessage 卡在消息队列不被消费
173
+ - **Playbook Team Spinner**:任务完成后左侧 agent 持续转圈
174
+ - **专家内置 Skill 不可见**:`rebuildAgents` 完成后未失效 Skill / SlashCommand / ToolSearch 工具描述缓存
175
+ - **会话标题与摘要触发**:确保标题更新、内容摘要、压缩前刷新按预期生效
176
+ - **ImageGen / ImageEdit 取消支持**:取消后图片生成请求仍继续执行
177
+ - **私有化部署检测**:配置企业端点但实际为云托管时错误标记为 Self-Hosted
178
+ - **`anydev` 远程 IDE `/ide` 命令**:新增 `CODEBUDDY_IDE_PORT` / `CODEBUDDY_IDE_HOST` / `CODEBUDDY_IDE_SKIP_VALID_CHECK` 环境变量
179
+ - **Web UI 编辑器保存清空文件**:`writeFile` 前端未显式设 Content-Type 被 body-parser 消费
180
+ - **Gateway CORS 静态资源**:开启 CORS 白名单时同源 IP 访问静态资源被误拦
181
+ - **Read 工具图片返回格式**:返回 image content block 格式
182
+ - **Worktree 相对 cwd**:复用 worktree 时未正确进入相对目录
183
+
184
+ ## 📝 文档更新
185
+
186
+ - **下线 sandboxing.md 文档**:相关链接指向 bash-sandboxing.md
@@ -0,0 +1,24 @@
1
+ # 🚀 CodeBuddy Code v2.97.1 发布
2
+
3
+ ## 🐛 问题修复
4
+
5
+ ### /ide 自动连接稳定性修复
6
+
7
+ 修复了独立二进制版本(`bun build --compile`)下 `/ide` 自动连接可能报错 `Unexpected server response: 101` 的问题。
8
+
9
+ 该问题由 IDE WebSocket 握手在特定情况下被错误识别为普通 HTTP 响应引起,会导致所有匹配的 IDE 均无法连接。现在独立二进制版本改用 Bun 原生 WebSocket,绕开了底层兼容性问题;通过 npm 安装的版本继续使用原有实现,不受影响。
10
+
11
+ 同时对自动连接的工作区匹配逻辑进行了收紧:
12
+
13
+ - 仅当恰好只有一个 IDE 的工作区路径覆盖当前目录时,才会自动发起连接
14
+ - 若存在多个匹配 IDE,则静默跳过自动连接,您可以通过 `/ide` 命令手动选择
15
+ - 连接前会自动清理已退出 IDE 进程残留的锁文件,避免连接到无效端口
16
+
17
+ ### 微信回复工具字段格式修复
18
+
19
+ 修复了部分模型在调用 `WeChatReply` 工具时,将回复正文内容错误地写入 `chat_id` 字段,导致工具反复报错 "Either text or file_path is required" 的问题。
20
+
21
+ 本次改进包括:
22
+
23
+ - 补全工具描述与频道指令中的 JSON 调用示例,明确各字段含义
24
+ - 当检测到正文内容被误填入 `chat_id` 字段时,给出清晰的纠错提示,引导模型使用正确的字段名重新调用
@@ -0,0 +1,16 @@
1
+ # 🚀 CodeBuddy Code v2.97.2 发布
2
+
3
+ ## 🔧 改进优化
4
+
5
+ - **警告抑制**:抑制 DEP0040(punycode)、NODE_TLS_REJECT_UNAUTHORIZED 和 AbortSignal MaxListenersExceeded 等无用警告,终端输出更干净
6
+ - **自定义 Agent hooks 支持**:自定义 Agent 的 frontmatter 现在支持 hooks 配置,扩展自定义 Agent 的能力边界
7
+ - **rm 命令风险评级调整**:非递归多文件 rm 从 HIGH 降级为 MEDIUM,减少不必要的权限确认弹窗
8
+
9
+ ## 🐛 问题修复
10
+
11
+ - **ACP 模式下 MCP 工具不可见**:修复在 IDE 嵌入式 / Web UI / Workbuddy Desktop 等模式下,MCP 工具无法被发现和使用的问题。现在配置变化后会自动重新扫描,已连接的 server 不会重复建立连接
12
+ - **IDE 集成子代理工具调用**:修复 IDE 集成模式下子代理调用 Read / Write / Edit / Bash 等工具时,客户端因会话标识不匹配而拒绝执行的问题
13
+ - **会话启动钩子一致性**:统一各入口触发 SessionStart 钩子的路径,避免首条提示缺失上下文
14
+ - **插件加载**:修复 headless / ACP 模式下 `--plugin-dir` 指定的插件无法被识别的问题
15
+ - **插件解压权限**:解压插件 zip 时保留可执行位,修复附带脚本无法执行的问题
16
+ - **tmux 环境输入乱码**:修复在 tmux 下 Kitty keyboard protocol 控制序列导致输入框出现乱码的问题
@@ -0,0 +1,17 @@
1
+ # 🚀 CodeBuddy Code v2.97.3 发布
2
+
3
+ ## 🔧 改进优化
4
+
5
+ - **MCP 工具调用透传 Model ID**:MCP 工具调用时自动将当前模型 ID 通过 HTTP 请求头 `X-Model-ID` 透传到下游 MCP Server,便于下游服务识别调用来源模型,增强 MCP 集成场景的可追溯性
6
+
7
+ ## 🐛 问题修复
8
+
9
+ - **专家团子智能体重名**:修复专家团中子智能体重名导致 spawn 失败的问题,提升多智能体协作的稳定性
10
+ - **团队名冲突与 inbox 重试**:团队名冲突时自动重命名,inbox 轮询增加重试机制,减少团队协作中的异常中断
11
+ - **遥测数据准确性**:修复 `chat_user_action` 上报时 `requestModelName` 字段错误的问题,确保遥测数据准确反映实际使用模型
12
+ - **computer-use macOS Retina 坐标**:修复 macOS Retina 高分屏下 computer-use 坐标偏移与 scroll 操作异常,确保屏幕操作精确定位
13
+ - **团队会话取消稳定性**:修复团队会话取消后队列残留拉活与列表状态闪回的问题,会话取消后状态更新更加稳定
14
+ - **PowerShell 语法防护**:阻止 cmd 语法误入 PowerShell 执行,避免跨 shell 语法错误导致命令失败
15
+ - **终端按键兼容性**:修复 SS3 方向键及 Ghostty 终端下 Shift+Enter 按键无响应的问题,提升终端兼容性
16
+ - **MaxToken 压缩卡死**:修复 MaxToken 压缩取消后 ACP `forwardingPromise` 卡死的问题,避免会话因压缩取消而陷入无响应状态
17
+ - **历史回放压缩记录**:修复消息压缩记录持久化及回放时 `<cb_summary>` 标签未过滤的问题,确保历史回放的准确性
@@ -0,0 +1,9 @@
1
+ # 🚀 CodeBuddy Code v2.97.4 发布
2
+
3
+ ## 🔧 改进优化
4
+
5
+ - **模型兼容性目录驱动**:模型请求的兼容性处理改为目录驱动架构,新增模型时只需更新模型目录即可完成适配,无需修改代码。自定义模型也会自动补齐 `maxInputTokens`、`maxOutputTokens`、`supportsReasoning`、`thinkingLevelMap` 等能力字段,降低模型接入成本
6
+
7
+ ## 🐛 问题修复
8
+
9
+ - **--debug hooks 输出**:修复 `--debug` 参数未输出 hooks 执行详情的问题,现在可通过 `--debug hooks` 查看 hooks 的完整执行流程
@@ -0,0 +1,20 @@
1
+ # 🚀 CodeBuddy Code v2.97.5 发布
2
+
3
+ ## 📦 版本信息
4
+
5
+ | 组件 | 版本 |
6
+ |------|------|
7
+ | CodeBuddy Code CLI | v2.97.5 |
8
+ | Agent SDK JS | v0.3.155 |
9
+ | Agent SDK Python | v0.3.154 |
10
+
11
+ ## 🐛 问题修复
12
+
13
+ - **专家团多类卡死/无产物/异常结束**:集中修复了多个用户在使用专家团("腾讯自选股"、"一人公司"、"专业文档生成"、"深度研究"等)时反馈的异常问题,包括任务异常结束无产物、子成员已完成但主会话卡在"思考中"、专家团运行中途自行结束导致制品丢失等场景
14
+ - **Team 成员已完成时 shutdown 无回应**:成员任务已完成后 team-lead 发起 shutdown_request,过去会因绕过 `ShutdownCoordinator` 导致 lead 永远等不到回执;现已统一短路处理,确保 lead 端及时解锁
15
+ - **并发 spawn 时消息丢失**:主 lead 短时间内并发拉起多个成员时,旧逻辑会因找不到对端报错丢消息;现采用 "writeToMailbox first, resolve later" 策略,并附带降级刷新与 notice 提示
16
+ - **成员被错误识别为 team-lead**:修复 respawn 边界下成员消息 `from` 字段串号导致协作错乱的问题,强制 materialise session.meta 并校验 lead 身份
17
+ - **同毫秒并发 shutdown ID 冲突**:lead 并发 shutdown 多成员时 ID 撞车导致回执被覆盖,现使用 `recipient + 时间戳 + 随机数` 形式
18
+ - **进程退出兜底清理**:补齐 session-team 的退出清理,避免长期累积 20+ 个孤儿目录
19
+ - **Fork subagent 递归爆炸**:新增环境变量 `CODEBUDDY_DISABLE_FORK_SUBAGENT`,启用后从工具描述层和运行时层一致禁用 fork subagent,并对历史调用降级为 `general-purpose`,避免请求量爆炸与报错
20
+ - **HTTP User-Agent 头部修复**:修复缺少 `productName` 时 User-Agent 回退为 `WorkBuddy/unknown` 污染下游统计的问题,现仅在产品名存在时才拼入对应段
@@ -0,0 +1,48 @@
1
+ # 🚀 CodeBuddy Code v2.98.0 发布
2
+
3
+ ## 📦 版本信息
4
+
5
+ | 组件 | 版本 |
6
+ |------|------|
7
+ | CodeBuddy Code CLI | v2.98.0 |
8
+ | Agent SDK JS | v0.3.156 |
9
+ | Agent SDK Python | v0.3.155 |
10
+
11
+ ## ✨ 新功能
12
+
13
+ ### OpenTelemetry 自定义上报(traces)
14
+
15
+ 支持通过 OTel 标准环境变量将内部 traces 上报到自有 Collector,便于和企业可观测平台集成:
16
+
17
+ ```bash
18
+ export CODEBUDDY_CODE_ENABLE_TELEMETRY=1
19
+ export OTEL_EXPORTER_OTLP_ENDPOINT=https://otel.corp.example.com
20
+ export OTEL_EXPORTER_OTLP_HEADERS=Authorization=Bearer%20<TOKEN>
21
+ ```
22
+
23
+ 支持 `OTEL_TRACES_EXPORTER` / `OTEL_SERVICE_NAME` / `OTEL_RESOURCE_ATTRIBUTES` 等标准变量。详见 `docs/monitoring.md`。
24
+
25
+ ### 沙箱生态资产目录白名单
26
+
27
+ 沙箱安全策略默认允许 WorkBuddy 生态资产目录和跨平台技能目录写入,减少插件、技能与连接器在沙箱环境中的访问受限问题。
28
+
29
+ ## 🔧 改进优化
30
+
31
+ - **自动压缩窗口提升**:未配置 `maxInputTokens` 的模型,默认 auto-compact 窗口从 100k 提升到 200k token
32
+ - **Hooks 注入 agent_id / agent_type**:所有 hook 事件 payload 补齐触发源标识,方便在全局 hook 里区分主会话与子 agent
33
+ - **Hook 去重精细化**:解决"同事件触发两次"问题,settings 跨 scope 同一 command 折叠成一份,不同插件 / 子 agent scope 各自保留一份
34
+ - **多源 hook 命中可观测**:同一事件命中 ≥ 2 条不同 hook 时,日志列出所有命中命令,方便自查冲突
35
+ - **CLI 文档补齐**:新增 `monitoring.md` 与 `codebuddy-dir.md`,完成 v2.96.1 ~ v2.97.5 release notes 中英文同步与导航更新
36
+
37
+ ## 🐛 问题修复
38
+
39
+ - **后台 Bash 僵尸进程**:修复 `nohup` 等后台命令残留僵尸进程。stdout/stderr 改为直接写文件 fd;新增 50MB 输出看门狗(`CODEBUDDY_BASH_BG_MAX_OUTPUT_BYTES` 可调)和 `CODEBUDDY_BASH_BG_PIPE_MODE=1` 回滚开关
40
+ - **官方 Copilot 网关保留 thinking 字段**:修复 `auto` 模型开启思考后,请求发往官方网关时 thinking 字段被过早清理的问题
41
+ - **压缩类型透传**:修复自动压缩与手动 `/compact` 在 ACP `_meta` 中无法区分的问题
42
+ - **进程终止可靠性**:修复 `dispose()` 后 `kill()` 被 `_disposed` 标志拦截、以及 `disposeAll()` exit 事件路由丢失的问题
43
+
44
+ ## 📝 文档更新
45
+
46
+ - **CLI 监控文档**:新增 `monitoring.md` 介绍 OpenTelemetry 自定义上报
47
+ - **目录结构说明**:新增 `codebuddy-dir.md` 说明 `~/.codebuddy/` 与 `.codebuddy/` 目录结构、配置优先级与记忆加载顺序
48
+ - **Release Notes 索引**:补齐 v2.96.1 ~ v2.97.5 共 7 个版本的中英文 release notes
@@ -0,0 +1,19 @@
1
+ # 🚀 CodeBuddy Code v2.98.1 发布
2
+
3
+ ## 📦 版本信息
4
+
5
+ | 组件 | 版本 |
6
+ |------|------|
7
+ | CodeBuddy Code CLI | v2.98.1 |
8
+ | Agent SDK JS | v0.3.157 |
9
+ | Agent SDK Python | v0.3.156 |
10
+
11
+ ## 📌 概述
12
+
13
+ v2.98.0 因发版流水线 OOM 未能成功发布到 npm,本次以 v2.98.1 补发。**功能与 v2.98.0 完全等价**,所有 v2.98.0 的新功能、改进与修复均包含在本版本中。如果你已尝试安装 v2.98.0 失败,请直接升级到 v2.98.1。
14
+
15
+ 完整变更详情请参考 [v2.98.0 发布说明](./v2.98.0.md)。
16
+
17
+ ## 🐛 问题修复
18
+
19
+ - **修复 agent-cli 正式发版流水线 OOM**:调高发版构建阶段 Node 堆内存上限至 8GB,解决 v2.98.0 在 `yarn build` 阶段被 OOM Killer 终止、导致 npm 包未能发布的问题,让后续版本能够稳定发布。
@@ -30,6 +30,7 @@ CodeBuddy Code 支持斜杠命令,允许您在聊天中执行特殊操作、
30
30
  | `/model:image-to-image` | `[list \| model-id]` | ✅ 支持 | 切换或查看当前使用的图生图模型。不带参数时打开交互式选择界面,`list` 列出可用模型,带模型 ID 参数时直接切换到指定模型。 |
31
31
  | `/permissions` | | ✅ 支持 | 管理工具权限和工作区目录访问权限。 |
32
32
  | `/plan` | | ✅ 支持 | 预览当前计划模式下的计划文件内容。 |
33
+ | `/goal` | `<condition> \| clear` | ✅ 支持 | 持续工作直到达成条件。`/goal <condition>` 设定一个目标条件(例:`/goal all tests pass`),会话级注册一个 prompt 类型的 Stop hook,模型每次想停下来时由小模型评估器判断条件是否满足;不满足则把 reason 注入 history 让模型继续工作。`/goal` 不带参数打开 recap 面板,`/goal clear`(别名:`stop` / `off` / `reset` / `none` / `cancel`)提前结束目标。详见 [goal 文档](./goal.md)。 |
33
34
  | `/upgrade` | | ✅ 支持 | 在浏览器中打开升级页面,查看高级功能和订阅选项。 |
34
35
  | `/bashes` | | ✅ 支持 | 列出和管理后台任务。 |
35
36
  | `/terminal-setup` | | ✅ 支持 | 配置 Shift+Enter 快捷键绑定,用于在输入框中插入换行符。 |