前言¶
DSH 的插件体系支持把功能以插件形式接入;社区目录是独立站点,不等同于官方应用商店。对于已经在用 dsh web、npx @deepseek-ai/dsh web 或源码仓库运行 DSH 的开发者,更新时常见的问题不只是「有没有新版本」,而是「当前正在运行的进程应该从哪条通道更新」。
dsh-updater-ui 把检查和更新入口放到 DSH 的「设置 → DSH 更新」页。它按当前运行进程的安装方式选择通道:源码仓库走 git,npm 全局或 npx 走 npm registry。
这是什么¶
dsh-updater-ui 由 xingyingyuzhui 维护,采用 MIT 许可证。它是一个 Web 插件,用于检查并更新官方 DSH。
插件会识别当前安装方式:源码仓库、npm 全局、npx。这里的关键是「当前正在运行的 DSH 进程」。如果当前进程来自 npx 或 npm 全局,插件走 npm 通道;如果当前进程来自官方源码仓库,插件才走源码仓库通道。
核心功能¶
- 识别安装方式:源码仓库 / npm 全局 / npx
- 一键检查:源码执行
git fetch;npm 查询官方 registry,失败则尝试 npmmirror - 版本对比:对比本地与官方
package.json的版本号 - 更新说明:源码方式下可折叠列出官方新提交,包括短哈希和标题,最多前 15 条
- 一键更新:源码只允许快进;npm 只安装官方包名
@deepseek-ai/dsh和已校验的版本号 - 自动检查:Host 每 30 分钟后台检查一次,并有防重入控制;页面每 60 秒轮询缓存
- 红点提醒:有官方更新时,设置页导航显示「DSH 更新 ●」
- 安全拒绝:源码本地存在未推送提交、分叉或冲突改动时拒绝覆盖;npm 安装失败时给出可复制命令
安装与启用¶
前置条件:
- 已安装 DSH,并且
dsh web或npx @deepseek-ai/dsh web可运行 - npm 通道需要能访问 npm registry;源码通道需要本机 git 和官方 clone
在已经安装 DSH 的环境中执行:
dsh plugin --profile web add github:xingyingyuzhui/dsh-updater-ui
安装完成后重启 DSH,然后打开「设置 → DSH 更新」。
典型用法¶
1、打开「设置 → DSH 更新」,页面显示当前安装方式和官方更新状态,例如「已是最新」或「有官方更新」。
2、根据页面提示,点击「一键更新官方 npm 包」或「一键拉取官方更新」。
3、更新成功后重启 DSH,新代码才会被加载。
4、如果 npm 安装被运行中的进程锁住,常见于 Windows,页面会给出可复制命令;停掉 DSH 后再执行该命令。
对于 npx 用户,也可以直接启动最新官方包:
npx --yes @deepseek-ai/dsh@latest web
更新通道¶
源码仓库¶
当当前进程来自官方源码仓库时,插件使用 git fetch 检查官方远端,并用本地与官方的 package.json 版本号做对比。
更新时只允许快进,拉取使用 --ff-only。如果本地存在未推送提交、分叉或冲突改动,插件会拒绝覆盖。
源码仓库定位仅当当前进程来自官方源码 clone 时才会使用 git。查找顺序包括:
正在运行的 @deepseek-ai/dsh-root 目录
配置 repo / 环境变量 DSH_REPO
~/deepseek-harness
~/.dsh/deepseek-harness
npm 全局 / npx¶
当当前进程来自 npm 全局或 npx 时,插件查询官方 registry。如果查询失败,则尝试 npmmirror。
更新时只安装官方包名 @deepseek-ai/dsh 和已校验的版本号。
如需指定 registry,可以设置以下配置项:
DSH_NPM_REGISTRY
npm_config_registry
具体 registry 地址以当前环境要求为准。
自动检查与提醒¶
插件的 Host 每 30 分钟在后台检查一次,并有防重入控制;页面每 60 秒轮询缓存。
检测到官方更新时,设置页导航会显示「DSH 更新 ●」。
安全限制¶
- 路由仅接受 POST。
- 请求必须带自定义请求头:
X-DSH-Updater: 1
- 如果请求带
Origin,只允许http://127.0.0.1或http://localhost。 - npm 安装包名固定为
@deepseek-ai/dsh,版本号必须匹配安全字符集。 - 外部命令带超时和输出上限。
- 错误返回结构化 JSON。
- 无第三方依赖、无遥测。
适用场景与注意¶
适合已经在 DSH Web 环境中运行官方 DSH,并希望减少手工判断安装方式的开发者。
插件以当前 DSH 进程的权限运行,更新操作会调用 git 或 npm 相关命令。安装前建议先检查仓库源码与 MIT 许可证。若网络环境受限,需要保证 npm registry 或源码仓库远端可访问。
卸载插件:
dsh plugin --profile web remove dsh-updater-ui
结尾¶
dsh-updater-ui 的价值在于把「当前 DSH 进程从哪里来」这件事显式化,并在设置页提供检查、更新说明和受控更新入口。
GitHub 仓库:
https://github.com/xingyingyuzhui/dsh-updater-ui.git