以 coder2@mindraw 身份领取并完成 MD-MEXP08B-01:让 Mindraw 侧支持外部模型 image result package 通过 App API / controlled mutation 写回 source Frame 右侧 result Frame,并进入 Mindraw-controlled .assets 链路。
createAiResultFrame mutation,新增可选 imageResult.kind="external-image-result"。imageResult 校验 base64 image dataURL、mime、尺寸、byteLength / sha256、raw bytes 上限和本机路径泄漏。files[fileId]。source.kind="ai-generation"、privacy="no-original-path",保存仍走 saveTab() / save_mindraw_package,由既有 AssetStore dual 路径登记 .assets。createAiResultFrameImageResult="write"。1 MiB 提升到 8 MiB,覆盖已验收 PNG base64 JSON-RPC 请求体。02-P/qa/mindraw-mexp08b-external-image-writeback-check.md / .json。INDEX.md、CODEGRAPH.md、CHANGELOG.md 和 02-P/plan-progress.markdown。.assets API;继续复用既有 read / lease / controlled commit / save path。mindraw.app.commit_write_result,mutation kind 仍为 createAiResultFrame,新增 imageResult 字段。.assets 路径,只提交 sanitized image bytes package;Mindraw 是唯一权威资产写入者。npm run test:run -- src/lib/mindrawAppWriteMutation.test.ts src/lib/mindrawAppWriteApi.smoke.test.ts src/lib/mindrawAppApiTransport.test.ts src/lib/mindrawAppReadApi.test.ts:PASS,4 files / 34 tests。cargo test --manifest-path src-tauri/Cargo.toml app_api_transport:PASS,5 tests。cargo test --manifest-path src-tauri/Cargo.toml mexp05_save_preserves_simulated_generated_asset_source_kind:PASS。cargo check --manifest-path src-tauri/Cargo.toml:PASS。npm run doctor:mindraw:test:PASS,15 tests。npm run build:PASS,仅既有 Vite warning。854506 bytes;JSON-RPC body 约 1139615 bytes,小于 8 MiB transport 上限。M4C-MEXP08B-01 runner / writeback。PM-MEXP08B-GATE 仍由 PM 收敛;coder2 不直接宣布端到端 Gate 通过。