edit | blame | history | raw

2026-06-25 Mindraw 导出保存面板 smoke

用户目标

继续推进 .mindraw 基本可用;在 Phase 3.5 推进过程中,顺手补齐 Phase 3 里此前因本机安装版 bundle id 冲突而未签 PASS 的完整保存面板导出 smoke。

已完成事项

  • 使用 debug .app 复制生成临时唯一 bundle id QA app:/Applications/MindrawExportQA-*.app,未覆盖正式 /Applications/Mindraw.app
  • 使用 single-image.mindraw fixture 生成临时测试包 /tmp/mindraw-phase3-export-smoke/ExportBoard.mindraw
  • 用临时 registry 和 mindraw://open?documentId=mdoc_fxt_single_image_2V8C5N1Q9L4B7S6D 打开测试包;首次冷启动 URL 未被前端接到,第二次热启动投递成功。
  • 通过 File > Export as Excalidraw... 真实系统保存面板导出标准 .excalidraw
  • 通过 File > Export as Obsidian Excalidraw... 真实系统保存面板导出 .excalidraw.md
  • 更新 02-P/qa/mindraw-phase3-export-check.md02-P/plan-progress.markdownCODEGRAPH.mdINDEX.md
  • 新增 QA 截图 02-P/qa/mindraw-phase3-export-smoke.png

关键决策

  • 不覆盖正式安装版;仍采用临时唯一 bundle id QA app 避免 LaunchServices / Accessibility 解析到旧安装版。
  • 导出 smoke 只验证导出内容、保存面板、active tab 不被接管;不生成可分发 DMG,不做版本发布。

文件变更

  • 02-P/qa/mindraw-phase3-export-check.md
  • 02-P/qa/mindraw-phase3-export-smoke.png
  • 02-P/plan-progress.markdown
  • CODEGRAPH.md
  • INDEX.md

验证结果

  • .excalidraw 保存面板导出 PASS:生成 /private/tmp/mindraw-phase3-export-smoke/ExportBoard.excalidraw;JSON typeexcalidraw,包含 1 个元素、1 个 files 条目,且 file 带 dataURL
  • Obsidian .excalidraw.md 保存面板导出 PASS:生成 /private/tmp/mindraw-phase3-export-smoke/ExportBoard.excalidraw.mdcompressed-json 可解压为 Excalidraw JSON,包含 1 个元素、1 个带 dataURL 的 file,并包含 Excalidraw plugin marker。
  • 导出后 active 文档仍显示为 .mindraw tab;导出文件只出现在文件树中,不接管当前 active tab。
  • 清理 PASS:临时 QA bundle、临时测试包、临时 registry 和备份目录已删除;preferences 已恢复到 smoke 前记录的 Desktop 状态;当前无 mindraw 进程。

未决问题

  • 首次冷启动 URL 在该临时 export QA app 中未被前端接到,第二次热启动投递成功;Phase 3 保存面板 smoke 不依赖该项。Phase 3.5 已另有冷/热启动真实 smoke 通过证据。

后续建议

  • Phase 3 已可从计划状态收口为 Done
  • 后续若要验证正式安装版 handler,需进入安装/发布流程或明确同意临时替换 /Applications/Mindraw.app