Skip to content

Releases: cfanmaoli/kimi-webbridge-dsh

v1.5.1

Choose a tag to compare

@cfanmaoli cfanmaoli released this 03 Nov 05:27

内置官方上游技能包升级到 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

Choose a tag to compare

@cfanmaoli cfanmaoli released this 26 Oct 14:51

守护进程不再需要手动升级

浏览器扩展跟着商店自动更新,守护进程却没有自更新机制:上游只提供 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

Choose a tag to compare

@cfanmaoli cfanmaoli released this 26 Oct 12:20

内置官方上游技能包升级到 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

Choose a tag to compare

@cfanmaoli cfanmaoli released this 19 Oct 11:38

内置官方上游技能包升级到 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 全部可加载,bundle skippedBundles 为空
  • 真实服务集成测试:29/29 通过(技能注册、工具 schema、系统提示段落、描述 498 ≤ 500、render 各分支)

Full changelog: v1.4.11...v1.4.12

v1.4.11

Choose a tag to compare

@cfanmaoli cfanmaoli released this 12 Oct 13:53

内置官方上游技能包升级到 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 节点的不可解析句柄,不再按语义名自动顶替;节点被移除或文档 / 连接变化后需重新 snapshot
  • find 支持 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

Choose a tag to compare

@cfanmaoli cfanmaoli released this 28 Sep 14:13

适配 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-webbridge skill 从技能目录里消失(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

Choose a tag to compare

@cfanmaoli cfanmaoli released this 26 Sep 15:04

内置官方上游技能包(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

Choose a tag to compare

@cfanmaoli cfanmaoli released this 10 Sep 12:06

对接 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

Choose a tag to compare

@cfanmaoli cfanmaoli released this 03 Sep 04:19

Full Changelog: v1.4.6...v1.4.7

kimi-webbridge-dsh v1.4.6

Choose a tag to compare

@cfanmaoli cfanmaoli released this 28 Aug 14:44

Full Changelog: v1.4.5...v1.4.6