DeepSeek Harness 插件

dsh-about

DeepSeek Harness 设置中心「关于」分区:DeepSeek 图标 + 版本信息 + 检查更新(npm latest/next 取新)+ 一键更新与自动重启 + GitHub 版本更新记录(英文原文)

跳到安装方式

来源信息

GitHub 仓库
YannZhou/dsh-about
最近更新
2026年8月22日
分类
工具与能力
GitHub stars
0
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-21

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/YannZhou/dsh-about
插件名:dsh-about
作者:YannZhou

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器3 个文件
README.md来源说明 · 只读预览

dsh-about

DeepSeek Harness 设置中心「关于」分区插件 —— 检查更新 + 一键更新

> DeepSeek Harness 设置中心“About” tab: DeepSeek logo, version info, check for updates (npm latest/next), one-click update with auto-restart, and GitHub releases history.

![dsh-about 设置中心「关于」分区](./assets/dsh-about.png)

功能特性

  • 版本信息:当前 dsh 版本(npm 包 @deepseek-ai/dsh)、Web 前端版本、Node / 平台、项目主页。
  • 检查更新:对比当前版本与 npm latest / next 两个 dist-tag 中较新者,提示发现新版本。
  • 版本选择:列出 npm 上所有比当前新的版本(最多 10 个),弹窗选择安装。
  • 一键更新npm install -g @deepseek-ai/dsh@<目标版本>(固定官方 registry),成功后自动重启 dsh web(委托外部一次性看护 bin/dsh-watchdog once:包内内置、随装随卸;等宿主退出 → 数 3 秒 → 优先 systemd 拉起 dsh-web、退回原命令裸拉起(带 --no-open),端口就绪后自动退出、零常驻;决策日志 $DSH_HOME/dsh-watchdog.log)。

- 看护进程经 systemd-run 放入独立 transient 单元(独立 cgroup)——实测宿主退出时 systemd 会清空 dsh-web 服务 cgroup 内的一切子进程,普通 detached 派生必死; transient 单元不受影响,更新后白屏无人拉起的根因即此。

  • 版本更新记录:官方 GitHub Releases 最新 10 条,中文正文渲染,每日首次打开自动拉取一次并保存到本地电脑$DSH_HOME/dsh-about/releases-cache.json),失败不会反复重试;点「刷新」可手动强刷。

安全性设计要点

  • 宿主路由 /dsh-about/* 仅允许回环地址访问(DNS 重绑定防护),跨站 GET 用 Sec-Fetch-Site 拦下,跨站 POST 用 Origin 白名单 + application/json 预检双重防护(CSRF)。
  • /update 是破坏性端点:并发互斥(同一时刻只允许一个安装任务)、目标版本号必须已存在于 npm 注册表且比当前新。
  • npm install -g 带 5 分钟超时与进程组终止,安装输出尾部回显到弹窗便于排查。
  • 只有加载了本插件的 dsh 进程才获得这些能力;不修改任何核心文件,卸载即完全移除。

安装(官方 dsh 插件机制)

本包遵循 dsh 官方插件安装形式:dsh plugin --profile <name> add <包>(内部由 pnpm 安装 + cordis.patch.yml insert 层挂载 + dsh 客户端模块自动发现打包)。 支持三种来源:

# 1) 本仓库源码(开发调试)
git clone https://github.com/YannZhou/dsh-about.git
dsh plugin --profile web add /path/to/dsh-about

# 2) GitHub 直接安装(推荐,一条命令,随仓库更新可 re-add 升级)
dsh plugin --profile web add "git+https://github.com/YannZhou/dsh-about.git"

# 3) npm 安装(发布后可用,见下方「发布到 npm」)
dsh plugin --profile web add dsh-about

安装验证:

dsh --profile web --dump-config | grep dsh-about   # 应看到 - id: dsh-about 层

然后重启 / 刷新 dsh web(默认 http://127.0.0.1:3080),打开 设置 → 关于 即可看到本分区。 插件自带的 bin/dsh-watchdog 随包安装、随包卸载,无需任何手工放置。

验证

  • 配置树中应出现 - id: dsh-about / name: dsh-about 层(bundle 自动应用)。
  • 浏览器侧:设置 → 关于出现 DeepSeek 图标与版本行;点「检查更新」返回 npm 最新版本对比结果。

卸载(随时拔除,零残留)

# 1) 官方移除(组合层 + 包文件,一步完成)
dsh plugin --profile web remove dsh-about
  • 组合层dsh.profile.bundles 清单移除本包、dependencies 移除依赖,包内

cordis.patch.yml(dsh.bundle.patch 层)随之消失;重启后「关于」分区、 /dsh-about/* 路由、客户端 bundle 全部消失。无需手动改任何配置文件。

  • 包文件:profile node_modules 内的 dsh-about 实体(含内置看护

bin/dsh-watchdog、卸载脚本)随包删除。

  • 进程:更新链路的一次性看护进程端口就绪后自动退出,不驻留。

运行期数据($DSH_HOME/dsh-about 版本记录缓存、$DSH_HOME/dsh-watchdog.log$DSH_HOME/dsh-about-restart.log、锁文件)由卸载钩子 scripts/postuninstall.js 自动删除;注意 pnpm 对 link:/本地路径/tarball 安装的包不执行该钩子,此时请补跑兜底脚本:

# 2) 运行期残留清理(仅当 1 未自动清理时)
bash scripts/uninstall.sh                                   # 克隆目录内
# 或未克隆时:bash <(curl -fsSL https://raw.githubusercontent.com/YannZhou/dsh-about/v1.1.2/scripts/uninstall.sh)

唯一可选手动项:如果你曾执行过 cp bin/dsh-watchdog ~/.local/bin/(为独立使用 check/once 命令),按需自行删除;插件本身不需要它。

发布到 npm(可选)

# 包结构已符合从 npm 直接安装的官方形态(main/exports/dsh./files/bin/scripts 齐备)
npm publish --access public

架构简介

双半体插件,两个文件,零构建:

文件半体职责
lib/index.js宿主(Cordis loader 行)注册 /dsh-about/{describe,releases,check,versions,update} 同源 HTTP 路由;npm dist-tag / packument / GitHub Releases 拉取;npm install -g 执行与自动重启看护
lib/client.js浏览器(window.__ModuleLoader__ 模块)注册 settings.section(id: about,导航「关于」)组件:图标、版本行、检查更新/一键更新弹窗、版本更新记录(数据由宿主落盘,浏览器不再用 localStorage)
  • 宿主行由 cordis.patch.ymldsh.bundle.patch)挂载;浏览器半体由包内 dsh.client 清单 + exports["./client"] 自动发现打包(@deepseek-ai/dsh-client-modules 机制)。
  • 零运行时依赖:semver 已内嵌(lib/semver.js,语义与 node-semver 对齐并通过全量对拍)。dsh plugin add <目录>link: 协议时不携带外部依赖,因此 clone 即可装、即装即用。

兼容性

  • dsh CLI ≥ 0.x(支持 dsh plugin --profile <name> add/removecordis.patch.yml insert 层)。

License

MIT © YannZhou