前言¶
在 DeepSeek Harness(dsh)里,插件往往随 profile 的 dependencies 与 dsh.profile.bundles 一起安装、启用。版本分散在 npm registry 上,手动对照 package.json 再执行 dsh plugin add 容易漏项,也不符合「打开环境就能干活」的习惯。
下面介绍社区插件 dsh-auto-update(维护者 1708994293-hue):每次打开 DSH 后,在后台检查你已下载且已启用的插件是否有可前向升级的 semver 新版本,有则在界面列出并询问,确认后才走官方 dsh plugin add 通道更新;无更新则静默。分类为工作流,目录页见 SkillHub,源码与说明见 GitHub。
这是什么¶
dsh-auto-update 是 DSH 的 bundle 插件(npm 包名 @sueleven/dsh-auto-update,当前资料版本 1.0.1)。它解决的是:启动后自动发现已启用插件的可升级版本,由你决定是否更新,且不覆盖 profile 配置。
与「完全手动查版本、逐条安装」相比,检查在启动约 8 秒后后台进行,不阻塞界面;更新语义与插件市场一致,完成后提示重启 DSH 后生效。
核心功能¶
资料中可核对的行为如下:
- 检查范围:profile
package.json的dependencies与dsh.profile.bundles的交集(已下载且已启用);排除市场里被禁用的包、file:/link:/git:等非 registry 依赖,以及插件自身。 - 版本比较:使用 semver,只列出可前向升级的项,不会建议降级。
- 界面:有新版本时右下角出现
shell.overlay提示卡,逐条显示「插件 当前版本 → 最新版本」;按钮为全部更新与稍后提醒;无更新时不打扰。 - 更新路径:调用与 DSH 插件市场相同的官方 CLI 通道(
dsh plugin ... add,并带--config.minimum-release-age=0),不直接改 profile 文件。
实现上分为 Host(lib/index.js:延时检查、状态机、路由 /dsh-auto-update/status|check|apply|dismiss)、Client(lib/client.js:提示卡与轮询)、以及检查/更新器(lib/update.mjs:读 profile、查 npm、按需执行官方 add)。
安装与启用¶
要求 dsh 0.2.1 及以上(插件声明了 dsh.bundle manifest)。Node 引擎要求 >=20(见 package.json)。
从 npm 安装(推荐,任意平台)
npm 上无 scope 名 dsh-auto-update 因与已有包名过于相似被拒绝,因此发布名为带 scope 的 @sueleven/dsh-auto-update:
dsh plugin --profile desktop add @sueleven/dsh-auto-update
从 GitHub 安装
dsh plugin --profile desktop add github:1708994293-hue/dsh-auto-update
从本地目录安装
# Windows:脚本会复制插件并调用官方 dsh plugin 通道安装
pwsh -NoProfile -File scripts/install.ps1
任意平台也可用 link 安装(将路径换成本仓库绝对路径):
dsh plugin --profile desktop add link:<本仓库绝对路径>
装完后完全退出并重启 DSH,侧边栏「插件」页里应出现 dsh-auto-update。
从 1.0.0 升级¶
1.0.0 的前端模块注册名遗漏 npm scope,可能导致 Desktop 启动失败并记录 duplicate factory registration for "dsh-auto-update";1.0.1 已修复。完全退出 DSH 后执行:
dsh plugin --profile desktop add '@sueleven/dsh-auto-update@1.0.1' --config.minimum-release-age=0
重新打开 DSH;若此前因恢复操作停用了插件,在插件页重新启用即可。
典型用法¶
日常使用无需额外操作:启动 DSH 后等待默认约 8 秒,若有可升级项会弹出提示卡,按需点「全部更新」或「稍后提醒」。
需要脚本或排障时,可在插件目录下直接调用更新器(路径随安装方式不同:npm 安装一般在 profile 的 node_modules/@sueleven/dsh-auto-update,本地 link: 多在 ~/.dsh/plugins/dsh-auto-update):
# 只检查,不做任何修改
node <插件目录>/lib/update.mjs --check
# 列出可更新项(JSON)
node <插件目录>/lib/update.mjs --check --json
update.mjs 还支持 --profile、--dry-run、--help。
环境变量与日志¶
可通过环境变量调整行为(均为资料原文):
| 变量 | 作用 |
|---|---|
DSH_AUTO_UPDATE_DELAY_MS |
启动后延时多久开始检查(默认 8000) |
DSH_AUTO_UPDATE_DISABLE=1 |
本次启动不检查、不显示提示 |
DSH_AUTO_UPDATE_PROFILE |
覆盖 profile 名(默认读 DSH_PROFILE,否则 desktop) |
DSH_AUTO_UPDATE_DATA_DIR |
覆盖日志/状态目录(默认插件包目录) |
日志与状态:
<插件目录>/logs/auto-update.log:检查与更新记录<插件目录>/logs/plugin.log:生命周期与错误<插件目录>/state/last-run.json:最近一次检查的结构化结果
适用场景与注意¶
适合谁:长期在 Desktop profile 下启用多个来自 npm 的 DSH 插件、希望启动时被动收到升级提醒、且希望更新仍经官方 dsh plugin add 的开发者。
注意:
- 插件以当前 dsh 进程权限运行,安装前请自行阅读 仓库源码 与 MIT 许可证。
- 仅对 registry 依赖做检查;
link:、Git 等非 registry 安装不会出现在可更新列表中。 - 社区目录(如 awesome-dsh-plugin)与 SkillHub 等为社区索引,与 DeepSeek / 幻方无官方从属关系;本插件是生态中的工作流类扩展,不是 DSH 内置功能。
卸载示例:
dsh plugin --profile desktop remove @sueleven/dsh-auto-update
Windows 本地安装还可使用仓库中的 scripts/uninstall.ps1 删除插件目录。
结尾¶
dsh-auto-update 把「已启用插件的版本对齐」收拢到每次启动后的单次检查与用户确认流程里,减少手工查 registry 与漏更。需要安装说明、环境变量与手动检查命令时,以 README 为准:
- 目录页:https://www.skillhub.cn/plugins/1708994293-hue/dsh-auto-update
- GitHub:https://github.com/1708994293-hue/dsh-auto-update