baa-conductor

git clone 

baa-conductor / tasks
codex@macbookpro  ·  2026-04-01

T-S070.md

  1# Task T-S070:移除 conductor 内的 stagit 仓库静态页能力
  2
  3## 状态
  4
  5- 当前状态:`已完成`
  6- 规模预估:`M`
  7- 依赖任务:无
  8- 建议执行者:`Codex`
  9
 10## 直接给对话的提示词
 11
 12`/Users/george/code/baa-conductor/tasks/T-S070.md` 任务文档,完成开发任务。
 13
 14如需补背景,再读:
 15
 16- `/Users/george/code/baa-conductor/tasks/TASK_OVERVIEW.md`
 17- `/Users/george/code/baa-conductor/plans/STATUS_SUMMARY.md`
 18- `/Users/george/code/baa-conductor/tasks/T-S050.md`
 19
 20## 当前基线
 21
 22- 仓库:`/Users/george/code/baa-conductor`
 23- 分支基线:`main`
 24- 提交:`4aea341`
 25
 26## 分支与 worktree(强制)
 27
 28- 分支名:`feat/remove-stagit-repo-route`
 29- worktree 路径:`/Users/george/code/baa-conductor-remove-stagit-repo-route`
 30
 31开工步骤:
 32
 331. `cd /Users/george/code/baa-conductor`
 342. `git worktree add ../baa-conductor-remove-stagit-repo-route -b feat/remove-stagit-repo-route main`
 353. `cd ../baa-conductor-remove-stagit-repo-route`
 364. 在这个 worktree 目录里开发,不要回到主仓库目录
 37
 38完成后提交与推送:
 39
 401. 在 worktree 里提交所有变更(包括更新后的任务文档)
 412. `git push -u origin feat/remove-stagit-repo-route`
 42
 43合并步骤(由合并者执行):
 44
 451. `cd /Users/george/code/baa-conductor`
 462. `git fetch origin`
 473. `git merge origin/feat/remove-stagit-repo-route`
 484. `git push`
 495. `git worktree remove ../baa-conductor-remove-stagit-repo-route`
 50
 51合并冲突处理:
 52
 531. 如果 `git merge` 报冲突,先 `git diff` 查看冲突文件
 542. 手动解决冲突后 `git add` 冲突文件
 553. `git merge --continue` 完成合并
 564. 不要用 `git merge --abort` 然后 force 覆盖
 57
 58## 目标
 59
 60删除 `conductor` 仓库内的 stagit 生成与 `/artifact/repo/*` 静态服务能力,不做兼容跳转。
 61
 62## 背景
 63
 64静态 repo 页面功能已经移到 `baa-pgit` 仓库,这个仓库内保留的 stagit 路由、脚本和测试已经不再属于当前主线。继续保留只会让 `conductor` 同时承担两套 repo 浏览方案,增加维护成本和文档歧义。
 65
 66当前实现边界很清楚:
 67
 68- `apps/conductor-daemon/src/local-api.ts` 内有 `/artifact/repo/:repo_name/*` 路由与 handler
 69- `scripts/git-snapshot.sh` 负责调用 stagit 生成静态页
 70- `apps/conductor-daemon/src/index.test.js` 有对应 repo 路由测试
 71- 多份文档仍把 stagit 仓库浏览写成当前能力
 72
 73本任务要求直接删除,不保留兼容跳转。
 74
 75## 涉及仓库
 76
 77- `/Users/george/code/baa-conductor`
 78
 79## 范围
 80
 81- 删除 conductor 内的 stagit repo 静态页路由与读取逻辑
 82- 删除 stagit 生成脚本和对应测试
 83- 更新总览、状态、实现说明文档,移除“当前主线仍提供 /artifact/repo/*”的口径
 84
 85## 路径约束
 86
 87- 不在本任务里接入 `baa-pgit` 跳转或新域名代理
 88- 不改动普通 `/artifact/:artifact_scope/:artifact_file` 读路径
 89- 不改动 `artifact-db`、D1 同步、recent sessions 或其他 artifact 主链
 90- 历史任务卡和 archive 文档可以保留历史描述,不要求批量清洗
 91
 92## 推荐实现边界
 93
 94建议删除或收缩:
 95
 96- `service.artifact.repo` 路由与 `handleArtifactRepoRead`
 97- `scripts/git-snapshot.sh`
 98- repo 静态页测试
 99
100建议更新:
101
102- `/Users/george/code/baa-conductor/tasks/TASK_OVERVIEW.md`
103- `/Users/george/code/baa-conductor/plans/STATUS_SUMMARY.md`
104- 如有必要,更新主 README 或相关 API/plan 文档
105
106## 允许修改的目录
107
108- `/Users/george/code/baa-conductor/apps/conductor-daemon/src/`
109- `/Users/george/code/baa-conductor/scripts/`
110- `/Users/george/code/baa-conductor/tasks/`
111- `/Users/george/code/baa-conductor/plans/`
112- `/Users/george/code/baa-conductor/docs/`
113
114## 尽量不要修改
115
116- `/Users/george/code/baa-conductor/packages/`
117- `/Users/george/code/baa-conductor/plugins/`
118- `/Users/george/code/baa-conductor/ops/sql/`
119
120## 必须完成
121
122### 1. 删除 repo 静态页路由
123
124- 删除 `/artifact/repo/:repo_name/*` 路由注册
125- 删除对应 handler、content-type 辅助逻辑和只为 repo 静态页服务的辅助代码
126- 确保普通 `/artifact/` 路由不受影响
127
128### 2. 删除 stagit 生成脚本与测试
129
130- 删除 `scripts/git-snapshot.sh`
131- 删除或改写只覆盖 repo 静态页的测试
132- 确保删除后测试套仍通过
133
134### 3. 更新文档口径
135
136- 从总览和状态文档中移除“stagit 仓库浏览是当前能力”的描述
137- 明确说明 repo 静态页能力已迁出当前仓库
138- 更新任务文档状态与执行记录
139
140## 需要特别注意
141
142- 本任务是功能删除,不是兼容迁移;不要额外加入跳转逻辑
143- 不要误删普通 artifact 静态读接口
144- 不要顺手改动 `baa-pgit` 或其他仓库
145- 所有开发必须在 worktree 中进行,不要在主仓库目录修改代码
146
147## 验收标准
148
149- `conductor` 代码中不再保留 `/artifact/repo/:repo_name/*` 路由
150- 仓库内不再保留 `scripts/git-snapshot.sh`
151- 文档不再把 stagit 仓库浏览写成当前主线能力
152- 相关测试通过,且普通 artifact 路由不回退
153
154## 推荐验证命令
155
156- `pnpm -C /Users/george/code/baa-conductor/apps/conductor-daemon test`
157- `pnpm -C /Users/george/code/baa-conductor/apps/conductor-daemon build`
158- `rg -n "artifact/repo|stagit|git-snapshot\\.sh" /Users/george/code/baa-conductor`
159
160## 执行记录
161
162> 以下内容由执行任务的 AI 填写,创建任务时留空。
163
164### 开始执行
165
166- 执行者:`Codex`
167- 开始时间:`2026-04-01 19:57:00 CST`
168- 状态变更:`待开始` -> `进行中`
169
170### 完成摘要
171
172- 完成时间:`2026-04-01 20:04:52 CST`
173- 状态变更:`进行中` -> `已完成`
174- 修改了哪些文件:
175  - `apps/conductor-daemon/src/local-api.ts`
176  - `apps/conductor-daemon/src/index.test.js`
177  - `scripts/git-snapshot.sh`
178  - `tasks/TASK_OVERVIEW.md`
179  - `plans/STATUS_SUMMARY.md`
180  - `plans/ARTIFACT_STATIC_SERVICE.md`
181  - `PROGRESS/2026-03-29-current-code-progress.md`
182  - `tasks/T-S070.md`
183- 核心实现思路:
184  - 直接删除 `service.artifact.repo` 路由、`handleArtifactRepoRead` 和 repo 静态页专用 content-type/路径校验逻辑,不保留跳转或兼容层
185  - 把 repo 静态页测试改成负向断言,确认 `/artifact/repo/*` 现在返回 `404`,同时保留普通 artifact 路径回归覆盖
186  - 删除 `scripts/git-snapshot.sh`,并把当前文档口径统一改成“repo 静态页能力已迁到 `baa-pgit`187- 跑了哪些测试:
188  - `pnpm -C /Users/george/code/baa-conductor-remove-stagit-repo-route/apps/conductor-daemon test`
189  - `pnpm -C /Users/george/code/baa-conductor-remove-stagit-repo-route/apps/conductor-daemon build`
190  - `rg -n --glob '!tasks/archive/**' --glob '!plans/archive/**' --glob '!bugs/archive/**' --glob '!node_modules/**' "artifact/repo|stagit|git-snapshot\\.sh" /Users/george/code/baa-conductor-remove-stagit-repo-route`
191
192### 执行过程中遇到的问题
193
194- 主仓库 worktree 里已有未提交的文档改动,因此先确认 `main``origin/main` 一致,再从 `main` 新建独立 worktree,避免污染主仓库工作区
195- 新建 worktree 默认没有 `node_modules`,首次执行 `pnpm test``pnpm exec tsc` 缺失;在 worktree 根目录执行一次 `pnpm install` 后恢复正常
196
197### 剩余风险
198
199- 历史任务卡、archive 文档和历史需求文档仍保留 stagit 描述;这是按任务约束刻意保留的历史记录,不代表当前主线能力