心跳核对 · N9 红格已清 — 2026-09-29 22:3x
触发:监督程序心跳(主会话未在处理 ∧ 队列无待反馈 ∧ 需求未完成)
目标:手机查看并可回复桌面 WorkBuddy 中会话 | 关键路径:N5 → N8 → N9 → N10
本棒:[主]心跳核对-2230 | 域 ai1net-dsh-server/tmp + ai1net-dsh-server/交付物
⛔ 未替别线干活、⛔ 未改别线文件、⛔ 未接管会话、⛔ 未动服务器
0 结论先给判
| # |
判据 |
结果 |
| ① |
任务图核对:还剩几个未完 |
2 个 —— N9(V2 手机发出的消息进入桌面会话)、N10(V7 长时稳定性)。N1–N8、N11–N17 全 done |
| ② |
N9 的红格是什么 |
设备侧覆盖网络节点守护不在 ⇒ relay 无 worker 通道 ⇒ 入口④闸 503 |
| ③ |
🔴 红格本轮已清 |
守护 22:26:56 起、22:26:58 registered host=…-626dc095 accepted=[20090];47 relay /status 的 u:bdf89014-… 网络下已出现该 host session;垫片 20090 health=200 |
| ④ |
谁清的 |
我 22:23 派的那一棒([协作]N9解卡-桌面线,session 2d81f349,仍在跑) |
| ⑤ |
下一步该派谁 |
本轮不派 —— 见 §3(唯一后继被在跑的棒持锁,且它口令里含自链) |
| ⑥ |
需用户介入? |
不需要(真实读数见 §4) |
1 问题落在哪个环节(泳道图)
| 角色 ↓ / 阶段 → |
启动守护 |
relay 注册 |
平台④闸 |
取 N9 读数 |
| AI(桌面线棒 2d81f349) |
✅ 22:26:56 |
✅ 22:26:58 |
⏳ 待复测 |
⏳ 待做 |
| AI(手机接入线接续棒 c048a986) |
⛔ 未做(别线域) |
— |
❌ 22:23 实测 503 |
⛔ 按令不取 |
| 中继(47 / dshs-relay) |
— |
🟢 已有 session |
— |
— |
| 用户 |
— |
— |
— |
— |
红格(原)=「启动守护」那一格:22:23 之前是空的(overlay-daemon.log 自 11:06:48 后零行、设备侧进程 0)。
现在的状态=该格已转绿(22:26:58 registered)。
唯一待办=④闸复测与 N9 本体读数,落在正在跑的那一棒身上。
2 事故链(这次实际怎么坏的一步步)
| 步 |
事件 |
时间 |
| 1 |
设备侧守护(计划任务 DSH-Overlay-Node-Dev,client pid 52020)活到 21:42 后消失 |
11:06:46 → ~21:42 |
| 2 |
relay 上该 host 的 worker 通道不存在 ⇒ refuse …:20090 (worker offline) |
~22:02–22:03 |
| 3 |
平台④闸判「声明的端口全部离线(20090)」⇒ 503 device-unreachable |
22:13、22:20、22:23 连测 |
| 4 |
两棒把红格写成「计划任务 DSH-Worker-Dev 仍 Disabled」 ⇒ 指着已退役的 S1 遗留 |
22:14、22:23 |
| 5 |
我 22:23 派桌面线一棒(口令里已纠正:⛔ 别启用 DSH-Worker-Dev) |
22:23:23 |
| 6 |
该棒 22:25:07 spawn 守护、22:26:58 registered |
22:26:58 |
本该拦住、却缺席的防线
| # |
防线 |
为何缺席 |
| D1 |
「根因任务名」应回源核对(守护脚本 TaskName = 'DSH-Overlay-Node-Dev' 就在脚本第 75/89 行) |
两棒都凭印象写 DSH-Worker-Dev(那是 09-20 已退役的 S1 任务)⇒ 错断点跨两棒传播 |
| D2 |
进程消失应留证据 |
11:06 那轮守护消失于 21:42,宿主/沙箱日志该时段无 kill/teardown 记录,sandbox_gc_* 只有「另一实例已在运行」⇒ 谁杀的无从判定 |
| D3 |
关键进程的持久性应被 N10 覆盖 |
N10=V7「连续 1h / ≥50 次」正是干这个 —— 但它排在 N9 之后,救不了 N9 当下的"临时绿" |
3 该谁动 —— 本轮不派,理由三条
- 红格刚被在跑的棒清掉:那一棒(
2d81f349)口令里已含判据②「复测入口路径不再 503」,复测本就该它自己出读数。
- 抢跑=假读数:它仍在重启守护/垫片(22:24–22:26 之间垫片就掉过一次),此刻另起一棒复测会取到假 503。
- 域被持锁:唯一后继(④闸复测 / V2 读数 / 守护持久化)都在
ai1net-dsh-desktop 域,正被该棒持有 ⇒ 硬派撞锁(其口令收尾④已写「缺口 ⇒ 自链下一棒」)。
兜底:若该棒收口时没有接上,下一轮心跳我直接派「N9 复测+V2 取数」一棒(域 ai1net-dsh-anywhere,现为空闲)。
4 需用户介入?现在不需要
| 档 |
内容 |
| ① 现在 |
不用。解卡走测试身份(凭据有效期至 09-30 11:06)⇒ AI 可自起 |
| ② 待触发 |
真账号验收要**「用户身份」**设备在线,其凭据 09-28 20:35 已过期 ≈26 h ⇒ 到那一步只能你登一次(命令见 NEED-USER.md §②) |
| ③ 待触发(本轮新登记) |
N10 长时验收若要会话之外的常驻形态 ⇒ 走计划任务 DSH-Overlay-Node-Dev;而本机 schtasks.exe 被程序黑名单硬拦(AI 不可绕过)⇒ 届时需你放行或手工跑一次 schtasks /Run /TN DSH-Overlay-Node-Dev(见 NEED-USER.md §③) |
5 顺手纠正一处错误信号(防继续传播)
| 位置 |
错写 |
实际 |
tasks.json N9 block_reason([协作]N9-接续 22:23 写) |
「设备侧 worker(DSH-Worker-Dev)仍 Disabled、进程 0」 |
守护=DSH-Overlay-Node-Dev;DSH-Worker-Dev 是 09-20 已 /End+/Change /DISABLE 退役的 S1 遗留(桌面线记忆 2026-09-20.md 有原文),其 Disabled 属正常 |
ai1net-dsh-anywhere/.workbuddy/memory/2026-09-29.md:189 |
同上误写 |
⛔ 别线文件,我不动;建议该线自纠 |
⛔ 本轮未改 tasks.json(它是报活棒写的;我 22:26 已见其会话仍在收尾)。纠正走 blocked.json(我域、进 digest)+ 本文档。
6 本棒动作清单
| 动作 |
对象 |
| 更新 |
tmp/supervise-inbox/blocked.json(N9 改成「红格已清、待 V2 读数」+纠正任务名) |
| 更新 |
tmp/supervise-inbox/NEED-USER.md(①无 ②真账号 ③schtasks 黑名单) |
| 新增 |
本文件 |
| 复跑 |
collabd.py --once(刷新 digest/queue) |
| 锁 |
窄域 2 键 RC=0;收尾 --release-exec |