前言¶
DeepSeek Harness(DSH)通过 dsh web 提供浏览器里的 Host + Client 形态。日常开发里,本机装的 @deepseek-ai/dsh 版本和 npm 上的 latest 很容易脱节:要自己查 registry、对照 GitHub Release、再在终端里做全局安装并重启进程。社区插件 dsh-update-center(维护者 HansyLin-xCoFe)把「查版本、读中文更新重点、触发升级」收进 Web 界面,属于 DSH 生态里「客户端」类插件;目录页见 SkillHub,源码在 GitHub(MIT)。SkillHub 与 DeepSeek / 幻方无官方从属关系,插件由社区维护。
这是什么¶
一句话:给 DSH Web 界面增加「更新中心」——设置页一行通用入口 + 左下角新版本弹窗,并解析官方 Release 里的中文「更新重点」。
插件 Host 半负责版本比较、npm / GitHub 查询、忽略状态与更新计划;Client 半负责「设置 → 通用」里的 DSH 更新行和左下角提示。界面文案跟随 DSH 语言设置(内置中文 / English)。
核心功能¶
设置 → 通用¶
- 显示当前版本与最新版本;
- 「检查更新」「一键更新」;
- 按版本号「忽略此版本 / 取消忽略」(忽略例如
v0.2.1-rc.5后不再为它弹窗,更新版本仍会提醒); - 「更新重点」可展开 / 收起:解析 deepseek-harness 仓库
dsh-v*Release 正文中的中文段落,列出从当前版本到最新版本之间的各版说明。GitHub 不可达时仍会提示有新版本,但更新重点为空。
左下角弹窗¶
检测到新版本时出现小窗口:新版本号、当前版本、折叠的更新重点,以及「立即更新」「忽略此版本」「稍后」。更新过程中有进度提示;更新重点同样支持放大展开 / 缩小隐藏。
自动检查¶
每次打开页面会自动查一次 npm 上 @deepseek-ai/dsh 的 latest;Host 侧对结果有 10 分钟缓存,避免频繁请求网络。
一键更新的执行方式¶
下面介绍 Host 侧实际流程(摘自项目 README,便于理解断线、重连与失败恢复):
- 点击「立即更新」后,Host 把更新计划写到
~/.dsh/dsh-update/plans/,启动 detached 更新助手,然后退出当前进程; - 助手等 Web 端口释放后执行全局安装(版本号由服务端固定,不接受客户端任意指定):
npm install -g --no-fund --no-audit --prefix <npm 全局前缀> @deepseek-ai/dsh@<最新版本>
放在旧进程退出之后执行,是为避免 Windows 上正在运行的 .node 文件被锁。
- 用原进程的启动参数重新拉起
dsh web,并轮询端口确认启动成功; - 页面断线后由 DSH 自带连接恢复逻辑重连;新版本 Host 返回时,DSH 内置「服务版本变化」对话框会提示刷新,刷新即进入新版本。
若 npm 安装失败,助手仍会尽量按旧版本拉起 DSH,并把错误与日志路径写回状态文件;下次打开设置页可看到「上次更新未完成」和日志位置。
- 日志:
~/.dsh/dsh-update/logs/update-*.log - 状态:
~/.dsh/dsh-update/state.json
存在环境变量DSH_HOME时以它为准。
安装与启用¶
要求:DSH >= 0.2.1-rc.2(Web 形态),Node 18+,npm 在 PATH 中且对 npm 全局前缀有写权限。
在 DSH Web 的 设置 → 插件 里添加,spec 填:
github:HansyLin-xCoFe/dsh-update-center
也可通过 plugin_manager 工具或插件管理器安装入口,target 同样填上述地址。安装后无需改 cordis.patch.yml,插件会自动出现在「设置 → 通用」和左下角。
本地开发可将 package 根目录 link 到插件目录,改完重启 dsh web 以加载 Host 半;Client 半可被 HMR 热更,最稳做法是刷新页面。当前 package 未暴露可调 Config;更新源常量在 Host index.js 顶部(REGISTRY_LATEST_URL / RELEASES_URL)。
典型用法¶
- 安装插件后打开 DSH Web,等待页面加载完成(会自动检查一次 latest)。
- 进入 设置 → 通用,查看「DSH 更新」行的当前 / 最新版本;需要时点「检查更新」,展开「更新重点」阅读 Release 中文说明。
- 若有新版本且未忽略:可在设置页点「一键更新」,或在左下角弹窗选「立即更新」;暂不想升级可选「稍后」,长期跳过某一版可选「忽略此版本」。
- 更新过程中保持本机 npm 与全局前缀可写;完成后按界面提示刷新页面。
安全边界与适用注意¶
Host 对 /dsh-update/* 仅接受直接 loopback 且同源请求(Host 为 127.0.0.1 / localhost / [::1],带 Origin 时需与 Host 一致),其他来源返回 403。更新动作只执行写死的 npm 全局安装命令,不读取或上传 DSH 会话内容;仅读取本机 DSH 安装版本、npm registry 与 GitHub Releases。
适合:长期在本地用 dsh web、希望少敲终端、又想在界面里看清中文版 Release 要点再决定是否升级的用户。
安装前建议自行浏览仓库源码与 MIT 许可证。插件以当前 DSH 进程权限运行,一键更新会调用本机 npm 全局安装并重启 dsh web;生产或共享机器上应确认全局前缀与网络策略符合你的安全要求。
结尾¶
dsh-update-center 把 DSH 版本检查、中文更新重点展示和受控的一键升级放进 Web 设置与左下角提醒,并配合 detached 助手处理进程退出与端口占用问题。需要安装 spec 与细节时,以 README 为准:
- 目录页:https://www.skillhub.cn/plugins/HansyLin-xCoFe/dsh-update-center
- GitHub:https://github.com/HansyLin-xCoFe/dsh-update-center