DeepSeek Harness Hub
← 返回列表

版本更新检查d4go/dsh-checker

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

在会话头部一键检查插件新版本并复制升级命令

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/20 · 已提供中文文档
综合分
28
GitHub 分
28
用户评分
★ Stars
1
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add d4go/dsh-checker
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-checker

DeepSeek Harness (dsh) 的版本更新检查插件。

它在 Web 界面的 Session 头部增加一个 检查更新 按钮——位于自带的
Session log 按钮之前,样式与其完全一致——点击后弹出居中对话框展示结果:

- 已是最新版本 → 简短确认提示;
- npm 上有新版本 → 展示版本差异,并按你的平台(Linux / macOS / Windows)
给出对应的升级命令,每条命令都有一键复制按钮;
- 检查失败 → 展示错误信息,让你知道检查确实执行过。

对话框支持 中文 / English 双语,跟随 dsh 设置中的语言
(locale.preference);未设置时与 dsh 界面一样回退到浏览器语言。

工作原理

dsh-checker 是一个 Cordis host 插件,由三部分组成:

| 文件 | 职责 |
| --- | --- |
| lib/main.js | 稳定的加载垫片(永不修改)。以 lib/plugin.js?bust= 动态加载实现,仅改配置即可热部署新代码,无需重启 dsh。 |
| lib/plugin.js | 注册 GET /dsh-checker/status(当前版本 vs 最新版本、平台对应的升级命令、配置的语言)和 GET /dsh-checker/banner.js,并向 index.html 注入脚本标签。 |
| lib/banner.js | 浏览器端 UI,每次请求从磁盘读取:把按钮放到 Session log 前面(直接复用它的 CSS 类)、渲染居中弹框、页面加载时静默缓存检查,并处理复制/关闭。 |

版本探测从运行中的 dsh 进程自身解析已安装的 @deepseek-ai/dsh
包(入口脚本锚点 + 常见全局 npm 安装路径),因此 Linux、macOS、Windows
的全局安装都适用。最新版本通过查询 npm registry 取全部 dist-tag
(latest、next 等)中最新发布的版本——挂在 next 通道的新预发布版
(如 0.1.0-rc.8)不会被漏掉——host 端缓存 5 分钟;手动点击按钮始终绕过
缓存强制查询。registry 按顺序尝试并自动回退(registry.npmjs.org 优先,
不可达时降级到 registry.npmmirror.com 镜像——国内主机经常连不上 npmjs),
可用 config.registryUrls 覆盖。

升级命令按平台给出默认值,可按部署覆盖。默认只展示一条升级命令——dsh
不一定注册为系统服务,所以不假定重启命令;没有重启命令时,弹框只显示一行
"升级完成后请重启运行 dsh 的服务或进程"的提示:

| 平台 | 升级命令(默认) |
| --- | --- |
| Linux | sudo npm install -g @deepseek-ai/dsh@latest |
| macOS | sudo npm install -g @deepseek-ai/dsh@latest |
| Windows | npm install -g @deepseek-ai/dsh@latest |

如果你把 dsh 注册成了服务管理器(例如 systemd),在 entry config 里设置
restartCommand(如 systemctl --user restart deepseek-dsh-web),弹框就会
把它作为第二条可复制的命令展示。

安装

要求:带 webServer 服务的 dsh 近期版本(0.1.0-rc 系列即可),Node ≥ 22。

方式 A —— 克隆后挂载(快速上手)

git clone https://github.com/d4go/dsh-checker.git ~/dsh-checker

把下面的片段追加到 ~/.dsh/cordis.patch.yml(或某个 profile 的
cordis.patch.yml),并把路径改成你的实际路径:

- insert:
- id: dsh-checker
name: /home/you/dsh-checker/lib/main.js
config:
bust: 1

用户 patch 层是热监听的:保存文件插件即挂载,无需重启 dsh。刷新页面即可看到。

方式 B —— 作为包安装进 profile

dsh plugin --profile web add github:d4go/dsh-checker

然后用 profile 相对路径挂载:

- insert:
- id: dsh-checker
name: ./node_modules/dsh-checker/lib/main.js
config:
bust: 1

配置

entry config 支持的键:

| 键 | 默认值 | 说明 |
| --- | --- | --- |
| bust | 0 | 修改 lib/plugin.js 后递增此值即可热部署。 |
| installCommand | 按平台默认 | 覆盖第一条升级命令。 |
| restartCommand | (无) | 可选第二条命令,用于把 dsh 注册为服务管理的部署;设为 "" 可隐藏。 |
| previewUpdate | false | 预览模式:假装存在新版本(不做真实 registry 查询),用于体验升级弹框。 |
| registryUrls | npmjs → npmmirror | 自定义 registry 地址列表,按顺序尝试,第一个可达的生效。 |

HTTP 接口

- GET /dsh-checker/status —— JSON:{ ok, platform, locale, current, latest, latestTag, upToDate, commands, checkedAt }(加 ?refresh=1 强制重新查询 registry)。
- GET /dsh-checker/locale —— JSON:{ ok, locale };UI 会轮询它,使界面语言实时跟随 dsh 设置。
- GET /dsh-checker/banner.js —— UI 脚本。

卸载

从 patch 文件中删除 insert 片段(热生效),再删除克隆目录即可。
所有文件都在 dsh 安装目录之外,升级 dsh 既不会改动它,也不依赖它。

开发

- 修改 lib/banner.js:刷新页面即可,无需 bump、无需重载。
- 修改 lib/plugin.js:递增 patch 配置里的 bust,垫片会以新的 URL 热加载模块。
- npm run check 可对三个模块做语法检查。

许可证

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群