dsh-updater
DeepSeek Harness (dsh) update checker plugin: check the latest release from GitHub right inside the Settings panel, view the changelog, and copy the upgrade command. Check-only — no auto install.
- Stars
- 0
- Language
- TypeScript
- Created
- Aug 25, 2026
- Updated
- Aug 25, 2026
Introduction
dsh-updater
DeepSeek Harness(dsh)更新检查插件:在 web 设置面板新增「更新」分区,展示当前 安装版本与 GitHub Releases 最新版本、更新说明摘要与 Release 跳转链接,并提供 一键复制升级命令。只检查、给命令,不自动安装(升级由你自己在终端执行)。
功能
- 设置面板新增「更新」分区(左侧导航最后一项,order 20,↑ 箭头图标)
- 应用启动时后台静默检查一次(host 内存缓存兜底,不重复打 GitHub)
- 手动「检查更新」强制刷新
- 展示:当前版本 / 最新版本 / 检查时间 / 状态(已最新 / 可更新 / 检查失败)/ 最近版本更新说明 / 「打开 Release 页面」按钮
- 检测到新版本时展示升级命令卡片:「复制更新命令」按钮
(命令按实际安装目录生成:
npm install -g --prefix <安装目录> @deepseek-ai/dsh@latest --registry …) - rc 预发布版本也算「可更新」(DSH 目前全是 rc)
安装
dsh plugin --profile web add "link:D:\dsh_plugin\dsh-updater"
重启 dsh web 生效;仅改 client 端只需浏览器强刷(Ctrl+Shift+R)。
如何升级 DSH(复制命令后手动执行)
- 关闭正在运行的 dsh web
- 新终端执行「更新」分区里复制的命令(npm 重装到原安装目录)
dsh --version确认新版本,再启动dsh web
为什么不做一键安装:Windows 上 npm 重装需删除正在运行的 dsh 文件, 而 web 进程自己正占用着它们,必须先退出才能升级——这是平台限制。
数据流
设置页「更新」分区
└─ GET /dsh-updater/status(或 /check?force=1)
└─ host 端:
1. 当前版本:process.argv[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 子进程 → curl.exe(schannel)
4. 剥掉 dsh-v 前缀,npm semver 规则比较(rc 算更新)
5. 结果内存缓存 10 分钟(GitHub 未认证限流 60 次/时/IP)
配置
profile 的 cordis.patch.yml 可覆盖(默认值已够用):
- id: dsh-updater
config:
timeoutMs: 10000 # GitHub 请求超时(毫秒)
cacheMs: 600000 # 检查结果缓存时长(毫秒)
开发
pnpm install
pnpm check # client.js 语法
pnpm typecheck # host 端类型
pnpm test # 单元测试
pnpm build # tsc + 复制 client → lib/
改 host 端(src/*.ts)需重启 dsh web;仅改 client/client.js 只需浏览器强刷。