v0.1.7 · 客户端标识头 + DSH 0.1.5 兼容
修复 issue #1 反馈的两个问题。
1. 后台看不到客户端标识
CodeBuddy 后台判定"客户端"不读 User-Agent,只认官方 CLI 发送的这一组头:
X-IDE-Type / X-IDE-Name / X-IDE-Version / X-Product-Version
本插件此前只发了 User-Agent,且版本号写死为 2.63.2(实际 CLI 已是 2.148.0),因此后台把请求记为无客户端。
现在按官方 CLI 的语义发送该头族(X-IDE-Type/X-IDE-Name 为 cli),版本号改为从本机已安装的 @tencent-ai/codebuddy-code 动态解析,不再写死。解析失败时省略版本头而非编造版本号。
2. DSH 0.1.5 下报 Cannot read properties of undefined (reading 'get')
DSH 0.1.5 给 llm-pi-ai 的路由 profile 新增了必填字段 modelErrors,并在每次模型查询时执行 profile.modelErrors.get(model)。插件按旧 schema 构造 profile 时该字段缺失,于是抛出上述 TypeError,在模型选择器里显示为「CodeBuddy CLI 加载失败」。
现在 profile 改为两代字段的超集,一份构建同时服务两个宿主:
| 宿主 | 行为 |
|---|---|
| DSH 0.1.5+ | 使用 modelErrors |
| DSH 0.1.2 | 完全忽略该字段,行为不变 |
peerDependencies 已放宽为 >=0.1.2-rc.1 <0.2.0(pi-ai 为 >=0.84.2 <0.86.0)。
说明:该报错发生于模型选择器加载期(
listModels/resolveModelInfo),不影响已选中模型的流式对话,这也解释了"新会话里发消息正常"的现象。
验证
- 测试 182 通过 / 1 跳过(新增 19 条:客户端标识 13 条 + 双版本兼容 6 条)
tsc --noEmit与tsdown构建均通过- 构建产物实测同时携带
X-IDE-*头与modelErrors - 真实解析到本机 CLI 版本
2.148.0
升级方式
dsh plugin --profile web add dsh-codebuddy-cli安装后请重启 dsh web 并产生新的调用记录,再到后台确认"客户端"列(历史记录不会追溯)。