dsh-updater:在 Web 设置面板里检查 DSH 更新

前言

DeepSeek Harness(dsh)通过 npm 全局安装后,版本会随 @deepseek-ai/dsh 的 Release 迭代。平时要确认自己是否落后,往往得另开浏览器查 GitHub Releases,再对照终端里 dsh --version 的输出,升级时还要自己拼 npm install -g --prefix … 和 registry 参数。若你主要用 dsh web 做日常配置,希望「看版本、看 changelog、拿升级命令」都在设置页完成,且不希望插件在 web 进程里强行重装(Windows 上正在运行的 bin 会被占用),可以装 dsh-updater 这类只检查、只给命令的联网插件。

这是什么

dsh-updater(npm 包名 @deepseek-ai/dsh-updater)是社区维护的 DSH 插件,维护者为 pomelotea-yuzu,在插件目录中归类为 联网工具。它在 web 设置面板左侧导航末尾新增「更新」分区,展示当前安装版本与 GitHub Releases 上的最新版本、检查时间与状态、最近版本的更新说明摘要,并提供 Release 页面跳转与一键复制升级命令。只检查、不自动安装——复制命令后需在已退出的 dsh web 之外,于终端手动执行 npm 重装。

核心功能

下面介绍插件在资料中明确列出的能力。

设置面板「更新」分区

  • 左侧导航最后一项(order 20,↑ 箭头图标)。
  • 展示:当前版本 / 最新版本 / 检查时间 / 状态(已最新、可更新、检查失败)/ 最近版本更新说明 / 「打开 Release 页面」按钮。
  • 检测到新版本时显示升级命令卡片与「复制更新命令」;命令按实际安装目录生成,形如:
npm install -g --prefix <安装目录> @deepseek-ai/dsh@latest --registry …
  • rc 预发布版本在比较时也算「可更新」(资料说明 DSH 目前 Release 多为 rc)。

检查时机与缓存

  • 应用启动时在 host 端后台静默检查一次;host 内存缓存作兜底,避免重复请求 GitHub。
  • 面板内「检查更新」可强制刷新(对应带 force 的检查接口)。

Host 端数据流(便于理解行为)

设置页「更新」分区通过 GET /dsh-updater/status(或 /check?force=1)与 host 交互。host 侧大致步骤为:

  1. 当前版本:从 dsh CLI 的 bin.js 上一级 package.json 读取(与 dsh --version 同源;失败时回退 import.meta.resolve 或子进程 dsh --version)。
  2. 安装目录:由 bin.js 路径向上推导,用于生成 npm --prefix 升级命令。
  3. 最新版本:请求 GitHub Releases API(https://api.github.com,仅此官方源);失败时依次回退 node --use-system-ca 子进程、Windows 上的 curl.exe(schannel)。
  4. 剥掉 dsh-v 前缀,用 npm semver 规则比较(rc 计入可更新)。
  5. 结果在内存中缓存 10 分钟(未认证 GitHub API 约 60 次/小时/IP 限流)。

安装与启用

安装命令以仓库 README 原文为准(示例使用本地 link 路径,请换成你本机插件目录):

dsh plugin --profile web add "link:D:\dsh_plugin\dsh-updater"

安装后重启 dsh web 生效。若只改了插件的 client 端,浏览器强刷(Ctrl+Shift+R)即可。

典型用法

日常看版本

  1. 启动 dsh web,打开设置页,进入「更新」分区。
  2. 查看当前版本、最新版本与状态;需要时可点「检查更新」强制刷新。
  3. 若有新版本,阅读更新说明摘要,需要详情时点「打开 Release 页面」。

升级 DSH(复制命令后手动执行)

  1. 关闭正在运行的 dsh web。
  2. 在新终端执行「更新」分区里复制的 npm 命令(重装到原 --prefix 目录)。
  3. 执行 dsh --version 确认新版本,再启动 dsh web。

资料说明不做「一键安装」的原因:在 Windows 上 npm 全局重装需替换正在使用的 dsh 文件,而 web 进程本身占用这些文件,必须先退出 web 再升级,属于平台限制而非插件偷懒。

配置

在 profile 的 cordis.patch.yml 中可覆盖插件配置(默认值一般够用):

- id: dsh-updater
  config:
    timeoutMs: 10000   # GitHub 请求超时(毫秒)
    cacheMs: 600000    # 检查结果缓存时长(毫秒)

适用场景与注意

适合谁:长期用 dsh web 配置 Harness、希望少切窗口查 GitHub、又愿意自己掌控升级节奏(先停 web、再跑 npm)的开发者。

使用前请知悉:

  • 插件以当前 dsh 进程权限运行,会向 GitHub 拉取 Release 信息;安装前建议阅读源码与 MIT 许可证(见仓库)。
  • 社区插件目录(SkillHub 等)与 DeepSeek / 幻方无官方从属关系,并非官方应用商店。
  • 仓库 README 中的安装示例为 link: 本地路径;从目录页或 GitHub 获取与你环境一致的安装方式时,以该页/该 README 当前说明为准。

结尾

dsh-updater 把「当前版 vs 最新版、changelog 摘要、Release 链接、按安装目录生成的升级命令」收进 web 设置里的「更新」分区,启动时静默检查、手动可强制刷新,并明确不自动安装。若你认同「检查在面板、安装在终端」的分工,可按 README 安装并在升级流程里配合复制命令使用。

  • 插件目录页:https://www.skillhub.cn/plugins/pomelotea-yuzu/dsh-updater
  • GitHub:https://github.com/pomelotea-yuzu/dsh-updater
羽毛球分组比赛记分
小程序二维码

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

小夜