edit | blame | history | raw

2026-07-08 M4C-EDC-04

用户目标

处理 MEXP15 / CM1 fresh-machine 首次创建路径 blocker:在 Owner 全新 CM1 上执行 Open the Mindraw canvas for this project. 后,m4c sidebar 显示 No project canvas / MINDRAW_CANVAS_CREATE_API_REQUIRED,点击 编辑 / Edit 不启动 Mindraw,也没有 preview。任务范围限定为 m4c create bootstrap / sidebar / skill / service 路径,不改 Mindraw App、DMG、签名、公证或 release metadata。

已处理事项

  • 读取并对齐 M4C-EDC-04 派工、CM1 blocker 证据、QA-EDC-05、MD-EDC-03、M4C-EDC-03 和 review request。
  • 在 canonical source plugin 增加 create bootstrap fallback:runtime capability file 缺失导致 create path 不可用时,macOS 下通过 LaunchServices cold-launch Mindraw,等待 createBlankPackage capability 后重试 Mindraw App API create。
  • 保留 fail-closed 边界:capability file 存在但不含 create method 时仍返回 MINDRAW_CANVAS_CREATE_API_REQUIRED;preview source-required 继续 409;不显示 stale READY。
  • 同步安装到 installed cache 0.1.2+codex.20260708194340,并生成 MEXP15 EDC-04 候选包。
  • 补齐 source / installed / packaged validator、npm run check、smoke、HTTP、lifecycle、MCP、sidebar、SkillSpector、敏感扫描、tarball、hash、marketplace add/remove 证据。
  • 写入 P2 主报告、JSON、review request,并更新 P2 INDEX、P2 CODEGRAPH、主项目 INDEX、统一台账和 PMO_INBOX。

核心事实 / 变更快照

  • 任务:M4C-EDC-04
  • 终态口令:PM_NOTIFY_READY M4C-EDC-04 RESULT=M4C_FIX_READY
  • Review Gate:crg-9f1b6d5a4c28,状态 pending REVIEW-M4C-EDC-04
  • Plugin version / cachebuster:0.1.2+codex.20260708194340
  • Canonical source:/Users/ar/Projects/Mindraw/P2.mindrawforcodex/03-O/C1.source/mindraw-plugin
  • Adapter:/Users/ar/plugins/mindraw symlink to canonical source
  • Installed cache:/Users/ar/.codex/plugins/cache/personal/mindraw/0.1.2+codex.20260708194340
  • Candidate root:/Users/ar/Projects/Mindraw/P2.mindrawforcodex/03-O/C2.builds/MEXP15-SignedNotarizedDMG/mindraw-plugin-0.1.2+codex.20260708194340-M4C-EDC-04-20260708194915
  • Candidate tarball SHA256:6b454025d4ce23bf0862e638cdc7b0ca9a9930901a9039fdeb97efa0bfca9795
  • Source / packaged relative tree list SHA256:52a2c81465252da65b9a90b1ae5b0994125a695e142957289f25295d3921fa16
  • 关键行为变更:
  • 变更前:首次无 canvas 且 runtime capability file 缺失时,create path 直接停在 MINDRAW_CANVAS_CREATE_API_REQUIRED
  • 变更后:仅在 runtime 不可用类错误下,macOS 启动 Mindraw、等待 createBlankPackage capability、重试 mindraw.app.create_blank_package
  • 保留边界:不写 .mindraw internals;不做 target-link entry;preview 仍 fail-closed。

文件变更

  • /Users/ar/Projects/Mindraw/P2.mindrawforcodex/03-O/C1.source/mindraw-plugin/lib/project-canvas.mjs
  • /Users/ar/Projects/Mindraw/P2.mindrawforcodex/03-O/C1.source/mindraw-plugin/scripts/mindraw-canvas-service.mjs
  • /Users/ar/Projects/Mindraw/P2.mindrawforcodex/03-O/C1.source/mindraw-plugin/README.md
  • /Users/ar/Projects/Mindraw/P2.mindrawforcodex/03-O/C1.source/mindraw-plugin/skills/mindraw-open-canvas/SKILL.md
  • /Users/ar/Projects/Mindraw/P2.mindrawforcodex/03-O/C1.source/mindraw-plugin/.codex-plugin/plugin.json
  • /Users/ar/.codex/plugins/cache/personal/mindraw/0.1.2+codex.20260708194340
  • /Users/ar/Projects/Mindraw/P2.mindrawforcodex/03-O/C2.builds/MEXP15-SignedNotarizedDMG/mindraw-plugin-0.1.2+codex.20260708194340-M4C-EDC-04-20260708194915/
  • /Users/ar/Projects/Mindraw/P2.mindrawforcodex/02-P/MEXP15-SignedNotarizedDMG/m4c-edc-04-create-bootstrap-fallback-check-20260708.md
  • /Users/ar/Projects/Mindraw/P2.mindrawforcodex/02-P/MEXP15-SignedNotarizedDMG/m4c-edc-04-create-bootstrap-fallback-check-20260708.json
  • /Users/ar/Projects/Mindraw/P2.mindrawforcodex/02-P/MEXP15-SignedNotarizedDMG/m4c-edc-04-review-request-crg-9f1b6d5a4c28.md
  • /Users/ar/Projects/Mindraw/P2.mindrawforcodex/INDEX.md
  • /Users/ar/Projects/Mindraw/P2.mindrawforcodex/03-O/C1.source/CODEGRAPH.md
  • /Users/ar/Projects/Mindraw/INDEX.md
  • /Users/ar/Projects/Mindraw/02-P/plan-progress.markdown
  • /Users/ar/Projects/Mindraw/02-P/PMO_INBOX.md

