Repository navigation
变更
1. 健康检查间隔 30s → 10s
watchdog 的 /health 轮询默认间隔改为 10 秒(DSH_DAEMON_HEALTH_INTERVAL 仍可覆盖,支持 ms/s/m)。
失败阈值仍是连续 3 次,因此「进程活着、超过宽限期仍未健康」的重启判定从约 90 秒缩短到约 30 秒;
睡眠唤醒判定(90 秒 tick gap)与最小重启间隔(15 秒)都大于 tick,不会误判也不会热重启。
2. 启动失败可查明细:dsh-daemon logs
dsh web 没起来时,现在像 systemctl 一样直接告诉你去哪看明细:
- 新增
dsh-daemon logs [-n N] [--web | --watchdog](watchdog 的--logs模式,bash/cmd 包装脚本同步生成):
默认打印dsh-web.log与watchdog.log各 50 行,先给诊断头(/health状态、托管 PID 是否存活、
本次启动多久、是否处于暂停状态),末尾给出tail -f实时跟踪命令; - 所有失败路径都打印入口:
dsh-daemon start/restart失败、status不健康、
spawn 失败、进程消失重启、失败阈值重启,均输出
Details: dsh-daemon logs -n 100 (raw log: …/dsh-web.log);
生成的 watchdog 自身日志行也带(details: dsh-daemon logs -n 100),只看watchdog.log也能找到出口; - 新增工具
dsh_daemon_logs(参数lines、source),沙箱/无终端场景拿到同样内容。
测试
- 新增
test/logs-command.test.js:用真实生成的 watchdog + 秒退的假dsh覆盖
10s 默认 tick 固化、失败提示、--logs两种筛选与未知参数、CLI 转发、工具输出(26 项断言);
该用例以动态沙箱方式加载插件,不依赖@deepseek-ai/dsh-tools,发布流水线零额外依赖; npm test与npm run test:ci全绿(version-gate / token-auth / registration-drift /
startup-grace / logs-command)。
升级
自动更新(默认 6 小时一次)会把包升到 0.1.27,插件下次启动时按 GEN_VERSION 自动重新生成
watchdog 与 CLI;要立刻生效可运行一次 dsh_daemon_reinstall(仅重启 watchdog,不动 dsh web)。