DSH 插件自动更新:按包白名单的插件升级

前言

DeepSeek Harness(DSH)里插件往往从 npm 注册表安装,版本会随上游发布而变动。若只靠手动在插件页逐个检查、升级,插件一多就容易漏更或版本不一致。下面介绍社区插件 dsh-plugin-auto-update(npm 包名 @chendaleiq/dsh-plugin-auto-update):在插件页打开总开关、勾选允许自动升级的包,由宿主按计划查 npm 并走官方 pluginManager 执行更新,失败时回滚旧版本。

这是什么

维护者为 chendaleiQ,分类为工作流。插件给 DSH 已安装的插件做按包白名单的自动更新:只更新你勾选的、且满足「从注册表安装、依赖写成版本范围」的包;本地 link: / file:、锁定版本、报错的包会跳过。

核心功能

检查与更新策略

  1. 按计划向 npm 查询已安装插件的最新版本。
  2. 默认不跨大版本、不装预发布;可在面板里分别打开「允许跨大版本」「允许预发布」。
  3. 更新走 profile 里运行中的官方 pluginManager:profile 写锁、pnpm 执行、bundle 补丁校验、HMR 重载由其负责;安装失败会把旧版本装回去。

插件页配置面板

插件 → DSH 插件自动更新 → 详情页底部:

  • 启用自动更新 —— 总开关,默认关。
  • 升级范围 —— 允许跨大版本 / 允许预发布。
  • 自动更新的插件 —— 列出从注册表安装的插件,逐个勾选;「全部可更新的插件」表示通配。
  • 不能更新的包会置灰并说明原因(本地安装 / 锁定版本 / 存在错误)。

改动即时生效,不需要重启。

日志

每轮结果写入 ~/.dsh/plugin-auto-update.log,每行一个 JSON。例如:

{"at":"…","kind":"cycle","decisions":[{"name":"dsh-plugin-desktop-notify","action":"updated","installed":"0.5.6","latest":"0.5.7"}]}

action 取值包括 current、would-update、updated、failed、error。

边界(有意为之)

  • 只处理「从注册表安装、且依赖写成范围(^ ~ * latest)」的包。
  • 随 DSH 自带的 bundle 不动;不修改其它配置。
  • 网络或插件管理器出错只记录,不中断其它包。
  • 宿主半边更新后需要重启 DSH;渲染层由 HMR 直接替换。

界面语言跟随 DSH 的语言设置(默认中文,切英文后面板文案同步变英文)。

安装与启用

  1. 打开 DSH 插件页 → 安装。
  2. 填写 npm 包名:
@chendaleiq/dsh-plugin-auto-update
  1. 装完重启 DSH(宿主半边需要新代际才加载)。也可填 GitHub 仓库地址或本地目录的绝对路径安装。
  2. 进入插件详情,打开 启用自动更新,勾选需要自动升级的插件。

高级配置

面板未覆盖的字段写在 profile patch 的 config 里,或覆盖 ~/.dsh/profiles/<profile>/cordis.patch.yml 中同一行。改完需要重启。资料中提到的字段包括:

  • intervalHours —— 默认 6 小时
  • initialDelayMinutes
  • maxUpdatesPerRun
  • dryRun
  • registry
  • timeoutMs
  • logPath

适用场景与注意

适合长期跑 DSH、插件较多且希望可控地跟上 npm 补丁或小版本的用户。使用前请自行查看 GitHub 仓库 源码与 MIT 许可证;插件以当前 DSH 进程权限运行,勾选白名单即表示允许其调用官方插件管理器改写已选包的安装版本。

社区目录页:SkillHub — dsh-plugin-auto-update(独立站点,与 DeepSeek / 幻方无官方从属关系)。源码与说明:chendaleiQ/dsh-plugin-auto-update。

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

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

小夜