在侧边栏显示已安装的 DeepSeek Harness 版本,检查 npm 与 GitHub Releases 更新,并提供手动或确认后执行的更新命令。
安装
# npm 包(预构建)
dsh plugin --profile web add @hjj345345/dsh-sm-version-display
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:hjj345/dsh-sm-version-display
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
中文文档 · English documentation
GitHub:hjj345/dsh-sm-version-display npm:@hjj345345/dsh-sm-version-display
最低支持 DSH 版本:
v0.1.0-rc.6(含)。当前插件版本:v1.2.3。
简介
@hjj345345/dsh-sm-version-display 是一个面向 DeepSeek Harness(DSH)Web 界面的客户端 + host 双半区插件。它在侧边栏「设置」按钮上方显示当前已安装的 DSH 版本,并检测 npm registry 与官方 GitHub Release 的新版本。
从 v1.1.0 开始,插件同时在 DSH 设置中新增“DSH版本检测”一级页面(排序 22,位于参考插件下方)。页面复刻参考插件的卡片式设计,提供插件开关、通用设置、关于插件和安装命令;支持简体中文、English、繁體中文三种语言。检测结果会在 DSH 进程期间缓存,设置弹窗重新打开后仍可查看。检测到更新时,用户可以先查看风险并确认后由插件执行精确版本命令,也可以打开手动更新步骤逐条执行。
这里有三个名称需要区分:
- npm 包名:
@hjj345345/dsh-sm-version-display - DSH 运行时插件 ID:
dsh-sm-version-display - GitHub 仓库:
hjj345/dsh-sm-version-display
插件版本 v1.2.3 表示本插件版本;卡片中显示的是运行时读取到的 DSH 版本,两者不是同一个版本号。
功能特性
- 版本卡片:在侧边栏底部「设置」按钮上方显示圆角版本卡片,并独占一行。
- 运行时读取:host 半区在渲染页面时读取已安装的
@deepseek-ai/dsh版本,DSH 升级并重启后自动跟随。 - 安全回退:host 版本暂时不可用时显示“版本未知”,不会猜测或伪造固定版本。
- 更新检测:页面加载、每 30 分钟以及窗口重新回到前台时检查 npm 和 GitHub Release;结果在 DSH 进程内缓存。
- GitHub 限流回退:GitHub API 受限时自动改用官方 Releases Atom Feed;npm 检测不受影响。
- 版本类型:GitHub 版本区分预发布 Alpha、测试版 Beta、公测版 RC 和正式版 Release。
- 语义化比较:内置轻量版本比较逻辑,支持 Alpha、Beta、RC、正式版和多位数字版本号比较。
- 手动刷新:卡片内提供刷新按钮,检查期间显示加载状态,完成后显示 DSH 原生 Toast。
- DSH 设置页:在 DSH 设置中注册“DSH版本检测”,位于参考插件
sm-context-piano(排序21)下方,使用默认齿轮图标(排序22)。 - 设置卡片:包含插件名称、副标题、开关、通用设置、关于插件和安装命令,整体复刻参考插件的设计。
- 三语设置:支持简体中文、English、繁體中文,默认简体中文,并持久化语言选择。
- 展开式检测:在设置页按钮下方并排显示 npm 与 GitHub 版本、类型、发布时间、Release 链接、当前安装方式和插件管理方式。
- 双路径更新:更新前必须确认风险;支持 host 后台自动执行,或打开完整命令和步骤手动更新。
- 更新输出:自动更新时显示执行命令、实时输出、成功/失败状态和重启要求。
- 安全一键更新:仅执行 host 内固定的精确版本命令;请求仅限本机回环地址,GitHub 源码版本无对应 npm 包时仅提供手动构建步骤。
- 响应式布局:侧边栏折叠为窄栏时显示圆形版本图标,文本空间不足时自动换行。
- 主题适配:使用 DSH 设计系统变量,跟随浅色和深色主题。
- 悬停提示:卡片和窄栏图标会显示插件英文名
dsh-sm-version-display及当前版本。
实际效果截图 / Screenshots
侧边栏版本卡片:
侧边栏窄栏悬停提示:
设置页总览:
双源版本检测结果:
更新确认弹窗:
更新执行记录、关于插件与安装命令:
示例状态:
vX.Y.Z(最新版)
vX.Y.Z(有更新:vA.B.C)
安装与卸载
从 npm 安装(推荐)
在安装了 DSH 的机器上执行:
dsh plugin --profile web add @hjj345345/dsh-sm-version-display
安装完成后重启 DSH Web 服务或重新打开 Web 界面:
dsh web
卸载:
dsh plugin --profile web remove @hjj345345/dsh-sm-version-display
本地开发链接
本地开发时可以使用 link: 指向插件目录。下面的路径只是示例,请替换为实际路径,不要把个人电脑路径写入 README、源码或 npm 包:
dsh plugin --profile web add link:C:/path/to/dsh-sm-version-display
本地链接仅用于开发调试;正式使用应切换回 npm 包安装。
设置页与版本更新
打开 DSH 设置并选择 DSH版本检测。点击“检测DSH版本”后,npm 与 GitHub 结果会在按钮下方展开显示,并在本次 DSH 进程期间保留。只有用户点击“收起检测结果”后才会折叠;重新启动 DSH 后状态重置。
更新命令始终区分 npm 和 npx;如果本机是 pnpm 全局安装,还会优先显示 pnpm 命令:
# npm 全局安装
npm install --global @deepseek-ai/dsh@<version>
# npx 临时执行指定版本
npx --yes @deepseek-ai/dsh@<version> web
# pnpm 全局安装
pnpm add --global @deepseek-ai/dsh@<version>
npx 没有需要替换的全局安装;GitHub Release 如果没有对应 npm 包,则需要按照弹窗中的 clone、checkout、pnpm install、build 和启动步骤手动执行。任何更新完成后都需要重启 DSH Web 服务。
自动更新会先显示来源、目标版本、版本类型和风险,用户确认后才执行。执行期间设置页会显示命令和输出。Alpha、Beta、RC 版本可能包含破坏性变更;切换版本前建议备份 .dsh 配置和 profile 数据。回退时请使用明确的旧版本号,例如 @deepseek-ai/dsh@0.1.1-rc.2。
工作原理
DSH host process
lib/index.js
└─ 监听 webserver/index-inject
读取已安装 @deepseek-ai/dsh/package.json 的 version
注入 globalThis["__DSH_VERSION__"]、__DSH_INSTALL_INFO__ 和页面级更新 token
│
▼
DSH Web browser
client/client.js
├─ 注册 sidebar.footer.action 版本卡片和 settings.section 设置页
├─ 读取 window.__DSH_VERSION__ 并渲染版本卡片
├─ GET 本机检查路由(host 缓存 npm 与 GitHub Release)
└─ POST 本机更新路由(仅固定精确版本命令)
比较当前版本和两个来源的版本
发布包中的关键文件:
| 文件 | 作用 |
|---|---|
lib/index.js |
host 半区;注入当前 DSH 版本 |
client/client.js |
client 半区;卡片、更新检测、Toast 和样式 |
cordis.patch.yml |
将插件挂载到 DSH profile 层 |
LICENSE |
MIT 开源许可证 |
隐私与网络说明
- host 半区只读取本机已安装的 DSH 包清单中的版本字段和安装路径类型,不向浏览器暴露绝对路径。
- host 半区查询 npm Registry 与 GitHub Releases,并在 DSH 进程内缓存结果;GitHub API 限流时回退到官方 Releases Atom Feed;更新请求携带 host 注入的页面级 token。
- 更新路由只接受本机回环请求和匹配 token,命令和参数在 host 内固定,不接受浏览器传入任意命令。
- 请求不携带 DSH 登录凭据、会话内容或用户文件,插件也不会读取聊天内容。
- npm registry 请求失败时保留当前版本显示,并在手动检查时显示通用错误提示。
- 仓库和 npm 包均排除
.env、.npmrc、令牌、密钥、证书、日志、依赖目录及本地 DSH 数据。
兼容性
| 项目 | 要求 |
|---|---|
| DSH | >= v0.1.0-rc.6 |
| Node.js | >= 20(host 运行环境) |
| 平台 | DSH Web |
| 插件版本 | v1.2.3 |
插件使用 DSH 官方扩展点:dsh.client、sidebar.footer.action、settings.section、webserver/index-inject、ctx.slots.inject/register 和 ctx.settingsScope。如果 DSH 后续发生不兼容的扩展点变更,需要相应适配。
开发与本地验证
本插件使用与 DSH 客户端插件一致的手写 bundle 格式:window.__ModuleLoader__.load({ id, factory }),不需要额外编译器或运行时依赖。
在项目根目录执行:
npm run check
npm run build
npm run build 会执行 host/client 语法检查、版本比较自测、设置页/更新链路契约检查、包完整性检查和 README 检查。
更新日志
v1.2.3 - 2026-09-03
- 补充双语 README 的实际效果截图,覆盖侧边栏版本卡片、侧边栏窄栏悬停提示、设置页总览、npm/GitHub 双源版本检测结果、更新确认弹窗,以及更新执行记录、关于插件和安装命令。
- 将
images/Screenshot/纳入 npm 发布白名单,确保发布包包含 README 所引用的 6 张截图资源。 - 同步发布契约校验:纳入截图目录的发布文件清单,更新当前插件版本与发布日期校验,避免文档、包元数据和实际发布内容不一致。
- 更新插件包、客户端关于页面和双语文档的版本标识为
v1.2.3,发布日期为2026-09-03。
v1.2.2 - 2026-09-02
- 修复新版 DSH 设置服务兼容性:移除对
settingsNamespace辅助函数的直接导入,改用设置命名空间字符串注册插件设置,兼容新增的@deepseek-ai/dsh-settings版本。 - 扩展 peerDependencies 版本范围:支持
@deepseek-ai/dsh-settings的0.1.2-alpha.2、0.1.2-alpha.4,以及@deepseek-ai/schemastery的3.18.2,同时保留既有兼容版本。 - 更新发布契约校验:验证新的字符串命名空间注册方式,确保 DSH 设置兼容修复不会在后续改动中回退。
- 同步插件包、客户端关于页面和双语文档的版本标识为
v1.2.2,发布日期为2026-09-02。
v1.2.1 - 2026-09-02
- 修复 GitHub 版本检测的限流容错:GitHub API 请求失败时自动尝试 Releases Atom Feed,并统一 API 与 Feed 返回的版本、类型、标签、发布日期、Release 链接和 npm 可用性信息。
- 增强 GitHub 检测状态展示:能够区分 API、备用 Feed、限流和暂时不可用状态;侧边栏版本卡片、Tooltip、检测结果卡片和更新提示会同步显示 npm/GitHub 来源与状态。
- 优化 Release 链接:无论数据来自 GitHub API 还是 Atom Feed,均规范为官方 Release 页面,并提供多语言“一键直达/Click to open”入口。
- 完善三语文案:补齐简体中文、英文和繁体中文的稳定渠道
latest、更新来源、检测通道、Feed 状态、限流提示和 Release 直达文案;语言下拉项统一保持语言/Language。 - 补充发布契约校验:覆盖 GitHub Feed 回退、限流错误、检测通道、Feed 文案、Release 直达文案及三语多语言键,确保新链路不会被后续改动破坏。
- 更新插件包、客户端关于页面和双语文档的版本标识为
v1.2.1,发布日期为2026-09-02。
v1.2.0 - 2026-09-01
- 重构双源版本检测:同时查询 npm Registry 与官方 GitHub Releases,显示当前版本、最新版本、发布类型、发布日期、Release 标签、链接及 npm 可用性。
- 增强版本识别与比较:支持 Alpha、Beta、RC、正式版及多位数字版本,并区分最新、可更新、当前版本更高和检测失败等状态。
- 完善检测时机与缓存:页面加载时检测,每 30 分钟自动刷新,窗口回到前台时按间隔刷新;结果由 DSH 进程缓存,避免重复请求。
- 更新设置页结果展示:新增可展开的 npm/GitHub 双卡片,展示当前安装方式和插件管理器,并提供稳定渠道
latest的清晰中文、英文和繁体中文文案。 - 增加安全更新流程:更新前明确展示来源、目标版本、发布类型和风险,只有经过确认的固定版本命令才会执行。
- 增强主机端更新保护:更新接口限制为回环地址、合法来源和页面级令牌,校验目标是否过期,避免重复任务,并记录命令输出、完成状态、失败原因和重启提示。
- 覆盖多种更新方式:npm 与 pnpm 支持主机端一键更新,npx 提供临时执行命令;没有对应 npm 包的 GitHub 版本自动回退到 clone、checkout、安装、构建和启动步骤。
- 同步插件包、关于页面及双语文档的版本标识为
v1.2.0,发布日期为2026-09-01,并补充对应的构建与多语言契约校验。
v1.1.1 - 2026-08-29
- 新增黑白描边版插件 Logo,并应用到双语 README 和设置页顶部。
- 设置页图标沿用参考项目的桌面端 54px 展示尺寸,使用内联 PNG 保证 npm 安装后可用。
v1.1.0 - 2026-08-29
- 新增 DSH 设置中的“DSH版本检测”一级导航,使用默认齿轮图标。
- 新增复刻参考项目的插件设置卡片和三语语言设置。
- 新增展开式版本检测结果、npm/npx/pnpm 更新区分和安全一键更新路由。
- 统一所有用户可见插件版本为
v1.1.0。
v1.0.1 - 2026-08-29
- 修复 scoped npm 包的 DSH bundle 导入名,保持运行时插件 ID 不变。
v1.0.0 - 2026-08-28
- 首次发布 DSH Web 版本显示插件。
- 支持运行时读取 DSH 版本、npm registry 更新检查、手动刷新和 Toast 提示。
- 支持侧边栏响应式布局、浅色/深色主题以及中英文界面。
- 增加版本比较、超时控制和版本不可用时的安全回退。
作者
作者:Jack·Huang 邮箱:jack698698@gmail.com
License
本项目以 MIT License 发布。Copyright © 2026 Jack·Huang。
链接
同类插件
strukto-ai/mirage#dsh★ 3600
把文件系统与 bash 提供者换成 mirage 虚拟工作区:文件工具与 shell 命令作用于挂载的资源(RAM、S3、Redis、Slack、Gmail、Notion、Postgres)而非宿主磁盘,支持按挂载点设置读/写/执行模式、按命令选择沙箱(进程内 monty、pyodide、quickjs;远程 docker、e2b、daytona),并可在虚拟终端中安装 CLI(git、gh、slack、linear、ntn、gws,或自行注册的程序树)作为命令头词。
hust-open-atom-club/oh-dsh★ 302
社区发行版:TUI、桌面端与 Web UI 统一体验,分层安装、一步到位。
ZSeven-W/dsh-ios★ 275
在 DSH 对话中运行 iOS 模拟器与 USB 连接的真机:21 个 agent 工具,可启动设备、构建运行 Xcode 工程、按无障碍标识 / OCR 文本 / 列表行驱动 UI、读取统一日志并查看进程、backtrace 与内存泄漏,并附带可点按、拖拽、旋转的实时侧边栏画面。
lire1131/dsh-undo-savepoint★ 144
DSH 撤销/回退系统:配置变更自动存档,一键撤销/恢复/回退到任意版本,支持 WebUI 与离线 CLI/GUI 工具(DSH 启动失败也能救)。
Fishquito7/dsh-skill-mcp-panel★ 115
在 DSH Web 设置中管理技能与 MCP 服务器:技能卡片热启停、工作区作用域、分组、批量迁移与拖拽导入,以及 stdio/HTTP MCP 增删改查、连接测试、密钥脱敏,并附带统一 dsh-panel 命令行。
kanneiren/dsh-network-settings★ 108
可视化 DSH 进程在 Windows 或 WSL 上的网络链路(DNS/TCP/TLS/HTTP 分层探测),检测失效的代理配置,并提供带快照回滚的安全修复。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。