dsh-about:为 DeepSeek Harness Web 设置面板添加“关于”页

dsh-about:为 DeepSeek Harness Web 设置面板添加“关于”页

技术背景

DeepSeek Harness(简称 DSH)是 DeepSeek 官方推出的 AI Agent 开发框架,配合 dsh web 提供了一套完整的 Web 控制台,用于管理模型、数据与任务。不过官方设置面板一直缺少一个”关于”页,用户想确认当前运行的 DSH 版本、查看插件信息时无从下手。

dsh-about 正是为解决这个问题而生:它为 DSH Web 设置面板添加一个 “关于”设置页,展示当前运行的 DSH 版本、插件自身版本、项目主页与版本来源,并内置更新日志,可直接在 DSH Web 控制台内查看 deepseek-harness 的最新 Releases。UI 完全复用设置面板的设计规范,深浅主题自动适配,安装后毫无违和感。

特性

  • 设置弹窗左侧导航新增 “关于” 菜单项,固定在导航最后一项order: 9999),其他插件新增的菜单也不会排在它后面
  • 界面中英双语:跟随 DSH 设置面板语言(通用设置 → Language),切换即时生效;未接入语言服务时按浏览器语言兜底
  • “关于”页信息一览:
内容
版本当前运行的 DSH 版本(与 dsh --version 一致)
插件版本dsh-about · v0.0.4(与 package.json 同步)
插件仓库github.com/1010n111/dsh-about 外链
项目主页deepseek-harness 仓库外链
版本来源@deepseek-ai/dsh
更新日志拉取 deepseek-harness 的 GitHub Releases(默认最近 5 条),当前运行版本置顶高亮,单条可展开/收起;失败时给出外链兜底
  • 加载中显示 ,读取失败显示 并给出具体错误文本,便于诊断
  • 纯前端 + 一个只读 HTTP 端点,不写任何配置、不改动持久化数据

实现步骤

前置要求

  • 已启用 DSH Web profile(dsh web / --profile web
  • dsh ≥ 0.1.1-rc.x

1. 一条命令安装 + 挂载

包内声明了 dsh.bundle.patch,CLI 会把它自动追加进 profile 的 bundle 堆栈,一次命令即可完成安装与挂载,无需手工编辑任何 profile 文件

1
2
3
4
5
# 已发布到 npm 时:
dsh plugin --profile web add dsh-about

# 或直接从 GitHub 安装(未发布 npm 时):
dsh plugin --profile web add 'github:1010n111/dsh-about'

该命令等价于在 $DSH_HOME/profiles/web 目录执行 pnpm add,并同步 dsh.profile.bundles

2. 重启并查看

重启 dsh web,打开设置弹窗 → 左侧导航末尾的 “关于”,即可看到版本信息与更新日志。

工作原理

1
2
3
4
5
6
7
8
9
浏览器 "关于" 页
fetch GET /dsh-about/version

Host 半区 (lib/index.js)
1. clientModules.clientPath('<任意官方插件>') → bundle 绝对路径
2. 遍历路径中每一层 node_modules,反推 dsh 安装根目录
3. fs 读取 @deepseek-ai/dsh/package.json,校验 name 后取 version

JSON { ok, version, product, homepage, plugin }

版本号直接读取运行中安装的 dsh,因此不需要硬编码路径,并与 dsh --version 的输出保持一致。

“更新日志”块由浏览器请求 Host 半区的 GET /dsh-about/releases(Host 侧代理 GitHub Releases API,带 5 分钟缓存),默认展示最近 5 条,内容随界面语言显示中文/英文段;GitHub 不可达时显示”无法获取更新日志”并附 Releases 外链兜底。

最佳实践

  • 客户端代码是手写 bundle(纯 JS + require("react"),无构建工具链):修改 lib/client.js 后刷新页面即生效
  • Host 半区是标准 ESM 插件:修改 lib/index.js 后重启 dsh web 生效
  • 发布到 npm 前请同步 package.jsonlib/index.js 中的 PLUGIN_VERSION,保证”关于”页展示的版本与包版本一致

常见问题

旧版本手动挂载过,需要处理吗?

旧方法(手动挂载)已不需要。使用 dsh plugin add 时请确认 $DSH_HOME/profiles/web/cordis.patch.yml 中没有遗留的 dsh-about 挂载行;如之前在 profile 自己的 cordis.patch.yml 里手动挂载过,卸载时一并删除旧行。

如何卸载?

1
dsh plugin --profile web remove dsh-about

CLI 会同步从 dsh.profile.bundles 移除该包,重启后即完全卸载。

更新日志拉取失败怎么办?

GitHub 不可达时页面会显示”无法获取更新日志”,并附 https://github.com/deepseek-ai/deepseek-harness/releases 外链兜底,可直接在浏览器中查看。

项目地址

  • 插件仓库:https://github.com/1010n111/dsh-about
  • 上游框架:https://github.com/deepseek-ai/deepseek-harness
  • 许可证:MIT

dsh-about:为 DeepSeek Harness Web 设置面板添加“关于”页
https://119291.xyz/posts/dsh-about-deepseek-harness-about-plugin-introduction/
作者
ww
发布于
2026年9月7日
许可协议