前言¶
DSH 的 Web 能力可以拆成插件安装,但 Web 宿主进程本身退出后不会自动拉起。dsh-keepalive 解决的是这个问题:在显式启用后,它运行一个 detached watchdog,监控 DSH Web 进程,并在进程退出后用同一 binary 和 arguments 重启。
它还提供可选的 repair agent。反复启动失败后,repair agent 可以在受控范围内检查问题、修改允许的 repair workspace,并基于 snapshot 回滚失败修复。
这是什么¶
dsh-keepalive 由 xiaohj233 维护,许可证为 MIT。
它的定位是一个 opt-in 插件,用于:
- 为 DSH Web 进程提供 detached watchdog;
- 在进程退出后重启 DSH;
- 提供可选的 snapshot-checked repair;
- 提供显式的 compatibility patch restoration。
它不是高可用集群,不是 service manager,也不是 sandbox、malware boundary、secret scrubber,更不是完整的隔离或保密边界。
核心功能¶
下面列出的能力都以已核实事实为准,并且需要按配置显式启用。
- 启用后运行 detached watchdog,用于 DSH Web 进程。
- 进程退出后,使用相同 binary 和 arguments 重启 DSH。
- 增加一个 Plugins settings card,用来配置 watchdog。
- 支持通过卡片上的“手动重启”按钮,或
POST /api/keepalive/restart手动重启。 - 应用 guarded compatibility patches,覆盖
keepalivesettings namespace 和 hidden Windows child processes。 - 可选在 repeated boot failures 后运行 repair agent。
- repair 前 snapshot 允许的 repair workspace。
- repair 后校验 paths、configuration、syntax;失败时 rollback。
- repair 期间在 web port 提供 zero-dependency repair status page。
- 当
status=repairing时,显示 global repair progress banner。
安装与启用¶
要求:
DeepSeek Harness: 0.1.0-rc.6
Node.js: ^22.19.0 || >=24
pnpm: >=10
watchdog 在 Windows 上经过测试。
安装命令:
dsh plugin --profile web add "github:xiaohj233/dsh-keepalive#v0.1.0"
安装后需要重启 Web profile。仅安装不会启用 watchdog restart 或 repair。
启用需要在 keepalive section 中显式 opt-in:
keepalive:
enabled: false
autoRepair: false
enabled 和 autoRepair 都需要显式启用;autoRepair 默认是 false。你可以通过 Plugins settings card 或 settings file 配置。
典型用法¶
手动重启:
POST /api/keepalive/restart
也可以使用 Plugins settings card 上的“手动重启”按钮。
读取状态:
/api/keepalive/status
可以从这个地址读取当前状态,以及最后一次 repair-agent 输出。最后一次 repair-agent 输出最多 4 KB。
卸载时,先运行卸载命令,再从 profile 中移除插件:
pnpm --dir "$DSH_HOME/profiles/web" exec dsh-keepalive-uninstall
dsh plugin --profile web remove dsh-keepalive
适用场景与注意¶
如果你需要 DSH Web 进程退出后自动恢复,并且接受 repair agent 在受控范围内修改 plugin workspace,这个插件可以作为工具使用。
如果你需要完整隔离、保密边界、凭据清洗,或者希望它替代 systemd、Windows Service Control Manager、容器、外部监控,它不适合。
需要注意:
- repair runtime 使用
workspace-write,可以修改 plugin workspace。 - repair agent 会接收 startup diagnostics 作为输入;这些 diagnostics 不可信,可能包含误导性指令。
- snapshot、path、syntax 和 rollback 检查能减少误改,但不能让任意 agent output 变安全。
- 每次 repair 后都要检查变更。
- watchdog supervision 和 uninstall 只按 recorded PID 识别 watchdog;如果 PID 被无关进程复用,supervision 可能静默停止,uninstall 也可能终止无关进程。
- 在 repeated missed polls 后,watchdog 会强制终止监听 configured port 的进程;如果该端口被无关服务占用,这个无关服务也会被杀掉。
- failed-launch diagnostics 和最后一次 repair-agent 输出会持久化,并可从
/api/keepalive/status读取;failed-launch logs 可能嵌入环境中的 secrets。 - 它以当前
dsh进程权限运行;安装前应检查源码与 MIT 许可证。
链接¶
- 目录页:https://www.skillhub.cn/plugins/xiaohj233/dsh-keepalive
- GitHub:https://github.com/xiaohj233/dsh-keepalive