前言¶
在 DeepSeek Harness (DSH) 的使用中,Profile 配置失败或 Harness Loader 崩溃会导致开发流程中断。传统的排查方式往往依赖正在运行的进程,一旦 Loader 挂掉,诊断便无从下手。DSH Lifeboat 提供了一种隔离式的解决方案,确保即使在主进程无法启动的情况下,也能对配置进行诊断并尝试恢复。
这是什么¶
DSH Lifeboat 是一款由 IoveCelestina 维护的 DSH 插件。它作为一套独立的“救生艇”系统,专门用于处理 Profile 的安全启动、故障隔离和恢复操作。其核心价值在于将诊断和恢复流程与主 Harness 进程完全解耦,确保恢复操作在隔离的临时环境中进行,且不会直接破坏原始配置文件。
核心功能¶
DSH Lifeboat 提供了以下核心能力:
- 无进程恢复控制台:Rescue 服务器是一个独立进程,绝不运行在失败的 Harness 进程内部。这意味着即使 Loader 挂掉,控制台仍可访问。
- Web UI 与 CLI 双模式:
- Web UI:监听 127.0.0.1,提供实时探针进度、证据查看、已验证恢复方案选择、报告下载以及一键撤销功能。
- CLI 模式:用于自动化诊断,直接输出
dsh-lifeboat/v1JSON 格式的诊断报告。
- 智能诊断机制:
- 使用
dsh --profile <name> --dump-config生成配置快照。 - 将快照克隆到临时 Home 目录进行探针测试,确保原始文件保持只读。
- 采用“上界优先移除搜索”算法,结合 Delta 调试和精确枚举,寻找最小化的故障 Bundle 移除方案。
- 使用
- 安全恢复机制:
- 在应用恢复前,执行全量指纹检查、乐观清单哈希校验和时间戳备份。
- 使用跨进程锁防止并发恢复操作。
- 恢复操作是原子的,支持撤销,并记录恢复收据。
- 状态标记:安装后会在选定的 Profile 上添加健康标记,并在 Loader 稳定后写入
~/.dsh/lifeboat/last-healthy.json。
安装与启用¶
安装插件需要通过 DSH 的 CLI 命令添加官方发布的 Release 包:
dsh plugin --profile web add https://github.com/IoveCelestina/dsh-lifeboat/releases/download/v0.1.1/dsh-lifeboat-0.1.1.tgz
安装完成后,可以通过以下方式启用诊断或恢复服务:
- 启动 Web UI:
node ./src/cli.js serve
默认端口为 4317,使用 `--port 0` 可获取随机可用端口。
- CLI 诊断:
node ./src/cli.js diagnose --profile web
node ./src/cli.js diagnose --profile web --json
- 带运行时探针的启动测试:
node ./src/cli.js diagnose --profile web --mode boot --allow-runtime-code-execution
适用场景与注意¶
- 运行环境:插件依赖 Node.js,要求版本为
^22.19.0或>=24.0.0。插件本身无运行时依赖。 - 恢复逻辑:恢复计划提供的是技术解决方案(如移除 Bundle),而非道德归责。如果 A 和 B 仅在同时运行时失败,Lifeboat 会提供“禁用 A”或“禁用 B”作为等价选项。
- 应用限制:“应用恢复”功能仅当报告包含独立验证的 Bundle 移除计划时才可用。
- 报告存储:诊断报告默认存储在
$DSH_HOME/lifeboat/reports,系统会自动保留最新的 500 个报告。如需外部策略管理,可设置--max-reports 0。 - 分发渠道:Release 包通过 GitHub Releases 分发,不经过 npm 仓库。
结尾¶
DSH Lifeboat 通过将诊断与恢复流程与主 Harness 进程解耦,提供了一个可靠的兜底手段。对于需要稳定保障 DeepSeek Harness Profile 稳定性的场景,它是一个值得纳入工具链的插件。