以 Coder@mindraw-recovery 身份领取 P-20260626-ai-frame-workflow 下 MD-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,并编排 mindrawGetLiveFrameContext、mindrawAcquireWriteLease、mindrawCommitWriteResult、mindrawReleaseWriteLease。src/components/AiFramePanel.tsx:画布右上角 AI Frame 入口、prompt 输入、默认 prompt、运行 / 成功 / 错误状态。src/components/ExcalidrawEditor.tsx 和 src/index.css:挂载并样式化 AI Frame 控件。src/lib/mindrawAiFrameWorkflow.test.ts:覆盖成功写入、默认 prompt、非 .mindraw、无选择、多选、非 Frame、dirty 阻断、save failed dirty recovery。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。CODEGRAPH.md、INDEX.md、CHANGELOG.md。02-P/plan-progress.markdown:MD-MEXP03-01 标记完成,Progress Log 记录验证命令、证据路径、剩余风险和下一步 PM-MEXP03-GATE。mindraw-alpha-local 本地 Alpha placeholder;result body 明确写入 not a real AI provider release。.mindraw 文档在 App 内 AI Frame 入口处直接阻断,要求用户先保存,避免把未保存编辑混入 Alpha 写入。.mindraw;所有写入仍通过既有 controlled mutation 和 saveTab()。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 主项目验证范围。安全副本:/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.mdCODEGRAPH.mdINDEX.md02-P/plan-progress.markdown02-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.pngsrc/components/AiFramePanel.tsxsrc/components/ExcalidrawEditor.tsxsrc/lib/mindrawAiFrameWorkflow.tssrc/lib/mindrawAiFrameWorkflow.test.tssrc/index.css.assets 权威化均未做。PM-MEXP03-GATE 仍需 PM 按 gate checklist 做用户体验 Gate。PM-MEXP03-GATE,复核 QA 报告、截图、App smoke 路径和用户亲测步骤。