Files
dsh_ai1net_server/交付物/目标执行状态.md
T

91 lines
5.7 KiB
Markdown
Raw Normal View History

# 目标执行状态
> 🔴 **本文件=检查会话判断目标状态的唯一依据**(用户 2026-10-03 10:5x 要求逐字:
> 「目标执行情况也要有文档,这样检查会话**直接根据文档判断目标状态**,避免检查会话到处找信息」)。
> ⛔ 检查会话**不许再去工作区里翻文件**找目标状态 —— 读本文件 + `tasks.json` 就够了。
- **目标标题**:检查会话协作是否运行正常 + 协作机制问题排查与修复
- **目标简称**:本机协作
- **目标生命周期**:**进行中**
- **本文件由谁更新**:**目标检查会话**(`[协作]-[目标检查]-…`)在核对完成后改「目标生命周期」并更新本文档
- **最后实测时间**:2026-10-03 10:52(所有读数均为**现测**,⛔ 不是转述)
## 一、怎么用这份文档(检查会话照此判断,别自己另立口径)
1. 先读 `tmp/supervise-inbox/tasks.json`(队列四态台账)—— 那是「活干完了吗」。
2. 再读**本文档** —— 那是「目标达成了吗」。
3. **⛔ 两者都不许跳**。三路取并集,**任一路"没完"就是没完**:
- 台账里有 `pending`/`running`/`blocked` 的件;
- 任务图(`交付物/任务图-会话协作自检.json`)里还有 `status != done` 的节点;
- **本文档第二节里还有任何一条判据没过**。
4. 全部满足 ⇒ 才可把目标生命周期改成「已完成」,并在本文档把「结论」那一行更新掉。
## 二、验收判据(逐条,⛔ 判据值是中文写法:`过|…`/`🔴 不过|…`)
### V1 协作程序常驻一直运行
- **结论:过**
- **实测**:`supervise-heartbeat.json` → `pid=38988`、`round` 持续上涨(10 s/轮)、`ts_h=2026-10-03 10:35:21`。
- **判据**:pid 活 **∧** 心跳新鲜(<90 s)—— 与 `selftest.py::t_supervise_ensure` 同一口径。
### V2 队列与检查会话链路
- **结论:过**
- **实测**:`tasks.json` 读数 `S5=done(带 artifact)`、`S12=done(带 artifact)`;
`queue_pending()=0`(真源 `tasks.json` 四态口径);闸②`_all_sessions_idle()=True`、闸④`ws_pending_schedules()=[]`、闸③ 走 `queue-empty`。
- ⚠️ **旧判据「跟进会话链接得住(零条活着 / 今日投递成功 0 次)」已作废** —— 唤醒/跟进/队列投递
**整套退役**(用户 2026-10-03 定案),那条判据**永远不可能满足**。⇒ 本条改为校验**现行链路**。
### V3 协作会话在台账里留有产物文档
- **结论:过**
- **实测**:`S5.artifact` 指向 `references/architecture.md §2.3.0f`;`S12.artifact` 指向 `机制排查与修复/S12_清理报告_20261002.md`。
- **判据**:每条 `done` **必须**有 `artifact`。⇒ 机制侧已加硬约束:`--report --state done` **缺 `--artifact` 直接拒收(rc=3)**。
### V4 看板可服务
- **结论:过**
- **实测**:`netstat` → `127.0.0.1:8788` **LISTENING**(pid 41764);`/board.json` → HTTP 200、`ts=2026-10-03 10:52:35`。
- **判据**:能起得来 + 回环 HTTP 200(⛔ 不看页面像不像,看接口读数)。
### V5 机制自测全绿
- **结论:过**
- **实测**:`selftest.py` → **PASS 55 / FAIL 0**。
- ⚠️ **基线是 FAIL 1**(`技能侧零项目串` 那条,已于 2026-10-03 上午修掉:域键锚点词表三处对齐 + 结构性豁免)。
⇒ 判据写成「**FAIL 0**」,⛔ 不写「与基线持平」—— 那种写法会让真红也通过。
### V6 协作程序格能显示"检查程序在运行"
- **结论:过**
- **实测**:`/board.json` → `runtime.check = {"n":0,"label":"无检查在跑"}`。
**端到端验过**:临时把一条检查会话置 `working` ⇒ 线上 `runtime.check.n=1`、`label=有结果检查在运行`;还原后回 `n=0`。
- **判据**:`runtime.check` 字段在位 + 与真库 `working` 检查会话数**一致**(不许恒绿)。
- ⚠️ **旧判据「跟进会话角色落地(名册 11 条)」已作废** —— 跟进会话整套退役。
### V7 检查会话按规范命名、能被看板认出
- **结论:过**
- **实测**:排期名=`[协作]-[结果检查]-<工作区>-第N棒`(**两级方括号前缀**);
`parse_session_name()` ⇒ `role=worker / topic=结果检查 / ok=True`;
线上 `/board.json` 里 `44b547d4` 的 `role=协作会话`(改前是「主会话」)。
- **判据**:`role=worker` + `topic` 非空 + **两侧解析零漂移**。
- ⚠️ **旧判据「开工建齐三类(唤醒/协作/跟进)」已作废** —— 会话**只剩两类**(主会话/协作会话)。
## 三、结论
- **7 条判据全部通过** ⇒ 目标「检查会话协作是否运行正常」这一部分**已经达成**。
- ⚠️ **但整体目标未完成** —— 标题里还有「**协作机制问题排查与修复**」那半句,
而任务图(`交付物/任务图-会话协作自检.json`)里仍有 `status != done` 的节点。
⇒ **目标生命周期维持「进行中」**,⛔ 不得改成「已完成」。
## 四、旧判据的作废清单(⛔ 别再拿它们判)
| 旧判据 | 作废原因 |
|---|---|
| V2-跟进会话链接得住(零条活着/今日投递成功 0 次) | 唤醒/跟进/队列投递**整套退役**,永远不可能满足 |
| V6-跟进会话角色落地(名册 11 条) | 同上 |
| V7-开工建齐三类会话(唤醒/协作/跟进) | 会话**只剩两类**(主会话/协作会话) |
⚠️ 本清单**不是为了好看** —— 留着它们,目标状态就**永远判不出来**(同族红线:
「一条判据都没有 ⇒ 判不出来,⛔ 不许当成已完成」的反面:**有一条永远红的 ⇒ 也不许当成未完成**)。