DSH Plugins
返回列表
⚙️

dsh-stall-sentinel

工作流 更新于 2026.09.03

在终端中运行以下命令:

dsh plugin install aokamoaki/dsh-stall-sentinel

将以下提示词粘贴到 DeepSeek Harness 对话框中:

在 DeepSeek Harness 终端执行 dsh plugin install aokamoaki/dsh-stall-sentinel 即可安装该卡死看门狗插件,项目完整源码位于 https://github.com/aokamoaki/dsh-stall-sentinel

插件介绍

跑过 dsh 长任务的人都熟悉那种焦虑:后台 bash 工具、pwsh 构建或 npm install 突然不再往日志里写字,你不知道它是卡死了还是只是慢,只能手动反复去看。dsh-stall-sentinel 用一条零依赖的轻量看门狗填上这个空档。插件装载时自动包一层 ctx.subprocess.spawn,为每个长任务捕获真实 pid,随后每 60 秒左右执行一次只读 PowerShell 聚合探针,在约 1 秒窗口内同时采样 CPU 增量、日志 size 与 mtime 变化、阶段哨兵及日志尾部。

判定模型刻意保守:需要连续两个窗口同时满足进度冻结(日志字节不变、mtime 不变、无哨兵)加 CPU 近似为零(死锁或半开网络)或 CPU 打满却仍无进展(忙循环),才触发一次唯一的处置动作——告警加取证报告。绝不 kill、terminate 或偷偷重试。采样失败、日志未落盘、CPU 处于中间值等场景一律降级为 unknown,设好下一个检查点继续等,把误报压到最低。

它适合通过 ctx.subprocess 跑长任务的 dsh 工作流作者:bash 工具、后台 pwsh(含 dsh-pwsh-local 的 start/run)、以及经它们拉起的 npm install 或构建都默认覆盖。不需要手写 spawn 包装、timer 管理或状态路由,装上就生效;卸载时逆序清理所有定时器、监听器并恢复原 spawn 方法,不留任何残留。事件写入带轮转的 JSONL 文件和原子写的 status.json 快照,事后复盘一条 grep 搞定。

使用场景

  • 后台 bash 或 pwsh 长任务突然无输出时自动告警并附取证报告
  • npm install 或构建卡死时定位是死锁还是忙循环
  • 多个子进程并行运行时统一监控、互不干扰

适合人员

  • 通过 ctx.subprocess 跑长任务的 dsh 工作流作者
  • 想要看门狗但不想手写 spawn 包装和 timer 管理的开发者
  • 跑后台 pwsh、npm 构建等长任务的 dsh 用户