# 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.png`,`647x556`,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 `` 展示、HTTP/MCP、SkillSpector 和截图证据。 - 若 PM 要把修复给用户重新安装体验,需要另行派发新 DMG candidate,并按版本规则决定 `1.2.x` / `1.3.0` 与新 build。