DeepSeek Harness 插件:dsh-autoupdate(受保护的自动更新与回滚)

DeepSeek Harness (DSH) 采用插件化架构。在维护 DSH 实例时,手动更新核心 CLI 或依赖项容易因版本不匹配或文件锁定导致服务中断。dsh-autoupdate 插件通过受保护的更新管道解决了这一问题,确保更新过程安全可控。

插件定位

dsh-autoupdate 是 DeepSeek Harness 的内置自动更新插件。它由维护者 lc23313 开发,采用 MIT 许可证。该插件通过设置页提供手动检查入口,并实现了完整的更新事务保护机制,包括健康检查、自动回滚以及基于熔断器的降级策略。

核心功能

  • 设置页 UI:在 DSH 设置页面添加了“检查更新”按钮,提供确认对话框以触发更新流程。
  • 受保护的更新管道:采用“退出时应用”机制。守护进程在 DSH 进程退出后执行安装,避免 Windows 环境下的文件锁定问题。
  • 精确版本与验证:安装过程中锁定精确版本,通过双重验证(清单版本 + 二进制运行验证)确认更新成功。
  • 自动回滚:若更新过程中出现任何失败,系统会自动回滚到前一版本。
  • 熔断与降级:内置熔断器,根据连续失败次数自动将模式降级为 auto -> notify -> off。
  • 任意 Dist-Tag 支持:支持跟踪任何 npm dist-tag(如 latest, rc 等)。

安装与启用

通过官方插件渠道安装:

dsh plugin --profile web add dsh-autoupdate

安装完成后,重启 DSH 进程以使插件生效。可以通过以下命令验证插件是否已注册:

dsh --dump-config --profile web

典型用法

安装完成后,插件会自动初始化。状态和日志文件位于:
$DSH_HOME/plugins-data/dsh-autoupdate/

查看当前状态和查看日志的常用命令:

cat $DSH_HOME/plugins-data/dsh-autoupdate/state.json
cat $DSH_HOME/plugins-data/dsh-autoupdate/autoupdate.log

安全与信任

该插件设计上侧重于安全性:
* 最小化权限:仅生成 npm 命令(版本查询和全局安装)以及可选的 dsh plugin 命令。
* 隔离写入:绝不写入 DSH 拥有的文件(如 settings.yaml 或配置文件)。
* 审计日志:所有决策过程均记录在 autoupdate.log 中,便于审计。
* 版本锁定:安装过程始终锁定检查时解析的精确版本。

依赖要求

使用该插件需要满足以下环境条件:
* Node.js >= 18
* @deepseek-ai/cordis >= 4.0.0
* @deepseek-ai/schemastery >= 1.0.0

相关链接

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