dsh-plugin-updater:DSH 插件、桌面端与内核的零 token 更新检查

前言

在 DSH(DeepSeek Harness)里装多了社区插件之后,版本是否落后、桌面端有没有新包、内置 @deepseek-ai/dsh 内核是否随桌面端更新,往往要分别去 npm、官网或设置里查。手动对比既费时,也容易漏。若把「有没有更新」交给带模型的 agent 去查,还会白白消耗 token 和轮次。

下面介绍维护者 TT10-24 发布的 dsh-plugin-updater(GitHub:TT10-24/dsh-plugin-updater)。它在 DSH 启动时用普通 HTTPS 请求做三层检查,有更新时在侧边栏旁弹出可拖动面板,支持单个或一键全部更新、实时进度与按需重启;检查与安装走 DSH 自带插件管理器和 pnpm,不调用 LLM、不产生 agent 轮次。插件在 SkillHub 目录中归类为「联网工具」,许可证为 MIT,当前 package 版本为 0.3.4。

这是什么

dsh-plugin-updater 是 DSH Desktop 侧的一个 bundle 插件(Cordis patch id:plugin-updater)。定位可以概括为:已安装插件、DSH Desktop 本体、随桌面端捆绑的内核版本的「更新管家」——发现新版本后提醒,并在面板里完成更新操作。

社区插件目录页:https://www.skillhub.cn/plugins/TT10-24/dsh-plugin-updater。SkillHub 为独立社区站点,与 DeepSeek / 幻方无官方从属关系;安装与配置以 GitHub README 与项目文档为准。

核心功能

三层检查

  1. 插件:读取 profile 与实时 bundle 列表,与 npm registry(默认 https://registry.npmjs.org)上的版本对比。
  2. DSH Desktop:调用官方桌面端版本服务(默认 https://www.dshdesktop.cn/api/desktop/version),展示当前版本与最新版本。
  3. 内核:显示随桌面端内置的 @deepseek-ai/dsh 版本;内核随桌面端更新,不在此插件里单独安装。

面板与更新体验

  • 有更新时侧边栏出现数量徽标;点「查看更新」打开可拖动面板(拖标题栏移动、双击复位、记住位置、Esc 关闭)。
  • 实时进度:进度条、当前阶段(卸载 / 安装 / 重新检查)以及 pnpm 最后一行输出。
  • 单个更新或 全部更新 (N):一键按顺序更新所有待更新插件;成功的行立即从列表消失,避免更新按钮反复出现。
  • 需要重启时,面板提供 立即重启 DSH(替换已安装插件后须重启才能加载新代码,属 DSH 插件替换机制限制)。
  • 界面中英文跟随 DSH 语言设置。

按版本忽略

每个可更新插件行可 忽略 当前最新版本;桌面端可 忽略本次。只忽略这一次发布的版本号,上游再发新版本会重新提示。记录保存在 <DSH_HOME>/plugin-updater/ignored.json,仅本机,不对外发送。已忽略项在面板底部 已忽略 区域,可 取消忽略。

桌面端更新在插件内会区分为补丁 / 功能版本 / 大版本 / 产品线切换;仅产品线切换(例如 DSH Desktop → DSH NEXT)会走迁移卡片,普通版本仍为普通更新行。

DSH NEXT 迁移防护(0.3.4 起)

从桌面端 2.0.20 起,稳定通道可能把 DSH NEXT 作为升级包下发。DSH NEXT 与 DSH Desktop 的安装器、可执行文件和默认数据目录(如 ~/.dsh)不同,若直接当普通桌面端更新,可能打开空工作区(数据仍在原 DSH 数据目录)。

此类升级不再走普通「更新桌面端」按钮,而是:

  1. 面板显示 DSH Desktop → DSH NEXT 迁移卡片,并标出当前数据目录。
  2. 保留数据并更新:先把 DSH NEXT 的数据目录指针写到当前 DSH 数据目录并备份原指针,再交给桌面端官方安装流程。
  3. 若已安装 DSH NEXT 但数据目录未对齐,面板提供 修复数据目录。

手动恢复可参考 DSH NEXT 设置中的数据目录选择,或运行 <DSH_HOME>\plugin-updater\restore-desktop-data.ps1。升级前仍建议备份数据目录。

隐私与网络

读取限于本机 profile 的 package.json、已安装包版本、数据目录指针与 ignored.json(本地比较,不发送)。对外请求仅为 npm registry 与 DSH Desktop 官方版本服务;不发送会话、提示词或凭据,不调用 LLM、agent 或 subagent。

安装与启用

在 DSH Desktop 设置 → 插件 → 添加插件 中填入:

github:TT10-24/dsh-plugin-updater

或在终端执行:

dsh plugin --profile desktop add github:TT10-24/dsh-plugin-updater

固定到某一发布 tag 时:

dsh plugin --profile desktop add github:TT10-24/dsh-plugin-updater#v0.3.4

本地开发可链接目录(路径按本机修改):

dsh plugin --profile desktop add link:"F:/path/to/dsh-plugin-updater"

安装完成后重启 DSH Desktop。插件出现在侧边栏底部(设置按钮旁),显示「查看更新」。

配置

在 profile 的 cordis.patch.yml 中覆盖本插件行:

- id: plugin-updater
  name: dsh-plugin-updater
  config:
    registry: https://registry.npmmirror.com
    desktopEndpoint: https://www.dshdesktop.cn/api/desktop/version
    autoCheck: true
    checkOnBoot: true
    checkDesktop: true
    checkEngine: true
    verbose: false

registry 默认 https://registry.npmjs.org;checkOnBoot: true 表示启动约 1.5s 后自动检查。修改后重启 DSH Desktop 生效。

典型用法

经过上面的安装与重启,可按 README 中的流程操作:

  1. DSH 启动后静默检查;有更新时侧边栏出现徽标。
  2. 点「查看更新」打开面板。
  3. 单个插件点「更新」;多个待更新项点「全部更新 (N)」。
  4. 观察面板顶部进度条与 pnpm 日志末行。
  5. 更新成功的插件从列表消失;若提示需重启,点「立即重启 DSH」。
  6. 需要时可拖动面板,位置会被记住。

点「更新」时,插件先卸载旧版本再安装目标版本;安装失败会自动恢复旧版本并在该行下方显示原因。某些包需批准 pnpm 构建脚本,失败时面板会列出待批准项,可在插件页手动批准后重试。

在仅 Web、无桌面端路由的环境下,仍可检查插件;桌面端区域会显示「未检测到桌面端」,不会出现桌面端更新按钮。

适用场景与注意

适合谁:长期在 DSH Desktop 上使用多枚社区插件、希望启动即知版本差异、且不想为「查更新」占用模型 token 的开发者。

运行与信任:插件以当前 DSH 进程权限运行;安装前建议阅读 源码与 LICENSE(MIT),自行评估网络访问(npm、官方版本服务)是否符合环境策略。

限制摘要:插件更新走官方 remove → install;构建脚本未批准会导致失败并回滚;DSH NEXT 下对 link: 插件等有文档记载的兼容降级(见 README「兼容性与限制」)。

更多细节见 在线介绍页、架构说明 与 项目看板。

结尾

dsh-plugin-updater 把插件、DSH Desktop 与内核的版本检查集中到一次启动流程里,用面板完成更新与重启提示,全程不消耗 token。目录页:SkillHub - dsh-plugin-updater;仓库:https://github.com/TT10-24/dsh-plugin-updater。

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

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

Xiaoye