DeepSeek Harness 插件:dsh-updater

在 DeepSeek Harness (DSH) 的生态中,插件和集成仓库的维护通常需要手动操作。当有新版本发布时,开发者需要自行处理 git pull、依赖安装和构建过程。dsh-updater 插件旨在简化这一流程,提供自动化、安全且低风险的更新机制。

这是一个由 GodCC6 维护的插件,旨在为 DSH 提供自动更新能力。它支持 git checkout 与 npm 全局两种安装形态,并覆盖 ~/.dsh/integrations/ 下的集成仓库。

核心功能

插件提供以下能力:

  • 状态检查:dsh_update_status。探测安装形态(git / npm / 未知),比对 harness 本体与各集成仓的版本落后情况,并显示最近一次更新任务的进度与结果。
  • 手动更新:dsh_update_run。后台执行更新。对于 git 形态,执行 git pull --ff-only,随后运行 pnpm install --frozen-lockfile 和 pnpm build;对于集成仓库,逐仓进行 ff-only 拉取。
  • 取消更新:dsh_update_cancel。随时中断进行中的更新任务,自动回滚已完成的部分步骤,并将后台任务状态设为 killed。
  • 自动模式:通过配置 autoApply: true 开启。当检测到新版本且系统满足空闲条件(无运行中的 job 且会话静默达到 idleQuietMs)时,自动应用更新。遇到 diverged 或 dirty 的目标仓库仅报告,不执行更新;同一版本失败后不会重复尝试。
  • Web 面板:在 Web 界面的 Settings → Updater 路径下,可以查看状态胶囊、执行检查/一键更新/取消操作,以及查看 pendingRestart 提示。

安装

使用以下命令安装插件:

dsh plugin --profile web add github:GodCC6/dsh-updater

配置

默认配置通过 cordis.patch.yml 中的 patch 行定义。主要配置项如下:

字段 默认值 说明
checkOnStart true 插件启动时是否立即检查更新
checkIntervalMinutes 30 定时检查间隔(分钟)
autoApply false 检测到更新后是否自动应用
idleQuietMs 120000 空闲静默阈值(毫秒)
npmDistTag latest npm 形态更新所用的 dist-tag
integrationsDir ~/.dsh/integrations integrations 目录路径

典型用法

  • 检查当前安装形态和更新状态:
  dsh_update_status
  • 执行后台更新任务:
  dsh_update_run
  • 取消进行中的更新:
  dsh_update_cancel
  • 在 Web 面板操作:进入 Settings → Updater。

注意事项

  • 零特权:插件运行时无需 sudo 权限,所有文件写入操作仅限于用户目录。
  • 零依赖:插件完全基于 Node.js 内置模块编写,无任何第三方依赖。
  • 绝不代重启:更新完成后,插件仅设置 pendingRestart 状态提示,重启 dsh 的动作由用户自行控制。
  • 安全机制:默认只提示“有新版”,执行更新需显式调用命令;pull 操作仅使用 --ff-only,失败时自动回滚到更新前状态,不留半更新状态。

总结

dsh-updater 插件通过分离检查与执行、采用 fast-forward 策略以及失败即回滚的机制,降低了 DSH 环境下的维护风险。开发者可以通过命令行或 Web 面板管理更新流程,确保插件和集成仓库保持最新。更多细节可参考插件目录或 GitHub 仓库。

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

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

小夜