@tencent-ai/agent-sdk 0.3.165 → 0.3.166

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 (34) hide show
  1. package/cli/CHANGELOG.md +25 -0
  2. package/cli/bin/codebuddy +35 -0
  3. package/cli/dist/codebuddy-headless.js +39 -39
  4. package/cli/dist/web-ui/docs/cn/cli/env-vars.md +2 -1
  5. package/cli/dist/web-ui/docs/cn/cli/release-notes/README.md +7 -0
  6. package/cli/dist/web-ui/docs/cn/cli/release-notes/v2.100.0.md +42 -0
  7. package/cli/dist/web-ui/docs/cn/cli/release-notes/v2.100.1.md +13 -0
  8. package/cli/dist/web-ui/docs/cn/cli/release-notes/v2.100.2.md +18 -0
  9. package/cli/dist/web-ui/docs/cn/cli/release-notes/v2.101.0.md +23 -0
  10. package/cli/dist/web-ui/docs/cn/cli/release-notes/v2.102.0.md +39 -0
  11. package/cli/dist/web-ui/docs/cn/cli/release-notes/v2.103.0.md +37 -0
  12. package/cli/dist/web-ui/docs/cn/cli/release-notes/v2.103.1.md +31 -0
  13. package/cli/dist/web-ui/docs/cn/cli/troubleshooting.md +60 -0
  14. package/cli/dist/web-ui/docs/en/cli/env-vars.md +2 -1
  15. package/cli/dist/web-ui/docs/en/cli/release-notes/README.md +7 -0
  16. package/cli/dist/web-ui/docs/en/cli/release-notes/v2.100.0.md +42 -0
  17. package/cli/dist/web-ui/docs/en/cli/release-notes/v2.100.1.md +13 -0
  18. package/cli/dist/web-ui/docs/en/cli/release-notes/v2.100.2.md +18 -0
  19. package/cli/dist/web-ui/docs/en/cli/release-notes/v2.101.0.md +23 -0
  20. package/cli/dist/web-ui/docs/en/cli/release-notes/v2.102.0.md +39 -0
  21. package/cli/dist/web-ui/docs/en/cli/release-notes/v2.103.0.md +37 -0
  22. package/cli/dist/web-ui/docs/en/cli/release-notes/v2.103.1.md +31 -0
  23. package/cli/dist/web-ui/docs/en/cli/troubleshooting.md +60 -0
  24. package/cli/dist/web-ui/docs/search-index-en.json +1 -1
  25. package/cli/dist/web-ui/docs/search-index-zh.json +1 -1
  26. package/cli/dist/web-ui/docs/sidebar-en.json +1 -1
  27. package/cli/dist/web-ui/docs/sidebar-zh.json +1 -1
  28. package/cli/package.json +1 -1
  29. package/cli/product.cloudhosted.json +12 -10
  30. package/cli/product.internal.json +5 -5
  31. package/cli/product.ioa.json +5 -4
  32. package/cli/product.json +3 -2
  33. package/cli/product.selfhosted.json +2 -2
  34. package/package.json +1 -1
@@ -222,7 +222,8 @@ CodeBuddy Code 支持把内部 traces 通过 OTLP 协议上报到用户自有的
222
222
 
223
223
  | 环境变量 | 说明 |
224
224
  |---------|------|
225
- | `CODEBUDDY_DEBUG` | 设置为 `1` 启用调试模式 |
225
+ | `CODEBUDDY_DEBUG` | 设置为 `1`/`true`/`yes`/`on` 启用调试模式(等同于 `--debug`)|
226
+ | `CODEBUDDY_DEBUG_SDK` | 设置为 `1`/`true`/`yes`/`on` 启用 SDK 调试 |
226
227
  | `CODEBUDDY_DEBUG_REQUEST` | 设置为 `1` 启用请求调试 |
227
228
  | `CODEBUDDY_STARTUP_PROFILE` | 设置为 `1` 启用启动性能分析 |
228
229
 
@@ -17,6 +17,13 @@ Release Notes 记录了每个版本的用户可见变更,包括:
17
17
 
18
18
  <!-- 新版本自动添加到此处 -->
19
19
 
20
+ - [v2.103.1](./v2.103.1.md) - 2026-06-04
21
+ - [v2.103.0](./v2.103.0.md) - 2026-06-04
22
+ - [v2.102.0](./v2.102.0.md) - 2026-06-03
23
+ - [v2.101.0](./v2.101.0.md) - 2026-06-02
24
+ - [v2.100.2](./v2.100.2.md) - 2026-06-01
25
+ - [v2.100.1](./v2.100.1.md) - 2026-05-30
26
+ - [v2.100.0](./v2.100.0.md) - 2026-05-30
20
27
  - [v2.99.1](./v2.99.1.md) - 2026-05-28
21
28
  - [v2.99.0](./v2.99.0.md) - 2026-05-27
22
29
  - [v2.98.1](./v2.98.1.md) - 2026-05-25
