edit | blame | history | raw

2026-06-28 MEXP04安全写回

用户目标

Coder@mindraw-recovery 身份领取并完成统一台账 P-20260626-ai-frame-workflow 下的 MD-MEXP04-01:实现 M-体验04:真实用户文件安全写回 Alpha。用户需要从真实 .mindraw 文件出发,在 Mindraw App 内通过清晰的安全副本 / 备份 / 恢复链路运行 AI Frame,在安全写入目标中生成右侧 result Frame;原始用户文件不得被静默覆盖。

已完成事项

  • 新增安全模型:真实 .mindraw 原件先复制为 *-ai-frame-safe-*.mindraw 安全写入目标,安全副本生成新 documentId,原件复制前后 hash 必须一致。
  • 新增写入前 restore point:每次 AI Frame commit 前在 <safe-copy-stem> AI Frame Backups/ 下创建 .mindraw restore point,hash 必须等于写入前安全目标 hash。
  • 新增恢复动作:从 restore point 通过 staging / rollback 恢复安全写入目标,恢复后刷新 active editor。
  • AI Frame 面板显示写入目标、原始 hash、restore point,并提供 Create safe copyRestore
  • runMindrawAiFrameWorkflow() 在未安全化 .mindraw 上返回 SAFE_COPY_REQUIRED,不 acquire lease、不保存、不写原件。
  • 保留 MEXP03 既有 result Frame 右侧避让和 source preservation mutation 路径。
  • 新增 QA 报告与 JSON:02-P/qa/mindraw-mexp04-real-user-safe-writeback-check.md02-P/qa/mindraw-mexp04-real-user-safe-writeback.json
  • 已同步 CODEGRAPH.mdINDEX.mdCHANGELOG.md02-P/plan-progress.markdownMD-MEXP04-01 已勾选完成,下一步归属 PM-MEXP04-GATE

关键决策

  • 采用“安全副本写入目标 + 写入前 restore point”而不是直接在原件上写入后备份,原因是它能给出原始用户文件 hash 不变证据,并把 Alpha 风险隔离到副本。
  • 安全副本保留 scene 和资产,但生成新的 documentId,避免原件和副本在 Mindraw document registry / deep link 里争用同一个 ID。
  • 不生成 DMG、不递增版本、不做正式发布;CHANGELOG.md 只更新 Unreleased

文件变更

  • src-tauri/src/lib.rs
  • src/lib/mindrawSafeWriteback.ts
  • src/lib/mindrawSafeWriteback.test.ts
  • src/lib/mindrawAiFrameWorkflow.ts
  • src/lib/mindrawAiFrameWorkflow.test.ts
  • src/components/AiFramePanel.tsx
  • src/index.css
  • 02-P/qa/mindraw-mexp04-real-user-safe-writeback-check.md
  • 02-P/qa/mindraw-mexp04-real-user-safe-writeback.json
  • 02-P/plan-progress.markdown
  • CODEGRAPH.md
  • INDEX.md
  • CHANGELOG.md

验证结论

  • npm run test:run -- src/lib/mindrawSafeWriteback.test.ts src/lib/mindrawAiFrameWorkflow.test.ts src/lib/mindrawAppWriteApi.smoke.test.ts src/lib/mindrawAppWriteMutation.test.ts src/lib/mindrawAppWriteLease.test.ts src/lib/mindrawAppReadApi.test.ts:6 files / 50 tests PASS。
  • npm run test:run -- src:28 files / 218 tests PASS。
  • cargo test --manifest-path src-tauri/Cargo.toml:46 tests PASS。
  • npm run build:PASS,仅既有 Vite 字体解析 / chunk size 警告。
  • cargo check --manifest-path src-tauri/Cargo.toml:PASS。
  • npm run doctor:mindraw:test:14 tests PASS。
  • git diff --check:PASS,无输出。
  • 02-P/qa/mindraw-mexp04-real-user-safe-writeback.json:JSON parse PASS。

未决问题

  • 未做 PM Gate、用户真机亲测、DMG 打包、版本递增或 formal release。
  • 当前 provider 仍是 mindraw-alpha-local placeholder,不是真实 AI provider release。

后续建议

  • 下一步由 PM-MEXP04-GATE 复核代码、QA、真实用户风格副本 smoke、备份 / 恢复证据和失败矩阵,再决定是否交给用户 hands-on。