dsh-update-notifier:DeepSeek Harness 插件版本巡检工具

DeepSeek Harness 的核心理念是“一切皆插件”。当插件安装后,如果不主动查询,很难察觉其是否更新。dsh-update-notifier 解决了这一信息差,通过定时扫描,在版本更新时请求用户确认。

这是什么

这是一个由 Stuart Hu 维护的插件,用于监控已安装 DSH 插件的 npm 版本。它每小时对比一次本地安装与注册表的 latest 标签,发现新版本时通过 UI 气泡请求批准。它本身从不执行升级,而是将批准指令交给 DSH Agent 执行。

核心功能

  1. 定时与手动检查:默认每小时检查一次,也可通过 /check-updates 命令立即手动触发。
  2. 审批气泡:新版本以气泡形式呈现,用户勾选后,Agent 执行升级。
  3. 记忆拒绝:未勾选的版本会被记录在 <profileDir>/.dsh-update-notifier.json 中,下次不再询问,除非 registry 的最新版本变更。
  4. 安全执行:插件不直接运行包管理器,仅向 Agent 发送文本指令。

安装与启用

通过 DSH CLI 安装插件:

dsh plugin --profile web add dsh-update-notifier

安装后需要重启 dsh 进程才能生效。该插件需要 Node.js 18+ 环境(用于全局 fetch),且与 dsh 0.1.0-rc.6+ 兼容。

典型用法

手动检查

在 DSH 会话中输入以下命令,立即扫描当前会话的插件更新:

/check-updates

系统会返回检查结果,并弹出批准气泡。如果气泡无法显示(例如无 UI 环境),结果中会直接包含升级命令。

执行升级

  1. 在气泡中勾选需要升级的插件。
  2. DSH Agent 会接收到指令并执行类似以下的命令:
pnpm --dir <profileDir> add <pkg>@<latest>

配置检查频率

在 cordis.patch.yml 中配置 update-notifier 节点:

update-notifier:
  interval: 3600000  # 默认 3600000ms (1小时),最小 60000ms
  initialDelay: 10000  # 启动后 10 秒开始第一次检查

适用场景与注意

适用场景

  • 需要长期维护插件版本的 DSH 用户。
  • 想要统一管理多个插件更新,避免遗漏的场景。

限制与注意事项

  • 仅限注册安装:插件必须是通过 npm 安装到 node_modules 的,本地链接或内置插件不可见。
  • 仅限 latest 标签:插件不支持锁定 next、beta 等预发布版本,或 Pin 到特定版本。
  • 一次一个气泡:如果当前已有气泡处于待回答状态,新的检查会被跳过或拒绝。
  • 插件退出机制:插件本身可以在其 package.json 中声明 { "dsh": { "updateNotifier": false } } 来退出更新通知。
  • 安全机制:插件不会尝试升级任何未获批准的包。批准后的命令由 Agent 执行,插件层不直接操作 shell。

短结尾

dsh-update-notifier 通过将版本检查与审批流程整合到 DSH 会话中,解决了手动维护插件版本的痛点。它通过 /check-updates 命令和配置文件提供了灵活的控制,确保了升级操作的安全性。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