edit | blame | history | raw

2026-07-02 MEXP13 预览修复

用户目标

领取 MD-BUNDLE-02,修复 MEXP13 用户验收发现的 preview fidelity 缺口:Codex sidebar 中的 Mindraw project canvas preview 必须接近 Mindraw desktop 的只读高保真画面,不得继续使用手写近似 SVG / 灰色图片占位 / 简化重绘。

已完成事项

  • 将非空 project canvas preview 从 Rust 手写 SVG 近似 renderer 改为前端 Excalidraw export pipeline 生成 PNG。
  • 新增 mindrawProjectCanvasPreview facade,负责解析 .mindraw scene、保留 image files、调用 exportToBlob、读取 PNG 尺寸并返回 base64 + metadata。
  • 新增 Rust write_mindraw_preview_snapshot 受控写入命令,只接受 PNG,校验 source、尺寸、PNG signature、byte cap,并写入 preview/preview.png 与 manifest preview metadata。
  • 保留 blank canvas approved SVG fallback,避免空画布伪造高保真内容。
  • 使用用户验收安全副本生成 after-fix PNG:真实图片、红色标注、箭头、圆角矩形、Frame 和布局比例可见,旧灰色 image 占位消失。

验证与证据

  • 前端测试:npm run test:run -- src/lib/mindrawProjectCanvasPreview.test.ts src/lib/mindrawAppApiTransport.test.ts src/lib/mindrawAppReadApi.test.ts PASS,3 files / 22 tests。
  • Rust 测试:cargo test --manifest-path src-tauri/Cargo.toml preview PASS,2 tests。
  • Rust transport:cargo test --manifest-path src-tauri/Cargo.toml app_api_transport PASS,5 tests。
  • 构建:npm run build PASS;npm run tauri -- build --debug --bundles app PASS。
  • QA:02-P/MEXP13-AcceptanceBundle/qa/md-bundle-02-preview-fidelity-check-20260702.md / .json
  • After-fix artifact:02-P/MEXP13-AcceptanceBundle/qa/preview-fidelity-20260702/sidebar-preview-after-fix.png647x556,SHA256 d59c7b4954e1ebc17e8ffa462a0f1abe33978f57017229930f5296cadb41e3bb

关键决策

  • 不继续扩大 build_mindraw_preview_svg() 手写 renderer;非空 preview 走 Excalidraw export pipeline。
  • 本轮不改 m4c / plugin,不重打 DMG,不进入 PM Gate。
  • Mindraw App 侧结论为 PASS_FOR_MD_BUNDLE_02_READY_FOR_M4C_BUNDLE_02;下一步归属 PM 派发 M4C-BUNDLE-02 复跑 source / installed sidebar 展示与安全门。

未决问题

  • 需要 m4c 侧复跑实际 installed cache sidebar <img> 展示、HTTP/MCP、SkillSpector 和截图证据。
  • 若 PM 要把修复给用户重新安装体验,需要另行派发新 DMG candidate,并按版本规则决定 1.2.x / 1.3.0 与新 build。