Repository navigation
Releases: cfanmaoli/kimi-webbridge-dsh
Release list
v1.5.1
内置官方上游技能包升级到 v2.0.32
这次上游是重写而不是微调(2.0.27 → 2.0.32,跨 5 个版本):
- 五个早就存在但没写进文档的工具补上了:
find、read_page、wait、send_keys、mouse_click - 阅读、交互、截图几节被压缩,长尾细节移进
references/operations.md;cli-creator/go-layout.md从 4.9 kB 收到 2.0 kB - 新增 Task completion 一节,取代原先「开局就告诉用户会关哪些标签页」:默认保留任务标签组,除非明显该关或用户答复一次询问
- 更新提示的规则移到
references/operations.md#update-notices,并明确「提示是维护信息,只有用户要求时才升级」 - frontmatter 描述重新收成一句话
插件侧的适配
| 变更 | 原因 |
|---|---|
version_mismatch 纳入自动更新触发 |
上游现在的优先级是「先让守护进程与扩展配对,再追最新版」,且配对提示存在时会压制 update_available |
| 运行时说明改写 | 对齐上游新的「通知」模型,并点明插件唯一的那处主动行为(每会话最多自动升级一次) |
| CLI 触发词改为按需追加 | 上游新描述自己就带「reusable website CLI」,重复拼接是噪音;注册描述从 365 降到 287 字符 |
验证
| 检查 | 结果 |
|---|---|
npm run check / --check |
vendored skill v2.0.32: 7 files match;is current |
| 独立复核 | 4 个代表文件与另一次 curl 下载逐字节相同,tar digest 49ba5fdbdd64… 一致 |
| 集成测试(真实 dsh 0.2.1-rc.5 服务) | 31 项全通过,含新工具在文档中的存在性、描述预算 |
| 自动更新测试 | 18 项全通过,新增 version_mismatch 双向配对用例 |
| peer 覆盖矩阵 | 0.1.0-rc.7 → 0.2.9-rc.3 全部 loads,skippedBundles 为空 |
Full changelog: v1.5.0...v1.5.1
v1.5.0
守护进程不再需要手动升级
浏览器扩展跟着商店自动更新,守护进程却没有自更新机制:上游只提供 upgrade,而它会停掉、换二进制、再拉起守护进程——所以插件此前只把这条命令交给用户,机器就可能一直停在旧版本(本机就停在 v2.0.22,扩展已经 2.0.24)。
现在 kimi_webbridge 的 status 会在守护进程落后时直接把它补齐:
| 触发条件 | 行为 |
|---|---|
有更新版本的发布(update_available) |
调用 kimi-webbridge upgrade |
| 已连接的扩展版本高于守护进程 | 同上(上游的配对规则会装与扩展匹配的版本,不是最新版) |
| 守护进程高于扩展(商店还没放新版) | 不动——那会让 upgrade 按规则把守护进程降级,属于用户决定 |
约束与安全边界:
- 每进程最多一次,且在开始浏览器任务的那次
status上执行,重启代价最小 - 失败不会循环重试:
auto_update里带上{ reason, from, to, ok, error },载荷里仍保留手动命令,渲染会提示模型把命令交给用户 - 想全程手动:
autoUpdateDaemon: false,行为与之前一致
upgrade 本身仍是上游那份实现:校验 SHA-256、换二进制、重启,并顺带刷新其他 agent 运行时里的技能副本。
验证
新增 16 项自动更新断言(假 HOME + 桩守护进程 + 记录调用的假二进制),覆盖:成功升级、每进程只升一次、autoUpdateDaemon: false、扩展领先触发、守护进程领先不触发、当前一致不触发、升级失败如实上报并保留手动命令。真实 dsh 0.2.1-rc.3 服务下的 29 项集成断言仍全通过。
Full changelog: v1.4.13...v1.5.0
v1.4.13
内置官方上游技能包升级到 v2.0.27
上游 2.0.27 仍然没有改任何说明文字:SKILL.md 与 2.0.26 逐字节相同(仅 metadata.version 变成 2.0.27),references/** 七个文件全部未变。重新内置让 skill/UPSTREAM.json(tar f5c09b77939f…)与技能里的来源戳跟到当前发布。
漂移告警改成「只在说明文字变化时才报」
每周的 upstream drift 任务已经连续两次因为纯版本号跳动而变红(2.0.24–2.0.26 一次、这次一次),而这两次对插件来说都是空操作。--check 现在区分两类移动:
| 情况 | 行为 |
|---|---|
| 文件集合变化,或内容差异超出 frontmatter 的 release 戳 | 仍然非零退出,并在日志里列出具体文件 |
| 只有版本戳(上游为守护进程/扩展构建发布的版本) | 打印「release stamp only」并正常退出,附上重新内置的命令 |
本地完整性检查不变:--verify-local(包含在 npm run check 与 CI 里)仍然逐字节比对 manifest,手工改动照样失败。
验证:造了两个方向的用例——把 --check 指向内容确实不同的旧发布(v2.0.22)仍然 exit 1 并指出 changed SKILL.md;当前 2.0.26 → 2.0.27 的戳变化则 exit 0。
宿主兼容
本机 dsh 已到 0.2.1-rc.3,peer 范围无需改动:0.1.0-rc.7 → 0.2.9-rc.3 全部可加载,bundle skippedBundles 为空;真实服务集成测试 29/29 通过。
Full changelog: v1.4.12...v1.4.13
v1.4.12
内置官方上游技能包升级到 v2.0.26
上游 2.0.24 → 2.0.26 没有改任何说明文字:SKILL.md 与 2.0.23 逐字节相同(仅 metadata.version 从 2.0.23 变成 2.0.26),references/** 七个文件全部未变。这几个版本发布的是守护进程 / 浏览器扩展的构建。
本次重新内置是为了让两处记录跟上上游:
skill/UPSTREAM.json的 release 与 tar digest(e0b14f98683a…)- 注册技能时追加的「vendored verbatim from the official upstream release v2.0.26」来源戳
同时把 README、skill/README.md、取用脚本里的 v2.0.23 示例更新为 v2.0.26。
顺带的宿主兼容核对
本机 dsh 已从 0.2.0-rc.2 走到 0.2.1-rc.2,peer 范围无需改动:
evaluatePluginCompatibility/loadProfileDirectory(dsh-app-boot 0.2.1-rc.2):0.1.0-rc.7 → 0.2.9-rc.3全部可加载,bundleskippedBundles为空- 真实服务集成测试:29/29 通过(技能注册、工具 schema、系统提示段落、描述 498 ≤ 500、
render各分支)
Full changelog: v1.4.11...v1.4.12
v1.4.11
内置官方上游技能包升级到 v2.0.23
skill/ 按 CDN 发布逐字节重新内置,skill/UPSTREAM.json 记录 release 与逐文件 SHA-256(已与独立下载的 tarball 复核,tar digest 9a83d3726121… 一致)。
上游新增能力
- 附着用户已打开的标签页:
list_browser_tabs列出该连接可见的所有窗口的标签页,attach_tab <tabId>把指定标签页接入当前会话——不改变用户的前台标签页,且属于「借用」:close_session现在只关本会话打开的页面,借用的标签页保留 snapshot支持有界文本读取:format:"aria"+max_chars(1–60000)返回tree_text;被截断时把next_cursor作为cursor续读(continued:true标记后续分片)。缓存上限 8 份快照 / 800 万 UTF-16 码元,游标 5 分钟过期,超过 400 万码元的观测会显式报错@e引用语义变更:现在是绑定到已观测 DOM 节点的不可解析句柄,不再按语义名自动顶替;节点被移除或文档 / 连接变化后需重新snapshotfind支持query:检索主文档无障碍树,结果携带祖先路径以区分同名项(不含 iframe 内容)find_tab active:true仍可用于用户当前正在看的那个标签页
插件侧
- 系统提示段落与
kimi_webbridge工具描述补上「附着用户已打开的标签页」 - README、
skill/README.md、取用脚本里的 v2.0.22 示例更新为 v2.0.23
验证:真实 dsh 0.2.0-rc.2 服务下 28 项集成断言全通过(技能注册、工具 schema、系统提示段落、描述长度 ≤ 500、render 各分支);peer 覆盖矩阵 0.1.0-rc.7 → 0.2.9-rc.3 全部可加载,bundle 启动 skippedBundles 为空。
Full changelog: v1.4.10...v1.4.11
v1.4.10
适配 dsh 0.2.x(修复插件被静默跳过)
dsh 0.2.0-rc.1 起,宿主会拒绝加载 @deepseek-ai/dsh-* peer 范围不覆盖当前版本的 bundle:启动时把它丢进 skippedBundles,界面上没有任何报错。1.4.9 的 peer 范围止于 0.1.7-rc.2,升级 dsh 后:
kimi_webbridge工具消失- 系统提示里的 kimi-webbridge 段落消失
kimi-webbridgeskill 从技能目录里消失(skill工具报 unknown)
本版本补上 || ^0.2.0-rc.1,范围覆盖 0.1.0-rc.7 起的整个 0.1.x / 0.2.x(含预发布)。已用官方 @deepseek-ai/dsh-app-boot@0.2.0-rc.1 的 evaluatePluginCompatibility / loadProfileDirectory 实测:bundle 正常加载,skippedBundles 为空。
0.1.7-rc.2 → 0.2.0-rc.1 之间,
dsh-tools/dsh-skill/dsh-llm/dsh-system-prompt/dsh-tool-skill的运行时 JS 逐字节相同,因此本次没有 API 迁移。
技能描述现在放得进 dsh 的目录行预算
dsh-tool-skill 用 catalogDescriptionMaxLength(默认 500)截断技能目录行。原先注册的描述有 697 字符,模型看到的是中间被切断的半句话,中文触发词(浏览器 / 网页 / 截图…)和「给某个网站做可复用 CLI」这两类触发词全被吃掉。现在按句子边界裁剪并预留触发词空间,输出 498 字符,两者都保留。
其他
- README 的 dsh 版本说明更新为 0.2.0-rc.1,并补充「换代后插件整体消失」的排查提示
- 发布 checklist 记录该静默跳过行为与查版本命令
Full changelog: v1.4.9...v1.4.10
v1.4.9
内置官方上游技能包(v2.0.22)
原先手写的 skill 文档已落后上游 14 个版本(v2.0.8),且描述的是另一套工具面。本版本改为原样内置官方技能包:
skill/是https://cdn.kimi.com/webbridge/v2.0.22/skills/kimi-webbridge.tar.gz的逐字节内容(SKILL.md+references/),由skill/UPSTREAM.json按 SHA-256 锁定scripts/fetch-upstream-skill.mjs负责内置与校验:--check报告上游漂移,--verify-local是离线门禁(缺失 / 被改 / 多余文件都会失败);CI 发布前跑离线门禁,另有每周任务在上游变动时失败- 注册时传入
resourceBase,使文档里的references/...链接可被解析;末尾追加一段 dsh 专属说明承载 harness 差异 kimi_webbridge status现在会渲染skills与skill_mismatch
随之带来的上游能力
- iframe / frame 读取(上游 v2.0.21):
snapshot返回frames、read_page {"frame":"#f1"}、wait {"frame":"any"} - 可信输入的 CDP 焦点仿真(v2.0.16):
Emulation.setFocusEmulationEnabled,Page.bringToFront语义更新 - cli-creator 工作流(v2.0.17):为某个网站生成可复用 CLI
ok/data回包信封与extension_not_connected错误码
其他
- 修正
@deepseek-ai/dsh-tools/dsh-llm的 peer 范围,补上0.1.7系列(本机实际运行 dsh 0.1.7-rc.2)
Full changelog: v1.4.8...v1.4.9
kimi-webbridge-dsh v1.4.8
对接 dsh 0.1.5-rc.1,并对齐 kimi-webbridge 守护进程 v2.0.8。
dsh 0.1.5-rc.1 兼容
- peer 范围新增
^0.1.5-rc.1:旧范围会静默排除该预发布版,用户在 0.1.5 上安装会遇到 ERESOLVE(node-semver 只在范围里存在「与该版本元组一致且自身带预发布标签」的比较符时才放行预发布版) - 出站 HTTP 改用平台
fetch,继承宿主从HTTP_PROXY/HTTPS_PROXY/ALL_PROXY/NO_PROXY安装的代理策略;回环流量不走代理 httpJson在调用方信号已中止时直接失败,不再照常发出请求- 二进制下载保持「空闲超时」语义(每收到一块数据即重置),慢速但持续推进的下载不会被截断
installDaemonBinary安装失败时清理残留的.tmp-*文件status渲染原样透出update_available.command,并按实际落后的方向报告版本漂移
kimi-webbridge v2.0.8 对齐
- README 更新为 v2.0.8 的五个平台 SHA-256 与版本引用,产品名更改为 Kimi Browser Extension(原 Kimi WebBridge)
skill.md更新为 v2.0.8 元数据、官方帮助链接,以及「不要自动执行 stop / restart / upgrade / uninstall」的官方约定- 25 个动作集不变:逐项在 v2.0.8 上验证,全部仍然有效(v2.0.8 官方 skill 只文档化其中 14 个精选工具)
Full Changelog: v1.4.7...v1.4.8
kimi-webbridge-dsh v1.4.7
Full Changelog: v1.4.6...v1.4.7
kimi-webbridge-dsh v1.4.6
Full Changelog: v1.4.5...v1.4.6