在 DSH 的開發體系中,插件是核心組件,其運行穩定性直接影響開發效率。當插件出現異常或狀態錯亂時,手動回退往往存在遺漏風險。dsh-guard 是爲此設計的配套守護插件,它通過自動化機制提供滾動快照、失敗自動回退以及本機管理面板,解決運行期的不確定性。
這是 x2802490130-prog 維護的工作流插件,採用 MIT 許可證。它位於 DeepSeek Harness 生態中,旨在爲開發者提供一套標準化的插件守護方案。
核心能力¶
該插件主要提供以下六項能力:
- 滾動快照:每次存檔保留最近 N 份(默認 5),文件名帶時間戳和原因。同時鏡像
last-good供外部啓動器或腳本調用。 - 自動存檔:插件啓動成功且度過寬限期後,自動觸發存檔(原因標記爲 auto)。
- 自動回退:監聽到插件運行失敗時,自動回退到
last-good狀態。 - 管理面板:提供 Web 界面查看狀態、管理快照和日誌。
- 管理 API:提供 RESTful 接口進行控制。
- 事件日誌:記錄所有快照和回退操作,位於
snapshotRoot/guard.log。
配置與用法¶
插件通過 YAML profile 補丁層配置,以下爲關鍵配置項示例:
- id: dsh-guard
config:
snapshotRoot: D:\path\to\snapshots
profileDir: C:\path\to\profiles\web
sourceDirs: [D:\path\to\plugin-src]
restartCommand: D:\path\to\restart.bat
graceMs: 120000
autoSaveDelayMs: 150000
keepSnapshots: 5
典型行爲:
- 滾動快照:默認保留最近 5 份快照。
- 寬限期:插件啓動後需等待 graceMs(默認 120000ms)才觸發自動存檔,避免誤存。
- 自動回退:僅在插件運行失敗時觸發,且每次啓動最多觸發一次,防止死循環。
訪問方式:
- 管理面板:http://127.0.0.1:<端口>/dsh-guard
- 管理 API:/api/dsh-guard/{status,snapshots,backups,log,save,rollback,restore}
注意事項¶
- Boot 崩壞無法救援:當進程在啓動期崩潰時,插件無法運行,因此無法處理此場景。Boot 救援由外部啓動器(如 dsh-balance-float 倉庫的 windows/launch-dsh.vbs)承擔。
- 僅限本機訪問:管理面板和 API 僅監聽本機迴環地址,不提供遠程訪問。
- 防死循環機制:每次插件啓動最多自動回退一次,回退後需手動重啓才能再次觸發。
總結¶
dsh-guard 爲 DSH 開發提供了基礎的運行期守護能力,通過自動化的快照和回退機制降低了開發過程中的維護成本。