dsh-keepalive
Opt-in detached watchdog for the DSH Web process with optional snapshot-checked repair and explicit patch restoration.
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:xiaohj233/dsh-keepalive说明文档
阅读完整 README ↗dsh-keepalive(看门狗守护与自修复)
状态:功能插件(含兼容补丁,Feature Plugin with Compatibility Patch)。仅在 DeepSeek Harness(深度求索 Harness)0.1.0-rc.6 上测试过。
dsh-keepalive 为 DSH Web 进程运行一个分离的(detached)看门狗(watchdog)。显式启用后,看门狗会在进程退出后重启 DSH。可选的修复代理(repair agent)可以检查反复出现的启动失败、修改插件工作区(workspace),并从快照(snapshot)重试。
问题
退出的 Web 进程无法自行重启。DSH 提供了流空闲看门狗和浏览器重连退避(reconnect backoff),但这些机制并不监督主机进程(host process)。
行为
- 添加一个用于看门狗配置的 Plugins 设置卡片。
- 仅当
enabled为 true 时才启动分离的 Node 看门狗。 - 检查进程健康状态,并用相同的 DSH 二进制与参数重新启动。
- 为设置命名空间(settings namespace)和 Windows 隐藏子进程应用受保护(guarded)的兼容补丁。
- 启动反复失败后,可选地运行修复代理。
- 对允许修复的工作区做快照,校验结果路径/配置/语法,并回滚(rollback)失败的修复。
enabled 和 autoRepair 都需要显式选择启用;自动修复默认值为 false。
非目标
本包不是高可用集群、服务管理器、沙箱(sandbox)、恶意软件边界、秘密清洗器(secret scrubber),也不保证失败的 DSH 实例能自动修复。它不能替代 systemd、Windows 服务控制管理器(Service Control Manager)、容器或外部监控。
兼容补丁
本插件精确针对:
@deepseek-ai/dsh-host-apiproxy@0.1.0-rc.6:允许在 Web 设置 API 中使用keepalive设置命名空间。@deepseek-ai/dsh-subprocess-local@0.1.0-rc.6:在 Windows 上为本地工具子进程使用windowsHide: true。
版本策略默认是自适应(adaptive)的:当已安装副本的版本与 0.1.0-rc.6 不同,但每个锚点仍然唯一匹配时,仍会打补丁(记录为 adaptive 匹配);锚点漂移时则以原因跳过;严格的编程模式可恢复旧的"仅精确版本"应用行为。单个漂移副本永远不会阻塞另一个目标,补丁应用在 host 或 watchdog 启动期间也绝不会抛错。还原(卸载)在所有模式下都保持严格的版本守卫。写入使用临时文件和重命名(atomic write,原子写入),替换后校验语法,校验失败时恢复之前的字节。
兼容性
需要 DeepSeek Harness 0.1.0-rc.6、Node.js ^22.19.0 || >=24 和 pnpm >=10。看门狗针对当前的 DSH CLI 布局设计,并已在 Windows 上测试。
安装
dsh plugin --profile web add "github:xiaohj233/dsh-keepalive#v0.1.0"
重启 Web profile。仅安装不会启用看门狗重启或修复功能。
配置
通过 Plugins 卡片或设置文件配置 keepalive 设置区块:
keepalive:
enabled: false
autoRepair: false
checkIntervalMs: 3000
bootWaitMs: 15000
repairProvider: ""
repairModel: ""
Provider、model、base URL、API 名称和凭据引用(credential-reference)值都以单行 YAML 安全字符串序列化。在所选模型和凭据路径经过测试之前,请保持修复功能处于禁用状态。
显式卸载与还原
在从 profile 中移除之前,先运行本包的卸载命令:
pnpm --dir "$DSH_HOME/profiles/web" exec dsh-keepalive-uninstall
dsh plugin --profile web remove dsh-keepalive
当 $DSH_HOME 未设置时,profile 位于主目录下(POSIX:;Windows PowerShell:);在 Windows 上,请将解析后的路径传给 ,而不是 。