前言¶
DeepSeek Harness(DSH)里,组合包往往装在「插件」页。官方在详情页里提供「版本」区块和更新入口,但那条路径只对从 registry 安装、且被 Host 标为 updatable 的第三方包完整可用。想判断「哪些该更新」,默认只能逐个打开详情页对比。
下面介绍社区插件 dsh-plugin-versions(维护者 ACGNnsj):在插件页增加「版本一览」标签,把已安装组合包的版本与可更新状态摊平成一屏,点一行即可跳到官方详情页的「版本」区块。更新动作仍走官方界面,本插件不实现独立更新流程。
这是什么¶
dsh-plugin-versions 是 DSH 的客户端类插件(分类:客户端)。它在 plugins.tab 上注册第 4 个标签页「版本一览」(order: 40),列出本地已安装组合包的版本,标出能否更新,并支持跳转到官方组合包详情页底部「版本」区域。
仓库:GitHub - ACGNnsj/dsh-plugin-versions
社区目录:skillhub 插件页(独立站点,与 DeepSeek / 幻方无官方从属关系)
当前 package.json 标明版本 0.1.4,许可证 MIT。
核心功能¶
版本一览标签页¶
打开 DSH「插件」页后,切换到「版本一览」。页面先渲染本地已掌握的版本信息,再对符合条件的行在后台逐条查询 registry。
后台只处理 updatable && !official 的行,且串行查询,避免同时拉起大量 pnpm 子进程。查询优先级:无缓存的行优先,其余按每行缓存时间 at 从旧到新。
状态与排序¶
每行展示分档状态,例如:
可更新到 x已是最新随 DSH 更新无官方版本区块检查中…检查失败(附错误原文前 300 字)
可更新的行排在前面,其余按包名排序。
缓存与表头时间¶
结果写入浏览器 localStorage,键名为 dsh-plugin-versions:cache:v1。再次打开时先展示上次版本与状态,同时后台重新检查并逐行替换;表头显示「检查于 HH:MM」。
跳转官方更新界面¶
点击某一行会调用 openPackage(name),打开官方组合包详情页并自动滚到底部,落在「版本」区块。用户在该界面完成更新,与未装本插件时一致。
详情页辅助¶
在组合包详情页底部通过 plugins.detail.section(order: 999)追加「↑ 回到顶部」入口。
安装与启用¶
仓库本身即 bundle,任选其一。
方式一:本机已有源码目录时,用 DSH 插件管理器安装
将 target= 换成你机器上的绝对路径:
plugin_manager install_bundle target=<绝对路径>/dsh-plugin-versions
方式二:作为 npm 包安装到 profile
需插件已发布到 registry。注册依赖 cordis.patch.yml 中的 - insert: 一行;按 README 说明,插件不会改写 profile 的其他文件。
安装前建议通读仓库 client.js 等源码,并确认 MIT 许可与自身环境要求。插件逻辑在 DSH 客户端 / Host 提供的 API 权限下运行,与当前 DSH 进程权限一致。
典型用法¶
- 按上一节完成安装后,打开 DSH「插件」页。
- 切换到「版本一览」标签;首屏可先看到缓存结果(若曾打开过)。
- 等待后台串行检查结束,查看各行状态与表头「检查于」时间。
- 对显示「可更新到 x」的行,点击该行,在官方详情页「版本」区块按界面指引更新。
- 在详情页过长时,可使用底部「↑ 回到顶部」。
客户端无独立构建步骤:client.js 即为产物。改代码后可在「插件」页点刷新生效(README 注明桌面端 Ctrl+R 不触发重载)。
数据来源与使用注意¶
插件只读调用 Host 的 pluginManager.listBundles()(不触网)与 pluginManager.listVersions(name, {})。后者每个包最多访问 2 个 registry(含 fallback 镜像);README 写明单包最坏约 140 秒,因此必须串行且仅查可更新行。
适合谁: 常装多个第三方组合包、希望在一屏对比版本与更新状态、并愿意仍用官方界面执行更新的 DSH 用户。
注意:
- 不能替代官方更新流程;无官方「版本」区块的包会显示「无官方版本区块」等状态。
- 首次或缓存失效时,后台检查可能较慢,属 README 所述设计取舍。
- 社区目录与 GitHub 为事实来源;星标等页面统计以站点展示为准(目录线索为 0)。
仓库结构(便于审阅)¶
package.json 清单:dsh.bundle.patch / dsh.client / exports ./client
cordis.patch.yml 注册一行:- insert: [{ id, name }]
index.js Host half(空实现,满足 bundle 契约)
client.js 浏览器半:纯 JS,window.__ModuleLoader__.load 懒加载
locale/{zh,en}.json meta.title / meta.description
icon.svg 列表图标
结尾¶
dsh-plugin-versions 把「逐个进详情页看版本」收成插件页里的「版本一览」,缓存减轻重复等待,跳转仍对齐官方更新路径。需要安装命令与行为细节时,以仓库 README 为准。
- 目录页:https://www.skillhub.cn/plugins/ACGNnsj/dsh-plugin-versions
- GitHub:https://github.com/ACGNnsj/dsh-plugin-versions