im_wower
·
2026-03-28
T-S003.md
1# Task T-S003:切换 status-api 到 conductor 主接口
2
3> 历史说明:本卡记录的是该任务开工时的状态;当前主线默认入口已是 `http://100.71.210.78:4317` / `https://conductor.makefile.so`,`control-api.makefile.so` 和 `BAA_CONTROL_API_BASE` 只保留 legacy 兼容语义。
4
5## 直接给对话的提示词
6
7读 `/Users/george/code/baa-conductor/tasks/archive/T-S003.md` 任务文档,完成开发任务。
8
9如需补背景,再读:
10
11- `/Users/george/code/baa-conductor/apps/status-api/src/data-source.ts`
12- `/Users/george/code/baa-conductor/apps/status-api/src/service.ts`
13- `/Users/george/code/baa-conductor/docs/runtime/README.md`
14- `/Users/george/code/baa-conductor/docs/runtime/environment.md`
15- `/Users/george/code/baa-conductor/scripts/runtime/install-launchd.sh`
16- `/Users/george/code/baa-conductor/scripts/runtime/check-launchd.sh`
17- `/Users/george/code/baa-conductor/ops/launchd/so.makefile.baa-status-api.plist`
18- `/Users/george/code/baa-conductor/docs/api/README.md`
19
20## 当前基线
21
22- 仓库:`/Users/george/code/baa-conductor`
23- 分支:`main`
24- 提交:`e62e98d`
25- 开工要求:不要从其他任务分支切出;如需新分支,从当前 `main` 新切
26
27## 建议分支名
28
29- `feat/status-api-local-truth-cutover`
30
31## 目标
32
33让 `status-api` 默认真相源切到当前 `conductor` 主接口,并把运行脚本、launchd 模板和文档里对 `BAA_CONTROL_API_BASE` 的口径降到兼容变量,而不是 legacy truth source。
34
35## 背景
36
37- 当前主线 canonical local API 已经是 `http://100.71.210.78:4317`。
38- `status-api` 仍默认经由 `BAA_CONTROL_API_BASE` 指向 `https://control-api.makefile.so`,这和现状不一致。
39- 运行文档、launchd 模板和检查脚本里也还保留类似口径,容易让后续维护继续沿着旧 control plane 走偏。
40
41## 涉及仓库
42
43- `/Users/george/code/baa-conductor`
44
45## 范围
46
47- 修改 `apps/status-api/**` 的默认数据源
48- 更新 `scripts/runtime/**` 和 `ops/launchd/**` 的默认配置口径
49- 回写 `docs/runtime/**` 和 `docs/api/README.md`
50
51## 路径约束
52
53- 只处理 `status-api` 与其运行文档/模板,不修改 `conductor-daemon` 的 HTTP 行为。
54- `BAA_CONTROL_API_BASE` 可以保留兼容入口,但不能继续被描述成 canonical truth source。
55
56## 推荐实现边界
57
58建议优先收口:
59
60- `status-api` 默认读取的上游地址与描述文本
61- launchd 安装、检查脚本和 plist 模板里的默认值
62- 运行文档里对本地 `4317`、公网 `conductor.makefile.so`、legacy control-api 的关系说明
63
64## 允许修改的目录
65
66- `/Users/george/code/baa-conductor/apps/status-api/`
67- `/Users/george/code/baa-conductor/scripts/runtime/`
68- `/Users/george/code/baa-conductor/ops/launchd/`
69- `/Users/george/code/baa-conductor/docs/runtime/`
70- `/Users/george/code/baa-conductor/docs/api/README.md`
71
72## 尽量不要修改
73
74- `/Users/george/code/baa-conductor/apps/conductor-daemon/`
75- `/Users/george/code/baa-conductor/tests/control-api/`
76- `/Users/george/code/baa-conductor/ops/cloudflare/`
77- `/Users/george/code/baa-conductor/bugs/`
78
79## 必须完成
80
81### 1. 切换 status-api 默认真相源
82
83- 让 `status-api` 默认读取当前主线 `conductor` 接口
84- 不再默认依赖 `control-api.makefile.so`
85
86### 2. 收口运行脚本和 launchd 模板
87
88- 让安装、检查脚本和 plist 模板与新的默认真相源保持一致
89- 如果保留兼容变量,要明确其兼容性质
90
91### 3. 回写文档
92
93- 更新 runtime 文档和 API 入口文档
94- 明确现在默认读哪里、什么时候才需要 legacy 兼容变量
95
96## 需要特别注意
97
98- 不要顺手处理 `ops/cloudflare/**` 或 `tests/control-api/**`
99- 不要把本任务扩展成 `status-api` 的功能重构
100- 本任务会改文档和运行脚本,注意与其它并行任务的写范围隔离
101
102## 验收标准
103
104- `status-api` 默认不再把 legacy control-api 当作真相源
105- 运行脚本、launchd 模板、文档口径与当前主线一致
106- 最终结果里能明确说明哪些地方仍保留兼容变量
107- `git diff --check` 通过
108
109## 推荐验证命令
110
111- `npx --yes pnpm -C /Users/george/code/baa-conductor -F @baa-conductor/status-api build`
112- `npx --yes pnpm -C /Users/george/code/baa-conductor -F @baa-conductor/status-api smoke`
113- `git -C /Users/george/code/baa-conductor diff --check`
114
115## 交付要求
116
117完成后请说明:
118
119- 修改了哪些文件
120- `status-api` 默认现在读哪里
121- 哪些地方仍保留 `BAA_CONTROL_API_BASE` 兼容入口
122- 跑了哪些验证
123- 还有哪些 legacy 没清完