← ClaudeAtlas

hotplex-diagnosticslisted

HotPlex Gateway 运行时诊断。从症状逐层缩小到根因:进程状态、日志分析、worker 崩溃、响应慢、session 异常、streaming 卡住、反馈中断(Worker 在跑但用户端无更新)。理解反馈链路架构,能通过时间线交叉验证检测静默中断,分类根因为管道阻塞/背压丢弃/适配器故障/客户端断连。跨平台支持 Linux/macOS/Windows。
hrygo/hotplex · ★ 43 · AI & Automation · score 80
Install: claude install-skill hrygo/hotplex
# HotPlex 运行时诊断 ## 诊断哲学 诊断不是跑检查清单 — 而是从症状出发,逐层缩小范围。 核心层次:**进程 → 数据 → 反馈链路 → 日志 → 适配器 → 源码**。 每层都有**跳过条件**:进程不在就停;没有 running session 就跳过反馈检查;日志干净就跳过源码。不要做无用功。 --- ## 第一步:进程与端口 为什么先查进程 — 进程不在,后面所有的日志和状态都可能过时。 确认组件存活:Gateway(8888)、WebChat(3000)、Admin(9999)、Worker 子进程(`claude --session-id` / `--resume`、`codex`、`opencode-server`、ACP agent via stdio JSON-RPC)。 检查要点: - PID 文件(`~/.hotplex/.pids/`)中的 PID 是否对应实际进程 — 不对应说明进程异常退出但系统未清理 - 端口是否在预期地址监听 — 仅绑定 localhost 是安全基线 - RSS/CPU/运行时长 — RSS 持续增长暗示泄漏(>500MB 需关注),CPU 持续 >50% 需排查 **跳过条件**:Gateway 进程不在 → 🔴 诊断结束,报告进程问题即可。 --- ## 第二步:Session 状态一致性 为什么查 session — HotPlex 的 session 状态是内存 + SQLite 双写,两处可能不同步,而大多数用户问题("任务卡住"、"响应慢")都能从 session 状态找到线索。 查 `~/.hotplex/data/hotplex.db`,关注: - 各状态 session 数量:`SELECT state, COUNT(*) FROM sessions GROUP BY state` - 对 running/idle session:进程是否存活?Worker PID 匹配? - Worker session 持久化方式因 worker 类型而异: - Claude Code Worker:`~/.claude/projects/*/<uuid>.jsonl`(JSONL session 文件) - Codex CLI Worker:通过 app-server HTTP API 管理,无本地文件 - OCS Worker:单例进程内维护 session 状态 - ACP Worker:通过 stdio JSON-RPC 管理,生命周期与子进程绑定 不一致分类(表示系统健康问题的术语): - **ORPHANED**:DB 记录在但进程已死 — 等 GC 自动清理或手动终止记录 - **ZOMBIE**:进程在但 DB 状态是 terminated — GC 漏扫,通常是 race condition - **STALE_RESUME**:标记 running/idle 但磁盘上 session 文件不存在 — resume 时必定失败 **跳过条件**:无 running/idle session → 直接跳到第四步(日志分析),反馈链路检查不适用。 --- ## 第三步:反馈连续性 这是用户体验的核心能力 — 任务执行中用户看不到更新,但任务实际上还在跑。这种问题最隐蔽,因为 Worker 日志看起来一切正常。 ### 反馈链路 事件从 Worker 到用户经历一条管道,任何环节断裂都导致用户端无反馈: