前言¶
DeepSeek Harness(DSH)采用「一切皆插件」的架构,profile 里往往挂着十几二十个已启用扩展。版本分散在 npm registry,逐个打开插件页对比、再手动执行 dsh plugin add,既费时间也容易漏掉刚发布的补丁。下面介绍社区插件 dsh-onekey-update(维护者 leoyoul,分类:联网工具):在 DSH 启动后自动扫描已下载且已启用的 registry 依赖是否有新版本,在界面右下角汇总,点一次「全部更新」即逐条升到 dist-tags.latest,完成后提示重启生效。更新通道走官方 CLI,macOS / Windows / Linux 共用同一套逻辑,不依赖 DeepSeek Harness.exe。
这是什么¶
dsh-onekey-update 是 DSH 的 Cordis 插件,当前 npm 包版本为 0.4.0(MIT,Node.js >= 20)。它解决的是「谁该升、升到哪、怎么批量升」这三件事:检查范围限定在 profile 的 package.json 依赖与已启用 bundle 的交集,排除本地 link、git 等非 registry 源;比较完整 semver,只列前向升级;执行时使用 dsh plugin ... add <name>@<version> --config.minimum-release-age=0,绕过 pnpm 对新发布版本的供应链等待。界面通知条使用 DSH 主题 token(--dsw-alias-* 等),随明暗主题变化,不写死颜色。
核心功能¶
启动检查与右下角卡片¶
启动约 8 秒后(可用环境变量调整)在后台检查,不阻塞主界面。检查结束必定给出结论:
- 有待升级项时:列出
插件名 当前版本 → 最新版本,提供 全部更新 / 稍后提醒。 - 全部最新时:标题 全部插件都是最新版,说明检查与跳过的数量,按钮 重新检查 / 知道了。
卡片四态(有更新 / 全最新 / 更新中 / 失败)共用一套结构;更新中显示分段进度条,例如 3/7 dsh-context 0.75.1 → 0.77.0。
更新日志与翻译¶
在待更新插件下可点 查看更新日志,按需从 GitHub Releases 最近 100 个发行版中匹配本次升级区间;未找到或访问失败会单独提示。当前不读 CHANGELOG 文件,发行版未覆盖所有版本时说明可能不完整。展开后可点 翻译为中文,文本经 Bing 翻译,代码、链接和版本号会先保护;网络失败保留原文并在标题旁提示重试。
检查范围与 registry¶
扫描逻辑在 lib/check.mjs,对 profile package.json 的 dependencies 与已启用项(dsh.profile.bundles 或 cordis.patch.yml)取交集,并排除:
- 插件自身;
file:/link:/git:等非 registry 依赖;- 插件市场已停用包(
.dsh-market/state.json); node_modules中无法确定当前版本的包。
版本查询先请求 https://registry.npmjs.org,失败再回退 https://registry.npmmirror.com,读取 dist-tags.latest。
跨平台更新执行¶
逐条解析 DSH CLI(不依赖 PATH):优先 <resources>/runtime/cli/bin/dsh,其次 Electron 调用 cli.js,再次解包路径下的同位置。均不存在时卡片进入失败态并提示「找不到 DSH CLI」。部分插件升级失败不影响其余项继续执行;结束时汇总成功 N、失败 M,失败行标 ✗ 并给出 pnpm 关键错误一行,并提示重启 DSH。
状态与宿主 API¶
~/.dsh/onekey-update/state.json:最近一次检查与更新的结构化结果;~/.dsh/onekey-update/onekey-update.log:检查、逐条更新与错误记录。
同源路由:GET /onekey-update/status,POST /onekey-update/check|apply|dismiss。
安装与启用¶
从 GitHub 安装(README 推荐,任意平台):
dsh plugin --profile desktop add git+https://github.com/leoyoul/dsh-onekey-update.git
本机开发可用 link 安装(路径按本机修改):
dsh plugin --profile desktop add link:/Users/leoy/Documents/dsh-onekey-update
插件已发布到 npm,也可在 DSH 插件 → 发现 中搜索 dsh-onekey-update 安装(主流市场约 24 小时同步一次)。
装完后完全退出并重开 DSH,插件页会出现「一键更新」,右下角按检查结果弹出卡片。
典型用法¶
- 正常启动 DSH,等待约 8 秒,观察右下角是否出现更新卡片。
- 若有列表,可先 查看更新日志 确认变更,再点 全部更新 等待逐条进度完成。
- 按提示 重启 DSH,使
node_modules中的新版本生效。
如需本次启动跳过检查:
DSH_ONEKEY_UPDATE_DISABLE=1
调整检查延时(毫秒,默认 8000):
DSH_ONEKEY_UPDATE_DELAY_MS=12000
覆盖 profile 或 DSH 主目录:
| 变量 | 作用 |
|---|---|
DSH_PROFILE |
覆盖 profile 名(默认 desktop) |
DSH_HOME |
覆盖 ~/.dsh |
适用场景与注意¶
适合经常维护 desktop profile、启用插件较多、希望跟 npm latest 保持一致的 DSH 用户。插件在当前 DSH 进程权限下执行 registry 查询与 dsh plugin add,安装前应阅读 GitHub 仓库 源码与 MIT 许可证。
已知边界(来自 README):
- 更新的是宿主正在运行的
node_modules,必须重启才生效。 - 只升到 registry 的
latest,卡片不列全部历史版本。 link:安装无构建步骤,改源码后重启 DSH 即生效。
社区插件目录 skillhub.cn 插件页 与 DeepSeek / 幻方无官方从属关系,仅为生态收录站点。
结尾¶
dsh-onekey-update 把「启动后看谁过期、一键批量升级、失败可定位」收进右下角原生风格卡片,并统一走官方 CLI 与双 registry 回退。需要安装或 issue 时见 GitHub:leoyoul/dsh-onekey-update 与 目录页。