@@ -0,0 +1,42 @@
1
+ # 🚀 CodeBuddy Code v2.100.0 发布
2
+
3
+ ## 📦 版本信息
4
+
5
+ | 组件 | 版本 |
6
+ |------|------|
7
+ | CodeBuddy Code CLI | v2.100.0 |
8
+ | Agent SDK JS | v0.3.160 |
9
+ | Agent SDK Python | v0.3.159 |
10
+
11
+ ## ✨ 新功能
12
+
13
+ ### WaitForMcpServers 工具
14
+
15
+ 新增内置工具,允许模型主动等待正在连接中的 MCP 服务器就绪。当 MCP 服务器尚未完成连接时,可调用此工具等待(最多 5 秒),服务器连接成功后其工具将自动注入工具列表。支持等待指定服务器或全部待连接服务器,返回各服务器的连接状态(已连接 / 失败 / 需认证 / 已禁用 / 未知),让 MCP 工具的"按需调用"更可靠。
16
+
17
+ ### 安全审查内容剔除
18
+
19
+ 当模型因安全审查终止本次回答时,本轮已产生的回答与思考内容将从有效会话中剔除,不再回传给后续请求,避免污染上下文;会话历史中以一条安全审查提示占位,重放与展示保持一致。
20
+
21
+ ## 🔧 改进优化
22
+
23
+ - **网页获取加速**:远端 API 与本地 fetch 由原先的串行兜底改为并发竞争,远端胜出时自动取消本地请求,最坏耗时从 50s 降至约 30s;同时引入 15 分钟结果缓存,命中即跳过网络请求
24
+ - **网页获取体积控制**:远端 API 限制最大返回 100K 字符,超过 15K 字符自动触发 AI 摘要,降低对话上下文占用
25
+ - **网页获取可观测性**:新增 `webfetch.complete` / `webfetch.failed` 结构化埋点,覆盖来源(cache / api / local)、状态码、耗时、内容长度等字段,方便后台基于日志级别配告警
26
+ - **ToolSearch 连接提示**:当 MCP 服务器配置存在但尚未连接时,搜索结果会主动提示"还在连接中,可调用 WaitForMcpServers 等待",引导模型走等待流程
27
+ - **Bash 沙盒审批解耦**:沙盒审批弹窗的编排逻辑拆分为 SafetyFilter 直通 / Bypass 自动放行 / UI 上抛三阶段独立模块,对外行为完全保持不变(敏感命令说明、120 秒超时降级、跨子会话回溯主会话等)
28
+ - **Bash 上下文环境变量**:Bash 工具子进程自动透传 `$CODEBUDDY_PROJECT_DIR` / `$CODEBUDDY_SESSION_ID`(以及兼容别名),方便 skill 与用户脚本读取项目上下文,与 hook 环境保持一致
29
+ - **IOA 模型更新**:新增两款长上下文基础模型,下线 6 款旧版模型,并升级默认推理模型版本
30
+
31
+ ## 🐛 问题修复
32
+
33
+ - **AskUserQuestion 工具挂起**:修复偶发的工具调用永久挂起问题。新增 10 分钟超时兜底和单 waiter 路由兜底,避免 UI 消息丢失或路由分裂场景下用户回答后工具不返回
34
+ - **审批弹框误吃回车**:修复连续两次审批弹框时第一次的回车被新弹框误吃导致"自动通过/拒绝"的问题。新弹框 mount 后增加 80ms 焦点 grace period
35
+ - **ExitPlanMode 误批准**:修复 plan 内容尚未加载完成(界面显示 "Loading plan...")时回车会误批准未阅读 plan 的问题,panel 层在 plan 内容就绪前禁止聚焦
36
+ - **缓存命中率统计**:修复使用 GLM、DeepSeek 等 OpenAI 兼容协议时缓存命中率被统计为 0 的问题,缓存读取/写入 token 现可在所有支持的协议下正确上报
37
+ - **内网环境鉴权**:修复在 IOA / 内网环境切换时 API Key 偶发出现 401 的问题;同时区分"内置模型请求路由异常"与"自定义模型密钥配置错误",给出更准确的排查建议
38
+ - **MCP 工具图片识别**:修复部分 MCP 工具(如截图类工具)返回的图片无法被模型识别、只收到一段文本的问题,模型现在能正常"看到"工具返回的图片
39
+
40
+ ## 📝 文档更新
41
+
42
+ - **CLI 文档归档**:完成 v2.99.1 release notes 中英文同步,`env-vars.md` 增量翻译同步至英文版(新增 `CODEBUDDY_WAIT_FOR_MCP_SERVERS_ENABLED` 条目),三套导航配置(cliConfig / cliConfigCN / cliConfigZh)保持同步
@@ -0,0 +1,13 @@
1
+ # 🚀 CodeBuddy Code v2.100.1 发布
2
+
3
+ ## 📦 版本信息
4
+
5
+ | 组件 | 版本 |
6
+ |------|------|
7
+ | CodeBuddy Code CLI | v2.100.1 |
8
+ | Agent SDK JS | v0.3.161 |
9
+ | Agent SDK Python | v0.3.160 |
10
+
11
+ ## 🐛 问题修复
12
+
13
+ - **回退网页获取并发竞争策略**:回退 v2.100.0 引入的 WebFetch 并发竞争、缓存及可观测性改动,恢复为稳定的串行获取方式,修复因并发竞争策略导致的部分场景下网页获取异常问题。
@@ -0,0 +1,18 @@
1
+ # 🚀 CodeBuddy Code v2.100.2 发布
2
+
3
+ ## 📦 版本信息
4
+
5
+ | 组件 | 版本 |
6
+ |------|------|
7
+ | CodeBuddy Code CLI | v2.100.2 |
8
+ | Agent SDK JS | v0.3.162 |
9
+ | Agent SDK Python | v0.3.161 |
10
+
11
+ ## 🐛 问题修复
12
+
13
+ - **Daemon 模式 ACP 稳定性**:修复浏览器刷新或关闭后 stale 连接导致 `session/prompt` 30 秒超时的问题,单连接广播加 2 秒兜底超时,超时静默失败保证主流程不被阻塞。
14
+ - **连接配额与 evict 策略优化**:默认连接数从 5 提升至 32;引入活跃度 grace period 和智能 evict 策略(优先回收死连接 / 无 in-flight 任务的最久空闲连接,必要时拒绝 evict 让请求方走 503 退避),避免多 tab 与 sidecar 共存时的 evict 风暴。
15
+ - **Daemon 启动参数继承**:`daemon restart` 与自动重启会还原首次启动时的 CLI 参数(如自定义模型、`-y` 权限模式),不再回退默认值。
16
+ - **Webhook 首条消息无响应**:daemon 启动后主动预热主 session,避免 webhook 首条消息因无主 session 体感"消息没反应"。
17
+ - **子代理 / Teammate 调用 ExitPlanMode 卡死父进程**:sub-agent 直接拒绝并返回明确错误信息;teammate 走团队消息盒投递审批请求给 team-lead,调用方立即返回,避免父 spinner 永挂。
18
+ - **Headless 终端噪音抑制**:headless 终端构造时关闭 xterm 日志输出,避免 PTY chunk、ANSI 序列时的 `Parsing error` 污染 TUI。
@@ -0,0 +1,23 @@
1
+ # 🚀 CodeBuddy Code v2.101.0 发布
2
+
3
+ ## 📦 版本信息
4
+
5
+ | 组件 | 版本 |
6
+ |------|------|
7
+ | CodeBuddy Code CLI | v2.101.0 |
8
+ | Agent SDK JS | v0.3.163 |
9
+ | Agent SDK Python | v0.3.162 |
10
+
11
+ ## ✨ 新功能
12
+
13
+ ### Trace 错误/取消可观测性增强
14
+
15
+ trace 列表新增错误数量、首条错误信息、首个错误位置等预览字段,详情页新增按工具/agent 分组的错误总览面板,支持一键跳转到首个错误 span,问题排查效率显著提升。Web UI 顶部新增状态过滤 tab(全部 / 错误 / 运行中 / 已取消 / 成功),列表行错误高亮、Timeline 视图支持「仅错误」筛选,错误信息支持一键复制。
16
+
17
+ ## 🐛 问题修复
18
+
19
+ - **X-Agent-Intent 请求头**:修复 ask 模式下上报为 craft 的问题,请求头现从 session 元数据正确读取实际模式
20
+ - **Trace 拒绝场景 UI 显示空白**:用户拒绝工具调用时 trace 页面无任何节点显示的问题已解决,新增三级 fallback 机制确保 cancelled span 完整持久化,并按真实拒绝来源(默认拒绝 / 权限拒绝 / 计划拒绝 / 询问取消)分类,trace UI 可据此分组过滤
21
+ - **同步子 agent 执行时 spinner 异常隐藏**:修复 sub-agent 状态镜像失败时主进程 spinner 提前消失的问题,loading 提示与运行中任务保持同步
22
+ - **拒绝工具调用后协议提示词原样渲染**:界面将协议级英文提示替换为简短中文标识,避免技术细节泄露给用户
23
+ - **取消 span 视觉区分**:详情面板将取消状态的 span 用中性灰色 banner 展示,区别于真实失败的红色错误样式,避免误判
@@ -0,0 +1,39 @@
1
+ # 🚀 CodeBuddy Code v2.102.0 发布
2
+
3
+ ## 📦 版本信息
4
+
5
+ | 组件 | 版本 |
6
+ |------|------|
7
+ | CodeBuddy Code CLI | v2.102.0 |
8
+ | Agent SDK JS | v0.3.164 |
9
+ | Agent SDK Python | v0.3.163 |
10
+
11
+ ## ✨ 新功能
12
+
13
+ ### 后台任务完成主动推送
14
+
15
+ 通过 `run_in_background` 启动的 bash / powershell 任务,在完成、失败或被终止时会自动以 `<task-notification>` 形式注入对话流。模型在下一轮即可感知任务状态变化,无需再循环调用 `TaskOutput` / `BashOutput` 进行轮询,大幅减少无意义的 turn 占用。
16
+
17
+ ## 🔧 改进优化
18
+
19
+ - **网页获取并发竞争策略**:WebFetch 工具由串行降级改为并发竞争模式,本地 fetch(30s 超时)与远端 API(20s 超时)并发启动,远端胜出立即取消本地请求;远端失败则直接降级到已并发启动的本地结果。最坏总耗时从 `20s + 30s` 降为 `max(20s, 本地实际耗时)`,显著提升网页抓取响应速度。
20
+ - **网页获取体积限制与缓存**:远端 API 限制最大返回长度 100K 字符,超过 15K 字符自动触发 AI 摘要降低上下文占用;fetch 结果缓存 15 分钟,命中缓存直接复用跳过网络请求。
21
+ - **网页获取可观测性**:新增 `webfetch.complete` / `webfetch.failed` 结构化埋点,包含来源(cache / api / local)、各分支耗时、URL host/path、是否触发摘要等信息,便于诊断与告警。
22
+ - **后台任务工具描述刷新**:bash / powershell 工具描述明确告知"完成会自动收到通知,不要 sleep / poll loop",引导模型避免无意义的轮询。
23
+ - **subagent 调用链路追踪**:chat_message_send / response / tool_action 等事件新增 `parentConversationId`,与 chat_request_send 对齐;chat_message_status 补全 `rootRequestId`、`agentName`、`agentType` 等关联字段,支持 subagent / team 调用链端到端追踪。
24
+ - **traceId 全链路打通**:ACP agent 生成 traceId 贯穿 Galileo session / tool 上报,便于端到端追踪单次对话请求;trace 资源属性中注入用户 ID,提升多用户环境下的日志关联能力。
25
+ - **辅助功能埋点过滤**:prompt_suggestion、conversation_topic、context_compact 等辅助功能不再上报 chat_message_send / response,减少埋点噪声。
26
+
27
+ ## 🐛 问题修复
28
+
29
+ - **macOS 锁屏 / App Nap 唤醒后消息丢失**:长时间锁屏唤醒后,微信长轮询和企业微信群机器人长连接因系统冻结网络栈出现卡死或僵死连接,导致用户感知"消息丢了"。新增长连接活性看门狗,解冻瞬间自动 abort 卡死请求 / 重建 WebSocket 恢复正常收发;daemon 心跳与唤醒检测定时器同步去除 unref,避免被系统冻结后无法恢复。
30
+ - **权限确认框点击后弹框不消失**:在 IDE 集成场景下,TUI 弹出工具权限确认框,按数字键 / 回车批准后弹框停留不关闭、需 ESC 才能关,但任务实际已开始执行。现已调整为先同步关闭弹框再 fire-and-forget 触发 IDE 端清理,恢复点击即关的预期行为。同时修复 bypassPermissions 模式下首次 `AskUserQuestion` 入队时 `AskPanel` 永不挂载、LoadingBox 一直停留在"waiting for permission"的竞态。
31
+ - **企业策略导致创建任务超时**:暂时关闭 CLI 端的企业自定义模型策略与企业技能上传策略,修复其导致的创建任务超时问题。
32
+ - **模型思考强度切换异常**:修复切换到非思考模型后仍可能携带上一轮思考强度的问题,并过滤非法思考强度配置,避免错误值进入最终请求。
33
+ - **team agent respawn 关联字段丢失**:respawn 时恢复 `rootRequestId` 和 `parentConversationId`,修复 `.meta.json` 缺失导致关联字段丢失的问题。
34
+ - **EditTool 创建新文件死循环**:`old_string=''` 且目标文件不存在时跳过 `hasBeenRead` 校验,让 Edit 工具能像 Write 一样创建新文件,修复此前"Edit 报先 Read,Read 又报文件不存在"的死循环。
35
+ - **EditTool 错误信息附带文件路径**:并行多文件 Edit 失败时错误信息现已带上具体文件绝对路径,无需再翻 tool_call 参数即可定位是哪个文件出问题。
36
+
37
+ ## 📝 文档更新
38
+
39
+ - **故障排查文档新增"权限确认框无响应"章节**:在 troubleshooting 中列出 `[Approve]` / `[Reject]` / `[dequeue]` / `[tool-permission]` 关键日志 TAG 与"现象 → 推断"对照表,便于复现 / 定位同类弹框卡死问题。
@@ -0,0 +1,37 @@
1
+ # 🚀 CodeBuddy Code v2.103.0 发布
2
+
3
+ ## 📦 版本信息
4
+
5
+ | 组件 | 版本 |
6
+ |------|------|
7
+ | CodeBuddy Code CLI | v2.103.0 |
8
+ | Agent SDK JS | v0.3.165 |
9
+ | Agent SDK Python | v0.3.164 |
10
+
11
+ ## ✨ 新功能
12
+
13
+ ### DeepSeek V4 模型支持
14
+
15
+ 新增 DeepSeek V4 Pro 和 Flash 两个推理模型,均支持 1M 上下文窗口、工具调用和图片理解能力,进一步丰富可选的基础模型矩阵。
16
+
17
+ ### Doctor 诊断面板增强
18
+
19
+ `/doctor` 诊断面板新增 Session ID、Trace ID、Request ID 展示,遇到问题时可以一键复制定位线索给后端排查,大幅缩短问题定位时长。
20
+
21
+ ## 🔧 改进优化
22
+
23
+ - **调试环境变量标准化**:统一使用 `CODEBUDDY_DEBUG` / `CODEBUDDY_DEBUG_SDK` 替代旧的 `DEBUG` / `DEBUG_SDK`,避免与第三方库的同名环境变量冲突。
24
+ - **Trace ID 持久化展示**:新增 `lastConversationTraceId` 字段,确保诊断面板在会话跨回合后仍可展示最近一次的 Trace ID,便于复现问题时回查。
25
+ - **遥测错误码对齐**:chat 遥测事件中 `messageErrorCode` 与旧版数据口径对齐,使用 10 级优先链映射原始错误到业务错误码,保证报表口径一致。
26
+ - **模型切换配置精细化**:每个模型独立声明 `relatedModels.lite` / `relatedModels.reasoning`,移除已无法覆盖新模型场景的全局兜底,确保各模型在 lite / reasoning 切换时跳转到预期的目标模型。
27
+ - **沙箱审批超时可配置**:新增 `CBC_SANDBOX_APPROVAL_TIMEOUT_MS` 环境变量,便于测试和调试时自定义沙箱权限拦截等待超时时长(默认 120000ms)。
28
+
29
+ ## 🐛 问题修复
30
+
31
+ - **沙箱超时弹窗不消失**:修复沙箱权限拦截等待超时自动拒绝后,Desktop / Web UI 弹窗未同步消失的问题;现在超时拒绝时会广播 `permissionResolved` 事件,前端收到后正确清除弹窗状态。
32
+ - **思考强度同步引发的性能问题**:修复客户端开会话后渲染层与 CLI 之间形成 ACP 反馈环,导致 `session/set_config_option` 在 1.4 秒内被反复调用 200+ 次、单会话日志爆量到数百 MB 的问题;事件源头按 `(配置项, 值)` 维度去重相邻同值广播,避免任何客户端(含未做幂等去重的旧版本)触发重复推送。
33
+ - **Compact 边界消息恢复异常**:修复 compact 后重启 session 时,边界消息 replay 异常导致前端缺失 compact 分割线、history 误改父子链的问题;compact 边界消息现在会下发带 meta 标记的 `agent_message_chunk`,前端正确渲染 divider;history 重建仅对可恢复的 compact 消息执行修正。
34
+ - **路径超链接误识别**:在 markdown 输出中主动给 POSIX 路径包 OSC 8 超链接,避免 VS Code / iTerm2 等终端在中英文混排场景把前缀汉字当成 URL 的一部分(例如「根因: /data/foo」误识别为「因: /data/foo」);Cmd / Ctrl+Click 现在能精确跳到目标文件,并支持 `:line[:col]` 锚点。
35
+ - **Backspace 键兼容性**:在 iTerm2 / VS Code 内置终端等会把 ⌫ 发送为 `\x7f` 的环境下,按 Backspace 现在能正常向前删除字符,不再走「向后删除」分支。
36
+ - **ACP 鉴权恢复体验**:优化 ACP 掉授权后的异常上报与恢复提示,避免客户端收到不完整错误状态。
37
+ - **遥测请求 ID 一致性**:简化对话请求 ID 处理逻辑,统一其生成来源,移除冗余的兜底分支,避免影响上报数据的一致性。
@@ -0,0 +1,31 @@
1
+ # 🚀 CodeBuddy Code v2.103.1 发布
2
+
3
+ ## 📦 版本信息
4
+
5
+ | 组件 | 版本 |
6
+ |------|------|
7
+ | CodeBuddy Code CLI | v2.103.1 |
8
+ | Agent SDK JS | v0.3.166 |
9
+ | Agent SDK Python | v0.3.165 |
10
+
11
+ ## 🔧 改进优化
12
+
13
+ - **模型计费系数更新**:按最新计费策略调整 cli-saas 各部署形态下的默认模型、推理模型、图像模型及多个第三方模型的计费系数
14
+ - **WorkBuddy 助理对话标识**:当环境变量 `PERSONAL_AGENT_ROLE` 存在时,对话请求自动标记为 WorkBuddy 助理来源,便于服务端识别 orchestrator/specialist 场景
15
+ - **遥测 flush 配置可调**:新增 `galileo.aggregatorFlushIntervalSec` 配置项(默认 60 秒,范围 [5, 600]),短对话占比高的场景可调低到 10-20 秒以更及时上报数据
16
+ - **故障排查文档补充**:新增"更新不到最新版"章节,说明在 npm 镜像缓存延迟场景下,可通过 `--registry=https://registry.npmjs.org/` 指定官方源重试
17
+
18
+ ## 🐛 问题修复
19
+
20
+ - **进程退出前丢失监控数据**:短对话(< 60s 退出)的子进程会随进程退出丢弃 aggregator 当前窗口和上报缓冲区中的监控数据,导致监控后台数据量级远低于预期。新增统一 flush helper 在所有进程退出关键点提前 flush metrics + trace + log 三类数据,并将 flush 提到清理队列最前面以确保 2s 预算内完成
21
+ - **遥测环境标识修正**:修复 Desktop sidecar 进程上报遥测时环境标识始终为 Production 的问题,避免开发期数据混入正式监控库
22
+ - **历史压缩边界误识别**:修复对话中包含 HTML 折叠块(`<details><summary>...</summary>...</details>`)时,消息被错误判定为历史压缩边界、进而被排除出真实用户输入的问题
23
+ - **后台任务通知日志清理**:移除后台命令完成通知中遗留的临时排查日志,降低日志噪音并避免敏感字段泄漏
24
+ - **IOA 端点漂移防御**:修复并发刷新场景下 IOA 用户的模型请求可能短暂落到公共云域名的问题,内部改为事务化更新避免中间态被读取,并新增二道防线检测异常路由
25
+ - **sub-agent hook 会话 ID 修正**:在 sub-agent 内触发的 hook,其 `session_id` 现指向**主 agent** 的 session id,sub-agent 自身 id 通过 `agent_id` 字段单独暴露,便于下游审计/统计跨主 session 聚合
26
+ - **MCP 禁用持久化**:修复 IDE 插件提供的 MCP 服务通过 `/mcp` 禁用后,重启再次出现的问题,禁用状态现已持久化到本地配置
27
+ - **snappy 原生模块打包**:修复打包时 snappy 原生模块未被正确排除的问题
28
+
29
+ ## 📝 文档更新
30
+
31
+ - **CLI 文档归档**:补全 v2.100.0 ~ v2.103.0 共 6 个版本发布说明的英文翻译,更新中英文导航栏;同步更新 env-vars、http-api、troubleshooting 等文档的中英文版本
@@ -58,6 +58,50 @@ netstat -an | grep PORT_NUMBER
58
58
 
