前言¶
DeepSeek Harness(DSH)采用「一切皆插件」的架构,社区能力通过插件扩展;目录站点与 DeepSeek / 幻方无官方从属关系,插件均为社区发布。若你是从源码用 Web profile 跑 Harness,版本通常来自 GitHub 官方发布与 npm 元数据,本地还可能改过工作区或依赖。手工拉 tag、换目录、重装依赖,一旦和正在跑的 Agent 会话叠在一起,容易留下半升级状态或数据格式不一致。
下面介绍维护者 zudazhuang 发布的更新类工作流插件。SkillHub 目录页登记为 zudazhuang/dsh-upgrade(分类:工作流);当前源码与安装包在 GitHub 仓库 zudazhuang/dsh-update-safe,npm 包名自 0.4.1 起为 dsh-update-safe,用以区分 npm 上另一位作者的 dsh-upgrade。README 说明其为「DeepSeek Harness 源码安装的官方版本检查和安全更新插件」,面向 macOS / Linux 下的源码 Web 安装,不适用于 npm 全局安装或 Electron 桌面包。
这是什么¶
插件在 Harness 内提供:对照 GitHub 官方 Release 与 npm 发布记录的版本检查、可配置的定时检查、在独立目录中的隔离构建与试启动,以及在监督进程下的切换与失败恢复。适配 README 中写明的 0.2.0-rc.2 与 0.2.1-alpha.1 的 ConfigForms 与插件详情页;文档记载当前在 0.2.1-alpha.1 上做过验证。社区插件,非 DeepSeek 官方产品。
核心功能¶
版本检查与界面入口¶
安装并重启 Harness 后,侧栏底部出现更新入口;插件详情页名称为 dsh-update-safe。可手动「检查更新」;「启动 Harness 时检查更新」与「定时检查官方版本」可分别开关。默认启动检查与每 30 分钟周期检查开启;检查间隔修改后实时生效,电脑睡眠恢复后会补做已到期检查。网络失败时页面显示未验证,等待下一周期,不持续重试。预发布与稳定渠道分别比较,禁止降级。页面展示最近检查、下次检查及下次安装时段。
调度与自动安装¶
自动安装默认关闭。启用后按本机时间每天在可配置时段内执行;默认安装时段为 03:00–04:00,可设置开始时间与 15–240 分钟的时段长度。时段开始后核对官方版本,仅当空闲时长达到设置、监督启动有效且源码无未处理冲突时才准备与安装;整个时段仍 busy 则延至次日,不在指定时段外启动自动安装。未使用监督启动时,自动安装会暂停;页面仍可保存自动安装偏好。
准备、切换与恢复¶
准备阶段从 deepseek-ai/deepseek-harness 按发布标签下载源码(HTTPS 标签归档,不依赖 git clone),校验版本并与 npm 发布信息交叉核对;在独立目录安装锁定依赖并构建。在用户数据副本中升级官方外部 DSH 依赖、试启动整个 profile 并检查运行版本;外部插件版本保持固定。切换前重新核对 commit、部署文件与会话及任务;有运行中工作会阻止切换,维护期内新建 Agent 会被拒绝。
监督进程在切换时等待旧 Harness 完全退出,复制用户数据目录并替换 Web profile 依赖环境。启动失败时先保留升级后的用户目录副本,再恢复一致性快照并启动原环境;失败数据位于用户目录旁的 .dsh.failed-update-*。更新记录、快照与日志默认在 ~/.local/share/dsh-safe-release-update。若切换过程被中断,需按 README 说明检查 transaction.json、runtime.json 与进程组后再从已完成快照恢复;自动恢复此类中断尚未开放。
监督启动与 Mac 登录自启¶
完整切换能力依赖监督启动。在 Harness 源码目录或显式指定路径时,可使用仓库内的 start-harness.sh:
DSH_SOURCE=/path/to/deepseek-harness ./start-harness.sh
脚本通过 pnpm dsh web --no-open 启动受监督的 Web profile。可用 DSH_SOURCE、DSH_HOME、DSH_SAFE_UPDATE_ROOT 指定源码、用户数据及更新目录;更新目录须在用户数据目录之外。Mac 上可用 install-login-start.py 配置用户级 LaunchAgent 登录自启(需 Python 3),禁用时使用 --remove。
安装与启用¶
环境要求:Node.js ^22.19 或 >=24、pnpm、Git;Mac 登录自启还需 Python 3。在 Harness 源码目录从 npm 安装固定版本:
pnpm dsh plugin --profile web add dsh-update-safe@0.4.1
也可使用 Release 附件固定 URL(profile 记录 URL,换机或清理下载目录后仍可重装):
pnpm dsh plugin --profile web add https://github.com/zudazhuang/dsh-update-safe/releases/download/v0.4.1/dsh-update-safe-0.4.1.tgz
安装后重启 Harness。README 明确:不要用 dsh plugin add dsh-upgrade 安装本插件,npm 上的 dsh-upgrade 属于另一位作者。从旧包名迁移时,先 pnpm dsh plugin --profile web remove <旧包名>(如早期的 dsh-upgrade 或 0.4.0 的 dsh-update-plugin),再安装 dsh-update-safe@0.4.1;内部配置 id safe-release-update 与数据目录路径不变,但不要同时启用两个 bundle。迁移前需停止监督启动。
典型用法¶
- 在源码树中按上文命令安装
dsh-update-safe@0.4.1,重启后用侧栏底部入口或插件页查看版本与检查状态。 - 在插件设置中按需关闭或调整定时检查、安装时段、空闲时长与渠道;需要自动安装时,先用
DSH_SOURCE=... ./start-harness.sh以监督方式启动,再打开自动安装相关选项。 - 发现新版本后,在页面执行检查与「准备更新」;确认无活动任务且时段与空闲条件满足后执行切换。若准备或切换失败,使用「重新准备更新」或按 README 从快照恢复,并查看
~/.local/share/dsh-safe-release-update中的日志(日志含本地认证信息,勿外传)。
本地工作文件、package.json / pnpm-workspace.yaml / .npmrc 等调整会参与三方迁移;存在无法自动合并的冲突时更新会停止,原环境继续运行,需人工处理后再试。
适用场景与注意¶
适合在本机 macOS / Linux 上长期用源码 Web profile 开发或运行 Harness、希望对照官方 Release / npm 做版本核对,并希望在隔离构建与监督切换下降低「半升级」风险的开发者。
安装前请自行阅读插件与 Harness 源码及 MIT 许可证;插件以当前 dsh 进程权限运行,会读写用户数据目录与更新存储目录。本插件核对 npm 完整性元数据与 GitHub HTTPS 归档,README 写明没有额外的发布签名验证;前端与其它第三方插件的业务行为仍需更新后在浏览器中自行验证。官方发布与 npm 元数据不一致时不会更新。同一目标版本自动更新失败后,同一版本不再自动重试,可手动重新准备。
链接¶
- SkillHub 目录:https://www.skillhub.cn/plugins/zudazhuang/dsh-upgrade
- GitHub 仓库与 README:https://github.com/zudazhuang/dsh-update-safe
- 当前文档版本:
dsh-update-safe0.4.1(package.json)