# 2026-06-27 MEXP02 安装版 ## 用户目标 以 Coder@mindraw 身份领取统一台账 `P-20260626-m4c-handshake-coordination` 的 `MD-MEXP02-01`,完成 `M-体验02:可安装版 AI Frame Alpha` 的 Mindraw 安装版 Alpha readiness。只领取 `MD-*`,不领取 `M4C-*`、`PM-*` 或 `H*`。 ## 已完成事项 - 重新读取全局 / 项目 `AGENTS.md`、`INDEX.md`、`CODEGRAPH.md`、`release-versioning.md`、`delivery-gate.md`、`qa-workflow.md`、`code-governance.md`、`work-continuity.md`、`session-memory.md` 和统一台账相关状态。 - 审计候选包 `03-O/C2.builds/releases/Build202606272239/`,确认 DMG SHA256 与 manifest 一致,`hdiutil verify` PASS,DMG 挂载后包含 `Mindraw.app` 与 `Applications -> /Applications` symlink。 - 复制 DMG 内 release App 到隔离 QA 安装路径 `/tmp/mindraw-mexp02-qa/app/Mindraw.app`,解压 demo zip 到安全副本 `/tmp/mindraw-mexp02-qa/demo/MEXP01-ai-frame-demo.mindraw`。 - 使用隔离 HOME 启动非 debug release App:`HOME=/tmp/mindraw-mexp02-qa/home-open open -n -a /tmp/mindraw-mexp02-qa/app/Mindraw.app /tmp/mindraw-mexp02-qa/demo/MEXP01-ai-frame-demo.mindraw`。 - 验证安装版 App 生成 live `runtime/write-api.json`,外部进程读取 `/health`、HTTP capabilities、JSON-RPC `mindraw.app.get_capabilities`、`get_open_document_state`、`get_live_frame_context` 均 PASS。 - 运行 `npm run doctor:mindraw -- --app /tmp/mindraw-mexp02-qa/app/Mindraw.app --app-api-capability ... --pretty`,结论 `appWriteLease=pass`,唯一 warning 为 `MINDRAW_BUILD_UNKNOWN`。 - 产出 QA 证据:`02-P/qa/mindraw-mexp02-installable-alpha-readiness.md`、`02-P/qa/mindraw-mexp02-installable-alpha-readiness.json`。 - 更新 `03-O/C2.builds/releases/Build202606272239/release-manifest.json` 的 post-package validation、`03-O/C2.builds/README.md`、`INDEX.md`、`CODEGRAPH.md`、`02-P/plan-progress.markdown`。 ## 关键结论 - `Build202606272239` 足以作为 `M-体验02` 的 Mindraw 侧输入,不需要重新打包。 - 本轮不是 H8 / formal release,不做 Developer ID / notarize,不递增版本号,不更新 `CHANGELOG.md`。 - `CFBundleVersion=0.8.3` 没有暴露 build 编号,build 仍以 DMG 文件名、`build-info.txt` 和 `release-manifest.json` 为准;这是 H8 前需要修正的剩余风险,不阻塞 MEXP02 Alpha。 - m4c / 用户命令应使用 canonical realpath packagePath;`/tmp` 会被 macOS 解析成 `/private/tmp`,未规范化时会触发 `PACKAGE_PATH_MISMATCH`。 ## 验证命令 - `shasum -a 256 03-O/C2.builds/releases/Build202606272239/Mindraw_0.8.3_aarch64-Build202606272239.dmg` - `hdiutil verify 03-O/C2.builds/releases/Build202606272239/Mindraw_0.8.3_aarch64-Build202606272239.dmg` - `hdiutil attach -nobrowse -readonly 03-O/C2.builds/releases/Build202606272239/Mindraw_0.8.3_aarch64-Build202606272239.dmg` - `codesign --verify --deep --strict --verbose=2 /tmp/mindraw-mexp02-qa/app/Mindraw.app` - `HOME=/tmp/mindraw-mexp02-qa/home-open open -n -a /tmp/mindraw-mexp02-qa/app/Mindraw.app /tmp/mindraw-mexp02-qa/demo/MEXP01-ai-frame-demo.mindraw` - 外部 Node JSON-RPC smoke:`/health`、`/capabilities`、`mindraw.app.get_capabilities`、`mindraw.app.get_open_document_state`、`mindraw.app.get_live_frame_context` - `npm run doctor:mindraw -- --app /tmp/mindraw-mexp02-qa/app/Mindraw.app --app-api-capability /tmp/mindraw-mexp02-qa/home-open/Library/Application Support/com.mindraw.desktop/runtime/write-api.json --pretty` - `node` JSON parse 检查 QA JSON 和 release manifest - `rg` token 搜索确认未把 live token 写入项目文件 - `git diff --check` ## 剩余问题 - 未 Developer ID / notarize,Gatekeeper `spctl` rejected 是预期 warning。 - 本轮用隔离 QA 安装路径和 HOME,未覆盖真实 `/Applications/Mindraw.app` 覆盖安装后的 LaunchServices handler 切换。 - runtime endpoint / token / PID 仍是临时值,m4c 必须实时读取当前 capability,不得复用旧值。 - 本轮没有执行 `commit_write_result`,写回闭环留给 `M4C-MEXP02-01`。 - 工作区仍有 PM / m4c 并发未提交变更以及本轮 QA / 文档回写;本轮未做 commit,避免混入非 `MD-*` 范围。 ## 后续建议 - m4c 执行 `M4C-MEXP02-01` 时使用 `realpath` 后的 packagePath。 - PM 在 `MD-MEXP02-01` 与 `M4C-MEXP02-01` 都完成后收敛 `PM-MEXP02-GATE`。 - H8 / formal release 前修正 App metadata build 暴露、Developer ID / notarize、正式 release note 和完整发布门禁。