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