diff --git a/browser-harness/SKILL.md b/browser-harness/SKILL.md index 13e412d..91b1d93 100644 --- a/browser-harness/SKILL.md +++ b/browser-harness/SKILL.md @@ -67,6 +67,12 @@ Direct browser control via CDP. For task-specific edits, use `agent-workspace/ag ⇒ 做法:先起一个**常驻任务**把浏览器开着(守端口,掉了就写日志),之后每次操作**只连不起**。 ⛔ 别让每次调用各自起一遍浏览器 —— 父进程一退全没,而且多个实例会抢同一个 profile。 +- 🔴 **僵死态要会认**(2026-10-09 实测):共享实例被堆爆后会进入「**端口不应答、进程还活着**」的僵死态 —— + 连接探不通,但 `tasklist` 里那个 chrome 进程仍在。⛔ **别把「端口在」当成「浏览器可用」,也别拿「进程还在」当没事**。 + 判据(**两条一起看**):① `netstat -ano | grep 127.0.0.1:9223` **无 LISTENING**;② `tasklist | grep -i chrome` **仍有那个 pid**。 + ⇒ 处置:**只能重启实例**(关掉残留 chrome,再按第 2 节重起),⛔ 不要在原地反复重试连接 —— 那只会白等。 + ⚠️ **保活脚本兜不住它**:`bh_keep_chrome.py` 那类只做 `socket.create_connection` 探端口,对僵死态既不判、也不重启, + 实测它连续十几分钟只在写 `port 9223 not answering (pid alive=True)`(2026-10-09 `06:56:11` → `07:06:49` 进程才退出)。 ### 2. 起独立实例(端口 9223)