59
59
  ---
60
60
 
61
+ ## 权限确认框无响应 / ESC 才能关
62
+
63
+ **症状**:TUI 弹出工具权限确认框,按数字键 / 回车确认后弹框不消失,但 ESC 能正常关闭,且关闭后任务实际已在执行。
64
+
65
+ ### 日志位置
66
+
67
+ ```bash
68
+ ls -t ~/.codebuddy/logs/codebuddy-*.log | head -1 # 最新一份
69
+ ```
70
+
71
+ 可通过 `CODEBUDDY_CONFIG_DIR` 环境变量整体迁移配置目录。
72
+
73
+ ### 关键 TAG(按时序)
74
+
75
+ 正常确认走完应该看到这一串(`grep -E '\[Approve\]|\[Reject\]|\[dequeue\]|\[tool-permission\]'`):
76
+
77
+ | TAG | 含义 |
78
+ |---|---|
79
+ | `[tool-permission] ASK ...` | 工具被拦下来要审批 |
80
+ | `[HandleInterruptions] Approval dialog shown` | TUI 已显示弹框 |
81
+ | `[Approve] User approved tool: <name>` | 用户点了确认 |
82
+ | `[Approve] Deferred resolved` | 后端 promise 已 resolve(任务此时开始执行)|
83
+ | `[dequeue] Queue empty, clearing interruptionSubject` | `pending$` 清空,弹框应消失 |
84
+ | `[Approve] Success: ... interruption dequeued` | 全流程结束 |
85
+
86
+ ESC 路径把 `[Approve]` 替换为 `[Reject]`。
87
+
88
+ ### 现象 → 推断
89
+
90
+ | 看到 | 推断 |
91
+ |---|---|
92
+ | 整套 TAG 都有但弹框不消失 | UI 渲染卡住(如 IDE closeTab RPC 阻塞 await)|
93
+ | 有 `[Approve] User approved` 但缺 `[dequeue]` | `findSessionByItem` 失败,附近会有 `[Approve] Failed: Cannot find session` |
94
+ | 有 `dequeue Start` 但没 `Queue empty` | `interruptionQueues` 拿不到队列(多 session 错位)|
95
+ | 完全没有 `[tool-permission] ASK` | 该工具未走审批,可能 `BypassPermissions` 或被 allow 规则放行 |
96
+ | 有 `[tool-permission] ASK` 但没 `Approval dialog shown` | TUI 没订阅到 `pending$`(teammate 并发 session 错位)|
97
+ | `[Approve] Failed: No pending deferred found` | deferred 被重复消费 |
98
+
99
+ ### 反馈给开发的最小信息
100
+
101
+ `[Approve]` / `[Reject]` / `[dequeue]` 三个 TAG 出现时间附近的连续 30 行日志即可定位是 UI 没刷、后端没出队、还是 IDE RPC 卡住。
102
+
103
+ ---
104
+
61
105
  ## 更新
62
106
 
63
107
  ### 自动更新
@@ -78,6 +122,22 @@ codebuddy --version # 当前版本
78
122
  npm view @tencent-ai/codebuddy-code version # 最新版本
79
123
  ```
80
124
 
125
+ ### 更新不到最新版
126
+
127
+ 如果 `codebuddy update` 或 `npm install -g @tencent-ai/codebuddy-code@latest` 始终拉取不到最新版本,通常是 npm 镜像源缓存延迟所致。可指定官方源重试:
128
+
129
+ ```bash
130
+ npm install -g @tencent-ai/codebuddy-code@latest --registry=https://registry.npmjs.org/
131
+ ```
132
+
133
+ 确认本地 npm 配置的镜像源:
134
+
135
+ ```bash
136
+ npm config get registry
137
+ ```
138
+
139
+ 若长期使用第三方镜像,可在更新命令中临时指定官方源,无需修改全局配置。
140
+
81
141
  ---
82
142
 
83
143
  ## 从 Claude Code 迁移
@@ -222,7 +222,8 @@ CodeBuddy Code supports reporting internal traces to your own Collector via the
222
222
 
223
223
  | Environment Variable | Description |
224
224
  |---------|------|
225
- | `CODEBUDDY_DEBUG` | Set to `1` to enable debug mode |
225
+ | `CODEBUDDY_DEBUG` | Set to `1`/`true`/`yes`/`on` to enable debug mode (equivalent to `--debug`) |
226
+ | `CODEBUDDY_DEBUG_SDK` | Set to `1`/`true`/`yes`/`on` to enable SDK debugging |
226
227
  | `CODEBUDDY_DEBUG_REQUEST` | Set to `1` to enable request debugging |
227
228
  | `CODEBUDDY_STARTUP_PROFILE` | Set to `1` to enable startup profiling |
228
229
 
@@ -17,6 +17,13 @@ Difference from CHANGELOG.md:
17
17
 
18
18
  <!-- New versions are automatically added here -->
19
19
 
20
+ - [v2.103.1](./v2.103.1.md) - 2026-06-04
21
+ - [v2.103.0](./v2.103.0.md) - 2026-06-04
22
+ - [v2.102.0](./v2.102.0.md) - 2026-06-03
23
+ - [v2.101.0](./v2.101.0.md) - 2026-06-02
24
+ - [v2.100.2](./v2.100.2.md) - 2026-06-01
25
+ - [v2.100.1](./v2.100.1.md) - 2026-05-30
26
+ - [v2.100.0](./v2.100.0.md) - 2026-05-30
20
27
  - [v2.99.1](./v2.99.1.md) - 2026-05-28
21
28
  - [v2.99.0](./v2.99.0.md) - 2026-05-27
22
29
  - [v2.98.1](./v2.98.1.md) - 2026-05-25
@@ -0,0 +1,42 @@
1
+ # 🚀 CodeBuddy Code v2.100.0 Release
2
+
3
+ ## 📦 Version Information
4
+
5
+ | Component | Version |
6
+ |-----------|---------|
7
+ | CodeBuddy Code CLI | v2.100.0 |
8
+ | Agent SDK JS | v0.3.160 |
9
+ | Agent SDK Python | v0.3.159 |
10
+
11
+ ## ✨ New Features
12
+
13
+ ### WaitForMcpServers Tool
14
+
15
+ New built-in tool that allows the model to proactively wait for MCP servers that are still connecting. When an MCP server has not yet finished connecting, the model can invoke this tool to wait (up to 5 seconds); once the server connects successfully, its tools are automatically injected into the tool list. Supports waiting for specific servers or all pending servers, and returns each server's connection status (connected / failed / requires authentication / disabled / unknown), making "on-demand invocation" of MCP tools more reliable.
16
+
17
+ ### Safety Review Content Removal
18
+
19
+ When the model terminates the current response due to safety review, the answer and thinking content produced this turn will be removed from the effective conversation and no longer sent back to subsequent requests, preventing context pollution. A safety review notice placeholder is kept in the session history, so replay and display remain consistent.
20
+
21
+ ## 🔧 Improvements
22
+
23
+ - **WebFetch Acceleration**: Remote API and local fetch are changed from the previous serial fallback to concurrent competition. When the remote wins, the local request is automatically cancelled, reducing worst-case latency from 50s to about 30s. A 15-minute result cache is also introduced, skipping network requests on cache hits
24
+ - **WebFetch Size Control**: Remote API caps the maximum returned content at 100K characters; content exceeding 15K characters automatically triggers AI summarization to reduce conversation context usage
25
+ - **WebFetch Observability**: Added structured `webfetch.complete` / `webfetch.failed` telemetry events, covering source (cache / api / local), status code, latency, content length, and other fields, making it easier to configure alerts based on log levels
26
+ - **ToolSearch Connection Hints**: When MCP server configurations exist but are not yet connected, search results proactively hint "still connecting, you can call WaitForMcpServers to wait", guiding the model to the wait flow
27
+ - **Bash Sandbox Approval Decoupling**: The sandbox approval orchestration logic is split into three independent stages — SafetyFilter pass-through / Bypass auto-approval / UI escalation — while external behavior remains fully unchanged (sensitive command descriptions, 120-second timeout fallback, cross sub-session backtracking to the main session, etc.)
28
+ - **Bash Context Environment Variables**: The Bash tool's subprocess now automatically passes through `$CODEBUDDY_PROJECT_DIR` / `$CODEBUDDY_SESSION_ID` (and compatible aliases), making it easier for skills and user scripts to read project context, consistent with the hook environment
29
+ - **IOA Model Updates**: Added two long-context base models, removed 6 legacy models, and upgraded the default reasoning model version
30
+
31
+ ## 🐛 Bug Fixes
32
+
33
+ - **AskUserQuestion Tool Hang**: Fixed an occasional permanent hang in tool invocation. Added a 10-minute timeout fallback and single-waiter routing fallback to prevent the tool from not returning after the user answers in scenarios where UI messages are lost or routing splits
34
+ - **Approval Dialog Accidentally Consuming Enter**: Fixed an issue where, with two consecutive approval dialogs, the Enter key for the first one was mistakenly consumed by the new dialog, causing "auto-approve/reject". Added an 80ms focus grace period after the new dialog mounts
35
+ - **ExitPlanMode Accidental Approval**: Fixed an issue where pressing Enter could accidentally approve an unread plan while plan content was still loading (UI showing "Loading plan..."). The panel layer now disables focus until plan content is ready
36
+ - **Cache Hit Rate Statistics**: Fixed an issue where cache hit rate was counted as 0 when using OpenAI-compatible protocols such as GLM and DeepSeek. Cache read/write tokens can now be correctly reported under all supported protocols
37
+ - **Intranet Environment Authentication**: Fixed an issue where API Keys occasionally returned 401 when switching between IOA and intranet environments; also differentiates "built-in model request routing exception" from "custom model key configuration error", providing more accurate troubleshooting guidance
38
+ - **MCP Tool Image Recognition**: Fixed an issue where images returned by some MCP tools (such as screenshot tools) could not be recognized by the model and were only received as text. The model can now properly "see" images returned by tools
39
+
40
+ ## 📝 Documentation Updates
41
+
42
+ - **CLI Doc Archival**: Completed Chinese-English sync of v2.99.1 release notes; `env-vars.md` incremental translation synced to the English version (added `CODEBUDDY_WAIT_FOR_MCP_SERVERS_ENABLED` entry); all three navigation configurations (cliConfig / cliConfigCN / cliConfigZh) stay in sync
@@ -0,0 +1,13 @@
1
+ # 🚀 CodeBuddy Code v2.100.1 Release
2
+
3
+ ## 📦 Version Information
4
+
5
+ | Component | Version |
6
+ |-----------|---------|
7
+ | CodeBuddy Code CLI | v2.100.1 |
8
+ | Agent SDK JS | v0.3.161 |
9
+ | Agent SDK Python | v0.3.160 |
10
+
11
+ ## 🐛 Bug Fixes
12
+
13
+ - **Revert WebFetch Concurrent Competition Strategy**: Reverted the WebFetch concurrent competition, caching, and observability changes introduced in v2.100.0, restoring the stable serial fetch approach to fix WebFetch failures in some scenarios caused by the concurrent competition strategy.
@@ -0,0 +1,18 @@
1
+ # 🚀 CodeBuddy Code v2.100.2 Release
2
+
3
+ ## 📦 Version Information
4
+
5
+ | Component | Version |
6
+ |-----------|---------|
7
+ | CodeBuddy Code CLI | v2.100.2 |
8
+ | Agent SDK JS | v0.3.162 |
9
+ | Agent SDK Python | v0.3.161 |
10
+
11
+ ## 🐛 Bug Fixes
12
+
13
+ - **Daemon Mode ACP Stability**: Fixed an issue where stale connections after browser refresh or close caused `session/prompt` to time out after 30 seconds. Added a 2-second fallback timeout for single-connection broadcasts, with timeouts failing silently to ensure the main flow is not blocked.
14
+ - **Connection Quota and Evict Strategy Optimization**: Default connection count raised from 5 to 32; introduced an activity grace period and intelligent evict strategy (prioritizing recovery of dead connections / oldest idle connections without in-flight tasks, refusing to evict when necessary and letting the requester back off with 503), avoiding evict storms when multiple tabs and sidecars coexist.
15
+ - **Daemon Startup Argument Inheritance**: `daemon restart` and auto-restart now restore the CLI arguments from the initial startup (such as custom models, `-y` permission mode), no longer falling back to defaults.
16
+ - **Webhook First Message Unresponsive**: After daemon startup, the main session is now actively warmed up to prevent users from perceiving "no response" on the first webhook message due to a missing main session.
17
+ - **Sub-agent / Teammate ExitPlanMode Deadlocking Parent Process**: Sub-agents now reject directly and return clear error messages; teammates deliver approval requests to the team-lead via the team message inbox, and the caller returns immediately to prevent the parent spinner from hanging indefinitely.
18
+ - **Headless Terminal Noise Suppression**: Headless terminal construction now disables xterm log output, avoiding `Parsing error` messages from PTY chunks and ANSI sequences polluting the TUI.
@@ -0,0 +1,23 @@
1
+ # 🚀 CodeBuddy Code v2.101.0 Release
2
+
3
+ ## 📦 Version Information
4
+
5
+ | Component | Version |
6
+ |-----------|---------|
7
+ | CodeBuddy Code CLI | v2.101.0 |
8
+ | Agent SDK JS | v0.3.163 |
9
+ | Agent SDK Python | v0.3.162 |
10
+
11
+ ## ✨ New Features
12
+
13
+ ### Trace Error/Cancellation Observability Enhancements
14
+
15
+ The trace list now includes preview fields such as error count, first error message, and first error location. The detail page adds an error overview panel grouped by tool/agent, supporting one-click navigation to the first error span, significantly improving troubleshooting efficiency. The Web UI top bar adds status filter tabs (All / Errors / Running / Cancelled / Success), error rows are highlighted in the list, the Timeline view supports an "errors only" filter, and error messages can be copied with one click.
16
+
17
+ ## 🐛 Bug Fixes
18
+
19
+ - **X-Agent-Intent Request Header**: Fixed an issue where ask mode was reported as craft; the request header now correctly reads the actual mode from session metadata
20
+ - **Blank Trace UI on Rejection**: Resolved the issue where the trace page showed no nodes when the user rejected a tool call. Added a three-level fallback mechanism to ensure cancelled spans are fully persisted, classified by actual rejection source (default reject / permission reject / plan reject / ask cancel), so the trace UI can group and filter accordingly
21
+ - **Spinner Abnormally Hidden During Synchronous Sub-agent Execution**: Fixed an issue where the main process spinner disappeared prematurely when sub-agent state mirroring failed; the loading indicator now stays in sync with running tasks
22
+ - **Protocol Prompt Rendered Verbatim After Tool Rejection**: The UI now replaces protocol-level English prompts with a brief Chinese label, avoiding leaking technical details to users
23
+ - **Visual Differentiation for Cancelled Spans**: The detail panel now displays cancelled spans with a neutral gray banner, distinct from the red error styling for actual failures, to avoid misjudgment
@@ -0,0 +1,39 @@
1
+ # 🚀 CodeBuddy Code v2.102.0 Release
2
+
3
+ ## 📦 Version Information
4
+
5
+ | Component | Version |
6
+ |-----------|---------|
7
+ | CodeBuddy Code CLI | v2.102.0 |
8
+ | Agent SDK JS | v0.3.164 |
9
+ | Agent SDK Python | v0.3.163 |
10
+
11
+ ## ✨ New Features
12
+
13
+ ### Proactive Notification for Background Task Completion
14
+
15
+ Bash / powershell tasks started via `run_in_background` will automatically inject a `<task-notification>` into the conversation stream upon completion, failure, or termination. The model can perceive the task status change in the next turn, eliminating the need for `TaskOutput` / `BashOutput` polling loops and significantly reducing wasted turns.
16
+
17
+ ## 🔧 Improvements
18
+
19
+ - **WebFetch Concurrent Competition Strategy**: The WebFetch tool changes from serial fallback to concurrent competition mode. Local fetch (30s timeout) and remote API (20s timeout) start concurrently; if the remote wins, the local request is cancelled immediately. If the remote fails, it falls back directly to the already-running local result. Worst-case total latency drops from `20s + 30s` to `max(20s, actual local latency)`, significantly improving web fetch responsiveness.
20
+ - **WebFetch Size Limit and Caching**: Remote API limits the maximum returned length to 100K characters; content exceeding 15K characters automatically triggers AI summarization to reduce context usage. Fetch results are cached for 15 minutes, reusing the cache directly to skip network requests on hits.
21
+ - **WebFetch Observability**: Added structured `webfetch.complete` / `webfetch.failed` telemetry events, including source (cache / api / local), per-branch latency, URL host/path, whether summarization was triggered, etc., facilitating diagnostics and alerting.
22
+ - **Background Task Tool Description Refresh**: Bash / powershell tool descriptions now explicitly state "completion will trigger an automatic notification, do not sleep / poll loop", guiding the model to avoid pointless polling.
23
+ - **Subagent Call Chain Tracing**: chat_message_send / response / tool_action and other events now include `parentConversationId`, aligned with chat_request_send; chat_message_status now includes correlation fields such as `rootRequestId`, `agentName`, and `agentType`, supporting end-to-end tracing of subagent / team call chains.
24
+ - **End-to-End traceId**: ACP agent generates a traceId that flows through Galileo session / tool reporting, enabling end-to-end tracing for a single conversation request; user ID is injected into trace resource attributes, improving log correlation in multi-user environments.
25
+ - **Auxiliary Feature Telemetry Filtering**: Auxiliary features such as prompt_suggestion, conversation_topic, and context_compact no longer report chat_message_send / response, reducing telemetry noise.
26
+
27
+ ## 🐛 Bug Fixes
28
+
29
+ - **Message Loss After macOS Lock Screen / App Nap Wake-up**: After long lock screen wake-up, WeChat long polling and WeCom group bot long connections suffer hangs or dead connections because the system freezes the network stack, causing users to feel "messages were lost". Added a long-connection liveness watchdog that automatically aborts hung requests / rebuilds the WebSocket upon thaw to restore normal send/receive. The daemon heartbeat and wake-detection timer also remove unref to avoid being unrecoverable after system freeze.
30
+ - **Permission Dialog Not Closing After Click**: In IDE integration scenarios, when the TUI pops up a tool permission dialog, pressing a number key / Enter to approve left the dialog open and required ESC to close, while the task had actually started executing. Now adjusted to close the dialog synchronously first and then fire-and-forget the IDE-side cleanup, restoring the expected click-to-close behavior. Also fixed a race condition under bypassPermissions mode where the `AskPanel` never mounted on the first `AskUserQuestion` enqueue, leaving LoadingBox stuck on "waiting for permission".
31
+ - **Enterprise Policy Causing Task Creation Timeout**: Temporarily disabled the CLI-side enterprise custom model policy and enterprise skill upload policy to fix the task creation timeout they caused.
32
+ - **Model Thinking Intensity Switch Abnormality**: Fixed an issue where switching to a non-thinking model could still carry over the previous turn's thinking intensity, and filtered out invalid thinking intensity configurations to prevent incorrect values from entering the final request.
33
+ - **Team Agent Respawn Missing Correlation Fields**: Restore `rootRequestId` and `parentConversationId` on respawn, fixing the missing correlation fields caused by `.meta.json` absence.
34
+ - **EditTool Infinite Loop When Creating New File**: When `old_string=''` and the target file does not exist, skip the `hasBeenRead` check so the Edit tool can create new files like Write, fixing the previous infinite loop where "Edit reports Read first, Read reports file not found".
35
+ - **EditTool Error Message Includes File Path**: When parallel multi-file Edits fail, the error message now includes the specific absolute file path, no longer requiring you to dig through tool_call parameters to locate which file failed.
36
+
37
+ ## 📝 Documentation Updates
38
+
39
+ - **Troubleshooting Doc Adds "Permission Dialog Unresponsive" Section**: The troubleshooting doc now lists key log TAGs such as `[Approve]` / `[Reject]` / `[dequeue]` / `[tool-permission]` and a "symptom → inference" mapping table, making it easier to reproduce / locate similar dialog hang issues.
@@ -0,0 +1,37 @@
1
+ # 🚀 CodeBuddy Code v2.103.0 Release
2
+
3
+ ## 📦 Version Information
4
+
5
+ | Component | Version |
6
+ |-----------|---------|
7
+ | CodeBuddy Code CLI | v2.103.0 |
8
+ | Agent SDK JS | v0.3.165 |
9
+ | Agent SDK Python | v0.3.164 |
10
+
11
+ ## ✨ New Features
12
+
13
+ ### DeepSeek V4 Model Support
14
+
15
+ Added two new reasoning models, DeepSeek V4 Pro and Flash, both supporting a 1M context window, tool calling, and image understanding, further enriching the available base model matrix.
16
+
17
+ ### Doctor Diagnostic Panel Enhancements
18
+
19
+ The `/doctor` diagnostic panel now displays Session ID, Trace ID, and Request ID, allowing one-click copying of localization clues to the backend for troubleshooting when issues arise, significantly shortening the time to diagnose problems.
20
+
21
+ ## 🔧 Improvements
22
+
23
+ - **Standardized Debug Environment Variables**: Unified use of `CODEBUDDY_DEBUG` / `CODEBUDDY_DEBUG_SDK` to replace the old `DEBUG` / `DEBUG_SDK`, avoiding conflicts with third-party libraries that use the same environment variable names.
24
+ - **Persistent Trace ID Display**: Added the `lastConversationTraceId` field to ensure that the diagnostic panel can still show the most recent Trace ID across conversation turns, making it easier to look up when reproducing issues.
25
+ - **Telemetry Error Code Alignment**: The `messageErrorCode` in chat telemetry events is now aligned with the legacy data convention, using a 10-level priority chain to map raw errors to business error codes, ensuring consistent reporting metrics.
26
+ - **Refined Model Switch Configuration**: Each model independently declares `relatedModels.lite` / `relatedModels.reasoning`, removing the global fallback that no longer covered new model scenarios, ensuring each model jumps to the expected target model when switching between lite / reasoning.
27
+ - **Configurable Sandbox Approval Timeout**: Added the `CBC_SANDBOX_APPROVAL_TIMEOUT_MS` environment variable, making it easier to customize the sandbox permission interception wait timeout for testing and debugging (default 120000ms).
28
+
29
+ ## 🐛 Bug Fixes
30
+
31
+ - **Sandbox Timeout Dialog Not Closing**: Fixed an issue where, after the sandbox permission interception timed out and auto-rejected, the Desktop / Web UI dialog did not close in sync; the timeout rejection now broadcasts a `permissionResolved` event, and the frontend correctly clears the dialog state upon receipt.
32
+ - **Performance Issues Caused by Thinking Intensity Sync**: Fixed an issue where, after the client opened a session, an ACP feedback loop formed between the renderer and the CLI, causing `session/set_config_option` to be called 200+ times within 1.4 seconds and per-session logs to balloon to hundreds of MB. The event source now deduplicates adjacent same-value broadcasts by `(config item, value)`, preventing any client (including older versions without idempotent deduplication) from triggering duplicate pushes.
33
+ - **Compact Boundary Message Restoration Anomaly**: Fixed issues where, when restarting a session after compaction, the boundary message replay was abnormal, causing the frontend to miss the compact divider and history to incorrectly modify parent-child links. Compact boundary messages now dispatch an `agent_message_chunk` with a meta marker so the frontend correctly renders the divider; history rebuild only performs corrections on recoverable compact messages.
34
+ - **Path Hyperlink Misidentification**: In markdown output, POSIX paths are now proactively wrapped with OSC 8 hyperlinks to prevent terminals like VS Code / iTerm2 from treating prefix CJK characters as part of the URL in mixed Chinese-English scenarios (e.g., "根因: /data/foo" being misidentified as "因: /data/foo"). Cmd / Ctrl+Click can now precisely jump to the target file, and supports `:line[:col]` anchors.
35
+ - **Backspace Key Compatibility**: In environments such as iTerm2 / VS Code built-in terminals that send ⌫ as `\x7f`, pressing Backspace now correctly deletes the character to the left, no longer falling through to the "delete forward" branch.
36
+ - **ACP Authentication Recovery Experience**: Improved exception reporting and recovery hints after ACP authentication loss, avoiding incomplete error states reaching the client.
37
+ - **Telemetry Request ID Consistency**: Simplified the conversation request ID handling logic, unifying its generation source and removing redundant fallback branches to avoid affecting the consistency of reported data.
@@ -0,0 +1,31 @@
1
+ # 🚀 CodeBuddy Code v2.103.1 Release
2
+
3
+ ## 📦 Version Information
4
+
5
+ | Component | Version |
6
+ |-----------|---------|
7
+ | CodeBuddy Code CLI | v2.103.1 |
8
+ | Agent SDK JS | v0.3.166 |
9
+ | Agent SDK Python | v0.3.165 |
10
+
11
+ ## 🔧 Improvements
12
+
13
+ - **Model Billing Coefficient Update**: Adjusted the billing coefficients for the default models, reasoning models, image models, and several third-party models across all cli-saas deployment forms according to the latest billing policy.
14
+ - **WorkBuddy Assistant Conversation Identifier**: When the `PERSONAL_AGENT_ROLE` environment variable is present, conversation requests are automatically tagged as originating from the WorkBuddy assistant, making it easier for the server side to identify orchestrator/specialist scenarios.
15
+ - **Configurable Telemetry Flush**: Added the `galileo.aggregatorFlushIntervalSec` config option (default 60s, range [5, 600]); scenarios with a high proportion of short conversations can lower it to 10–20s for more timely data reporting.
16
+ - **Expanded Troubleshooting Documentation**: Added a "Cannot update to the latest version" section, explaining that in npm mirror cache lag scenarios, you can retry by specifying the official source with `--registry=https://registry.npmjs.org/`.
17
+
18
+ ## 🐛 Bug Fixes
19
+
20
+ - **Monitoring Data Lost Before Process Exit**: Subprocesses from short conversations (exiting within < 60s) would discard the aggregator's current window and the reporting buffer's monitoring data on exit, causing the monitoring backend data volume to fall far below expectations. Added a unified flush helper to proactively flush metrics + trace + log data at all critical process exit points, and moved flush to the front of the cleanup queue to ensure completion within the 2s budget.
21
+ - **Telemetry Environment Identifier Correction**: Fixed an issue where the Desktop sidecar process always reported telemetry with the environment identifier as Production, preventing development-period data from contaminating the formal monitoring database.
22
+ - **History Compaction Boundary Misidentification**: Fixed an issue where, when conversations contained HTML collapsible blocks (`<details><summary>...</summary>...</details>`), messages were incorrectly identified as history compaction boundaries and subsequently excluded from real user input.
23
+ - **Background Task Notification Log Cleanup**: Removed leftover temporary troubleshooting logs in background command completion notifications, reducing log noise and avoiding sensitive field leakage.
24
+ - **IOA Endpoint Drift Defense**: Fixed an issue where, in concurrent refresh scenarios, IOA user model requests could briefly fall through to the public cloud domain; internally switched to transactional updates to prevent intermediate states from being read, and added a second line of defense to detect abnormal routing.
25
+ - **Sub-agent Hook Session ID Correction**: Hooks triggered inside a sub-agent now have their `session_id` pointing to the **main agent**'s session id, with the sub-agent's own id exposed separately via the `agent_id` field, making it easier for downstream auditing/statistics to aggregate across the main session.
26
+ - **MCP Disable Persistence**: Fixed an issue where MCP services provided by IDE plugins, after being disabled via `/mcp`, would reappear after restart; the disabled state is now persisted to local configuration.
27
+ - **snappy Native Module Bundling**: Fixed an issue where the snappy native module was not correctly excluded during bundling.
28
+
29
+ ## 📝 Documentation Updates
30
+
31
+ - **CLI Documentation Archive**: Completed English translations for 6 release notes from v2.100.0 ~ v2.103.0, updated the Chinese/English navigation bar, and synchronously updated the Chinese/English versions of env-vars, http-api, troubleshooting, and other documents.