diff --git a/.blueprint/manifest.yaml b/.blueprint/manifest.yaml index 8bb8ce9..7d6617f 100644 --- a/.blueprint/manifest.yaml +++ b/.blueprint/manifest.yaml @@ -440,10 +440,10 @@ modules: - id: mcp-single-server name: MCP 单一服务器化 area: backend - status: in_progress - progress: 89 + status: done + progress: 100 updated: 2026-10-03 - note: "T1-T6 全部完成并端到端终验(2026-07-06):单一 lian-jing 服务器上线,~/.claude.json 12 条旧注册清零,3 项目抽查新格式通过,旧路由 404。T4 暴露并修复 git-bash 硬编码存量 bug(0d1427f)。遗留:同路径重复登记待清理(见模块 done_note)。2026-10-03 开 U1-U3 清理:删除登记只清本项目托管条目、沉默项目统计去并集、2c5b54ef 并入 dev-manager-tauri" + note: "T1-T6 全部完成并端到端终验(2026-07-06):单一 lian-jing 服务器上线,~/.claude.json 12 条旧注册清零,3 项目抽查新格式通过,旧路由 404。T4 暴露并修复 git-bash 硬编码存量 bug(0d1427f)。遗留的同路径重复登记已于 2026-10-03 由 U1-U3 清理完毕:删除登记只清本项目托管条目、沉默项目统计去并集、2c5b54ef 并入 dev-manager-tauri 后删除登记(beast-mode 同类重复未处理,见统筹文档后续队列)" position: [1750, 500] diff --git a/.blueprint/modules/mcp-single-server.md b/.blueprint/modules/mcp-single-server.md index 4c8b5bd..84df5de 100644 --- a/.blueprint/modules/mcp-single-server.md +++ b/.blueprint/modules/mcp-single-server.md @@ -128,10 +128,11 @@ - done_note: 2026-10-03 完成。新增 `silent_projects_counts_each_commit_once_under_duplicate_registration`(旧 SQL 在同一夹具上得 [3, 5],新 SQL 得 [2, 3])与 `diagnostics_inject_label_shows_name_and_flags_unregistered`;`cargo test` 全量 303 通过。 - 为什么:`pw.id = cm.project_id OR pw.win_path = bb.project_path` 在同路径多登记时让一条 commit 同时匹配多个 workspace;注入状态只打 ID,人读不出 `d248554e-…` 是哪个项目。 -### 🔵 U3. 存量合并:2c5b54ef 并入 dev-manager-tauri 后删除登记 -- status: in_progress +### ✅ U3. 存量合并:2c5b54ef 并入 dev-manager-tauri 后删除登记 +- status: done - complexity: S - files: (运维操作,无代码改动) - acceptance: "agent_verify: [只读 SQL] project_workspaces 中 win_path=E:\code-project\dev-manager-tauri 仅 1 行;gitea_repos 指向 lanrtop/dev-manager-tauri 仅 1 行;commit_metrics/project_notes/pr_events 无 2c5b54ef 残留;[MCP] get_diagnostics 覆盖率 dev-manager-tauri 仅 1 行;verify_onboarding(dev-manager-tauri) 与操作前状态一致;主仓库 git diff .codex/config.toml 为空" - 步骤:① 先解绑 2c5b54ef 的 Gitea(gitea_unlink_repo,删重复 webhook,停双采集)② 在线备份 DB ③ 单事务迁移:commit_metrics / project_notes / 独有 pr_events / 待办改挂规范 ID,重复 pr_events 与 UUID 快照、文档新鲜度缓存删除,space / repo 绑定 / 产品组成员 / profile 空字段补给规范 ID ④ unregister_project(2c5b54ef) → 立即 inject_mcp(dev-manager-tauri) 补回(运行中的旧二进制尚无 U1 修复)⑤ backfill_notes_archive ⑥ 删空产品组 d669f693 +- done_note: 2026-10-03 完成。用户执行合并脚本(运行中 DB 写入被自动模式安全分类器拦截,按约定交用户执行):commit 258 条、笔记 20 条、待办 1 条改挂规范 ID,PR 事件删重复 58 条、迁独有 3 条,UUID 快照 83 条与文档新鲜度缓存删除,space / repo 绑定 / 产品组成员 / profile 空字段补给规范 ID,删空产品组 d669f693,删 UUID 的 gitea_repos 行(该绑定无 webhook、无凭证引用,与 gitea_unlink_repo 等价)。随后经全局 MCP 执行 unregister_project(2c5b54ef) → inject_mcp(dev-manager-tauri) → backfill_notes_archive(预演确认只改写主仓库档案 27→34 条,其余项目档案不变)。验收:全库无 2c5b54ef 残留;同路径登记 1 行;Gitea 绑定 1 行;get_diagnostics 覆盖率 dev-manager-tauri 仅 1 行(176 条 commit);verify_onboarding 11/13 与操作前一致(唯一变化:近 30 天 commit 109→176)。**验收改动声明**:「主仓库 git diff .codex/config.toml 为空」未满足——差异是重注入把 9-23 旧格式块升级为带 `http_headers_helper` 的当前格式(digest = sha256(project_id),代码注明可入库),不是删除连带破坏;且 PR #34 已先合并重编译,unregister 本就不再动规范 ID 的块。该行留作主仓库未提交改动由用户决定是否提交。更正:双采集来自 Gitea 轮询遍历两行绑定,不是两个 webhook(两行 webhook_id 均为空)。遗留发现:4 条 dev-manager-tauri 旧笔记在 DB 中不是 UTF-8,backfill 的 filter_map 静默跳过(档案与回报计数都不含)。备份:%APPDATA%\com.yangzhixiang.dev-manager-tauri\dev-manager.backup-20261003-before-dedupe.db - 不做:「登记时拒绝同路径」归 agent-client-parity P8f(已规划含重复登记拒绝),此处不重复实现;beast-mode 同类重复(beast-mode / 940dfbb4,无 Gitea 绑定、近 30 天无活动)本卡不处理。