dev-manager-tauri/docs/tasks/2026-10-03-coordination.md
lanrtop 9dd0545456
All checks were successful
Push & PR Check / check (push) Successful in 1m4s
docs(blueprint): P8c 与 G8 合并后验收标 ✅,P8d acceptance 并入 P8c 审查转入项(bypass_permissions 单列与七步本机变更),派 P4a
PR #36(P8c)与 PR #35(G8)合并为 04db098,合并结果全量 cargo test 325 passed;
两卡 acceptance 均为 cargo 层。P8c 审查 ⑨ 转入项按统筹决定写进 P8d acceptance ⑨,
避免 P8g 视图拿不到计划数据。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 11:05:03 +09:00

93 lines
11 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 统筹推进文档:P8 一键接入与并行事项(2026-10-03 起)
> 本文件是执行会话的**单一入口**:领卡前先读完 §1–§3。卡片的范围与验收以蓝图卡片为准
> (`.blueprint/modules/agent-client-parity.md` 等),本文件不复制 acceptance,只管「谁做、按什么顺序、怎么交接」。
> 统筹会话负责维护本文件(§4、§5 随派单与合并更新)。
## 0. 方针与本阶段终点
- **方针**(AGENTS.md「项目定位」「管家准入与退出」):炼境是 agent 开发子项目的管家;每个子项目都能在
Claude Code、Codex、DSH 三端开发,重复配置尽量消除;不过度建设,能力按实测收益保留或撤销。
- **本阶段终点**:P8「一键接入」——新建或添加子项目后,一次确认即三端可用(P8 卡的 acceptance)。
设计:`docs/tasks/2026-10-03-p8-onboarding-oneclick-design.md`;任务卡:agent-client-parity 的 P8-0、P8a–P8g、P4-0、P4a–P4e。
## 1. 角色与协议
> 执行方式(2026-10-03 调整):任务卡片需要用户手动点开,统筹会话无法代点;改为统筹会话用后台工作流(Workflow)自动执行每张卡——子 agent 各自独立上下文、在固定 worktree 里干活,只把结论交回统筹会话。工作流与新会话一样计入账号用量。统筹会话设有每 30 分钟一次的会话内巡检(CronCreate,7 天自动失效)。
### 授权规则(用户 2026-10-03 立,持续有效直到 P8 acceptance 全部达成)
1. 每 30 分钟检查一次工作流与 PR 进度(统筹会话的会话内巡检)。
2. 独立审查通过(结论为可合并,或发现已全部处置)且 CI 为 passed 的 PR,由统筹会话按完整 head SHA 自行合并,合并后在运行中的炼境上做卡片要求的实测,然后派下一张卡。
3. §3 队列内的 Feature 卡视为用户已确认(提交带 `Feature-Confirmed: true`),不再逐张出确认卡。
4. 同一张卡自验或修复累计失败 3 次:卡片标 🔴、写明原因,跳过该卡继续队列(不再停下来等人)。
5. 只有三类事项找用户:写运行中的 DB、删除操作、human_verify。
6. 终点:P8「一键接入」卡的 acceptance 全部达成(agent_verify 由统筹会话实测;human_verify 汇总给用户终验)。
| 角色 | 是谁 | 做什么 |
|---|---|---|
| 统筹会话 | `local_ab7498e2-8aff-4e59-b45b-134636d12d9c`(「dev-manager-tauri 开发环境验证」) | 维护本文件、派卡、复核、合并 PR、处理上报;每 30 分钟检查一次执行会话 |
| 执行会话 | 每张卡一个新会话 | 按卡片实现与自验,做一次独立审查,开 PR,然后上报;不合并 PR |
- **上报**:用 SendMessage(`to` 填统筹会话的 session id)发三条——已完成 / 待验证 / 约束继承(AGENTS.md「多 AI CLI 协作」格式),附 PR 编号与**完整 head SHA**。
- **求助**:同一问题自修失败 2 次(AGENTS.md「自验失败降级约定」)就停下,上报失败原因、已尝试路径、需要决策的问题;不要绕过权限或安全分类器的拦截。
- **合并**:只由统筹会话核对 CI 与审查结论后合并(`merge_pull_request` 需要完整 head SHA)。
- **卡片状态**:开工把卡改 🔵、验收后改 ✅(两阶段提交),在自己的分支里改;需要在合并后实测的验收项,由统筹会话合并、实测后补标 ✅。
## 2. 执行环境铁律(都是踩过的坑)
- **主仓库工作区不碰**:`E:\code-project\dev-manager-tauri` 是用户日常运行 `pnpm tauri dev` 的地方。每张卡在自己的 git worktree 里做(如 `E:/code-project/dev-manager-tauri-wt-<卡号>`),M 级开 `feat/<模块>-<卡号>` 分支走 PR;S 级的纯文档可直推 master。
- **enterprise-system 主工作区不碰**:`E:\code-project\enterprise-system` 有其他会话的在制品,禁止 stash / reset / checkout / `add -A`;要改 enterprise 就从 origin/main 开临时 worktree,用 PR 交付。
- **cargo 热缓存**:`cd <worktree>/src-tauri && export CARGO_TARGET_DIR=E:/code-project/dev-manager-tauri-parity/src-tauri/target && cargo test`;长命令放后台运行。
- **rustfmt 只格式化改动的文件**:`rustfmt --edition 2021 --config skip_children=true <文件…>`。不加 `skip_children` 格式化 `lib.rs` 会改写全部子模块。
- **用户 deny 规则**:`rm`、`kill`、`pkill`、`git reset --hard`、npm/npx 等禁用,**也不能写进脚本文件再执行**(统筹会话踩过)。需要删除的临时目录列给用户;探针桩服务设成到时自动退出。
- **Git Bash**:`git show rev:path` 要加 `MSYS_NO_PATHCONV=1`;含反斜杠的文件用 Write 工具写;含中文的 HTTP 请求用 node `fetch`,不用 curl。
- **MCP**:一律 `http://127.0.0.1:27190`(不用 localhost)。会话里 lian-jing 没连上时,可用 node `fetch` 直接 POST `http://127.0.0.1:27190/mcp`(全局路由,`tools/call`),结果在 `result.structuredContent` 或 `result.content[0].text`。
- **变异验证**:先 `git add` 暂存,再改源码做变异、跑测试,最后 `git checkout -- <文件>` 从暂存区还原。没暂存就 checkout 会丢掉改动(统筹会话踩过)。
- **真实客户端**:`claude -p`、`codex exec`、DSH headless 可能跑 3 分钟以上,只在会话主线程或后台 bash 里跑,不交给 Workflow 子 agent(超过 180 秒会被判卡死)。嵌套 claude 前先 `unset CLAUDECODE CLAUDE_CODE_ENTRYPOINT CLAUDE_CODE_SSE_PORT`,stdin 重定向自 `/dev/null`。
- **凭据**:不读、不打印任何 token、凭据、`.env` 值;不对真实 Windows Credential Manager 做并发压力实验。
- **运行中的炼境 DB 写入**:自动模式下会被安全分类器拦截,这是对的。需要写 DB 的数据修复准备好脚本、备份和空跑结果,交用户执行。
- **提交**:Conventional Commits;`feat:` 带 `Feature-Confirmed: true`;末尾带 `Co-Authored-By` 署名行。PR 描述按自验报告纪律写,含「没验什么」一节。M 级卡开 PR 前用一个只读子代理做独立审查,审查处置写进卡片。
## 3. 派单队列
串行原因:P8 各卡集中改 `mcp_inject.rs`、`mcp_tools.rs`、`commands/onboarding.rs`,并行必然冲突。不碰这些文件的事项可以并行(标注「可并行」)。
| 序 | 事项 | 复杂度 | 起点 | 要点 |
|---|---|---|---|---|
| ~~1~~ | ~~P8c 收尾~~ ✅ | M | 分支 `feat/agent-client-parity-p8c` @ `ef2c7fd`(代码已完成,cargo test 307 passed) | 剩:独立审查与修复,卡片标 🔵 并记实现/验证,开 PR。PR #34 合并后先合并 master 再开 PR |
| 2 | P4a L1 零模型三端检查 | M | master(P4-0✅、P8b✅) | Claude 用不存在的模型名取 init(P4-0 H-P8-4,零额度);Codex 用 `codex mcp get --json`(H-P8-1,未信任目录看不到项目配置);DSH 解析白名单与插件哈希;认证链经稳定 shim 重放 |
| 3 | P8d onboard_project 编排本体 | M | P8c、P4a 合并后 | 复用 `onboard::plan::write_project_files` 与 `onboard::clients::registry()`;apply 前先重算计划并核对 digest |
| 4 | P8e 投影收口与契约同步 | S | P8d 后 | |
| 5 | P8f register_project 控制面投影 | S | P8e 后 | |
| 6 | P8g UI 一键接入 | M | P8e 后 | human_verify 交用户 |
| ~~并行~~ | ~~删除项目登记时一并解绑 Gitea 仓库~~ ✅ G8 | S/M | master | 来自重复登记排查会话的推荐任务卡(轮询会继续往已删除的项目 ID 写数据),主要改 projects.rs / gitea.rs,可并行 |
| 后续 | P6(依赖 P8c)、P4c / P4d / P4e、A4→P4b、P5 | | | P8 完成后再排 |
| 后续小修 | backfill_notes_archive 静默跳过非 UTF-8 旧笔记(dev-manager-tauri 有 4 条);PR #34 审查遗留 L3(保留他项目 Codex 块不留痕)、L4(沉默统计并列偏向非规范 ID,补测试)、I1(注释说明两处语义差异)、I2(沉默列表带 id) | S | master | 不碰 P8 热点文件的可并行 |
| 待用户 | beast-mode 同路径重复登记(beast-mode / 940dfbb4,无 Gitea 绑定) | — | — | 需写运行中 DB 与删除登记,按 U3 同法准备脚本后交用户执行 |
## 4. 派单与 PR 流水(统筹维护)
| 时间 | 事项 | 执行者 | 分支 / PR | 状态 |
|---|---|---|---|---|
| 10-03 | P8-0、P8a、P4-0、B2 | 统筹会话 | 直推 master | ✅ |
| 10-03 | P8b | 统筹会话 | PR #33(ddd729c) | ✅ |
| 10-03 | enterprise 接入包 1.9.0 | 统筹会话 | enterprise PR #183 | ✅ 已合并;enterprise 主工作区待其所有者同步 |
| 10-03 | P8c 收尾 | 工作流 wf_c121815d-6ea(实现→审查→修复→开 PR) | PR #36(7ef9241)→ 04db098 | ✅ 审查 9 条:7 修、2 转 P8d(已并入 P8d acceptance ⑨);合并后全量 cargo test 325 passed |
| 10-03 | 删除登记时解绑 Gitea(G8) | 工作流 wf_c121815d-6ea | PR #35(fccb767) | ✅ 审查可合并、5 条已处置;真机删除实测为可选人工验证(涉及删除与写 DB) |
| 10-03 | P4a L1 零模型三端检查 | 工作流(见统筹会话通知) | `feat/agent-client-parity-p4a` | 执行中 |
| 10-03 | 重复登记修复 U1/U2 | 会话 `local_d2e1c156…`(「排查炼境 dev-manager-tauri 疑似重复登记」) | PR #34 → fc280db | ✅ 独立审查可合并、已合并,炼境已重编译;审查遗留 L1/L2 归 P8f(登记拒绝同路径),L3/L4/I1/I2 列入后续小修 |
| 10-03 | 重复登记数据合并 U3 | 同上(用户执行 DB 写入) | master 91017b6;主仓库 .codex/config.toml 升级为稳定 helper 格式 06f20db | ✅ 无 2c5b54ef 残留、同路径 1 条登记、Gitea 绑定 1 行;备份 dev-manager.backup-20261003-before-dedupe.db |
## 5. 待用户处理(统筹会话汇总,按时机)
- ~~重复登记数据合并~~:已由用户执行完毕并验收(见 §4)。
- **临时文件待用户清理**(deny 规则禁止 agent 删除):E: mp erify_before.json;重复登记会话 %TEMP% 下的 merge_dup.py 等;统筹会话 %TEMP% 下的 lj-p4-0、lj-p7-probe、lj-p9-spike 等探针目录;已合并分支的 worktree(tmp-p7skill-review、tmp-delivery-status-review、tmp-p10-verify-mut、dev-manager-tauri-wt-p8)可用 git worktree remove 清理。
- **Codex 信任**:Codex 只在目录受信任后加载项目 `.codex/config.toml`(P4-0 H-P8-1)。一键接入会把它列进 next_actions,炼境不改 Codex 的信任表。
## 6. 当前已知事实(易变,以工具自省为准)
- `verify_onboarding(enterprise)` 的 `clients` 三端均 converged。
- `list_all_projects`:除 enterprise 外,其余登记项目大多缺项目 token(历史接入早于 token 机制),这些正是一键接入要接的对象。
- 使者回传:0 条待处置。