chore(blueprint): notes 档案卡收官——归宿翻转声明 + 验收留痕
All checks were successful
Push & PR Check / check (push) Successful in 1m10s
Push & PR Check / check (pull_request) Successful in 55s

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
lanrtop 2026-09-11 22:23:02 +09:00
parent 6d02b12e9f
commit e345cc6a90

View File

@ -147,12 +147,19 @@ R 规则层=CONVENTIONS 规则库炼境强项业务侧反而隐式E
## 任务卡
### 📋 notes 档案落地(可拆除性修复:双写 + 存量回填)
- status: todo
### notes 档案落地(可拆除性修复:双写 + 存量回填)· done 2026-09-11
- status: done
- complexity: M
- files: src-tauri/src/mcp_tools.rs, src-tauri/src/db.rs
- acceptance: agent_verify: [Tauri command] append_project_note(pid, content) → DB 有记录**且** `.blueprint/notes-archive.jsonl` 尾行 JSON 可解析出同一 content存量回填命令执行后 JSONL 行数 = project_notes 表行数cargo test 覆盖双写 + 并发追加不交错
- 备注project_notes 是全系统唯一不在 git 的原创资产(飞轮全部原料)。格式选 JSONL 而非 md——机器可重放重建 DB才是真「重生配方」。归宿炼境仓库 `.blueprint/notes-archive.jsonl`,沿 usage.json「炼境自动写文件 + chore commit」先例。这即本模块缺口①「结构化落账」的地基
- files: src-tauri/src/mcp_tools.rs, src-tauri/src/mcp_inject.rs原卡列 db.rs 实际未动——无新表,纯双写层)
- acceptance: agent_verify: [Tauri command] append_project_note(pid, content) → DB 有记录**且** `.blueprint/notes-archive.jsonl` 尾行 JSON 可解析出同一 content存量回填命令执行后 JSONL 行数 = project_notes 表行数cargo test 覆盖双写 + 并发追加不交错 ✅110 测试全绿含新增 3双写行匹配 / 回填幂等+死登记跳过 / 8 线程并发不交错)
- **归宿翻转声明(动工前辩证,偏离原卡设计)**:原卡「炼境仓库集中式档案」→ 改为**按项目分片**
(各项目 `.blueprint/notes-archive.jsonl` 存自己的笔记)。理由:① 安装态进程无法可靠定位「炼境仓库」路径;
② 与「资产=纯文件在项目 git、可拆除性按项目」哲学一致透镜节 .blueprint 分片描述);③ 子项目会话
(含 DSH文件直读就地消费自家档案④ usage.json 先例本就是 per-project 写入
- 实现留痕双写失败不回滚笔记DB 事实源)仅 log_event warn`backfill_notes_archive` MCP 工具
全量重建幂等自愈;死登记(空/相对路径)跳过并报告(复用 validate_registered_path 防护,
project_root 重构出依赖注入版 project_root_with_conn
- **待重建终验**MCP 实调append 双写 + backfill 存量 78+ 条笔记落盘)需重建安装炼境后执行
### 📋 /ship 模板体检(第二轮分诊待行动 ×4
- status: todo