
DeepSeek Harness PluginPublished by catsenior507 →
DSH Web Watchdog
☆ 0Watchdog for the dsh web GUI: crash logging + exponential-backoff auto-restart supervisor + status panel
Get this plugin
Review the source, then continue to the publisher.
About this plugin
Source snapshot 8/16/2026🛡 dsh-web-watchdog
DeepSeek Harness Web GUI 的看护插件: 崩溃记录 + 指数退避自动重启 + 状态面板。
dsh web(dsh web,默认 http://127.0.0.1:3080)在 Windows 上偶发崩溃
(Node 24 libuv 退出断言、原生 TS 类型剥离等)。本插件在宿主进程内托管一个
脱离进程的 PowerShell 监督进程:
- 📜 崩溃记录:宿主异常退出(退出码 != 0)时,把退出码、宿主 stderr/stdout
末尾、Windows 事件日志追加到
crash.log; - 🔁 自动重启:按指数退避(默认 10s 起、上限 600s、连续最多 10 次)自动拉起
node --no-warnings <bin> web;宿主正常退出(exit 0)不重启; - ⚡ 计划重启:面板按钮或
POST /api/watchdog/restart写请求标记,监督进程 在 2 秒内完成「停旧进程 → 拉新进程」; - 🤝 监督进程交接:重启后新宿主会拉起自己的监督进程,旧监督进程检测到 pid 文件被接管后自动退出,避免双重监督。
安装
npm install
npm run build
dsh plugin --profile web add link:<本目录绝对路径>
# 重启 dsh web 后生效;右下角出现 🛡 按钮
面板 / API
| 端点 | 说明 |
|---|---|
GET /api/watchdog/status | 宿主 PID、监督进程状态、配置、崩溃记录尾部 |
GET /api/watchdog/log?lines=60 | 崩溃日志尾部 |
POST /api/watchdog/restart | 计划重启(浏览器会短暂断线,监督进程自动拉起) |
GET /api/health | 插件健康检查 |
curl http://127.0.0.1:4795/api/watchdog/status
curl -X POST http://127.0.0.1:4795/api/watchdog/restart
配置
首次运行在数据目录(默认 %USERPROFILE%\.dsh\web-watchdog,可用环境变量
DSH_WATCHDOG_DATA / DSH_WATCHDOG_PORT 覆盖)生成 config.json:
supervisor.nodePath/binPath/restartArgs:重启命令(自动探测,可覆盖);supervisor.maxRestarts/backoffStartSec/backoffMaxSec:重启策略;- 崩溃记录:
<数据目录>/crash.log,宿主日志:<数据目录>/web-logs/。
开发 / 自测
npm run build—— tsdown 产出 host half(lib/index.js)与 browser half(lib/client.js);node test-isolated.mjs—— 隔离端到端测试:监督进程拉起、崩溃记录、自动重启、 计划重启、监督交接(不接触真实 dsh web 进程)。
License
MIT