im_wower
·
2026-03-28
T-S016.md
1# Task T-S016:收口 `status-api` 终局并给 `conductor` 提供兼容状态视图
2
3## 直接给对话的提示词
4
5读 `/Users/george/code/baa-conductor/tasks/archive/T-S016.md` 任务文档,完成开发任务。
6
7如需补背景,再读:
8
9- `/Users/george/code/baa-conductor/apps/conductor-daemon/src/local-api.ts`
10- `/Users/george/code/baa-conductor/apps/conductor-daemon/src/index.test.js`
11- `/Users/george/code/baa-conductor/apps/status-api/src/service.ts`
12- `/Users/george/code/baa-conductor/apps/status-api/src/index.test.js`
13- `/Users/george/code/baa-conductor/docs/api/README.md`
14- `/Users/george/code/baa-conductor/docs/runtime/README.md`
15- `/Users/george/code/baa-conductor/README.md`
16
17## 当前基线
18
19- 仓库:`/Users/george/code/baa-conductor`
20- 分支:`main`
21- 提交:`d7a83fd`
22- 开工要求:不要从其他任务分支切出;如需新分支,从当前 `main` 新切
23
24## 建议分支名
25
26- `feat/conductor-status-view-compat`
27
28## 目标
29
30把当前只读状态视图进一步收口到 `conductor` 主接口上,同时保留 `status-api` 的兼容位次或明确降级路径。
31
32## 背景
33
34- `status-api` 现在已经是显式 opt-in 的本地观察服务,不再属于默认 runtime 套件。
35- 但 JSON / HTML 状态视图仍然是单独服务能力,导致状态面仍然分散在两个本地端口上。
36- 如果主线要继续收口,最自然的下一步是让 `conductor` 自己也能提供这层只读状态视图。
37
38## 涉及仓库
39
40- `/Users/george/code/baa-conductor`
41
42## 范围
43
44- 给 `conductor` 增加与当前 `status-api` 对齐的只读状态视图入口
45- 决定 `status-api` 保留为兼容包装层,还是进一步降级为 legacy/可删组件
46- 回写 API / runtime / README 文档
47
48## 路径约束
49
50- 优先复用现有 `status-api` 的取数和渲染逻辑,避免复制两套状态拼装代码
51- 不要把任务扩展成重新设计 `/v1/system/state`
52- 不要顺手改 runtime 安装脚本默认服务集合,它已经在前一轮任务里收口
53
54## 推荐实现边界
55
56建议优先做:
57
58- 在 `conductor` 上补 `status-api` 等价或明确兼容的状态视图路由
59- 保持现有 `status-api` 合同兼容,至少不让现有调用方直接断掉
60- 用测试覆盖 JSON 和 HTML 只读视图
61
62## 允许修改的目录
63
64- `/Users/george/code/baa-conductor/apps/conductor-daemon/`
65- `/Users/george/code/baa-conductor/apps/status-api/`
66- `/Users/george/code/baa-conductor/docs/api/`
67- `/Users/george/code/baa-conductor/docs/runtime/`
68- `/Users/george/code/baa-conductor/README.md`
69- `/Users/george/code/baa-conductor/DESIGN.md`
70
71## 尽量不要修改
72
73- `/Users/george/code/baa-conductor/scripts/runtime/`
74- `/Users/george/code/baa-conductor/tasks/`
75
76## 必须完成
77
78### 1. 给 `conductor` 提供兼容状态视图
79
80- 至少有一组稳定入口能返回当前 JSON 状态视图
81- 如保留 HTML 视图,也要说明其定位
82
83### 2. 保持兼容迁移路径
84
85- 现有 `status-api` 不应在没有说明的情况下直接消失
86- 文档里要明确推荐入口和兼容入口
87
88### 3. 补测试和文档
89
90- `conductor-daemon` / `status-api` 至少一侧需要新增或更新测试
91- API / runtime / README 口径要一致
92
93## 需要特别注意
94
95- 不要破坏现有 `/v1/system/state`
96- 不要把只读状态视图误写成新的控制接口
97- 与 on-node verify wrapper 任务并行时,尽量避免同时改同一段 README / runtime 文档
98
99## 验收标准
100
101- `conductor` 提供可用的兼容状态视图入口
102- `status-api` 的保留/降级路径清楚且不突兀
103- 测试通过,文档同步
104- `git diff --check` 通过
105
106## 推荐验证命令
107
108- `npx --yes pnpm -C /Users/george/code/baa-conductor -F @baa-conductor/conductor-daemon test`
109- `npx --yes pnpm -C /Users/george/code/baa-conductor -F @baa-conductor/status-api test`
110- `git -C /Users/george/code/baa-conductor diff --check`
111
112## 交付要求
113
114完成后请说明:
115
116- `conductor` 新增了哪些状态视图入口
117- `status-api` 现在的定位是什么
118- 修改了哪些测试和文档
119- 还有哪些兼容风险