# 2026-07-09 REVIEW-M4C-EDC-05 ## 用户目标 对 `M4C-EDC-05` 做正式代码复核,Review Gate ID 固定为 `crg-7b229c2a68c8`。本轮只审 m4c plugin source / installed cache / packaged candidate,不审 Mindraw App DMG / 签名 / 公证,不替代 CM1 fresh-machine 复测、QA、PMO Gate、用户验收或公开分发判断。 ## 已完成事项 - 读取并遵守项目入口、索引、MEXP15 台账、Review Request、Coder 自查、P2 入口 / CODEGRAPH,以及 code governance / user collaboration / agent skill security / session memory 规则。 - 只读复核 `M4C-EDC-05` 声明范围内的 source、installed cache 和 packaged candidate。 - 回写 `02-P/plan-progress.markdown`:`REVIEW-M4C-EDC-05` / Review Gate `crg-7b229c2a68c8=PASS`。 - 更新 `.codex-sessionhistory/COMMANDS.md`,记录本轮可复用验证命令入口。 ## 关键决策 - 代码复核结论:`PASS`。 - `SkillSpector` plugin-root `TM1` at `scripts/mindraw-canvas-service.mjs:6` 人工接受:相关 `fs/promises` imports 用于本地 smoke / report harness、临时目录、mock runtime / mock open command 与报告文件操作;正常 service API 未暴露任意文件写删入口。 - 剩余边界:P2 `C1.source/mindraw-plugin/` 仍是既有 untracked source snapshot,`C2.builds/*` 仍按边界被 `.gitignore` 忽略;本 PASS 不等于 source freeze、CM1 fresh-machine 复测、PMO Gate、用户验收或公开分发通过。 ## 核心事实 / 变更快照 - 变更对象:MEXP15 / `P-20260707-signed-notarized-dmg` 的 `REVIEW-M4C-EDC-05` 代码复核状态。 - 变更前:`REVIEW-M4C-EDC-05` 为 active / waiting code review,`M4C-EDC-05` 候选仍不能交给 Owner 复验。 - 变更后:Review Gate `crg-7b229c2a68c8=PASS`,可交回 PMO 准备新版 CM1 recheck kit / runbook。 - Candidate plugin:`0.1.3+codex.20260708220005`。 - Candidate tarball SHA256:`deefeaab12a4949052c6b154ca23d9e7b14a2f85bed9809a84efd3dfaab672c2`。 - Source / packaged relative tree list file SHA256:`6e4371e50568d2f9030077f5de7a24d9ce54489abe6111ffea2dbe4805b268be`。 - 核心行为:service URL 带 `?project=`,`/api/state` / `/api/preview` / `/api/open-edit` 校验 request project hash;`open-edit` 校验 latest canvas canonical path 在当前 project root 的 `MindrawCanvas/` 下;固定端口被异项目 / 未知 service 占用时跳到下一可用端口;preview source-required 仍 409 fail-closed。 ## 文件变更 - `02-P/plan-progress.markdown`:MEXP15 状态更新为 `Blocked / REVIEW-M4C-EDC-05 PASS / waiting CM1 recheck`,任务卡和 Progress Log 回写 `crg-7b229c2a68c8=PASS`。 - `.codex-sessionhistory/COMMANDS.md`:新增 `REVIEW-M4C-EDC-05 project-scoped preview service review` 索引。 - `.codex-sessionhistory/2026-07-09-REVIEW-M4C-EDC-05.md`:保存本轮审核记录。 ## 可复用命令 / Runbook 用途:复查 `M4C-EDC-05` source / installed cache / packaged candidate 一致性、SHA、validator、syntax check 与 smoke evidence。 前置条件:在 `/Users/ar/Projects/Mindraw` 下执行;candidate root 为 `/Users/ar/Projects/Mindraw/P2.mindrawforcodex/03-O/C2.builds/MEXP15-SignedNotarizedDMG/mindraw-plugin-0.1.3+codex.20260708220005-M4C-EDC-05-20260708221159/`;validator 需要本机已有 `/tmp/mindraw-m4c-validator-pyyaml`。 ```bash diff -qr /Users/ar/Projects/Mindraw/P2.mindrawforcodex/03-O/C1.source/mindraw-plugin /Users/ar/.codex/plugins/cache/personal/mindraw/0.1.3+codex.20260708220005 diff -qr /Users/ar/Projects/Mindraw/P2.mindrawforcodex/03-O/C1.source/mindraw-plugin /Users/ar/Projects/Mindraw/P2.mindrawforcodex/03-O/C2.builds/MEXP15-SignedNotarizedDMG/mindraw-plugin-0.1.3+codex.20260708220005-M4C-EDC-05-20260708221159/install-source/plugins/mindraw cd /Users/ar/Projects/Mindraw/P2.mindrawforcodex/03-O/C2.builds/MEXP15-SignedNotarizedDMG/mindraw-plugin-0.1.3+codex.20260708220005-M4C-EDC-05-20260708221159 && shasum -a 256 -c SHA256SUMS.txt 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.3+codex.20260708220005 check npm run --prefix /Users/ar/Projects/Mindraw/P2.mindrawforcodex/03-O/C2.builds/MEXP15-SignedNotarizedDMG/mindraw-plugin-0.1.3+codex.20260708220005-M4C-EDC-05-20260708221159/install-source/plugins/mindraw check PYTHONPATH=/tmp/mindraw-m4c-validator-pyyaml python3 /Users/ar/Projects/Mindraw/P2.mindrawforcodex/03-O/C2.builds/MEXP15-SignedNotarizedDMG/mindraw-plugin-0.1.3+codex.20260708220005-M4C-EDC-05-20260708221159/validate_plugin.py /Users/ar/Projects/Mindraw/P2.mindrawforcodex/03-O/C1.source/mindraw-plugin PYTHONPATH=/tmp/mindraw-m4c-validator-pyyaml python3 /Users/ar/Projects/Mindraw/P2.mindrawforcodex/03-O/C2.builds/MEXP15-SignedNotarizedDMG/mindraw-plugin-0.1.3+codex.20260708220005-M4C-EDC-05-20260708221159/validate_plugin.py /Users/ar/.codex/plugins/cache/personal/mindraw/0.1.3+codex.20260708220005 PYTHONPATH=/tmp/mindraw-m4c-validator-pyyaml python3 /Users/ar/Projects/Mindraw/P2.mindrawforcodex/03-O/C2.builds/MEXP15-SignedNotarizedDMG/mindraw-plugin-0.1.3+codex.20260708220005-M4C-EDC-05-20260708221159/validate_plugin.py /Users/ar/Projects/Mindraw/P2.mindrawforcodex/03-O/C2.builds/MEXP15-SignedNotarizedDMG/mindraw-plugin-0.1.3+codex.20260708220005-M4C-EDC-05-20260708221159/install-source/plugins/mindraw ``` 验证结果:上述 diff 无输出;candidate `SHA256SUMS.txt` 全部 `OK`;三处 `npm run check` 退出 0;三处 validator 在设置 `PYTHONPATH=/tmp/mindraw-m4c-validator-pyyaml` 后均通过。证据 JSON / Markdown 另显示 source / installed / packaged smoke、HTTP smoke、lifecycle、MCP、sidebar 报告均 `ok=true`,HTTP smoke 覆盖 mismatched sidebar context 409 和 preview source-required 409,lifecycle smoke 覆盖 stale fixed-port cross-project service 隔离,敏感扫描无匹配。 搜索关键词:`REVIEW-M4C-EDC-05`、`crg-7b229c2a68c8`、`MINDRAW_PROJECT_CONTEXT_MISMATCH`、`MINDRAW_PROJECT_CANVAS_SCOPE_MISMATCH`、`0.1.3+codex.20260708220005`。 ## 未决问题 - PMO 需要消费 `PM_NOTIFY_READY REVIEW-M4C-EDC-05 REVIEW_GATE=crg-7b229c2a68c8 RESULT=PASS`。 - PMO / QA / Owner 需要准备并执行包含 plugin `0.1.3+codex.20260708220005` 的新版 CM1 fresh-machine 或 clean user 复测。 - clean source freeze / 长期 artifact archival 仍归 PMO / m4c 后续处理。 ## 后续建议 - 不复用 `cm1-m4c-edc-04-recheck-kit-20260708` 作为串台修复复验包,因为其中 plugin 仍是 `0.1.2+codex.20260708194340`。 - 新 CM1 runbook 应显式要求记录 sidebar URL / project hash、service port、`/api/identity` 输出或等效证据,确认没有复用旧项目 service。