DSH Plugins Marketplace

DSH Plugins

Plugins

/

Development & Infrastructure

/

dsh-update-safe

d

dsh-update-safe

Identified★ 1

DeepSeek Harness update plugin: official release checks, scheduled updates and supervised rollback

dsh-update-safe

DeepSeek Harness 源码安装的更新插件。它把一次更新拆成可回退的几步:核对官方发布 → 在独立目录构建候选版本 → 试启动并检查实际运行版本 → 由监督进程切换 → 失败时恢复原环境。

只适用于 macOS/Linux 上用 pnpm dsh web 从源码运行的 Harness;npm 全局安装和 Electron 桌面包不适用。

它做什么

  • 启动时检查、手动“检查更新”、可关闭的定时检查(默认启动检查 + 每 30 分钟)
  • 同时核对 GitHub 官方发布与 npm 发布记录,两者不一致就不更新;网络错误显示“未验证”
  • 预发布与稳定渠道分别比较,禁止降级
  • 每日安装时段(默认 03:00–04:00),只在空闲够久、监督启动有效、源码无改动时准备和安装;自动安装默认关闭
  • 切换前为未提交改动生成私有快照;切换后启动失败则恢复一致性快照和原环境
  • 侧栏底部更新入口与新版提示;插件详情页可配置检查间隔、渠道、空闲时长

使用

社区插件,非 DeepSeek 官方产品。发布在 GitHub Releases 和 npm(dsh-update-safe)。支持 Harness 源码 Web 安装;当前在 0.2.1-alpha.1 验证,适配 ConfigForms 设置接口。需要 Node.js ^22.19 或 >=24、pnpm、Git;Mac 登录自动启动还需 Python 3。

在 Harness 源码目录从 npm 安装,版本固定,依赖走 registry(国内可配 npmmirror 镜像):

pnpm dsh plugin --profile web add dsh-update-safe@0.4.2

也可以直接用 Release 附件的固定地址;profile 记录的是该 URL,换机或清理下载目录都不影响:

pnpm dsh plugin --profile web add https://github.com/zudazhuang/dsh-update-safe/releases/download/v0.4.2/dsh-update-safe-0.4.2.tgz

也可从 Releases 下载 dsh-update-safe-0.4.2.tgz 后运行 pnpm dsh plugin --profile web add /absolute/path/dsh-update-safe-0.4.2.tgz;这种本地路径形式会写进 profile,移动或删除该文件后重装会失败,优先用上面的 URL。安装后重启 Harness,侧栏底部出现更新入口,插件详情页名为 dsh-update-safe。

开发者也可克隆本仓库,运行 npm ci、npm test、npm pack 后安装生成的包。插件 → dsh-update-safe 提供检查、隔离构建、切换操作和检查间隔、渠道、空闲时长、自动切换配置。自动切换默认关闭;未使用监督启动时,自动安装暂停;页面允许保存自动安装偏好,满足条件后只在指定时段执行。

本机启动:

DSH_SOURCE=/path/to/deepseek-harness ./start-harness.sh

脚本通过 pnpm dsh web --no-open 启动受监督的 Web profile。可用 DSH_SOURCE、DSH_HOME、DSH_SAFE_UPDATE_ROOT 指定源码、用户数据及更新目录。未设置 DSH_SOURCE 时使用本插件仓库旁的 deepseek-harness;其他目录布局必须显式指定。更新目录必须在用户数据目录之外。监督进程退出时会等待受管理的 Harness 进程组完全退出。其他启动方式仍可检查和准备,但不能切换。

启动和定时更新

“启动 Harness 时检查更新”控制每次应用启动的检查;“定时检查官方版本”独立控制周期检查。手动按钮始终可用。检查间隔实时生效,电脑睡眠后恢复会补做已到期检查;网络失败等待下个周期,不持续重试。页面显示最近检查、下次检查和下次安装时段。

自动安装按本机时间每天执行,默认安装时段为 03:00–04:00,可设置开始时间及 15–240 分钟的时段长度。每个时段开始后核对一次官方版本,只有空闲达到设置时长、监督启动有效且源码无修改时才准备和安装;整个时段繁忙则延后到次日,不在指定时段之外启动自动安装。已开始的构建可以跨过时段结束;切换前仍重新检查时段和活动任务。

本机 Mac 登录自动启动通过用户级 LaunchAgent 实现,不使用管理员权限。启用前停止已运行的监督脚本,然后运行 DSH_SOURCE=/path/to/deepseek-harness python3 install-login-start.py;它立即启动 Harness,随后每次用户登录启动。禁用用 python3 install-login-start.py --remove,同时停止该登录任务。自动启动不打开浏览器,访问 http://127.0.0.1:3080/ 使用页面。手动运行启动脚本与登录任务共用同一进程锁,避免重复启动。

更新与恢复

准备阶段只从 deepseek-ai/deepseek-harness 下载指定发布标签,验证源码版本,与官方 npm 发布信息交叉核对;随后在独立目录安装锁定依赖并构建。在用户数据副本中升级官方外部 DSH 依赖、试启动整个 profile 并检查实际运行版本。外部插件版本保持固定;宿主的版本兼容检查仍生效,不能通过允许不兼容版本绕过。

本插件核对 npm 发布完整性元数据,源码通过 GitHub 官方 HTTPS 标签归档传输。它没有额外的发布签名验证。试启动检查的是 Host 激活与版本,前端第三方插件的全部业务行为仍需要更新后验证;本机安装后的前端通过实际浏览器验证。

