dsh-plugin-updater
Startup update checks for DSH plugins, DSH Desktop and the core — no agent calls, no token spend.
- Stars
- 0
- Language
- JavaScript
- Created
- Oct 26, 2026
- Updated
- Oct 26, 2026
Introduction
dsh-plugin-updater
你的 DSH 插件更新管家:插件、桌面端、内核,一次检查完,零 token 消耗。
打开 DSH 时,它会静默检查你安装的插件、DSH Desktop 本体和内置内核有没有新版本;有更新时,侧边栏旁会出现一个可拖动的面板。你可以单个更新、一键全部更新,更新完直接重启,全程不调用模型、不产生 agent 轮次、不消耗 token。
上图是界面示意,实际配色会跟随你的 DSH 主题变化。
你会得到什么
- 三层检查
- 插件:读取你的 profile 与实时 bundle 列表,对比 npm registry。
- DSH Desktop:调用官方版本服务,告诉你当前版本和最新版本。
- 内核:显示随桌面端内置的
@deepseek-ai/dsh版本;它随桌面端更新。
- 实时进度:进度条、当前阶段(卸载 / 安装 / 重新检查)和 pnpm 最后一行输出。
- 一键全部更新:一次点击,按顺序更新所有待更新插件,已完成的行立即消失。
- 更新即消失:成功的插件不会再闪回“更新”按钮。
- 重启按钮:需要重启时,直接点「立即重启 DSH」。
- 可拖动面板:拖动标题栏移动、双击复位、记住位置、
Esc关闭。 - 零 token:检查只是普通 HTTPS 请求;更新交给 DSH 自己的插件管理器与 pnpm。
- 中英文界面:跟随你的 DSH 语言。
安装
从 GitHub 安装(推荐)
打开 DSH Desktop 的 设置 → 插件 → 添加插件,填入:
github:TT10-24/dsh-plugin-updater
或者在终端里:
dsh plugin --profile desktop add github:TT10-24/dsh-plugin-updater
固定到某个版本:
dsh plugin --profile desktop add github:TT10-24/dsh-plugin-updater#v0.3.1
安装完成后重启 DSH Desktop。插件会出现在侧边栏底部(设置按钮旁),显示「查看更新」。
从本地目录安装
如果你在改代码,可以链接本地目录:
dsh plugin --profile desktop add link:"F:/path/to/dsh-plugin-updater"
使用
- DSH 启动后会静默检查;有更新时侧边栏出现数量徽标。
- 点「查看更新」打开面板。
- 单个插件点「更新」;多个插件点「全部更新 (N)」。
- 面板顶部会显示实时进度条和 pnpm 日志末行。
- 更新成功的插件立即消失;如果需要重启,点「立即重启 DSH」。
- 面板可以拖到任意位置,位置会被记住;双击标题栏复位。
更新已安装插件后,DSH Desktop 需要重启才能加载新的代码或新增组件行。这是 DSH 插件替换机制的限制,不是插件本身的问题。
配置
在你的 profile 的 cordis.patch.yml 里覆盖本插件的行配置:
- id: plugin-updater
name: dsh-plugin-updater
config:
# 自定义 registry(默认 https://registry.npmjs.org)
registry: https://registry.npmmirror.com
# 桌面端版本服务(默认官方地址)
desktopEndpoint: https://www.dshdesktop.cn/api/desktop/version
autoCheck: true # 是否自动检查
checkOnBoot: true # 启动后 1.5s 自动检查
checkDesktop: true # 是否检查桌面端
checkEngine: true # 是否检查内核
verbose: false # Host 日志
修改后重启 DSH Desktop 生效。
常见问题
会消耗 token 吗?
不会。检查只请求 npm registry 和 DSH Desktop 官方版本服务;更新调用 DSH 插件管理器与 pnpm。没有 LLM、没有 agent、没有 subagent。
为什么更新完要重启?
替换已安装插件的代码后,运行中的 DSH 仍持有旧模块;新增的组件行也要重启后才会进入运行树。面板检测到 restart-required 时会给你一个重启按钮。
点「更新」会发生什么?
插件先卸载旧版本,再安装目标版本。如果安装失败,它会自动恢复旧版本,并把原因显示在对应插件行下方。DSH 的 installBundle 本身是“新增插件”语义,直接安装已存在的包会被拒绝,所以必须走 remove + install。
普通 Web 环境能用吗?
可以检查插件;没有桌面端时,桌面端区域会显示“未检测到桌面端”,也不会出现桌面端更新按钮。
某个插件要求批准 pnpm 构建脚本怎么办?
安装会失败并恢复旧版本,面板会显示待批准的构建脚本。你可以在插件页手动批准后重试。
怎么固定版本或回滚?
安装时用 #v0.3.1 固定 tag;回滚就重新安装旧 tag,然后重启 DSH Desktop。
兼容性与限制
- 插件更新:使用 DSH 官方的 remove → install 路径;失败会恢复旧版本。
- 需要重启:替换已安装插件后,必须重启 DSH Desktop 才能加载新代码/新组件行。
- 构建脚本:某些插件需要批准 pnpm 构建脚本;失败时会显示待批准列表。
- 普通 Web 运行:没有桌面端路由,桌面端区域只显示状态。
- 自动适配:
pluginManager、profileContext、desktopRuntime都是可探测服务;内核缺少某项能力时只降级对应图层,不会让插件卡死。
隐私与网络
- 读取:你的 profile 的
package.json、已安装包的版本号。 - 请求:npm registry(默认
registry.npmjs.org)的包版本;DSH Desktop 官方版本服务www.dshdesktop.cn。 - 不发送:会话内容、提示词、凭据或任何模型请求。
- 不调用:LLM、agent 工具、subagent。更新由 DSH 插件管理器执行。
项目文档
- 架构说明:Host/Client 分工、三层检查、更新与进度事件。
- 开发历程:从 0.1.0 到 0.3.1 的真实问题与修复记录。
- 贡献指南:本地开发、检查与 PR 约定。
- 路线图:正在做和接下来要做的事。
参与贡献
如果你发现 bug 或有新想法,欢迎开 Issue。提交代码前请先看 CONTRIBUTING.md,并确保以下检查通过:
node .check/locale-check.mjs ./client.js
node .check/render-check.mjs ./client.js
node .check/drag-check.mjs ./client.js
提交 PR 时,描述里用 Closes #编号 关联对应议题;合并后看板会自动更新。
English
A zero-token update checker for DSH (DeepSeek Harness). It checks your installed plugins, DSH Desktop and the bundled core on launch, then reminds you with a draggable panel. You can update one plugin, update all of them in one click, and restart when DSH asks for it — no model calls, no token spend.
Install:
dsh plugin --profile desktop add github:TT10-24/dsh-plugin-updater
Read the online page or the architecture notes for details.
License
MIT