im_wower
·
2026-03-28
T-S008.md
1# Task T-S008:补 codexd child / transport 断流诊断与 reopen 规则
2
3## 直接给对话的提示词
4
5读 `/Users/george/code/baa-conductor/tasks/archive/T-S008.md` 任务文档,完成开发任务。
6
7如需补背景,再读:
8
9- `/Users/george/code/baa-conductor/apps/codexd/src/daemon.ts`
10- `/Users/george/code/baa-conductor/apps/codexd/src/app-server-transport.ts`
11- `/Users/george/code/baa-conductor/apps/codexd/src/index.test.js`
12- `/Users/george/code/baa-conductor/bugs/BUG-008-codexd-second-thread-turn-timeout.md`
13- `/Users/george/code/baa-conductor/bugs/BUG-010-codexd-turn-status-stuck-inprogress.md`
14- `/Users/george/code/baa-conductor/docs/runtime/codexd.md`
15
16## 当前基线
17
18- 仓库:`/Users/george/code/baa-conductor`
19- 分支:`main`
20- 提交:`1078d2b`
21- 开工要求:不要从其他任务分支切出;如需新分支,从当前 `main` 新切
22
23## 建议分支名
24
25- `feat/codexd-transport-failure-diagnostics`
26
27## 目标
28
29给 codexd 增加“app-server 提前断流但没有合法 `turn/completed`”场景的明确诊断与 reopen 规则,避免以后再把新故障混进已修复的 BUG-008 / BUG-010。
30
31## 背景
32
33- `BUG-008` 和 `BUG-010` 已经按当前证据修复。
34- 当前剩余风险是另一类故障:如果 child / transport 在合法完成事件发出前就断流,这将是新的独立问题。
35- 现在需要把这种场景的诊断和 reopen 规则写清楚,最好让代码和测试也能给出更明确的失败信号。
36
37## 涉及仓库
38
39- `/Users/george/code/baa-conductor`
40
41## 范围
42
43- 增强 codexd 在“未收到合法 completed 就断流”场景下的可诊断性
44- 增加对应测试
45- 回写 BUG-008 / BUG-010 和 runtime 文档里的 reopen 规则
46
47## 路径约束
48
49- 不要重做已完成的尾包冲刷修复
50- 优先补 failure classification / diagnostics,不做大范围架构重构
51
52## 推荐实现边界
53
54建议优先做:
55
56- 明确 transport close 时当前 turn 处于什么状态
57- 把“合法完成缺失”与“尾包被截断”区分开
58- 给测试和文档一个可复用的 reopen 判断口径
59
60## 允许修改的目录
61
62- `/Users/george/code/baa-conductor/apps/codexd/`
63- `/Users/george/code/baa-conductor/docs/runtime/codexd.md`
64- `/Users/george/code/baa-conductor/bugs/BUG-008-codexd-second-thread-turn-timeout.md`
65- `/Users/george/code/baa-conductor/bugs/BUG-010-codexd-turn-status-stuck-inprogress.md`
66- `/Users/george/code/baa-conductor/bugs/README.md`
67
68## 尽量不要修改
69
70- `/Users/george/code/baa-conductor/apps/conductor-daemon/`
71- `/Users/george/code/baa-conductor/apps/status-api/`
72- `/Users/george/code/baa-conductor/scripts/runtime/`
73
74## 必须完成
75
76### 1. 明确 child / transport 断流诊断
77
78- 在未收到合法完成事件就断流时,给出明确可区分的失败信息
79- 不要让调用方只能看到模糊的 reconnect / failed
80
81### 2. 补回归测试
82
83- 至少增加一条“没有合法 completed 就断流”的测试
84- 测试要能证明这类场景和已修复的尾包冲刷缺陷是不同问题
85
86### 3. 写清 reopen 规则
87
88- 在 bug 文档和 runtime 文档里明确:
89 - 什么情况算旧问题已修复范围内
90 - 什么情况应该 reopen 为新 bug
91
92## 需要特别注意
93
94- 不要把任务扩展成 codexd 新协议设计
95- 不要引入额外的 completion 轮询兜底
96- 与 `T-S007` 并行时写范围完全不重叠,可同时推进
97
98## 验收标准
99
100- child / transport 提前断流场景有明确诊断
101- 有回归测试覆盖“没有合法 completed 就断流”
102- BUG / runtime 文档的 reopen 规则清楚一致
103- `git diff --check` 通过
104
105## 推荐验证命令
106
107- `npx --yes pnpm -C /Users/george/code/baa-conductor -F @baa-conductor/codexd test`
108- `node --test /Users/george/code/baa-conductor/apps/codexd/src/index.test.js`
109- `git -C /Users/george/code/baa-conductor diff --check`
110
111## 交付要求
112
113完成后请说明:
114
115- 修改了哪些文件
116- 新增了什么 failure classification / diagnostics
117- 如何区分“旧尾包问题”和“新的 child / transport 故障”
118- 跑了哪些测试
119- 还有哪些场景仍未覆盖