切换前重新核对源码 commit、部署文件和活动会话及任务。未提交修改和未被 Git 忽略的新增文件自动生成私有快照并迁移;本插件不会自动 stash、提交、推送或 reset 原目录。切换时所有已存在 Agent 的 maintenance 阶段被占用,新建 Agent 暂时拒绝;已有运行工作阻止切换。维护期内用户新输入可能排队,切换后请确认投递状态。

监督进程等待旧 Harness 完全退出,再复制整个用户数据目录,保留旧源码、node_modules 与构建文件,并替换 Web profile 的依赖环境。启动失败时先保存升级后的完整用户目录,再恢复一致性快照并启动原环境,避免旧程序读取较新的 Session 格式。更新后的数据副本位于用户目录旁的 .dsh.failed-update-*,不会静默删除。

更新记录、快照和日志默认位于 ~/.local/share/dsh-safe-release-update,使用用户私有权限。运行日志含本地启动认证信息,不应分享原文件。构建命令移除继承的密钥、令牌和 Git 凭据环境,页面只显示固定阶段与错误原因,不展示子进程原始输出。

如果进程在切换中断电或被强制结束,监督启动拒绝继续运行不确定的状态。transaction.json 记录原环境、目标和快照路径,runtime.json 记录受管进程。检查并确认该进程组已停止后,保留现有用户数据副本,再从已完成的快照恢复,记录恢复状态并清理已失效的锁。未完成快照不能用于恢复。自动恢复此类系统中断尚未开放。

自动更新失败后,同一目标版本停止自动尝试,手动重新准备可重试。官方发布与 npm 元数据不一致时不更新。

测试

npm test 使用独立临时目录,覆盖渠道选择、双源不一致、禁止降级、脏目录阻断、并发锁、取消、隔离构建失败、准备完成、活动任务检查、健康检查失败、数据恢复顺序与恢复失败阻断。调度测试覆盖睡眠补查、实时修改、关闭周期检查、每日时段与跨午夜时段。

细节与限制

  • 源码通过 GitHub codeload 的 HTTPS 标签归档下载,运行环境需提供 curl 与 tar;解压后检查 CLI 版本并建立本地标签,再按三方迁移应用本地改动。
  • 完整且校验通过的归档缓存在插件状态目录的 archives/ 中,复用前核对 SHA-256,损坏的缓存重新下载。
  • 版本元数据通过 curl 获取,单次 60 秒、最多重试两次;下载默认允许 3600 秒、连接限时 20 秒,高级设置中可在 120–7200 秒之间调整。
  • 本地工作文件通过私有临时 Git 索引生成快照,不改动用户原有的索引、分支和文件;Git 忽略的文件不迁移。
  • 本地依赖调整通过 package.json、pnpm-workspace.yaml 和 .npmrc 迁移,不套用旧 pnpm-lock.yaml;存在这类调整时,候选目录重新解析依赖并提交生成的锁文件再构建。
  • 源码三方合并冲突时停止更新,列出冲突文件名,原环境继续运行,不自动覆盖任何一方。
  • 监督启动支持 DSH_SAFE_PORT 指定监听端口(0 为系统分配),默认使用 Harness 默认端口,可用于隔离验证。
  • 页面请使用监督实例的地址(默认 3080);其他已运行的实例需重启才会加载新插件。

Comments

Loading…

Similar plugins

dsh-updater

Track DeepSeek Harness's own releases and update in one click: reads the npm dist-tags and the GitHub changelog, shows every change between the running build and the target, grades the risk, then hand

Development & InfrastructureManifest valid

★ 0

MIT

TypeScript

dsh plugin --profile web add @zhengjunyao/dsh-updater

by windrover

A DeepSeek Harness plugin that adds a Check-updates button to the Plugins settings: scans every installed bundle for published updates and DSH-runtime compatibility, with a per-plugin update action.

Tools & CapabilitiesManifest valid

★ 0

MIT

JavaScript

Oct 19, 2026

dsh plugin --profile web add dsh-plugin-update-checker

by ymh0000123

DeepSeek Harness 插件:检测 DSH / @deepseek-ai npm 包与 GitHub 源插件的更新,设置页给出详细表格,并支持带显式构建授权的一键更新。A DSH plugin that detects updates for installed DSH/@deepseek-ai npm packages and GitHub-sourced plugins, with

Manifest valid

★ 0

MIT

JavaScript

Aug 17, 2026

dsh plugin --profile web add dsh-update-checker

by YannZhou

About section for the DeepSeek Harness settings: version info, npm latest/next update check with one-click install and auto-restart, and GitHub release history.

UI & ExperienceDevelopment & InfrastructureManifest valid

★ 6

↓ 452/wk

MIT

JavaScript

Oct 6, 2026

dsh plugin --profile web add @yannzhou/dsh-about

by Airmetro

DeepSeek Harness 主程序与插件更新管理:npm/GitHub 双源 semver 比对、多语言横幅、一键更新(主程序自动备份/校验/回滚,插件临时目录安装)、更新后看门狗重启。Update management for DeepSeek Harness and its plugins: dual-source semver checks, locale banner, one-cl

Tools & CapabilitiesManifest valid

★ 19

↓ 2.1k/wk

MIT

JavaScript

Oct 21, 2026

dsh plugin --profile web add dsh-update-checker

by Zhucy123

One-click update for the local DeepSeek Harness checkout — compare versions, pull and rebuild, then restart, and roll back to any past release, all from a sidebar panel with live progress.

Development & InfrastructureManifest valid

★ 0

↓ 212/wk

MIT

JavaScript

Sep 15, 2026

dsh plugin --profile web add @zhucy123/dsh-update