baa-conductor


baa-conductor / tasks / archive
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- 还有哪些兼容风险