edit | blame | history | raw

2026-06-28 MEXP03内置AI

用户目标

Coder@mindraw-recovery 身份领取 P-20260626-ai-frame-workflowMD-MEXP03-01,完整实现 M-体验03:Mindraw 内置 AI Frame MVP 垂直切片。用户要求 App 内可见入口、单 Frame source 校验、prompt / 默认 prompt、本地 Alpha 响应生成器、复用既有 read / lease / controlled createAiResultFrame / save path、右侧避让、保存重开验证、自动化测试、本地 App smoke、QA 报告、CODEGRAPH.md / INDEX.md / changelog 决策、台账回写和会话记忆。

已完成事项

  • 新增 src/lib/mindrawAiFrameWorkflow.ts:内部 workflow facade,校验 active .mindraw、dirty / saving、无选择、多选、非 Frame,并编排 mindrawGetLiveFrameContextmindrawAcquireWriteLeasemindrawCommitWriteResultmindrawReleaseWriteLease
  • 新增 src/components/AiFramePanel.tsx:画布右上角 AI Frame 入口、prompt 输入、默认 prompt、运行 / 成功 / 错误状态。
  • 更新 src/components/ExcalidrawEditor.tsxsrc/index.css:挂载并样式化 AI Frame 控件。
  • 新增 src/lib/mindrawAiFrameWorkflow.test.ts:覆盖成功写入、默认 prompt、非 .mindraw、无选择、多选、非 Frame、dirty 阻断、save failed dirty recovery。
  • 新增 QA 报告和证据:02-P/qa/mindraw-mexp03-ai-frame-mvp-check.md02-P/qa/mindraw-mexp03-ai-frame-mvp.json02-P/qa/mindraw-mexp03-smoke-after-save.png02-P/qa/mindraw-mexp03-smoke-reopen-result-visible.png
  • 同步 CODEGRAPH.mdINDEX.mdCHANGELOG.md
  • 回写 02-P/plan-progress.markdownMD-MEXP03-01 标记完成,Progress Log 记录验证命令、证据路径、剩余风险和下一步 PM-MEXP03-GATE

关键决策

  • 本轮不实现真实 AI provider release,使用 mindraw-alpha-local 本地 Alpha placeholder;result body 明确写入 not a real AI provider release
  • Dirty .mindraw 文档在 App 内 AI Frame 入口处直接阻断,要求用户先保存,避免把未保存编辑混入 Alpha 写入。
  • 不新增写包路径,不直接手写 .mindraw;所有写入仍通过既有 controlled mutation 和 saveTab()
  • 不生成新 DMG、不递增版本号;npm run tauri -- build --debug --bundles app 产物只作为本地 QA debug App。

验证结论

  • npm run test:run -- 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:PASS,5 files / 41 tests。
  • npm run test:run -- src:PASS,27 files / 209 tests。
  • npm run doctor:mindraw:test:PASS,14 node:test tests。
  • npm run build:PASS,仅既有 font resolve / chunk-size warnings。
  • npm run tauri -- build --debug --bundles app:PASS,本地 QA debug App 在 src-tauri/target/debug/bundle/macos/Mindraw.app
  • git diff --check:PASS。
  • npm run test:run 全量会误扫 P1-Txtflowy/ 和 node:test 文件,出现 no-suite / P1 path 失败;已记录为非本轮 Mindraw 主项目验证范围。

App Smoke

安全副本:/tmp/mindraw-mexp03-app-smoke-20260628070229/MEXP03-ai-frame-ui-smoke.mindraw

通过 debug App 内 File > Open Mindraw Package... 打开安全副本,选中 frame_ai_annotation_001,打开 AI Frame,输入 Summarize this frame for a local MEXP03 UI smoke.,点击 Create result Frame。UI 显示 Saved AGC-20260628-070542-02。磁盘复核 source Frame preserved,旧 result x=840,新 result x=1640,右侧避让成立;关闭重开后用 hand tool 横向拖拽可见新 result。

文件变更

  • CHANGELOG.md
  • CODEGRAPH.md
  • INDEX.md
  • 02-P/plan-progress.markdown
  • 02-P/qa/mindraw-mexp03-ai-frame-mvp-check.md
  • 02-P/qa/mindraw-mexp03-ai-frame-mvp.json
  • 02-P/qa/mindraw-mexp03-smoke-after-save.png
  • 02-P/qa/mindraw-mexp03-smoke-reopen-result-visible.png
  • src/components/AiFramePanel.tsx
  • src/components/ExcalidrawEditor.tsx
  • src/lib/mindrawAiFrameWorkflow.ts
  • src/lib/mindrawAiFrameWorkflow.test.ts
  • src/index.css

未决问题

  • 真实 AI provider、账号配置、云端计费、密钥管理、H8 / formal release、新 DMG、Phase 4 .assets 权威化均未做。
  • PM-MEXP03-GATE 仍需 PM 按 gate checklist 做用户体验 Gate。

后续建议

  • PM 进入 PM-MEXP03-GATE,复核 QA 报告、截图、App smoke 路径和用户亲测步骤。
  • 若 Gate 通过,再决定是否需要面向用户的验收候选包;那将触发版本号 / build / DMG / release manifest / tag 等发布规则。