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 倉庫。

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

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

小夜