可复用命令 / Runbook

用途:复跑 M4C-EDC-04 source / installed / packaged 验证,或在 review 前核对 candidate hash 和 install-source 语法。

前置条件:

  • Canonical source 路径存在:/Users/ar/Projects/Mindraw/P2.mindrawforcodex/03-O/C1.source/mindraw-plugin
  • Installed cache 路径存在:/Users/ar/.codex/plugins/cache/personal/mindraw/0.1.2+codex.20260708194340
  • Candidate root 路径存在:/Users/ar/Projects/Mindraw/P2.mindrawforcodex/03-O/C2.builds/MEXP15-SignedNotarizedDMG/mindraw-plugin-0.1.2+codex.20260708194340-M4C-EDC-04-20260708194915
  • Playwright 依赖使用 bundled runtime:/Users/ar/.cache/codex-runtimes/codex-primary-runtime/dependencies/node/node_modules

核心验证:

npm run --prefix /Users/ar/Projects/Mindraw/P2.mindrawforcodex/03-O/C1.source/mindraw-plugin check
npm run --prefix /Users/ar/.codex/plugins/cache/personal/mindraw/0.1.2+codex.20260708194340 check
diff -qr /Users/ar/Projects/Mindraw/P2.mindrawforcodex/03-O/C1.source/mindraw-plugin /Users/ar/.codex/plugins/cache/personal/mindraw/0.1.2+codex.20260708194340
shasum -a 256 /Users/ar/Projects/Mindraw/P2.mindrawforcodex/03-O/C2.builds/MEXP15-SignedNotarizedDMG/mindraw-plugin-0.1.2+codex.20260708194340-M4C-EDC-04-20260708194915/plugin/mindraw-plugin-0.1.2+codex.20260708194340-M4C-EDC-04-20260708194915.tar.gz

HTTP / sidebar smoke:

node /Users/ar/Projects/Mindraw/P2.mindrawforcodex/03-O/C1.source/mindraw-plugin/scripts/mindraw-canvas-service.mjs smoke-http --report /Users/ar/Projects/Mindraw/P2.mindrawforcodex/02-P/MEXP15-SignedNotarizedDMG/m4c-edc-04-smoke-http-source-20260708.json
PLAYWRIGHT_NODE_MODULES=/Users/ar/.cache/codex-runtimes/codex-primary-runtime/dependencies/node/node_modules node /Users/ar/Projects/Mindraw/P2.mindrawforcodex/03-O/C1.source/mindraw-plugin/scripts/mindraw-canvas-service.mjs smoke-sidebar --report /Users/ar/Projects/Mindraw/P2.mindrawforcodex/02-P/MEXP15-SignedNotarizedDMG/m4c-edc-04-smoke-sidebar-source-20260708.json --out /Users/ar/Projects/Mindraw/P2.mindrawforcodex/02-P/MEXP15-SignedNotarizedDMG/m4c-edc-04-sidebar-source

Candidate install-source syntax:

codex plugin marketplace add /Users/ar/Projects/Mindraw/P2.mindrawforcodex/03-O/C2.builds/MEXP15-SignedNotarizedDMG/mindraw-plugin-0.1.2+codex.20260708194340-M4C-EDC-04-20260708194915/plugin/install-source --json
codex plugin marketplace remove mindraw-mexp15-m4c-edc-04-20260708194915 --json

验证点:

  • HTTP smoke 中 first-run create bootstraps Mindraw app when createBlankPackage capability file is unavailableok=true,fallback method 为 macos.open.bundle.app
  • HTTP smoke 中 preview source-required state fails closed without READY or stale imageok=true,preview HTTP status 为 409
  • diff -qr source / installed 无输出。
  • tarball SHA256 等于 6b454025d4ce23bf0862e638cdc7b0ca9a9930901a9039fdeb97efa0bfca9795

清理 / 恢复:

  • 若临时添加了 candidate marketplace,使用:
codex plugin marketplace remove mindraw-mexp15-m4c-edc-04-20260708194915 --json

未决问题

  • crg-9f1b6d5a4c28 尚未由代码审核员回写 PASS 或等效结论。
  • CM1 fresh-machine 或 clean-user recheck 必须等 review handling 后由 PMO / QA / Owner 安排,当前记录不代表真实 GUI 路径复测结论。
  • Plugin-root SkillSpector 仍为 CAUTION / MEDIUM / score 21 / TM1,需 reviewer 按 smoke harness 上下文接受或要求修改。

后续建议

  • PMO 派发 REVIEW-M4C-EDC-04,Review Gate ID 使用 crg-9f1b6d5a4c28
  • Review handling 后,再基于 candidate 0.1.2+codex.20260708194340 安排 CM1 或 clean macOS user recheck。