← 返回列表
未验证
在会话头部一键检查插件新版本并复制升级命令
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 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扫码进群