在 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 开发提供了基础的运行期守护能力,通过自动化的快照和回退机制降低了开发过程中的维护成本。