生成日期:2026-07-10
2026-07-07-QAEDC05复验.md2026-07-07-MEXP15QA执行.md:PMO 恢复派工 QA-EDC-04,要求 QA 基于 MD-EDC-02 已产出的 1.2.4 / Build202607071930 signed / notarized / stapled DMG,按已准备的验证矩阵执行普通用户路径验证,写入 QA validation report,回写统一台账,并回报 PMO。;边界:不改源码、构建脚本、候选包或发布材料;不记录 notary profile、Apple ID、password、API key、私钥、.p12 或 Keychain secret;如没有 fresh machine / clean macOS user,不得把本机普通 smoke 冒充跨机器验证。;读取并遵守 AGENTS.md、INDEX.md、02-P/plan-progress.markdown 的 P-20260707-signed-notarized-dmg、QA-EDC-04 验证矩阵、MD-EDC-02 自查 Markdown / JSON、Review Request crg-583d507f679。2026-07-07-MEXP15QA计划.md:PMO 派发 QA-EDC-04,要求先准备 signed / notarized DMG 的普通用户路径验证矩阵;等 MD-EDC-02 产出 artifact 和 Review Gate 结果后,再执行验证。当前不得自行打包、改代码或冒充已执行真实安装验证。;按入口顺序读取 AGENTS.md、INDEX.md、02-P/plan-progress.markdown 的 MEXP15 / MEXP14 / H8 相关段落。;读取 MEXP15 Round Spec、角色派工简报、H8 Developer ID / notarization 证据、H8 release metadata 证据、H8 fresh machine QA、MEXP14 fresh machine GUI 与 rollback 证据。2026-07-07-MEXP15门禁收敛.md:用户要求进入 goal 工作模式,以“生成普通用户可用的 signed / notarized DMG”为目标,PMO 负责整理 TODO、派工和收敛各角色回报。;建立 MEXP15 计划项 P-20260707-signed-notarized-dmg,目标版本口径为 1.2.4 / Build20260707HHMM。;派发并消费:2026-07-07-MEXP15首启阻塞派工.md:用户在测试机复验 MEXP15 signed / notarized DMG 后反馈:侧边栏画面无法正常显示,点击 编辑 / Edit 也无法启动 Mindraw App;但如果用户手动启动 Mindraw,侧边栏画面又恢复正常。项目目标仍是把产品推进到足够成熟,能够面向普通用户推广使用。;变更对象:P-20260707-signed-notarized-dmg 的 fresh-machine 验证状态与 PMO 派工状态。;事实来源:2026-07-07-QAEDC05复验.md:PMO 派工 QA-EDC-05,要求 QA 复验 M4C-EDC-03 修复后的 fresh-machine / clean-user 用户路径,确认上一轮用户实测 blocker 是否解除:Mindraw App 未手动启动时,Codex sidebar 的 Edit / 双击是否能对已有 latest-created .mindraw package 拉起 Mindraw;保存后 side...;边界:不改 Mindraw App source、m4c plugin source、installed cache、build scripts、package metadata 或 candidate artifacts;不输出或记录 Apple ID、password、API key、private key、.p12、Keychain profile、token 或其他 secret。;按顺序读取 AGENTS.md、INDEX.md、MEXP15 台账、QA-EDC-05 续派简报、QA-EDC-04 plan / partial report、用户 fresh path blocker、MD-EDC-03 App 侧诊断、M4C-EDC-03 修复证据 / JSON / review request。/Users/ar/Projects/Mindraw/02-P/plan-progress.markdown/Users/ar/Projects/Mindraw/02-P/pmo-active-assignments.json/Users/ar/Projects/Mindraw/02-P/MEXP14-ExternalDistributionCandidate/pm/mexp14-round-spec-20260706.md/Users/ar/Projects/Mindraw/02-P/MEXP14-ExternalDistributionCandidate/pm/mexp14-role-dispatch-briefs-20260706.mdP-20260706-external-distribution-candidate,拆分产品、设计、架构、Mindraw App、m4c plugin、代码审核、QA、运营和 PMO Gate 任务。02-P/plan-progress.markdown 的 P-20260706-external-distribution-candidate、MEXP14 Round Spec、MEXP14 角色派工简报、既有 02-P/ui/design-spec.md。02-P/ui/design-spec.md 主要覆盖 MEXP13 内部 sidebar / App 行为,并明确不覆盖正式 installer / release / notarized package 用户引导。External Distribution Candidate UX Notes,覆盖候选语义、外部说明截图清单、first-run / install 可见性、sidebar READY / loading / blocked / source required / stale / document mismatch / target unsupported / edit handoff / save re...rg 核对新增设计段落、DESIGN-EDC-01 台账勾选和 Progress Log 均已存在。READY 只能表达当前 sidebar preview source 可用,不能被解释为正式发布、跨机器验收完成或 target link 已支持。02-P/MEXP14-ExternalDistributionCandidate/ops/ops-edc-01-distribution-kit-template-20260706.md02-P/plan-progress.markdown02-P/MEXP14-ExternalDistributionCandidate/pm/mexp14-round-spec-20260706.mdINDEX.mdqa/ 目录;OPS-EDC-01 状态为 assigned,没有运营安装 / 校验 / 回滚材料模板。qa_result=BLOCKED_PENDING_PREPARED_MACHINE。PM_NOTIFY_READY=yes,含义是 QA-EDC-03 报告和阻塞条件已经可供 PMO 收敛,不代表 QA PASS、PMO Gate、发布或用户验收通过。/Applications/Mindraw.app,因为当前机器不是 prepared rollback target,且已经安装 rollback baseline。PASS_WITH_LIMITS;M4C-EDC-02 已记录无 previous external plugin baseline 并采用 remove-only policy,但该记录仍待 Review Gate crg-941a537b8e13 / PMO 接受,Codex Desktop GUI removal 未覆盖。QA-EDC-03 App rollback 与剩余真实环境风险状态。02-P/MEXP14-ExternalDistributionCandidate/qa/qa-edc-03-rollback-and-residual-risk-20260707.md02-P/plan-progress.markdownMindraw_1.2.3_aarch64-Build202607061556.dmg3b17b89461374621c80d127e6475e6de502031486201f672f7fc4fde57e744a8Mindraw_1.2.3_aarch64-Build202607042351.dmg5c8041288a61f8c09e7bf0ca8a0bcd68b55d17e5aaa1079eb8d7864a952481b5mindraw-plugin-0.1.0+codex.20260704090518-EDC20260706154843.tar.gzee06e91a866049b6a8062367f77fc659aa3c3c9f5638f7b0c2b61ad8e14aa2f1/Users/ar/Downloads/mindraw-edc-rollback-test-kit-20260707.zip262980ce8704fed8e03d5130114b1cbcab7a4e6f462cd67afbc3c775ad4b3569PM-EDC-REGATE-02 结论为 BLOCKED_PENDING_PREPARED_ROLLBACK_MACHINE。Build202607061556 且允许替换 /Applications/Mindraw.app 的测试机器上实证。/Applications/Mindraw.app 回到 1.2.3 / Build202607042351,且 codesign 验证通过。Edit 可拉起 App。Build202607061556 SHA256:OKBuild202607042351 SHA256:OKOKhdiutil verify:VALIDhdiutil verify:VALID/Applications/Mindraw.app:1.2.3 / Build202607061556codex plugin list:可见 mindraw@mindraw-mexp14-edc-20260706154843 installed, enabled/Users/ar/.codex/attachments/685c3064-c5fb-46bf-bd92-14bbed1259de/pasted-text.txt02-P/MEXP14-ExternalDistributionCandidate/qa/user-fresh-machine-gui-path-20260707/codex-sidebar-ready-save-refresh.png02-P/MEXP14-ExternalDistributionCandidate/qa/user-fresh-machine-gui-path-20260707/mindraw-app-open-edit.png02-P/MEXP14-ExternalDistributionCandidate/qa/user-fresh-machine-plugin-cli-install-20260707.mdCONTROLLED_CANDIDATE_ONLY:当前 App 是 ad-hoc signed、DMG unsigned、not notarized,只能按受控候选表达;若扩大到普通外部用户或自助安装,需要另拆 MD-EDC-02。remove-only rollback,因为没有上一版外部分发 plugin baseline;该结论已由 crg-941a537b8e13=PASS 覆盖到代码复核层面。C2.builds/* 不进 Git。Build202607061556 且可安全替换 /Applications/Mindraw.app 的 prepared fresh / clean machine。因此 PMO 组合扎口结论为 BLOCKED_PENDING_PREPARED_ROLLBACK_MACHINE。1.2.3 / Build20260706155603-O/C2.builds/releases/Build202607061556/Mindraw_1.2.3_aarch64-Build202607061556.dmg3b17b89461374621c80d127e6475e6de502031486201f672f7fc4fde57e744a802-P/MEXP14-ExternalDistributionCandidate/ops/ops-edc-02-signing-notarization-rollback-policy-20260707.md02-P/plan-progress.markdown02-P/MEXP14-ExternalDistributionCandidate/pm/mexp14-governance-closure-20260707.md02-P/MEXP14-ExternalDistributionCandidate/qa/qa-edc-02-external-distribution-check-20260706.md02-P/MEXP14-ExternalDistributionCandidate/qa/user-fresh-machine-gui-path-20260707.md/private/tmp/mindraw-md-edc-02-signed-notarized-20260707/03-O/C2.builds/releases/Build202607071930/Mindraw_1.2.4_aarch64-Build202607071930.dmg5a053f02910463507879b42bb63445810eae3bfb2a9730c65f753e32e5d74df3/private/tmp/mindraw-md-edc-02-signed-notarized-20260707/03-O/C2.builds/releases/Build202607071930/release-manifest.json1c9af6795bb239f3d92d84bd864e7df524845683219de37d6c021f8cdeb20931583d507f679866f670b4fec82f1e631d4a9dbf54v1.2.4-build20260707.1930-mexp15-signed-notarizedfc55d6cb-140e-4915-889f-d8f1c0a48662 / AcceptedPARTIAL QA-EDC-04 WAITING_FOR_FRESH_MACHINE_OR_USER_OPERATION。/Applications/Mindraw.app 的验证动作。QA-EDC-04 状态与证据链。02-P/MEXP15-SignedNotarizedDMG/qa/qa-edc-04-signed-notarized-dmg-validation-report-20260707.md02-P/MEXP15-SignedNotarizedDMG/qa/qa-edc-04-signed-notarized-dmg-validation-report-20260707.json02-P/plan-progress.markdownPARTIAL QA-EDC-04 WAITING_FOR_MD_EDC_02_ARTIFACT。MD-EDC-02 signed / notarized DMG、自查报告 / JSON、Review Request、concrete Review Gate ID,以及 REVIEW-EDC-03 对同一 Gate ID 的结论或 PMO 明确允许的受限验证指令。/Applications/Mindraw.app。QA-EDC-04 signed / notarized DMG QA 状态。02-P/MEXP15-SignedNotarizedDMG/qa/qa-edc-04-signed-notarized-dmg-validation-plan-20260707.mdP-20260707-signed-notarized-dmgcrg-583d507f679/private/tmp/mindraw-md-edc-02-signed-notarized-20260707583d507f679866f670b4fec82f1e631d4a9dbf54b694a42d46fd02dcd6873e1f3f2406d3166fb28a1.2.4 / Build202607071930MD-EDC-02 状态:blockednotarytool history 返回 Keychain password item missing。P-20260707-signed-notarized-dmg 的 fresh-machine 验证状态与 PMO 派工状态。02-P/MEXP15-SignedNotarizedDMG/qa/user-fresh-machine-sidebar-bootstrap-blocker-20260707.md02-P/MEXP15-SignedNotarizedDMG/qa/user-fresh-machine-sidebar-bootstrap-blocker-20260707.png02-P/plan-progress.markdown02-P/pmo-active-assignments.jsonGO_FOR_USER_RECHECK / NO_GO_FOR_PUBLIC_RELEASE_WITHOUT_FRESH_MACHINE_EVIDENCE。PARTIAL QA-EDC-05 WAITING_FOR_OWNER_OPERATION。QA-EDC-05 状态和证据链。02-P/MEXP15-SignedNotarizedDMG/qa/qa-edc-05-fresh-machine-recheck-report-20260707.md02-P/MEXP15-SignedNotarizedDMG/qa/qa-edc-05-fresh-machine-recheck-report-20260707.json02-P/plan-progress.markdown2026-06-24-Cate参考归档.md2026-06-24-Cate架构分析.md2026-06-24-Mindraw唯一真相.md2026-06-24-mindrawforcodex计划.md2026-06-24-mindraw定义启动.md2026-06-24-mindraw格式分期计划.md2026-06-24-mindraw格式面向未来路线图.md2026-06-24-mindraw脚本能力.md2026-06-25-Mindraw080冻结.md2026-06-25-Mindraw另存.md2026-06-25-Mindraw实现.md2026-06-25-Mindraw导出.md2026-06-25-Mindraw导出smoke.md2026-06-25-Mindraw拖放.md2026-06-25-Mindraw深链.md2026-06-25-Mindraw深链收口.md2026-06-25-Mindraw选择.md2026-06-25-Mindraw验证.md2026-06-25-P0样例生成.md2026-06-25-P1-Txtflowy改名.md2026-06-25-Phase36原生包.md2026-06-25-Round01复核.md2026-06-25-Round01开工评审.md2026-06-25-Round01文档建设.md2026-06-25-Txtflowy批次2对照.md2026-06-25-Txtflowy独立仓迁移.md2026-06-25-Txtflowy脱钩执行.md2026-06-25-Txtflowy脱钩迁移方案.md2026-06-25-Txtflowy迁移评估-01.md2026-06-25-Txtflowy迁移评估-02.md2026-06-25-Txtflowy迁移评估.md2026-06-25-Txtflowy问答备注.md2026-06-25-codegraph初始化.md2026-06-25-m4c依赖回流.md2026-06-25-mindraw全局链接影响.md2026-06-25-plan进度规则.md2026-06-25-会话复制迁移-01.md2026-06-25-会话复制迁移.md2026-06-25-全局链接需求.md2026-06-25-目录包Spike.md2026-06-25-竞品需求资料库.md2026-06-25-阶段35收口审计.md2026-06-26-083双击热修.md2026-06-26-AI需求文档.md2026-06-26-AI需求语义-01.md2026-06-26-AI需求语义-02.md2026-06-26-AI需求语义-03.md2026-06-26-AI需求语义-04.md2026-06-26-AI需求语义.md2026-06-26-MDH101生产设计.md2026-06-26-MDH102只读API.md2026-06-26-MDH103租约.md2026-06-26-MDH104写入.md2026-06-26-MDH105真实QA.md2026-06-26-Phase361收尾.md2026-06-26-Phase372DoctorPOC.md2026-06-26-Phase373CleanQA.md2026-06-26-Phase37分发契约.md2026-06-26-Phase38LeaseSpike.md2026-06-26-Phase38实现方案.md2026-06-26-Round02回填.md2026-06-26-Round04工程收口.md2026-06-26-Round04语义收口.md2026-06-26-Round05Alpha.md2026-06-26-inline-target统一.md2026-06-26-m4cRound04回流.md2026-06-26-m4c代码冻结.md2026-06-26-m4c联调总台账.md2026-06-26-代码冻结Phase38.md2026-06-26-任务领取防错.md2026-06-26-会话保存.md2026-06-26-全局防错规则.md2026-06-26-内联样式回归.md2026-06-26-回归测试基线-01.md2026-06-26-回归测试基线.md2026-06-26-总台账合并.md2026-06-26-文档治理迁移.md2026-06-26-模板治理讨论.md2026-06-26-结构规划回归.md2026-06-26-编辑行为回归.md2026-06-26-跨项目联调总Todo.md2026-06-26-高亮加粗回归.md2026-06-27-MDH506就绪.md2026-06-27-MDH601AssetStore.md2026-06-27-MEXP01体验包.md2026-06-27-MEXP01冻结-01.md2026-06-27-MEXP01冻结-02.md2026-06-27-MEXP01冻结判断.md2026-06-27-MEXP01布局复核.md2026-06-27-MEXP01本机演示.md2026-06-27-MEXP01演示准备.md2026-06-27-MEXP01视觉修正.md2026-06-27-MEXP01路径修正.md2026-06-27-MEXP02m4c收口.md2026-06-27-MEXP02写回smoke.md2026-06-27-MEXP02安装版.md2026-06-27-MEXP02标准capability.md2026-06-27-PMH5CanonicalRecheck.md2026-06-27-PMMEXP01Gate.md2026-06-27-PM流程纠偏.md2026-06-27-联调可视化.md2026-06-28-MEXP02Gate.md2026-06-28-MEXP03Gate.md2026-06-28-MEXP03内置AI-01.md2026-06-28-MEXP03内置AI.md2026-06-28-MEXP03启动.md2026-06-28-MEXP03用户验收.md2026-06-28-MEXP04PMGate.md2026-06-28-MEXP04二补.md2026-06-28-MEXP04安全写回.md2026-06-28-MEXP04补修.md2026-06-28-MEXP05PMGate-01.md2026-06-28-MEXP05PMGate.md2026-06-28-MEXP05亲测等待-01.md2026-06-28-MEXP05亲测等待.md2026-06-28-MEXP05亲测阻塞.md2026-06-28-MEXP05冻结.md2026-06-28-MEXP05安全读取.md2026-06-28-MEXP05父目录竞态.md2026-06-28-MEXP05补修.md2026-06-28-MEXP05资产权威化.md2026-06-28-MEXP05验收通过.md2026-06-28-MEXP06PMGate.md2026-06-28-MEXP06冻结.md2026-06-28-MEXP06分发候选.md2026-06-28-MEXP06验收.md2026-06-29-MEXP08A-Stitch阻塞.md2026-06-29-MEXP08A上下文门禁.md2026-06-29-MEXP08A默认入口.md2026-06-30-MEXP08B-PM-Gate.md2026-06-30-MEXP08B-m4c复跑-01.md2026-06-30-MEXP08B-m4c复跑.md2026-06-30-MEXP08B-m4c收口.md2026-06-30-MEXP08B写回.md2026-06-30-MEXP08B启动.md2026-06-30-MEXP08B能力刷新.md2026-06-30-MEXP08B验收.md2026-06-30-里程碑路线图.md26.0630-P1-Txtflowy.收口治理-060最终收口.md2026-07-01-MEXP09BGoal.md2026-07-01-MEXP09BPMGate.md2026-07-01-MEXP09B像素payload.md2026-07-01-MEXP09B像素消费.md2026-07-01-MEXP09B阻断与MEXP10暂停.md2026-07-01-MEXP09Runtime.md2026-07-01-MEXP09价值包.md2026-07-01-MEXP09价值包PMGate.md2026-07-01-MEXP09监控关闭.md2026-07-01-MEXP09视觉Gate.md2026-07-01-MEXP09视觉上下文-01.md2026-07-01-MEXP09视觉上下文-02.md2026-07-01-MEXP09视觉上下文.md2026-07-01-MEXP09验收通过.md2026-07-01-MEXP10PMGate.md2026-07-01-MEXP11PMGate.md2026-07-01-MPCL生命周期收口.md2026-07-01-SkillSpector修复.md2026-07-02-MEXP12到13.md2026-07-02-MEXP13Gate1.2.2.md2026-07-02-MEXP13PMGate.md2026-07-02-MEXP13侧栏入口失败.md2026-07-02-MEXP13刷新包-01.md2026-07-02-MEXP13刷新包.md2026-07-02-MEXP13复验包.md2026-07-02-MEXP13复验失败-01.md2026-07-02-MEXP13复验失败派工.md2026-07-02-MEXP13显式入口.md2026-07-02-MEXP13补派m4c.md2026-07-02-MEXP13预览修复.md2026-07-02-MEXP13预览失败.md2026-07-02-MEXP13验收包.md2026-07-02-MSPP预览收口.md2026-07-05-MEXP13组合复验.md2026-07-06-MEXP13冻结.md2026-07-06-MEXP13复验成功.md2026-07-06-MEXP14-QAEDC02.md2026-07-06-MEXP14-QA计划.md2026-07-06-MEXP14QA回报收口.md2026-07-06-MEXP14产品口径.md2026-07-06-MEXP14复核派工.md2026-07-06-MEXP14外部分发派工.md2026-07-06-MEXP14设计检查.md2026-07-06-MEXP14运营材料.md2026-07-07-MEXP14-QAEDC03.md2026-07-07-MEXP14回滚包.md2026-07-07-MEXP14回滚扎口.md2026-07-07-MEXP14回滚预检.md2026-07-07-MEXP14新机验证.md2026-07-07-MEXP14治理收口.md2026-07-07-MEXP14运营收口.md2026-07-07-MEXP15PMOGate.md2026-07-07-MEXP15QA执行.md2026-07-07-MEXP15QA计划.md2026-07-07-MEXP15门禁收敛.md2026-07-07-MEXP15首启阻塞派工.md2026-07-07-QAEDC05复验.md/Users/ar/Projects/ExcalidrawX/01-I/X-参考-cafe/ 下,便于 Mindraw 后续长期参考。01-I/X-参考-cafe/ 下新增 cate-538db77/ 归档目录。cate-538db77/source-key-files/。404: Not Found 占位文件,只保留真实源码/配置/README 文件。cate-538db77/analysis/cate-canvas-heterogeneous-app-analysis.md。cate-538db77/README.md,说明来源、commit 基线、内容范围和使用方式。0-AI-UG/cate 的技术结构,重点解释它如何把浏览器、终端等内在结构不同的应用放在同一张画布上展现,并输出为一份带详细结构图的项目文档,为 Mindraw 后续增强画布元素能力提供参考。main 分支 commit 538db77b1c8734fe6d9af45213dd48417625c49d,版本 1.3.2。PanelState、CanvasNodeState、DockLayoutNode、Panel registry、CanvasPanel、CanvasNode、TerminalPanel、BrowserPanel、终端 IPC 和浏览器 session/proxy 结构。INDEX.md。02-P/architecture/cate-canvas-heterogeneous-app-analysis.md,因为它属于后续 Mindraw 架构判断和技术路径参考。.mindraw 本地包格式中的唯一真相规则,避免未来出现画布结构、资产索引、图片文件和 AI 任务记录互相冲突。.mindraw 文件被官方 Excalidraw 原样打开。mindrawforcodex,定位类似 Cowart,但采用 Mindraw 本地文件优先的产品路线。用户要求把此前讨论的重要决议点、详细分期计划整理成稳定文档,并把 Cowart 源码和架构分析材料归档到 p.mindrawforcodex/01-I/。mindrawforcodex 工作计划文档。p.mindrawforcodex/01-I/。/private/tmp/cowart 移动到 p.mindrawforcodex/01-I/cowart-source/。INDEX.md,登记 p.mindrawforcodex/ 作为 Mindraw for Codex 插件计划入口。.mindraw 自定义格式建设方案和分期计划落成正式 Markdown 文档,更新到:/Users/ar/Projects/ExcalidrawX/02-P/plan.markdown/Users/ar/Projects/ExcalidrawX/02-P/Round01-mindraw-defstart/.mindraw 自定义格式建设方案和分期计划追加到 02-P/plan.markdown。.mindraw 文件格式设想:.mindraw 本质上应像一个文件夹/包。.assets 文件夹,用于保存图片等附件。.assets,降低画质损失。App.tsx,整体布局为 Sidebar + ExcalidrawEditor。@excalidraw/excalidraw。.excalidraw 文档。.mindraw 前四期路径后,要求更新已经写好的计划和过程文档。02-P/plan.markdown 中补充 Phase 5.5:Automation / Script Engine Spike。ADR-001-mindraw-format-contract.md 中补充 scripts / automation 的架构位置、安全原则和不做范围。manifest-schema-draft.md 中补充 automation.scripts 远期扩展字段草案。compatibility-matrix.md 中补充 Automation / scripts 的降级导出策略和兼容策略。fixtures-plan.md 中补充未来 automation 占位包 fixture 设计。0.8.0,Build 为 Build202606252106。/Users/ar/Projects/ExcalidrawX/03-O/C2.builds/releases/Build202606252106/Mindraw_0.8.0_aarch64-Build202606252106.dmg.mindraw Phase 2:在普通原生 Save As 面板无法直接创建 .mindraw 目录包后,补齐可真实使用的显式 .mindraw 另存路径。仍不进入 macOS package 注册、全局链接 runtime 或完整生产迁移。save_mindraw_package_as,使用 Mindraw save panel filter,并把非 .mindraw 选择路径归一为 .mindraw。ensure_mindraw_save_path() 和对应 Rust 单测,覆盖无扩展/错误扩展时的 .mindraw 路径归一。saveCurrentFileAsMindrawPackage(),接入 File > Save As Mindraw Package... 菜单命令。.mindraw 包路径。原名 copy.mindraw,避免从 Source.excalidraw 另存到同目录时 macOS save panel 因同 basename 源文件禁用 Save。.mindraw 格式建设;当前重点是不要停留在 Tauri 目录包 spike,而是向“Mindraw 格式 + 全局链接”目标继续开工。.mindraw Phase 1/2 初始生产实现:.excalidraw 文件和 .mindraw 目录包。.mindraw 包内 drawing.excalidraw / .assets/* 作为独立文档打开。.mindraw 包调用后端 read_mindraw_package。.mindraw tab 调用后端 save_mindraw_package。.mindraw 基本可用,当前阶段补 Phase 3:.mindraw 导出标准 .excalidraw 和 Obsidian .excalidraw.md,不提前做 mindraw:// 全局链接 runtime。File > Export as Excalidraw... 菜单项。exportCurrentFileAsExcalidraw(),从当前 active Tab flush 后的 Excalidraw 内容导出标准 .excalidraw,导出后不接管当前 Tab。export_excalidraw_file,校验 Excalidraw JSON,保存面板只使用 .excalidraw filter,并把输出路径归一为 .excalidraw。Board.mindraw 建议导出为 Board.excalidraw.md。.mindraw 当前 Tab 导出 .excalidraw / .excalidraw.md、active Tab 不变、路径归一和建议名净化。.mindraw 基本可用;在 Phase 3.5 推进过程中,顺手补齐 Phase 3 里此前因本机安装版 bundle id 冲突而未签 PASS 的完整保存面板导出 smoke。.app 复制生成临时唯一 bundle id QA app:/Applications/MindrawExportQA-*.app,未覆盖正式 /Applications/Mindraw.app。single-image.mindraw fixture 生成临时测试包 /tmp/mindraw-phase3-export-smoke/ExportBoard.mindraw。mindraw://open?documentId=mdoc_fxt_single_image_2V8C5N1Q9L4B7S6D 打开测试包;首次冷启动 URL 未被前端接到,第二次热启动投递成功。File > Export as Excalidraw... 真实系统保存面板导出标准 .excalidraw。File > Export as Obsidian Excalidraw... 真实系统保存面板导出 .excalidraw.md。.mindraw Phase 2:验证并补齐 Tauri 目录包相关的选择、打开、保存、watch、拖放、路径校验和失败态,不进入全局链接 runtime 或 macOS package 注册。.mindraw 包或 .excalidraw 文件,先按文档打开;同批图片路径不再继续导入。getSupportedDroppedDocumentPaths() 保留顶层 .mindraw / .excalidraw,拒绝 .mindraw/drawing.excalidraw 内部路径并去重。openDroppedDocuments() 打开 .mindraw 包,且不会触发图片导入。.mindraw 基本可用,进入 Phase 3.5:验证本机 mindraw:// Global Link / Deep Link,让从任意位置点击链接打开 Mindraw 文件成为可实现路径。@tauri-apps/plugin-deep-linktauri-plugin-deep-linksrc-tauri/capabilities/default.json 增加 deep-link:defaultsrc-tauri/tauri.conf.json 增加 plugins.deep-link.desktop.schemes = ["mindraw"]/Applications/Mindraw.app,且不要求恢复旧安装版。.mindraw 的全局链接在本机基本可用,尤其是系统入口、浏览器、Finder 和 Markdown 文档入口。Copy link to object 的规范输出从 mindraw://open?documentId=...&element=... 改为 mindraw://localhost?documentId=...&elementId=...。mindraw://open?... 格式的兼容解析。.app 并覆盖 /Applications/Mindraw.app,bundle id 为 com.mindraw.desktop,scheme 为 mindraw。.mindraw 格式推进;本轮聚焦 Phase 2 剩余的目录包选择、系统打开边界和失败态状态保护。openDirectoryOrDocument() store 入口:loadDirectory()。.mindraw 路径按文档打开,调用 read_mindraw_package,随后加载父目录,避免浏览包内部。Open Directory、快捷键 Cmd/Ctrl+O、侧边栏目录选择按钮均接入 openDirectoryOrDocument()。.mindraw Phase 2 的 Tauri 目录包验证:选择、打开、保存、watch、路径校验和失败态;不进入全局链接实现,不提前 Phase 3.5。.mindraw Phase 1/2 初始生产实现的文件树操作一致性:.mindraw 文件树显示标题不再暴露扩展名。.mindraw 重命名保持 .mindraw 扩展和文档 kind。.mindraw 删除按目录包整体删除。.mindraw 格式定义工作,生成第一批 P0 fixtures,并补齐可复核的预期结果、包结构快照和 SHA-256 证据。minimal-empty.mindrawsingle-image.mindrawmissing-asset.mindrawdamaged-manifest.mindraw0.6.0 clean extraction 收尾工作。Txtflowy 正式改名为 P1-Txtflowy。AnyBlock 的活跃链路完全脱钩,并确保独立源码继续由自己的 Git 仓库管理。P1-Txtflowy/ 现在是唯一有效的独立源码物理根。archive/any-block-fork/ 继续保留为历史基线,不重新接回活跃运行链路。Phase 3.6:Native Package & Link Recovery,要求不要停在 Finder 显示为文件夹、全局链接找不到 documentId 的半成品状态,而是继续把 .mindraw 的 macOS 原生文件体验和链接恢复补上。0.8.1,用于承载 Phase 3.6 修复。src-tauri/Info.plist,补齐 .mindraw 的 macOS document type / UTI 声明:com.mindraw.documentLSTypeIsPackage = truecom.apple.package 与 public.directory.mindraw 格式定义工作是否可以进入 fixtures / Tauri 目录包 spike。02-P/plan-progress.markdown 和 INDEX.md。02-P/Round01-mindraw-defstart/first-batch-review.md。02-P/Round01-mindraw-defstart/README.md,登记 R01-07 复核文档,并把下一步调整为先生成 P0 fixtures。02-P/plan-progress.markdown,追加复核 Progress Log,并把后置问题更新为 P0 fixtures 先行、Tauri 目录包 spike 后置。Round01-mindraw-defstart 当前状态进行小会评审,判断 Round01 是否具备开工条件。.mindraw 格式规划开始推进。用户明确确认 7 项前置决策:Board.mindraw/manifest.json、Board.mindraw/drawing.excalidraw、Board.mindraw/.assets/。.assets 第一版只是镜像/资产池,drawing.excalidraw 中的 files.dataURL 仍是运行时和导出安全底座。documentId MVP 必填,不包含用户名、路径等隐私信息;另存为新 .mindraw 包默认生成新的 documentId。0.6.0 Batch 2。txtflowy 自身直接相关的最小刷新能力。0.6.0 Batch 2 在“源码对照层”视为已完成,后续重点应转向真实环境回归而不是继续搬运 AnyBlock 壳层。Txtflowy 物理改名为 P1-Txtflowy。Txtflowy 内部整理成干净、独立、可单独 Git 管理的插件工程。Txtflowy -> P1-Txtflowy 物理改名。Txtflowy 与 AnyBlock 完全脱钩的迁移工作。Txtflowy/.gitignoreTxtflowy/package.jsonTxtflowy/manifest.jsonTxtflowy 迁移方案。Txtflowy 最终必须与 AnyBlock 完全脱钩。Txtflowy 插件源码、构建、文档、发布和 Git 管理体系/Users/ar/Projects/ExcalidrawX/Txtflowy 重命名为 /Users/ar/Projects/ExcalidrawX/P1-Txtflowy,并把 Txtflowy 源代码独立管理到 /Users/ar/Projects/ExcalidrawX/P1-Txtflowy/src;重点关注实现复杂度、潜在回归、脚本/构建/版本文件/复制流程影响,并给...INDEX.md、02-P/plan-progress.markdown,确认 Txtflowy/ 被主项目视为独立子项目。Txtflowy/ 整体当前未纳入外层 Git 跟踪。Txtflowy/any-block/,且该目录是指向上游 any-block 的独立嵌套 Git 仓库。/Users/ar/Projects/ExcalidrawX/Txtflowy 重命名为 /Users/ar/Projects/ExcalidrawX/P1-Txtflowy/Users/ar/Projects/ExcalidrawX/P1-Txtflowy/src~/.codex/AGENTS.mdTxtflowy 是否适合重命名为 P1-Txtflowy,并判断是否应把源码独立收敛到 P1-Txtflowy/src;重点检查 Git 边界、any-block/.git 嵌套仓、构建入口、Obsidian 本地安装复制路径,以及文档 / 原型 / requirements 与代码目录的关系。INDEX.md、CODEGRAPH.md、02-P/plan-progress.markdown 与研发规则。Txtflowy 当前 Git 边界:父仓根是 /Users/ar/Projects/ExcalidrawX,Txtflowy/ 当前未被父仓纳管。Txtflowy/any-block 是独立 Git 仓库,当前分支 Txtflowy,远端是 https://github.com/any-block/any-block.git。Txtflowy/any-block/src/...,顶层 Txtflowy/src/ 为空目录。any-block/package.json 进入 src/Obsidian/package.json,产物输出到 any-block 根目录的 manifest.json、main.js、styles.css。答:... 自动识别为上一节点备注”纳入 Txtflowy 产品规则。目标是修复 Obsidian 日记文件中 AI 问答记录的渲染问题:问题作为节点,回答作为幕布式浅灰备注。/Users/ar/Downloads/Syn/Ob/Ob.bobo/X0.Diary/26.0625.md,确认回答行写法为列表项续行 答:...,不是当前已支持的 > 备注。ListProcess.splitTxtflowyNote() 增加问答续行备注识别:答: 或 答: 开头时识别为备注。- 答:... 仍然保留为普通节点标题。0.5.20。/Users/ar/.codex/AGENTS.md 和项目根目录 AGENTS.md,再继续检查 Mindraw 主项目是否已有 CODEGRAPH.md;如果没有,则按规则初始化,并确保 CODEGRAPH.md 纳入 Git 管理范围。/Users/ar/.codex/AGENTS.md 和项目根 AGENTS.md。code-governance.md、work-continuity.md、session-memory.md 和项目 INDEX.md。CODEGRAPH.md;唯一既有 CODEGRAPH.md 位于 p.mindrawforcodex/03-O/C1.source/CODEGRAPH.md,属于独立子项目。CODEGRAPH.md,记录稳定模块、核心文件、入口符号、依赖关系、关联测试、受保护行为、修改前阅读路线和验证入口。02-P/plan-progress.markdown 中 Phase 4 AssetStore 完成。02-P/plan-progress.markdown。AssetStore 外置资产权威化,状态为 Backlog。0.8.1,并记录 0.8.1 已有 macOS .mindraw package registration 事实。/Users/ar/Projects/ExcalidrawX/.codex-sessionhistory/2026-06-25-全局链接需求.md,判断全局链接需求是否影响 .mindraw 路线;如果影响,则更新相关文档,没必要则不改。Phase 3.5:Global Link / Deep Link Addressing Spike。.mindraw manifest 建议 MVP 即生成稳定 documentId。documentId + element id / anchor id,降低文件移动或改名后的断链风险。02-P/plan.markdown 改名为 02-P/plan-progress.markdown,要求该文件成为每个 plan 事项的提前规划、执行过程 progress、最终完成记录的统一入口;同时扫描历史文档,按当前事实更新内容,并把项目全局规则和相关索引同步更新,确保后续每轮有成果都更新 progress。Txtflowy/。02-P/plan-progress.markdown 为计划与进展台账,包含记录规则、当前事实基线、已完成历史基线、Active 事项、Backlog 事项和 p.mindrawforcodex 交叉引用。AGENTS.md,声明 02-P/plan-progress.markdown 为主项目计划与进展统一入口,旧 plan.markdown 停用。INDEX.md,把查找入口和 02-P 当前文件改为 plan-progress.markdown。/Users/ar/Projects/langmei/codex会话复制迁移经验.md,复制源 Codex 会话 019e71ca-8e03-75e0-918b-e80d97ecdf67,新会话命名为 Coder2@Txtflowy,工作目录改为 /Users/ar/Projects/ExcalidrawX/Txtflowy,并且只保留两段内容:2026-06-01 03:06:00 ...~/.codex/state_5.sqlite、~/.codex/sessions/.../rollout-*.jsonl 与 ~/.codex/session_index.jsonl。019efeab-8b41-7984-907b-f4b0671ad725。/Users/ar/.codex/sessions/2026/06/25/rollout-2026-06-25T20-05-15-019efeab-8b41-7984-907b-f4b0671ad725.jsonl。threads 与 thread_dynamic_tools 记录,并补了一条 sidebar 索引。cwd 改写、compacted 清洗和 Git 元数据都符合预期。/Users/ar/Projects/langmei/codex会话复制迁移经验.md,按其中经验复制源 Codex 会话 019e71ca-8e03-75e0-918b-e80d97ecdf67,新会话命名为 Coder@m4c号,工作目录保持 /Users/ar/Projects/ExcalidrawX,并排除 2026-06-15 12:17 以前的内容。state_5.sqlite 的 threads 记录和 sessions/.../rollout-*.jsonl。/Users/ar/.codex/state_5.sqlite。019efd0e-ae6e-7331-9a51-82906bb2c5cd。/Users/ar/.codex/sessions/2026/06/25/rollout-2026-06-25T12-34-18-019efd0e-ae6e-7331-9a51-82906bb2c5cd.jsonl。thread_dynamic_tools 记录。.excalidraw 文件,并定位到指定对象或 Frame。典型场景是把本地文件、截图和标注放在一个 Frame 中,然后把链接交给 AI,不再手动粘贴文件路径和 Frame 名称。/Users/ar/.codex/AGENTS.md 和 /Users/ar/Projects/ExcalidrawX/AGENTS.md。INDEX.md,确认当前项目为研发项目,主要产物是 Tauri 桌面 App / Web 前端。/Users/ar/.codex/rules/pre-implementation-discussion.md,本轮只做需求判断和方案讨论,未进入代码修改。agent-deep-links 技能并读取其说明与 deep-link matrix。.mindraw 工作,执行 Tauri 目录包 spike:验证普通目录包在选择、打开、保存、watch、拖放、路径校验和失败态上的可行性,但不进入生产 .mindraw 读写实现。src/store/useStore.tssrc-tauri/src/lib.rssrc/components/ExcalidrawEditor.tsxsrc/types/index.ts/Users/ar/Projects/ExcalidrawX/01-I/X-参考幕布与workflowy,必要图示只能使用 Excali...INDEX.md、02-P/plan-progress.markdown 以及全局规则 pre-implementation-discussion.md、work-continuity.md、delivery-gate.md、qa-workflow.md、session-memory.md。prd-writing 技能约束文档结构,保持需求描述聚焦用户可感知功能、信息架构和交互流程。01-I/X-参考幕布与workflowy/幕布与Workflowy功能需求资料库.md,包含来源清单、总索引、产品定位、总体功能树、20 个需求模块和未覆盖风险。.mindraw 格式 + 全局链接”目标;同时确认 /Applications/Mindraw.app 可以直接作为当前测试安装位使用,不需要恢复旧安装版。02-P/qa/mindraw-phase35-completion-audit.md,对 Phase 0-3.5 做完成审计。PASS FOR PHASE 0-3.5 BASELINE。02-P/plan-progress.markdown 中调整为 baseline Done。open -a 直接打开普通目录包、原生 picker 直接选包、普通 Save As 直接创建 .mindraw 包归入后续 package/native 体验增强。.mindraw 时会打开画布同时弹出:Failed to open Mindraw link: Invalid Mindraw link: expected mindraw:// scheme。.mindraw 打开不再弹错,并确认 mindraw://localhost?... 全局链接不回退。.mindraw package 时,Tauri/Rust 已经通过 native document open 流程处理文件路径;但 deep link 插件也可能把 file://...mindraw 送入前端 openMindrawDeepLinkUrls(),导致后端 resolve_mindraw_link 按 deep l...openMindrawDeepLinkUrls() 现在只处理 mindraw: scheme,忽略 file: 等非 Mindraw URL。file:///Users/ar/Desktop/Board.mindraw 不再调用 resolve_mindraw_link,不触发 alert,也不影响 native 文件打开流程。0.8.3,更新 package.json、src-tauri/Cargo.toml、src-tauri/tauri.conf.json 和 CHANGELOG.md。02-P/功能任务/ai-frame-workflow-prd.mdp.mindrawforcodex/02-P/Round04-AIFrameSemantics/01-confirmed-semantics-contract.mdp.mindrawforcodex/02-P/Round04-AIFrameSemantics/README.mdAGC-年月日-时间-序号。状态 字段的最终枚举是否采用:pending / running / done / failed / canceled。来源 prompt 的落地方式:完整原文、摘要,还是摘要 + 可展开全文。来源 prompt 的落地方式。来源 prompt 采用“保存摘要,再附可展开全文”的形式。状态 字段的最终枚举是否采用:pending / running / done / failed / canceled。状态 字段定掉,AI 结果 frame 的核心语义就可以进入正式契约整理。status 字段的设计方案。status 固定采用:pendingrunningdonefailedmindraw:// 链接直接读取并理解 Mindraw 画布里的 AI 相关需求。/Users/ar/Desktop/Mindraw-需求 copy.mindraw:mindraw://localhost?documentId=mdoc_18bc8c73f4d986d0_40c3&elementId=Xs81wStiO68qq-Pk-M9PMmindraw://localhost?documentId=mdoc_18bc8c73f4d986d0_40c3&elementId=uv7fID8fFZMEpDZr2qeigdrawing.excalidraw,确认两个目标 frame:02-P/plan-progress.markdown 的 P-20260626-m4c-handshake-coordination 领取 Mindraw 侧 MD-H1-01,完成 Phase 3.8 External Write API / Document Lease production design;不启动真实写回实现;把 MD-H1-02 到 `MD-H1...MD-H1-01。02-P/功能任务/document-lease-app-write-api-production-design.md。02-P/qa/mindraw-phase38-production-design-review.md。INDEX.md,登记新增 design 和 QA 证据。02-P/plan-progress.markdown:02-P/plan-progress.markdown 的 P-20260626-m4c-handshake-coordination 领取 Mindraw 侧 MD-H1-02,完成只读 App state / live frame context API 垂直切片;只包括 state/context 读取、DTO、workingRevision、source Frame extracto...src/lib/mindrawAppReadApi.ts:mindrawGetCapabilities()mindrawGetOpenDocumentState()mindrawGetLiveFrameContext()sha256: workingRevision/Users/ar/Projects/ExcalidrawX/02-P/plan-progress.markdown 的 P-20260626-m4c-handshake-coordination 领取 Mindraw 侧 MD-H1-03,完成 Phase 3.8 External Write API / Document Lease 的 lease manager 垂直切片。/Users/ar/Projects/ExcalidrawX/02-P/plan-progress.markdown 的 P-20260626-m4c-handshake-coordination 领取 Mindraw 侧 MD-H1-04,完成受控 createAiResultFrame mutation 垂直切片。MD-H1-03 lease / actor / writePlanId / workingRevision guard。02-P/plan-progress.markdown 的 P-20260626-m4c-handshake-coordination 领取 Mindraw 侧 MD-H1-05,补真实 App QA,覆盖 App open clean / dirty、用户编辑后 revision mismatch、lease timeout、save failed、result Frame 用户可见、sour...src/lib/mindrawAppWriteApi.smoke.test.ts,覆盖 App closed、App open clean、App open dirty、lease 后用户编辑 revision mismatch、lease timeout、save failed、result Frame 用户可见、source preservation。02-P/qa/mindraw-phase38-app-write-api-check.md,结论为 PASS FOR MD-H1-05 REAL APP WRITE API SMOKE。02-P/plan-progress.markdown:勾选 MD-H1-05,更新 H3 状态,追加 Progress Log,明确下一步归属 PM,PM-H5-GATE 未启动。CODEGRAPH.md:登记 mindrawAppWriteApi.smoke.test.ts 和 Phase 3.8 App write API QA 证据。INDEX.md:登记新增 QA 报告和 smoke 测试入口。.mindraw native 文件体验:active .mindraw 的普通 Save As... 应创建新的 .mindraw 目录包,并提供原生 picker 直接打开 .mindraw package document。0.8.2。File > Open Mindraw Package... 菜单项。select_mindraw_package,原生 picker 可返回 .mindraw package path。openMindrawPackageFromPicker(),picker 选包后走 openDirectoryOrDocument() 打开。saveCurrentFileAs(),active .mindraw 普通 Save As... 分流到 save_mindraw_package_as;普通 .excalidraw 仍走 save_file_as。3.7.2 doctor/preflight POC,再做 3.7.3 clean environment QA,然后进入 3.8 document lease / App write API。scripts/mindraw-doctor.mjs:/Applications/Mindraw.app。mindraw:// scheme 声明、.mindraw package document 声明。scripts/mindraw-doctor.mjs 增加 --system-handlers 模式。--system-handlers 通过 macOS NSWorkspace 查询 mindraw:// 默认 handler 和临时 .mindraw 探针包默认 handler,不启动 App,不修改 LaunchServices。.mindraw handler 错配和非 macOS。.mindraw fixture 的 package smoke:packageOpen=pass。plan-progress 更新。02-P/功能任务/companion-app-distribution-spec.md,定义 Mindraw companion app 分发边界、最低版本、平台支持状态、m4c 依赖契约、安装/升级引导和 fresh machine gate。02-P/qa/mindraw-phase37-companion-doctor-contract.md,定义 doctor/preflight 输出结构、诊断码、macOS 检测路径、场景矩阵和用户修复文案。02-P/plan-progress.markdown:02-P/Round01-mindraw-defstart/spikes/002-document-lease-app-write-api/。validate-document-lease.mjs,在临时目录生成测试 .mindraw 包,验证 document lease / App write API 状态机。02-P/功能任务/document-lease-app-write-api-spike.md。02-P/qa/mindraw-phase38-document-lease-spike-check.md。Round02 - 历史流水回填docs/implementation-log.md 退出活跃写入02-P/plan-progress.markdown:m4c Round05 alpha 可以开工,并要求除非必须用户决策或执行,否则不要停下来。p.mindrawforcodex 的 Round05 MCP Alpha 首批实现。p.mindrawforcodex/03-O/C3.tools/scripts/m4c-mcp-alpha.mjs。validate-package、resolve-link、get-frame-context、search-packages、dry-run-write-result、commit-write-result、repair-report、prepare-copy 和 smoke。p.mindrawforcodex/02-P/Round05-MCPAlpha/。git commit + freeze tag 之后,继续下一步,把selection / current line 的正文目标区间选择策略统一成一层纯逻辑。/Users/ar/Projects/ExcalidrawX/P1-Txtflowy90d333dc6cc2196740ab94862896e49a1e9c0e0d.mindraw 写回和全盘扫描,并要求把 Mindraw App 正打开同包时“当前先拒写、未来提供正式写入 API / lease”的需求加入 Mindraw 未来计划。同时要求把 Round04 需要用户确认的语义完整列出,不再用“比如”式零散表达。02-P/plan-progress.markdown:.mindraw 主计划 Progress Log 记录 m4c 真实写回 / 全盘扫描 / App 打开拒写策略回流。p.mindrawforcodex 依赖边界中补充 App API / lease 需求。INDEX.md:/Users/ar/Projects/ExcalidrawX/p.mindrawforcodex/03-O。03-O 正式输出区,不提交 01-I/、02-P/ 或 .codex-sessionhistory/。p.mindrawforcodex/03-O/K2.项目管理/代码冻结/2026-06-26-Round05Alpha冻结.md。/Users/ar/Projects/ExcalidrawX/02-P/plan-progress.markdownP-20260626-m4c-handshake-coordinationH* 只是顶层工作流编号,不由执行项目直接领取。MD-* 编号任务。M4C-* 编号任务。P1-Txtflowy/、canvas/、.codex/、临时备份和未确认无关文件,形成后续可回滚的代码冻结点。git add .。npm run doctor:mindraw:test:11 个测试通过。node 02-P/Round01-mindraw-defstart/spikes/002-document-lease-app-write-api/validate-document-lease.mjs:PASS。node --check scripts/mindraw-doctor.mjs:通过。/Users/ar/Projects/ExcalidrawX/02-P/plan-progress.markdown 中没有讲清楚 Mindraw 和 m4c 两边团队如何准确领取自己的任务,担心 worker 拿错别人的任务。P-20260626-m4c-handshake-coordination 中新增 任务领取防错规则。H* 顶层编号改为带团队前缀的任务卡:MD-*:仅 Mindraw 主项目窗口领取。M4C-*:仅 m4c 子项目窗口领取。PM-*:仅 PM 调度台处理,coder 不直接领取。p.mindrawforcodex/03-O/C3.tools/scripts/m4c-mcp-alpha.mjs。p.mindrawforcodex/02-P/Round05-MCPAlpha/ 过程容器。02-P/plan-progress.markdown 和 INDEX.md 的 m4c 交叉引用。MD-*、m4c 只领 M4C-*、PM-* 只由 PM 处理、H* 不作为 worker 直接领取单位”不应只作为通知,而应作为全局项目规则强约束。/Users/ar/.codex/AGENTS.md 的 Unified Plan Ledger 章节:P1-Txtflowy 独立仓的下一批纯逻辑抽离,聚焦:Enter / Ctrl+Enter0.6.x,范围只限独立仓 P1-Txtflowy。0.6.x 当前最优先的是让独立链路拥有可持续回归能力。0.6.x,但范围只限独立仓 P1-Txtflowy。0.6.x 推进方式,是先保护独立链路的核心语义,再继续做真实环境下的编辑细节回归。plan-progress.markdown。02-P/plan-progress.markdown,声明其为 Mindraw / m4c 当前唯一活跃任务台账。P-20260626-m4c-handshake-coordination 下补充“单一活跃任务台账规则”。mindrawforcodex-工作计划.md 的产品原点、Round00-Round08 状态、Round05-A 结论、写回安全阈值、全盘扫描边界摘要合并进主计划项。P1-Txtflowy 建立新的文档治理结构。01backlog.md02plan-progress.md03changelog.mddocs/implementation-log.md,实现流水迁入 02-P/RoundXX-主题/P1-Txtflowy 的项目文档治理方案,并准备一套可复用的模板文件,供后续在主线程正式落盘使用。P1-Txtflowy 的文档治理方向:01backlog.md:长期 backlog / 大事备忘 / 暂不执行方向P1-Txtflowy 独立仓的 0.6.x 第四批工作,只做结构安全相关的纯逻辑抽离与回归:Tab / Shift+TabBackspace join0.6.x 第三批回归。Enter / Ctrl+Enter / Backspace / Tab / Shift+Tab / 粘贴规整 这些编辑器行为继续拆成可测逻辑。P1-Txtflowy。txtflowy 的编辑行为测试顺序继续保持:.assets 权威化、Mindraw 被 m4c 外部调用”整理两边下一批轮次 Todo 和进度归口。02-P/ 过程文档不进入 m4c Git;m4c 正式输出区仍以 p.mindrawforcodex/03-O 为 Git 根目录。ebe64a4,tag freeze-mindraw-phase37-38-20260626。P1-Txtflowy 独立仓纯逻辑抽离,把高亮和加粗的目标区间/包裹计划也做成可测试逻辑。/Users/ar/Projects/ExcalidrawX/P1-Txtflowy/src/editor/txtflowyInlineStylePrimitives.tsplanTxtflowyTextWrap02-P/plan-progress.markdown 的 P-20260626-m4c-handshake-coordination 领取 Mindraw 侧 MD-H5-06,为 H5 canonical 轻量联合复核准备 Mindraw live 运行态与证据。范围限定为 live readiness / capability / 安全副本 / read-context-lease 证据,...INDEX.md、CODEGRAPH.md 和统一计划台账。79278http://127.0.0.1:56546/rpch5-md-h5-05-canonical-v1P-20260626-m4c-handshake-coordination 中的 MD-H6-01,为 Phase 4 AssetStore / .assets 权威化写 Mindraw 侧独立契约。范围限定为契约与证据,不做 H8 发布,不改 m4c 03-O,不混入 H5 hardening,不开放任意 JSON patch,不绕过 App 写包。/Users/ar/.codex/AGENTS.md、项目 AGENTS.md、INDEX.md、CODEGRAPH.md 和统一台账中 H6 / MD-H6-01 / PM-H6-ASSETSTORE-CONTRACT-GATE 最新状态。.mindraw ADR、manifest schema、兼容矩阵、Phase 2 QA 和当前读写实现事实,确认当前 files.dataURL 仍是运行时和导出安全底座。.assets 权威契约草案。INDEX.md、CODEGRAPH.md 和 02-P/plan-progress.markdown。mindraw-freeze-20260627-mexp01-alpha / commit fd709d87f9fe1536630faef310bad8e76cc06bb9 创建隔离 worktree:/Users/ar/Projects/ExcalidrawX-build-worktrees/mexp01-alpha-mindraw。03-O freeze tag:m4c-freeze-20260627-mexp01-alpha / commit 2e0ed27dd3e0cd8edb1e2092a86ebe6c779d51c9。MEXP01 本机 Alpha 可体验包,并复制到主项目标准输出目录:/Users/ar/Projects/ExcalidrawX/03-O/C2.builds/releases/Build202606272239/。Mindraw_0.8.3_aarch64-Build202606272239.dmgP-20260626-m4c-handshake-coordination 的 MD-MEXP01-03,完成 Mindraw 主仓 M-体验01 本机 Alpha 源码检查点冻结。codex/mindraw-0.7.2-image-quality,HEAD before 为 3818a26da14255b74aeb83b8732932ea202259c1。.codex/、P1-Txtflowy/、canvas/、p.mindrawforcodex/、临时 .drawio.bkp 和 Finder .DS_Store。03-O/K2.项目管理/代码冻结/2026-06-27-MEXP01-Alpha.md。INDEX.md、02-P/plan-progress.markdown,冻结范围包含 H5 App API transport / canonical capability、Phase 3.8 read / lease / controlled write path、M-体验01 demo / QA、MD-MEXP01-02 布局避让复核修正、AGENTS.md PM 强约束、`CO...M4C-MEXP01-02。03-O 的 M-体验01 本机 Alpha 输出做 source checkpoint 冻结。03-O、创建 tag,并回写统一台账。03-O 初始状态干净,分支 main,冻结前 HEAD 为 e3edd6c87aad5b5484503d2fc06091f70e0682f7。p.mindrawforcodex/03-O/K2.项目管理/代码冻结/2026-06-27-M4C-MEXP01-Alpha.md。03-O 内索引入口:K2.项目管理/README.md、C1.source/CODEGRAPH.md。MD-MEXP01-02 已完成:Mindraw coder/reviewer 给出 PASS_WITH_MINIMAL_FIX_FOR_MD_MEXP01_02_LAYOUT_AVOIDANCE,并补了布局避让的最小修正和测试。03-O Git 状态:当前干净,HEAD 为 e3edd6c Refresh MEXP01 visual QA evidence。M-体验01 本机 Alpha 源码检查点冻结节点,但不是 H8 / formal release 冻结,不生成 DMG,不递增版本号。02-P/plan-progress.markdown 新增 MD-MEXP01-03、M4C-MEXP01-02 和 PM-MEXP01-FREEZE-GATE。P-20260626-m4c-handshake-coordination 中的 MD-MEXP01-02,正式复核 PM 误直接实现的 createAiResultFrame 布局避让改动,必要时做最小修正,补 QA / review 证据,明确 CHANGELOG.md 决策,并回写总台账。/Users/ar/.codex/AGENTS.md、项目 AGENTS.md、INDEX.md、CODEGRAPH.md 和 02-P/plan-progress.markdown 相关 MD-MEXP01-02 / 最新 Progress Log。src/lib/mindrawAppWriteMutation.ts 与 src/lib/mindrawAppWriteMutation.test.ts。100 次扫描上限与实际 obstacle 数量无关;测试只覆盖单个已有 Frame。toElementRect() 负宽高归一化、layoutObstacles() deterministic 排序、planResultLayout() 扫描上限改为 obstacles.length + 1。Coder@m4c 身份完成统一台账 P-20260626-m4c-handshake-coordination 下的 M4C-MEXP01-01。当前全局目标锁定为 M-体验01:AI Frame 本机 Alpha 写回演示,不得切换到 H7/H8、正式 MCP server、真实 AI release、完整 .assets 权威实现或分发增强。p.mindrawforcodex/03-O/C3.tools/scripts/m4c-local-alpha-demo-runner.mjs。~/Library/Application Support/com.mindraw.desktop/runtime/write-api.json,以真实 /health 为准,不复用旧 PID / 旧端口 / 旧 token。workingRevision 校验和受控 commit_write_result(createAiResultFrame)。/Users/ar/Projects/ExcalidrawX/02-P/demo/mexp01/MEXP01-ai-frame-demo.mindraw 中生成 result Frame:frame_result_m4c-mexp01-01-1782552302251。P-20260626-m4c-handshake-coordination 领取 MD-MEXP01-01,围绕当前唯一目标 M-体验01:AI Frame 本机 Alpha 写回演示 准备 Mindraw 侧真实 App / demo 包 / 体验证据。不得切换 H7/H8,不做完整 .assets 权威实现,不改 m4c 03-O,不绕过 .../Users/ar/.codex/AGENTS.md、项目 AGENTS.md、INDEX.md、CODEGRAPH.md 和统一台账相关 M-体验01 / MD-MEXP01-01 / M4C-MEXP01-01 / PM-MEXP01-GATE 内容。02-P/demo/mexp01/MEXP01-ai-frame-demo.mindraw,源自 H5 fixture annotated-frame-h5-copy.mindraw,原 fixture 未改动。/Users/ar/Projects/ExcalidrawX/src-tauri/target/debug/bundle/macos/Mindraw.app 打开 demo 包,当前 live capability 为 h5-md-h5-05-canonical-v1。/health、/capabilities、JSON-RPC get_capabilities、get_open_document_state、get_live_frame_context、lease acquire/release 和受控 commit_write_result(createAiResultFrame)。frame_result_md-mexp01-01-demo-alpha / MEXP01 AI Frame Alpha Result。M-体验01 demo 画面中多个对象重叠,无法肉眼确认 source Frame 右侧是否新增 result Frame。02-P/demo/mexp01/MEXP01-ai-frame-demo.mindraw 的 drawing.excalidraw,确认旧包内存在两个 result Frame,并与 fixture 的 outside note / image 在右侧区域重叠。GO-FOR-PM-MEXP01-GATE,生成唯一 result Frame:frame_result_m4c-mexp01-01-1782555421452。x=40,width=720,result Frame x=840,width=720,result 位于 source 右侧;manifest scene sha256 匹配。M-体验01 的 m4c 外部调用命令时遇到 MODULE_NOT_FOUND,需要确认原因并给出可从任意当前目录运行的正确命令。/Users/ar/Library/Application Support,旧命令使用相对脚本路径 p.mindrawforcodex/...,Node 因此解析到当前目录下并报找不到模块。m4c-local-alpha-demo-runner.mjs 的 help 和运行报告输出改为绝对脚本路径。03-O 的 codebase-memory 共享索引。b0626aba265081c1b19ca450149dfbba22111fd0,提交信息 Fix MEXP01 runner absolute command。Coder@m4c 身份收口 M4C-MEXP02-01,只处理 m4c 侧安装版 Alpha runner / preflight,不领取 PM-*、MD-* 或 H*。p.mindrawforcodex/03-O/C3.tools/scripts/m4c-installable-alpha-runner.mjs。C3.tools/README.md、C1.source/CODEGRAPH.md。p.mindrawforcodex/03-O/K2.项目管理/联调QA/2026-06-27-M4C-MEXP02-01InstallableAlpha.md。p.mindrawforcodex/02-P/MEXP02-InstallableAlpha/qa/,但未纳入 m4c Git。02-P/plan-progress.markdown:M4C-MEXP02-01 保持未完成,runner/preflight ready,最终 smoke 等待标准安装版 capability。Coder@m4c 身份完成 M4C-MEXP02-02:基于 Mindraw 提供的标准用户路径 live capability,复跑 m4c 安装版 Alpha runner,并通过 Mindraw App API 受控生成 result Frame。/Users/ar/Library/Application Support/com.mindraw.desktop/runtime/write-api.json。86897 和非 debug 进程 /private/tmp/mindraw-mexp02-standard-qa/app/Mindraw.app/Contents/MacOS/mindraw。M4C-MEXP02-02 安装版写回 smoke,生成 result Frame frame_result_m4c-mexp02-02-1782575685506。--task-id,避免复跑时落回默认任务名。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。/tmp/mindraw-mexp02-qa/app/Mindraw.app,解压 demo zip 到安全副本 /tmp/mindraw-mexp02-qa/demo/MEXP01-ai-frame-demo.mindraw。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。runtime/write-api.json,外部进程读取 /health、HTTP capabilities、JSON-RPC mindraw.app.get_capabilities、get_open_document_state、get_live_frame_context 均 PASS。Coder@mindraw 身份完成统一台账 P-20260626-m4c-handshake-coordination 下的 MD-MEXP02-02,解阻 M-体验02:可安装版 AI Frame Alpha 的标准用户路径 capability。要求不关闭、不覆盖当前 /Applications/Mindraw.app,不改 m4c 03-O,不扩大到写回 smoke。/Applications/Mindraw.app:15059 仍运行,本轮未关闭、未覆盖、未移动。0.8.3,但二进制 SHA256 为 87ebf7487a16be3ba0fa5485de0b424e249f05a14be654ae1e1aa27ac353ac89。0。mindraw-m4c heartbeat,检查 Mindraw / m4c 当前派工是否完成,并在满足入口条件时由 PM 直接拆出下一轮任务,不让用户当传声筒。/Users/ar/Projects/ExcalidrawX/02-P/plan-progress.markdown 的 P-20260626-m4c-handshake-coordination。019efd00-2841-77c0-9aa4-540c1a550210 已完成 MD-H5-05 并回到 idle。019efd0e-ae6e-7331-9a51-82906bb2c5cd 已完成 M4C-H5-08 并回到 idle。03-O 只读状态检查无未提交变更。M-体验01:AI Frame 本机 Alpha 写回演示 完成前团队不得停下,并以该里程碑作为当前唯一目标。P-20260626-m4c-handshake-coordination 收口到 M-体验01 本机 Alpha 用户体验入口。MD-MEXP01-01 已完成,产出 demo 包、QA 报告、JSON 证据和体验说明。M4C-MEXP01-01 已完成,产出本机 Alpha demo runner、QA 报告、JSON 证据,并在 m4c 03-O 提交 d10c32e300dfe849f7ffc58232d3da715744bc08。PM-MEXP01-GATE 标记完成,并写入 Progress Log。M-体验01 判定为 GO for local Alpha user experience。createAiResultFrame 布局避让代码改动存在 PM 流程偏差:PM 线程不应直接承担 Mindraw coder 工作。02-P/plan-progress.markdown 的 P-20260626-m4c-handshake-coordination 中新增 MD-MEXP01-02,要求 Mindraw coder / reviewer 正式复核该 diff、补齐 QA / changelog 决策后再声明合规交付。03-O/K2.项目管理/项目经理-经验与教训.md,沉淀“PM 不直接替代 coder 改代码”规则。INDEX.md,登记新增经验教训文件。03-O/K2.项目管理/跨项目联调/。03-O/K2.项目管理/跨项目联调/Mindraw-m4c-跨项目握手联调咬合图.drawio。03-O/K2.项目管理/跨项目联调/跨项目咬合图-视觉原则.md。03-O/K2.项目管理/跨项目联调/README.md。AGENTS.md,将 draw.io 图和颜色规则纳入项目强制规则。M-体验02:可安装版 AI Frame Alpha:用户像普通用户一样安装 / 打开 Mindraw,用 m4c 命令或入口调用它,在安全用户副本里生成 result Frame,不需要理解 debug App、capability、临时 PID 等工程细节。MD-MEXP02-01:确认 Build202606272239 DMG 可作为 MEXP02 安装版 Alpha 输入。MD-MEXP02-02:标准 HOME capability 可由 QA App 生成并通过 live transport 基础能力检查。M4C-MEXP02-02:通过标准 capability 调用 Mindraw App,在安全副本中生成 result Frame。PM-MEXP02-GATE:以证据链判定 MEXP02 达到 PM Gate GO,但不等同于 H8 正式发布冻结。p.mindrawforcodex/02-P/Round01-ContractBaseline/fixtures/annotated-frame.mindraw 复制到桌面安全副本,运行 installable runner 后,右侧新增 result Frame,体验通过。M-体验03:Mindraw 内置 AI Frame MVP 为目标持续推进:不靠外部命令,在 Mindraw 内选中 Frame,直接发起 AI,并在右侧生成 result Frame。mindraw-freeze-20260628-mexp02-alpha-user-accepted,m4c tag m4c-freeze-20260628-mexp02-alpha-user-accepted。inProgress turn 后,PM 记录恢复检查并重派 MD-MEXP03-01 到 recovery worker。MD-MEXP03-01:App 内 AI Frame 入口、prompt 面板、本地 Alpha provider、workflow facade、测试、QA 和文档。PM-MEXP03-GATE 收敛为 GO for user hands-on。Coder@mindraw-recovery 对 PM Gate 独立 reviewer 的非阻断建议做最小补强,不扩大范围,不勾选 PM-MEXP03-GATE。AiFramePanel.runAiFrame 增加未知异常兜底:runMindrawAiFrameWorkflow 非预期 throw 时显示通用错误并退出 running 状态;已知业务错误仍展示原有 result.error.message。mindrawAiFrameWorkflow.test.ts 新增 DOCUMENT_IS_SAVING 直接覆盖,确认保存中的文档在 write planning 前阻断且不调用保存。02-P/qa/mindraw-mexp03-ai-frame-mvp-check.md 和 .json,记录 reviewer suggestions 已处理和新增验证结果。02-P/plan-progress.markdown 的 MD-MEXP03-01 Progress Log,明确下一步仍归属 PM Gate,PM-MEXP03-GATE 未勾选。npm run test:run -- src/lib/mindrawAiFrameWorkflow.test.ts:PASS,1 file / 8 tests。Coder@mindraw-recovery 身份领取 P-20260626-ai-frame-workflow 下 MD-MEXP03-01,完整实现 M-体验03:Mindraw 内置 AI Frame MVP 垂直切片。用户要求 App 内可见入口、单 Frame source 校验、prompt / 默认 prompt、本地 Alpha 响应生成器、复用既有 read / lease...src/lib/mindrawAiFrameWorkflow.ts:内部 workflow facade,校验 active .mindraw、dirty / saving、无选择、多选、非 Frame,并编排 mindrawGetLiveFrameContext、mindrawAcquireWriteLease、mindrawCommitWriteResult、`mindrawRel...src/components/AiFramePanel.tsx:画布右上角 AI Frame 入口、prompt 输入、默认 prompt、运行 / 成功 / 错误状态。src/components/ExcalidrawEditor.tsx 和 src/index.css:挂载并样式化 AI Frame 控件。src/lib/mindrawAiFrameWorkflow.test.ts:覆盖成功写入、默认 prompt、非 .mindraw、无选择、多选、非 Frame、dirty 阻断、save failed dirty recovery。02-P/qa/mindraw-mexp03-ai-frame-mvp-check.md、02-P/qa/mindraw-mexp03-ai-frame-mvp.json、02-P/qa/mindraw-mexp03-smoke-after-save.png、02-P/qa/mindraw-mexp03-smoke-reopen-result-visible.png。MEXP02:可安装版 AI Frame Alpha 的用户亲测通过状态。M-体验03:Mindraw 内置 AI Frame MVP 为唯一目标推进:不靠外部命令,在 Mindraw 内选中 Frame 直接发起 AI,右侧生成 result Frame。mindraw-freeze-20260628-mexp02-alpha-user-acceptedfb979fa7880b9b354641c96d483a5377f86da646M-体验03:Mindraw 内置 AI Frame MVP,确认是否能在 Mindraw 内选中 Frame、发起 AI Frame,并在右侧生成 result Frame。02-P/plan-progress.markdown 的 P-20260626-ai-frame-workflow。02-P/qa/mindraw-mexp03-pm-gate.md。M-体验03 当前状态更新为 User accepted local Alpha; not H8 release Go。M-体验04:真实用户文件安全写回 Alpha 为目标推进到可亲测状态:从真实 .mindraw 文件出发,通过安全副本、restore point、恢复和错误提示保护原始用户文件,并在安全写入目标中生成 result Frame。02-P/功能任务/mexp04-real-user-safe-writeback-alpha.md、02-P/qa/mindraw-mexp04-gate-checklist.md。MD-MEXP04-01 给 Mindraw recovery worker 实现;PM 未直接改源码。CODEGRAPH.md / INDEX.md / CHANGELOG.md 回写。MD-MEXP04-01 第二轮 independent review 仍为 passed=false 后,继续以 Coder@mindraw-recovery 身份在现有未提交实现上做最小补修。约束:不提交、不暂存、不扩大范围、不改 m4c;只修复 restore point 与 captured write target 未强绑定、restore rollback 失败描述不可信两个阻断项。ensureAiFrameRestorePointForMindrawWriteTarget({ packagePath, documentId }),按 workflow 已捕获的 write target 创建 restore point,不再重新读取当前 active tab。runMindrawAiFrameWorkflow() 改为用 context.packagePath / context.documentId 创建 restore point;safe writeback 层校验 safe copy state 的 safeCopyDocumentId 与 captured documentId 一致,并校验 Tauri 返回的 `restorePoin...targetPath、rollbackPath、stagingPath 和 rollback IO 错误,不再声称原目标已恢复。restore_rollback_failure_reports_unrestored_target_paths,模拟 rollback package 缺失,覆盖“不可信已恢复描述”错误分支。Coder@mindraw-recovery 身份领取并完成统一台账 P-20260626-ai-frame-workflow 下的 MD-MEXP04-01:实现 M-体验04:真实用户文件安全写回 Alpha。用户需要从真实 .mindraw 文件出发,在 Mindraw App 内通过清晰的安全副本 / 备份 / 恢复链路运行 AI Frame,在安全写入目标中生成右侧 res....mindraw 原件先复制为 *-ai-frame-safe-*.mindraw 安全写入目标,安全副本生成新 documentId,原件复制前后 hash 必须一致。AI Frame commit 前在 <safe-copy-stem> AI Frame Backups/ 下创建 .mindraw restore point,hash 必须等于写入前安全目标 hash。AI Frame 面板显示写入目标、原始 hash、restore point,并提供 Create safe copy 与 Restore。runMindrawAiFrameWorkflow() 在未安全化 .mindraw 上返回 SAFE_COPY_REQUIRED,不 acquire lease、不保存、不写原件。Coder@mindraw-recovery 身份在现有未提交 MD-MEXP04-01 初版实现上做最小补修,不提交、不扩大范围、不改 m4c。必须修复独立 review 阻断项:移除文件名推断 safe copy 的写入 guard、校验 restore point 归属、补齐保存失败后的 restore point 可见与可恢复路径,并更新 QA / 台账 / 会话记忆。mindrawSafeWriteback.ts 对 *-ai-frame-safe-*.mindraw 文件名的可信推断;getMindrawAiFrameSafetyState() 只返回 App 内创建记录,伪造 safe-copy 文件名仍返回 SAFE_COPY_REQUIRED。aiFrameSafeWriteback 元数据,包含 kind=safeCopy、safeCopyDocumentId、originalPath、originalHash、createdAt。restore_ai_frame_restore_point 恢复前校验 restore point 与当前 safe copy 的元数据一致、位于当前 safe copy 的 backup folder、文件名前缀匹配,并继续使用 staging / rollback 与 hash 校验。AiFramePanel 会刷新本次 restore point 状态;restoreActiveMindrawFromRestorePoint() 允许 dirty safe copy 执行受控恢复,恢复成功后清 dirty。M-体验05:.assets 权威化体验 goal,PM 负责计划、Gate 和证据收敛,不直接改源码。GO for user hands-on; not H8 / formal release。src-tauri/target/debug/bundle/macos/Mindraw.app。02-P/Round01-mindraw-defstart/fixtures/minimal-empty.mindraw,manifest 当前 assets=0、assetStore=null。git diff --check,结果 PASS。02-P/plan-progress.markdown 的两个 MEXP05 Progress Log 中新增 PM 续跑核验记录。M-体验05:.assets 权威化体验 为 goal,推进到用户可以亲测:图片 / 生成资产进入 .assets,保存、重开、导出稳定,repair 稳定性有证据。PM-MEXP05-GATE 为 GO for user hands-on; not H8 / formal release。02-P/qa/mindraw-mexp05-pm-gate.md。02-P/plan-progress.markdown 中 P-20260626-ai-frame-workflow 与 P-20260626-m4c-handshake-coordination 的 MEXP05 状态、PM-MEXP05-GATE 和 Progress Log。02-P/qa/mindraw-mexp05-gate-checklist.md。02-P/功能任务/mexp05-assetstore-authority-alpha.md。M-体验05:.assets 权威化体验,要求 .assets 权威源、保存重开、导出、修复链路稳定;PM 只做计划、派工、Gate 和证据收敛,不直接改源码。02-P/plan-progress.markdown 中 P-20260626-ai-frame-workflow / P-20260626-m4c-handshake-coordination 的 MEXP05 状态。02-P/qa/mindraw-mexp05-pm-gate.md,确认 Gate 仍是 GO for user hands-on; not H8 / formal release。$HOME/Desktop/MEXP05-assets-test,本机仍未出现预期亲测目录、.mindraw 安全副本或导出产物。02-P/plan-progress.markdown 的两处 MEXP05 Progress Log 记录第二次复查结果。M-体验05:.assets 权威化体验 为当前 goal,要求图片 / 生成资产进入 .assets,并在保存、重开、导出、修复链路中稳定。.assets 权威化体验 Alpha。work-continuity.md、delivery-gate.md、qa-workflow.md 和 INDEX.md。$HOME/Desktop/MEXP05-assets-test,未发现目录、MEXP05-assets-empty.mindraw 包或导出产物。02-P/plan-progress.markdown 的两处 MEXP05 Progress Log 补记:当前仍是 PM Gate GO for user hands-on / awaiting user acceptance,不能标记 goal complete。git diff --check,无输出,表示本轮文档回写没有 whitespace 错误。M-体验05:.assets 权威化体验,要求图片 / 生成资产进入 .assets 权威源,并在保存、重开、导出、修复链路中稳定。PM 只做计划、派工、Gate 和证据收敛,不直接改源码。02-P/qa/mindraw-mexp05-pm-gate.md:MEXP05 仍为 GO for user hands-on; not H8 / formal release。$HOME/Desktop/MEXP05-assets-test:目录不存在。$HOME/Desktop 下按 *MEXP05* / *mexp05* 搜索可能的替代亲测路径:无结果。02-P/plan-progress.markdown 的两处 MEXP05 Progress Log 写入第三次复查结论,并将状态标注为 PM goal blocked on user acceptance evidence。.assets 权威化体验两次验收通过后,要求按 PM 建议以冻结为独立目标执行 source checkpoint / code freeze。5e214c029fc607d46ae94da9650e32c02d36db1e,提交信息 chore: freeze MEXP05 assetstore alpha checkpoint。mindraw-freeze-20260628-mexp05-alpha-user-accepted,指向上述提交。03-O tag:m4c-freeze-20260628-mexp05-alpha-user-accepted,指向 e95af70cfef6ac72457c23ffb6bab4dfbf691943。INDEX.md、CODEGRAPH.md、CHANGELOG.md、跨项目 draw.io 咬合图和冻结记录。MD-MEXP05-04,修复 PM-MEXP05-GATE 第三轮 independent review No-Go:AssetStore inspect / repair hydrate 的 blob 读取必须统一到 no-follow directory-handle / openat(O_NOFOLLOW) 路径,repair hydrate...src-tauri/src/asset_store.rs 删除旧 checked_asset_path 普通读取路径,inspect / repair hydrate 统一调用 read_existing_asset_blob()。.assets 内,最终 blob 通过 openat(O_NOFOLLOW) 读取;非 Unix 缺少可证明安全读路径时 fail-closed。dataURL 前复验实际 bytes 的 manifest sha256 / byteLength;blob 被替换、缺失、变 symlink 或内容不匹配时不修改 scene。src-tauri/src/lib.rs 新增 5 个 MEXP05 回归,并给共享 race hook 测试加互斥锁,避免并行测试互相覆盖 hook。02-P/qa/mindraw-mexp05-assetstore-authority-check.md、CODEGRAPH.md、CHANGELOG.md、02-P/plan-progress.markdown;INDEX.md 无新增入口未改。MD-MEXP05-03,修复 PM-MEXP05-GATE 第二轮 independent review No-Go:AssetStore blob 写入与新增 blob cleanup 在父目录被 symlink 替换 / TOCTOU race 时必须 fail-closed。边界:不领取 PM-* / M4C-* / H*,不做 H8 / ...AGENTS.md、INDEX.md、CODEGRAPH.md、02-P/plan-progress.markdown 相关 MEXP05 段落、02-P/qa/mindraw-mexp05-assetstore-authority-check.md 和适用研发 / QA / 会话记忆规则。src-tauri/src/asset_store.rs 中将 AssetStore blob read / write / rename / cleanup 改为 Unix no-follow directory-handle 路径:逐级 openat / mkdirat 打开 .assets/... 父目录,使用 openat(O_NOFOLLOW/O_EXCL) 创建 temp,使....assets root 内,并校验打开的目录 fd 仍对应当前路径。PathBuf 改为 package root + asset relative path,避免 raced parent symlink 导致删除包外文件。mexp05_intermediate_asset_directory_symlink_race_does_not_write_outside 和 mexp05_cleanup_intermediate_symlink_race_does_not_delete_outside。MD-MEXP05-02,修复 PM-MEXP05-GATE 独立 review 的两个 No-Go 阻断项:AssetStore temp symlink escape,以及 save / repair 后续 scene 或 manifest 写失败后残留本轮新增 blob。CODEGRAPH.md、MEXP05 QA 文档和相关全局研发 / QA / 会话记忆规则。src-tauri/src/asset_store.rs 与 src-tauri/src/lib.rs 的原子 temp 写入,改为 OpenOptions::create_new(true),预置 temp symlink / 旧 temp 文件 fail-closed。drawing.excalidraw 或 manifest.json 写失败时只删除这些本轮新增 blob,不删除既有资产,不自动清理 orphan。mexp05_preexisting_asset_temp_symlink_does_not_write_outsideCoder@mindraw-recovery 身份领取统一台账中的 MD-MEXP05-01。M-体验05:.assets 权威化体验 Alpha 的 Mindraw Phase 4 .mindraw/.assets 权威化体验 Alpha 垂直切片。M4C-*、PM-*、H*,不做 H8 / formal release、打包、版本递增、真实 AI provider、Finder PDF 拖拽或 m4c direct write .assets。src-tauri/src/asset_store.rs,实现第一批 AssetStore Alpha dual 模式。.mindraw 创建 / 保存路径会从 referenced inline image files.dataURL 计算 SHA-256,写入 .assets/objects/sha256/...,并更新 manifest.assetStore / manifest.assets[]。manifest.assets[] 覆盖 assetId、sha256、path、mimeType、byteLength、refs、source.kind,并固定 source.privacy="no-original-path"。M-体验05:.assets 权威化体验 为目标,确认图片 / 生成资产进入 .assets 权威源,并在保存、重开、导出、修复链路中稳定;PM 负责计划、Gate、证据收敛和 code freeze 判断,不直接改源码。/Users/ar/Desktop/MEXP05-assets-test/MEXP05-assets-empty.mindraw。assetStore.authority=dual,assetCount=1。.assets 证据:存在 blob .assets/objects/sha256/97/33/9733a89c539115de3c49bd06720bfc99639d9a918f5df48a810e267cf3554119.png。sha256 一致,byteLength 8591 一致。M-体验06:Companion App 分发就绪 Alpha。INDEX.md、统一台账 02-P/plan-progress.markdown,并检查 coder2@mindraw 与 Coder@m4c 两个执行线程状态。coder2@mindraw 已完成 MD-MEXP06-01,线程已 idle。Coder@m4c 已完成 M4C-MEXP06-02,线程已 idle。PM-MEXP06-GATE,结论为 GO for user hands-on; not H8 / formal release。M-体验06:Companion App 分发就绪 Alpha 亲测通过后,按 PM 建议执行 source checkpoint / code freeze。03-O 状态。03-O/K2.项目管理/代码冻结/2026-06-28-MEXP06-Alpha.md。02-P/plan-progress.markdown。INDEX.md。coder2@mindraw 身份领取统一台账中的 MD-MEXP06-01,完成 M-体验06:Companion App 分发就绪 Alpha 的 Mindraw 侧分发候选 / readiness。边界:不领取 M4C-*、PM-*、H*;不做 H8 / formal release;不静默安装或覆盖 /Applications/Mindraw.app;不做 Windows...0.8.3 / Build202606272239 DMG 不可沿用,因为它早于 MEXP03、MEXP04、MEXP05 用户验收后的源码能力,且旧包缺少 CFBundleVersion build 证据。0.9.0 / Build202606281348 macOS arm64 本地 Alpha 候选包:03-O/C2.builds/releases/Build202606281348/Mindraw_0.9.0_aarch64-Build202606281348.dmg。86493f275f107010feeb47889cfea8ac73351d8ab28e8d9972de8551060fb78f。v0.9.0-Build202606281348,指向 03c048964d6ae57f41e2b8315843d2aa86f322c7。0.9.0 / Build202606281348 后,不理解第 5 步 m4c preflight 的预期结果,需要 PM 判断是否通过并解释。ok=true、status=PASS。/Applications/Mindraw.app 为 0.9.0 / Build202606281348。currentMachine.analysis.status=M4C_READY。mindraw://、.mindraw handler、App API capability 与 appWriteLease 均 pass。M-体验08A:Mindraw Frame -> Stitch UI 生成 -> Codex 返回可见结果。02-P/plan-progress.markdown 立项 P-20260629-mexp08a-frame-to-stitch,并将 P-20260601-finder-pdf-drag、P-20260531-default-new-dir、P-20260531-periodic-autosave 调低为 Low priority backlog。M4C-MEXP08A-01 给 Coder@m4c,要求先补真实 Mindraw Frame link 的 frame-only context gate。ee035fd4a5623995cb0e0c8790e638dadfcc1098,结论为 PASS_FOR_PM_MEXP08A_STITCH_01。--no-live 文档索引路径复核真实链接 mdoc_18bd9099d5510060_c76d / caJFkm_EjKdNTBQw9afOg,确认返回 readScope=frame-only、target.kind=frame、outsideTextIncluded=false、fallbackToDocumentRead=false。stitch MCP,确认工具可用,并成功创建 Stitch project projects/4145955783540509949。M4C-MEXP08A-01:修复 / 收口真实 Mindraw Frame link context gate,使 m4c 能对真实 Frame link 返回合法 frame-only context,作为 M-体验08A:Mindraw Frame → Stitch UI 生成 → Codex 返回可见结果 的前置。readScope=frame-only、target.kind=frame、targetFrameId=caJFkm_EjKdNTBQw9afOg。P-20260629-mexp08a-frame-to-stitch,将 M4C-MEXP08A-01 标为完成,并将 PM-MEXP08A-STITCH-01 标为 Ready / waiting PM。M4C-MEXP08A-02:硬化默认 Frame link resolver 入口,使默认 resolve --input <mindraw://...> 在 live App API 返回旧形状 / 非 frame-only DTO 时,继续走受控 frame-only fallback。FRAME_SCOPE_UNAVAILABLE 修复为合法 frame-only context。LIVE_FRAME_SCOPE_REJECTED,随后继续走 selected package / registry / Mindraw document index 的 frame-filtered fallback。--no-live、selected package fallback、m4c-mcp-alpha resolve-frame-link、MCP stdio 入口均通过验证。P-20260629-mexp08a-frame-to-stitch,将 M4C-MEXP08A-02 标为完成。M-体验08B:外部模型生成结果写回 Mindraw result Frame 为目标,完成外部模型 PNG 结果从 frame-only context 到 Mindraw result Frame 的受控写回闭环。coder2@mindraw 的 MD-MEXP08B-02:Mindraw live capability 已刷新,包含 createAiResultFrameImageResult="write"。Coder@m4c 的 M4C-MEXP08B-03:m4c 使用有效 source Frame 安全副本,通过 Mindraw App API / lease / controlled mutation 完成外部 PNG live writeback。PM-MEXP08B-GATE,结论为 GO_FOR_USER_ACCEPTANCE。mexp08b-pm-monitor,避免继续轮询已经完成的 m4c 等待项。.assets 真实路径:generated asset 位于 .assets/objects/sha256/98/db/98dba5ab7dd7ddc17d0c5ddffca36c81d67fcdbf3c179a44743ba0a3f82d9e73.png,并修正 PM Gate QA 文档中的简写路径。P-20260630-mexp08b-external-model-writeback 的 M4C-MEXP08B-03,基于 Mindraw MD-MEXP08B-02 刷新后的 live capability,完成外部 PNG result Frame live writeback retry。若当前 TL 目标包仍因 source Frame 本体缺...MD-MEXP08B-02 capability refresh QA、m4c 现有 runner 与 MEXP08B-02 证据。createAiResultFrameImageResult="write"。m4c-external-image-writeback-runner.mjs:M4C-MEXP08B-03 默认 QA / checklist 路径。--live-context 从 Mindraw live frame-only DTO 构建 sanitized writeback package。Coder@m4c 身份领取统一台账 P-20260630-mexp08b-external-model-writeback 的 M4C-MEXP08B-02,在 Mindraw MD-MEXP08B-01 宣称完成新 imageResult capability 后,复跑 m4c 外部模型 PNG result writeback runner,验证 live writeback 闭环...mindraw.app.commit_write_resultmutation.kind="createAiResultFrame"mutation.imageResult.kind="external-image-result"createAiResultFrameImageResult="write"。Coder@m4c 身份领取统一台账 P-20260630-mexp08b-external-model-writeback 的 M4C-MEXP08B-01,完成 m4c 侧外部模型 PNG 结果包 / writeback runner:消费已确认的 frame-only context 与 MEXP08A 已验收 PNG,生成 sanitized writeback request/pa...p.mindrawforcodex/03-O/C3.tools/scripts/m4c-external-image-writeback-runner.mjs。build、run、smoke、help:build 生成 m4c.externalImageResultWriteback.v1 sanitized package。run 读取当前 Mindraw runtime capability、检查 health/capabilities,并仅在图片 result writeback capability 存在时走 App API。smoke 生成过程 QA JSON / check Markdown 与正式 QA checklist。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"。M-体验08B:外部模型生成结果写回 Mindraw result Frame,要求开工。M-体验08B:外部模型生成结果写回 Mindraw result Frame。/Users/ar/Projects/ExcalidrawX/02-P/plan-progress.markdown 新增计划项 P-20260630-mexp08b-external-model-writeback。/Users/ar/Projects/ExcalidrawX/02-P/MEXP08B-ExternalModelWriteback/pm/mexp08b-dispatch-20260630.md。/Users/ar/Projects/ExcalidrawX/INDEX.md,登记 02-P/MEXP08B-ExternalModelWriteback/。MD-MEXP08B-01 给 coder2@mindraw 线程 019f0cb7-61d6-7b81-8f41-b3544b62e737。P-20260630-mexp08b-external-model-writeback 的 MD-MEXP08B-02,刷新 / 启动包含 MD-MEXP08B-01 的 Mindraw live App capability,让本机 runtime 对 m4c 暴露 createAiResultFrameImageResult="write",为后续 m4c live write...82352 可达但能力面缺 createAiResultFrameImageResult,且旧 App 未打开目标文档。82352。npm run tauri -- build --debug --bundles app,用当前源码重新生成本地 QA debug App。/Users/ar/Projects/ExcalidrawX/src-tauri/target/debug/bundle/macos/Mindraw.app 启动新 runtime PID 82910。M-体验08B:外部模型生成结果写回 Mindraw result Frame:外部模型生成的 PNG UI 结果由 m4c 通过 Mindraw App API / lease / controlled mutation 写回 Mindraw,在 source Frame 右侧生成 result Frame,source 不被覆盖,图片进入 .assets 权威链路,并经用户可见验收。imageResult.kind="external-image-result" 受控写回能力。02-P/qa/mindraw-mexp08b-pm-gate.md 收敛为 USER_ACCEPTED。open-MEXP08B-ACCEPTANCE.command --precheck-only,输出 MEXP08B acceptance precheck: PASS。P1-Txtflowy 当前与未来的里程碑整理成正式路线图文档。0.6.x clean extraction 最终收口/Users/ar/Projects/ExcalidrawX/P1-Txtflowy 作为唯一活跃工程根P1-Txtflowy,不是旧 Txtflowy 路径。给一个 Frame link,Frame 里只放真实截图或弱提示,agent 要能描述截图细节;Frame 外 sentinel 不能被读出来。
MD-MEXP09B-01-20260701 assignment 从 active 收为 done。M4C-MEXP09B-01-20260701 active assignment。02-P/MEXP09B-TargetFramePixelPayload/pm/m4c-mexp09b-01-dispatch-20260701.mdM4C-MEXP09B-01 已由 m4c worker 完成,m4c 03-O commit:f92f293e3fc393ccd50dc643977bd6196d4eb6ed。M4C-MEXP09B-01-20260701 active assignment 收为 done。02-P/MEXP09B-TargetFramePixelPayload/pm/mexp09b-pm-gate-strict-20260701.mindraw。02-P/MEXP09B-TargetFramePixelPayload/pm/mexp09b-pm-gate-20260701.md。02-P/plan-progress.markdown 已把 P-20260701-mexp09b-target-frame-pixel-payload 标为 Complete / PASS_PM_MEXP09B_GATE / USER_MANUAL_VERIFIABLE。coder2@mindraw 身份领取统一台账 P-20260701-mexp09b-target-frame-pixel-payload 的 MD-MEXP09B-01,补齐 Mindraw 侧 target Frame 像素输入能力:当用户给 agent 一个 mindraw://localhost?documentId=...&elementId=<frameId> Frame lin...targetFramePixelPayload="read" capability。mindraw.app.get_target_frame_pixel_payload。mindrawGetTargetFramePixelPayload(),输入 documentId、可选 packagePath、sourceFrameId 或 elementId。pixelsIncluded=true、bytesIncluded=true。pixelScopeAudit:targetFrameOnly、source snapshot hash、rasterizer、outside text / image / pixel exclusion、no OCR、no document visual fallback。Coder@m4c 身份完成 P-20260701-mexp09b-target-frame-pixel-payload 下的 M4C-MEXP09B-01:消费 Mindraw 已完成的 target Frame PNG pixel payload,把目标 Frame-only PNG 作为真实图片输入交给 vision-capable agent / model,同时保证 m4c 的 san...m4c-frame-link-agent-resolver.mjs 中新增 resolve-pixel / smoke-pixel。resolve_mindraw_target_frame_pixel_payload。targetFramePixelPayload="read" 与 JSON-RPC mindraw.app.get_target_frame_pixel_payload。mimeType、尺寸、byteLength、SHA、pixelsIncluded=true、bytesIncluded=true 和 pixelScopeAudit。MEXP09B:Target Frame Pixel Payload / Vision Input Delivery。coder2@mindraw 线程 019f0cb7-61d6-7b81-8f41-b3544b62e737 下达紧急暂停指令:不强杀当前命令,完成后停在可恢复 checkpoint;不提交、不打 DMG、不进入 PM-MCPE-GATE、不派发 m4c retry。02-P/MEXP09B-TargetFramePixelPayload/pm/mexp09b-blocker-20260701.md。02-P/plan-progress.markdown:P-20260701-mexp09-frame-visual-context 从历史完成口径改为 Reopened / RELEASE_AND_VISUAL_VALUE_BLOCKED_ON_MEXP09B_PIXEL_PAYLOAD。coder2@mindraw 身份领取 P-20260701-mexp09-frame-visual-context 的 MD-MEXP09-02,刷新包含 MD-MEXP09-01 commit 1765cad3c679d46ce2c49afc137a7e0253386355 的 Mindraw live App runtime,并准备 PM-MEXP09-GATE 可用的真实 F...1765cad3c679d46ce2c49afc137a7e0253386355,且 required commit 是 HEAD 祖先。/Users/ar/Projects/ExcalidrawX/02-P/MEXP09-FrameVisualContext/fixtures/mexp09-gate-visual-context.mindraw/mindraw://localhost?documentId=mdoc_mexp09_gate_visual_context_20260701&elementId=frame_mexp09_gate_targetP-20260701-mexp09-value-dmg-release 的 MD-MEXP09-REL-01,生成体现 MEXP09 用户价值的 Mindraw 可安装 DMG 候选包。版本从 1.0.0 升到 1.1.0,因为项目本地规则要求用户可感知新 feature 至少递增 0.1。target Frame -> visualContext.snapshot -> visualScopeAudit -> m4c sanitized package1.1.0:package.json、src-tauri/tauri.conf.json、src-tauri/Cargo.toml。package-lock.json 和 src-tauri/Cargo.lock,但未强制纳入 Git,因为 .gitignore 明确忽略 package-lock.json 与 *.lock。1.1.0,不是侧会话初始建议的 1.0.1。MD-MEXP09-REL-01,由 coder2@mindraw 生成 MEXP09 value DMG acceptance candidate。PM-MEXP09-REL-GATE 只读复核:DMG / SHA / manifest / tag target / QA JSON / DMG mount / codesign / doctor 均通过。02-P/pmo-active-assignments.json 中 MD-MEXP09-REL-01-20260701 从 active 改为 done。02-P/plan-progress.markdown:该 release 事项状态为 Complete / PM-MEXP09-REL-GATE pass; ready for user acceptance with ad-hoc signing warning。MEXP09 已验收通过后,询问 MEXP09 visual context PM monitor 是否可以关闭。02-P/plan-progress.markdown:P-20260701-mexp09-frame-visual-context 已为 Complete / USER_ACCEPTED。M4C-MEXP09-02 与 PM-MEXP09-GATE 均已完成,用户已确认“验收通过”。02-P/pmo-active-assignments.json:没有 MEXP09 active assignment。mexp09-visual-context-monitor,原名称为 MEXP09 visual context PM monitor,原频率为每 15 分钟。02-P/plan-progress.markdown 的 MEXP09 Progress Log,记录 monitor 已关闭。codex://threads/019efd0e-ae6e-7331-9a51-82906bb2c5cd 未完成工作,围绕 02-P/plan-progress.markdown 继续安排和跟进项目进度。INDEX.md、统一台账、PMO active assignment 和旧 Coder@m4c 线程。P-20260701-mexp09-frame-visual-context 下的 PM-MEXP09-GATE,不是继续派 m4c 写代码。M4C-MEXP09-02 最终回复:PM_NOTIFY_READY: yes,m4c commit 5e9365a fix: support MEXP09 live scope audit。9822。resolve-visual,确认 Gate package ok=true、readScope=frame-only、outsideTextIncluded=false、targetFrameSnapshot.available=true、bytesIncluded=false。Coder@m4c 身份领取统一台账 P-20260701-mexp09-frame-visual-context 的 M4C-MEXP09-01,完成 m4c 侧 Frame visual context consumer guard / agent package:UI 修改类任务必须有目标 Frame visual snapshot,OCR-only / text-only 必须 No-Go。03-O 正式输出区完成 Visual Frame Context Package consumer guard。m4c-frame-link-agent-resolver.mjs 新增 resolve-visual 和 smoke-visual。m4c-frame-link-mcp-server.mjs 新增 MCP tool resolve_mindraw_visual_frame_context。MD-MEXP09-01 实际 DTO:visualContext.snapshot + visualScopeAudit,输出统一的 sanitized targetFrameSnapshot 元数据。VISUAL_CONTEXT_REQUIRED;live capability 缺失返回 MINDRAW_VISUAL_CONTEXT_CAPABILITY_UNAVAILABLE。Coder@m4c 身份完成统一台账 P-20260701-mexp09-frame-visual-context 中的 M4C-MEXP09-02:修复 m4c visual consumer 对 Mindraw live DTO 顶层 scopeAudit 的兼容缺口,复跑 PM Gate live Frame link、smoke-visual 和 MCP stdio visual...p.mindrawforcodex/03-O/C3.tools/scripts/m4c-frame-link-agent-resolver.mjs:scopeAudit(context) 兼容 Mindraw live DTO 顶层 scopeAudit。visualScopeAudit.outsideTextExcluded=true 时安全推导 outsideTextIncluded=false。targetSummary(context) 兼容顶层 scopeAudit target fallback。dataURL 进入 agent-facing package。coder2@mindraw 身份领取统一台账 P-20260701-mexp09-frame-visual-context 的 MD-MEXP09-01,完成 Mindraw 侧 target Frame visual snapshot / visual context contract。边界:不做 H8/formal release,不重打 DMG,不修 Stitch,不做 m4c cons...frame-only。mindrawGetLiveFrameContext() 的 target Frame 过滤之后,仅用目标 Frame 内元素和内部图片 dataURL 生成 SVG,避免整图截图、整份 .mindraw promptable read 或 document visual scan。TARGET_NOT_FRAME / TARGET_NOT_FOUND。npm test -- --run src/lib/mindrawAppReadApi.test.ts src/lib/mindrawAppApiTransport.test.ts:PASS,2 files / 15 tests。M-体验09:Frame 定域视觉读取 的最终可见验收结果,要求项目经理继续按统一台账收口。02-P/plan-progress.markdown 中 P-20260701-mexp09-frame-visual-context 状态从 GO_FOR_USER_ACCEPTANCE / PM Gate passed; waiting user visible acceptance 更新为 Complete / USER_ACCEPTED。PM-MEXP09-GATE 任务卡状态更新为 Complete / USER_ACCEPTED。MEXP09 完成标准已达成:Mindraw Frame link 可提供目标 Frame 的视觉上下文与真实文本上下文,m4c consumer 能生成 frame-only sanitized package,PM Gate 已通过,用户已验收。MD-MCPE-01 -> M4C-MCPE-02 -> PM-MCPE-GATE 的端到端验收,让 ~/plugins/mindraw 支持 Open the Mindraw canvas for this project.,在项目根创建 / 打开 MindrawCanvas/ 下最新 .mindraw,侧边栏显示完整只读预览,并通过 `编...M4C-MCPE-02 worker 证据,确认 ~/plugins/mindraw 已实际消费 Mindraw createBlankPackage / previewSnapshot / openPackage capability。/Users/ar/Projects/ExcalidrawX/src-tauri/target/debug/bundle/macos/Mindraw.app。npm run doctor:mindraw -- --pretty 在新 debug QA App 启动后显示 projectCanvasCreate=pass、projectCanvasPreview=pass、projectCanvasOpen=pass、targetFramePixelPayload=pass。/api/state READY、/api/preview 返回 image/svg+xml full preview、DOM 含 pan / zoom / reset / 编辑 / double-click handoff。~/plugins/mindraw 的 Project Canvas Lifecycle 产品化。P-20260701-mindraw-project-canvas-lifecycle。Coder@m4c 完成 M4C-MPCL-01,并回报 PASS / PM_NOTIFY_READY: yes。PM-MPCL-GATE,结论为 GO_FOR_MEXP11_LIFECYCLE / NOT_RELEASE。02-P/pmo-active-assignments.json 中 M4C-MPCL-01-20260701 已从 active 改为 done。02-P/plan-progress.markdown 已把 MEXP11 状态改为 Complete / PM-MPCL-GATE GO。P-20260701-mindraw-project-canvas-lifecycle 中的 M4C-MPCL-01,在 MEXP10 PM-MCPE-GATE GO 之后,对 ~/plugins/mindraw 做 Project Canvas Lifecycle hardening。MindrawCanvas 目录冲突、sequence 冲突和上限、Git ignore 状态、多项目隔离、稳定错误码和脱敏 QA。~/plugins/mindraw/lib/project-canvas.mjs:REGISTRY_JSON_INVALID。REGISTRY_ENTRY_STALE,不选 missing canvas。REGISTRY_ENTRY_OUTSIDE_CANVAS_DIR,不信任外部项目 canvas。M-体验09 验收通过;随后 Stop hook 阻止收尾,指出 /Users/ar/.codex/skills/dev-project-bootstrap 新增或变更的 agent skill 未达到 SAFE,原报告为 DO_NOT_INSTALL。本轮目标是解除该安全门阻塞,不安装、发布或分享该 skill。/Users/ar/.codex/rules/agent-skill-security.md。git init、缺少扫描器可识别的权限字段,以及英文说明触发自修改 / 持久化启发式规则。/Users/ar/.codex/skills/dev-project-bootstrap:scripts/bootstrap_dev_project.py 改为不执行 subprocess.run(["git", "init"], ...),--init-git 只打印人工 git -C <03-O> init 命令。--dry-run --init-git 改为可正常预览,不因 dry-run 未写出 PROJECT.md / INDEX.md 而失败。PM-MSPP-GATE,并在 MEXP12 通过后继续启动 MEXP13 scope freeze。PM-MSPP-GATE:Sidebar Preview polish 结论为 GO_FOR_MEXP12_SIDEBAR_PREVIEW_POLISH / NOT_RELEASE。02-P/MEXP12-SidebarPreviewPolish/pm/mexp12-pm-gate-20260702.md。02-P/MEXP12-SidebarPreviewPolish/pm/gate-rerun-20260702/。MEXP13 App + Codex Plugin Acceptance Bundle 的真实状态,收口已经完成的 worker 任务,执行 PM re-Gate,并明确下一步是否轮到用户复验。02-P/plan-progress.markdown、02-P/pmo-active-assignments.json 和 02-P/PMO_INBOX.md。MD-BUNDLE-05 worker 已完成并回报 PM_NOTIFY_READY=yes,但 PMO assignment 曾仍显示 active。1.2.2 / Build202607021605 refreshed DMG 执行 PM re-Gate。02-P/MEXP13-AcceptanceBundle/pm/mexp13-pm-regate-20260702-1.2.2.md。02-P/plan-progress.markdown:状态改为 Active / PM-BUNDLE-REGATE-02 GO / ready for user reacceptance。MD-BUNDLE-01 App DMG 候选包与 M4C-BUNDLE-01 Codex plugin runbook 证据。PM-BUNDLE-GATE Go / No-Go。1.2.1 / Build202607021050 复验步骤执行,到第 6 步发现侧边栏预览没有打开,并提交两张截图对比旧期望与当前表现。02-P/MEXP13-AcceptanceBundle/pm/user-acceptance-sidebar-entry-20260702/。http://127.0.0.1:43227/api/state 无服务,且无 mindraw-canvas-service 进程。~/plugins/mindraw/skills/mindraw-open-canvas/SKILL.md,确认默认入口描述存在歧义:open_mindraw_project_canvas 在 sidebar preview service 之前,且 preview service 仅在 “needed” 时启动。USER_REACCEPTANCE_FAILED_ON_SIDEBAR_ENTRY / M4C-BUNDLE-03 active。02-P/MEXP13-AcceptanceBundle/pm/m4c-bundle-03-sidebar-entry-dispatch-20260702.md。coder2@mindraw 身份完成统一台账 P-20260701-app-codex-plugin-acceptance-bundle 的 MD-BUNDLE-05:生成包含 MD-BUNDLE-04 preview freshness / target guard 修复的 MEXP13 internal acceptance DMG。/Applications/Mindraw.app、不修改用户项目文件。1.2.2Build202607021605mexp13-acceptance-bundlemexp13-acceptance-bundle-not-formal-release-not-notarized-installerMD-BUNDLE-03,基于 MD-BUNDLE-02 project canvas preview fidelity 修复生成新的 Mindraw App 内部验收 DMG。旧 1.2.0 / Build202607020214 不包含修复,不得继续给用户复验。1.2.1Build202607021050mexp13-acceptance-bundlef70263019a8dd47a5460903bca4ea0e6e5fa74bbv1.2.1-Build202607021050coder2@mindraw 的 MD-BUNDLE-03,确认其最终 PM_NOTIFY_READY=yes / PASS。hdiutil verify、mount structure、App metadata 和 codesign。MD-BUNDLE-03-20260702 active assignment。PM-BUNDLE-REGATE 记为 GO_FOR_USER_REACCEPTANCE / NOT_FORMAL_RELEASE。02-P/MEXP13-AcceptanceBundle/pm/mexp13-pm-regate-20260702.md。MEXP13 App + Codex Plugin Acceptance Bundle 时报告两个新问题,希望 PM 不再让用户继续试错,而是安排 worker 修复:编辑 按钮或双击画布,预期应激活 / 打开 Mindraw desktop App,实际不行。mindraw://localhost?documentId=mdoc_18be6514f9ceff78_165e4&elementId=BnZJU5WLUd4tHklxPLaxg 对应实际内容与 preview 不一致;实际文字是 我是,preview 显示 我说。P-20260701-app-codex-plugin-acceptance-bundle 状态从 M4C-BUNDLE-04 complete / waiting PM user reacceptance 改为 user reacceptance failed / MD-BUNDLE-04 + M4C-BUNDLE-05 active。USER-BUNDLE-REACCEPTANCE-03,明确本轮复验失败原因:SIDEBAR_EDIT_NOT_ACTIVATING1.2.2 / Build202607021605 真实复验后,反馈两个阻塞问题,并要求 PM 继续推进而不是停在旧 Gate 结论:编辑 能打开 Mindraw App,但窗口没有实时前置 / 聚焦,可能落在另一个 macOS Space,用户感知为“没反应”。mindraw://localhost?documentId=mdoc_18be6dd16dcd65a8_13325&elementId=0FsB_qTE-Ks07kgUCyChkP-20260701-app-codex-plugin-acceptance-bundle 状态从 PM-BUNDLE-REGATE-02 GO / ready for user reacceptance 改为 USER-BUNDLE-REACCEPTANCE-04 FAILED / MD-BUNDLE-06 + M4C-BUNDLE-06 dispatched。02-P/plan-progress.markdown 新增用户复验失败任务卡 USER-BUNDLE-REACCEPTANCE-04。Open Mindraw in sidebar for this project.Open Mindraw app for this project.在侧边栏打开这个项目的 Mindraw在 Mindraw App 中打开这个项目02-P/MEXP13-AcceptanceBundle/pm/m4c-bundle-04-explicit-open-location-commands-dispatch-20260702.md。pmo-active-assignments.json、plan-progress.markdown 和 coder2@mindraw 线程。MD-BUNDLE-02 已完成并回写台账,但 PMO active assignment 仍未关闭。MD-BUNDLE-02-20260702 为 done。M4C-BUNDLE-02-20260702 给 Coder@m4c。MD-BUNDLE-02,修复 MEXP13 用户验收发现的 preview fidelity 缺口:Codex sidebar 中的 Mindraw project canvas preview 必须接近 Mindraw desktop 的只读高保真画面,不得继续使用手写近似 SVG / 灰色图片占位 / 简化重绘。mindrawProjectCanvasPreview facade,负责解析 .mindraw scene、保留 image files、调用 exportToBlob、读取 PNG 尺寸并返回 base64 + metadata。write_mindraw_preview_snapshot 受控写入命令,只接受 PNG,校验 source、尺寸、PNG signature、byte cap,并写入 preview/preview.png 与 manifest preview metadata。image 占位消失。USER-BUNDLE-ACCEPTANCE Failed / PREVIEW_FIDELITY_MISMATCH。02-P/MEXP13-AcceptanceBundle/pm/user-acceptance-preview-fidelity-20260702/sidebar-preview-mismatch.png02-P/MEXP13-AcceptanceBundle/pm/user-acceptance-preview-fidelity-20260702/mindraw-desktop-reference.pngsrc-tauri/src/lib.rs 的 build_mindraw_preview_svg() 是手写近似 SVG renderer,image 分支只输出灰色占位框和 image 文本。.dmg 验收候选包。包类型为 mexp13-acceptance-bundle,不是 H8 / formal release,也不是 notarized installer;需要按发布版本规则固定 version、build、source commit、tag、manifest、SHA256、签名边界和回滚说明。1.1.0 升到 1.2.0:package.json、src-tauri/tauri.conf.json、src-tauri/Cargo.toml。CHANGELOG.md 的 MEXP09B / MEXP10 / MEXP13 用户可感知能力收口到 ## 1.2.0 - 2026-07-02,保留空 Unreleased。scripts/package-mindraw.sh,支持 MINDRAW_RELEASE_CLASS=mexp13-acceptance-bundle,manifest 不再落到 MEXP06 / MEXP09 文案。CODEGRAPH.md 与 03-O/C2.builds/README.md 的 MEXP13 打包入口和最新构建索引。M4C-MSPP-01,不要重启任务,从 checkpoint 收口:~/plugins/mindraw Codex sidebar preview polish。编辑 / double-click 打开同一 .mindraw、loading / unavailable / blocked 状态脱敏。03-O QA 证据、CODEGRAPH / INDEX / 台账回写。~/plugins/mindraw/scripts/mindraw-canvas-service.mjs:INDEX.md、02-P/plan-progress.markdown、PMO active assignment、MEXP13 MD-BUNDLE-07 与 M4C-BUNDLE-06 证据。1.2.3 / Build202607042351 已生成,且 crg-7784e7708416 已由代码审核员回写 PASS,但本机 hook 起初仍误判为 changes_requested。02-P/PMO_INBOX.md / 02-P/pmo-events.jsonl 中旧 stop 事件摘要、以及 02-P/pmo-active-assignments.json 末尾 notes 的精确 gate 字符串,和后续 review 文档中的历史“阻塞”词落入同一机械扫描窗口。pmo-active-assignments.json 末尾 notes 改成 same-gate 表述;正式 gate 事实仍保留在统一台账。Review Gate ID: crg-7784e7708416,review_status=pass,decision=allow。1.2.3 / Build202607042351 的候选包事实、PMO PM-BUNDLE-REGATE-03、Review Gate crg-7784e7708416、用户复验证据和当前 Git 状态。03-O/K2.项目管理/代码冻结/2026-07-06-MEXP13-1.2.3-用户复验.md。02-P/plan-progress.markdown、INDEX.md、CODEGRAPH.md 和 03-O/C2.builds/README.md,把当前状态从“待用户复验”收敛为“用户复验成功 + local source checkpoint”。8eba6a9fa82e12dd5e24a71a876e4a75f4d90c3f。1.2.3 / Build202607042351 与当前 Mindraw Codex plugin baseline 的真实路径试验,并反馈:“这轮试验完全成功,效果非常好”。http://127.0.0.1:43227/。READY,projectRoot=/Users/ar/Projects/Mindraw,canvasDir=/Users/ar/Projects/Mindraw/MindrawCanvas。02-P/MEXP13-AcceptanceBundle/pm/user-reacceptance-success-20260706/。02-P/plan-progress.markdown 当前事实基线与 P-20260701-app-codex-plugin-acceptance-bundle Progress Log。QA-EDC-02,要求在两个 Review Gate 已回写代码复核层面 PASS 后,按 QA-EDC-01 计划尽可能执行 MEXP14 外部分发候选验证。QA-EDC-01:建立并执行 MEXP14 fresh machine / clean profile 验收计划。真实 fresh machine 优先;若没有真实新机器,必须明确 clean macOS user / clean Codex profile fallback 风险,不能把本机普通 smoke 冒充跨机器验证。AGENTS.md、INDEX.md、02-P/plan-progress.markdown 的 MEXP14 计划项、MEXP14 Round Spec、角色派工简报中的 QA-EDC-01、以及 MEXP13 用户成功路径证据。02-P/MEXP14-ExternalDistributionCandidate/qa/qa-edc-01-fresh-machine-clean-profile-plan-20260706.md。02-P/MEXP14-ExternalDistributionCandidate/qa/qa-edc-01-readiness-blockers-20260706.json。QA-EDC-02 是否还没有回复,需要 PMO 给出当前 MEXP14 外部分发候选的真实进展。INDEX.md 与 02-P/plan-progress.markdown,确认当前活跃计划为 P-20260706-external-distribution-candidate。QA-EDC-02 已完成回报,结果为 PARTIAL,不是 QA PASS、PMO Gate、正式公开版本或用户验收。02-P/pmo-active-assignments.json 中 QA-EDC-02-20260706 从 active 收口为 done。02-P/plan-progress.markdown,先收口 QA 回报,再将计划状态调整为 Blocked / PM-EDC-GATE=BLOCKED_PENDING_FRESH_MACHINE / not formal release。PM-EDC-GATE,结论为 BLOCKED_PENDING_FRESH_MACHINE。PO-EDC-01,要求产品经理为 MEXP14 外部分发候选定义外部用户能理解、能验收的产品口径,并按需最小回写 PRD / 产品知识库。AGENTS.md、INDEX.md、02-P/plan-progress.markdown 中 P-20260706-external-distribution-candidate、MEXP14 Round Spec 和角色派工 brief。release-versioning.md,用于限定外部分发候选与正式可回滚测试包 / 发布包的边界。02-P/po/prd.md、产品知识库入口和 MEXP13 用户复验证据。019f28ec-36d0-7b03-8056-7e61ea782e59,正式复核两个 concrete Review Gate:crg-b694a42d46fd:MD-EDC-01 App / packaging manifest gate。crg-ce3b411d6cca:M4C-EDC-01 plugin candidate gate。019f37a2-e186-7210-bbc7-46073f97f7aa,状态为 inProgress。1.2.3 / Build202607042351 和 mindraw@personal 0.1.0+codex.20260704090518。02-P/MEXP14-ExternalDistributionCandidate/pm/mexp14-round-spec-20260706.md。02-P/MEXP14-ExternalDistributionCandidate/pm/mexp14-role-dispatch-briefs-20260706.md。02-P/plan-progress.markdown,新增 P-20260706-external-distribution-candidate。DESIGN-EDC-01,Plan ID P-20260706-external-distribution-candidate。以设计总监身份检查 MEXP14 外部分发候选在外部安装、first-run、sidebar 状态和截图说明上是否容易让普通用户误解,并在需要时最小回写设计事实源。/Users/ar/Projects/Mindraw/AGENTS.md、INDEX.md、02-P/plan-progress.markdown 中 P-20260706-external-distribution-candidate。02-P/MEXP14-ExternalDistributionCandidate/pm/mexp14-round-spec-20260706.md。02-P/MEXP14-ExternalDistributionCandidate/pm/mexp14-role-dispatch-briefs-20260706.md 中 DESIGN-EDC-01 任务段。02-P/ui/design-spec.md。02-P/ui/design-spec.md 增补 MEXP14 外部分发候选 UX 说明。02-P/MEXP14-ExternalDistributionCandidate/ops/ops-edc-01-distribution-kit-template-20260706.md02-P/plan-progress.markdown02-P/MEXP14-ExternalDistributionCandidate/pm/mexp14-round-spec-20260706.mdQA-EDC-03,要求从 QA 角色收口 MEXP14 外部分发候选的 App rollback 验证与剩余真实环境风险。边界是不得破坏当前主力机器状态,不改源码、构建、候选产物,不替 PMO 宣布候选升级。AGENTS.md、INDEX.md、统一台账 MEXP14 计划项、治理收口文档、QA-EDC-02 报告、用户新机器 CLI / GUI 证据和 OPS rollback 模板。1.2.3 / Build202607061556 与 rollback target 1.2.3 / Build202607042351 的本地 DMG SHA256。/Applications/Mindraw.app 版本,确认当前主力机器已经是 rollback target Build202607042351,不是可用于验证从 candidate 回滚的 prepared machine。M4C-EDC-02 rollback / freeze / archival 记录,确认 plugin 侧已记录无上一版外部分发 baseline,并选择 remove-only rollback,但仍待 REVIEW-EDC-02。02-P/MEXP14-ExternalDistributionCandidate/qa/qa-edc-03-rollback-and-residual-risk-20260707.md。/Users/ar/Downloads/mindraw-edc-rollback-test-kit-20260707//Users/ar/Downloads/mindraw-edc-rollback-test-kit-20260707.zipSHA256SUMS.txt、只读预检查脚本和 README。OK,两个 DMG hdiutil verify 均 valid。02-P/plan-progress.markdown,登记 rollback test kit 路径、zip SHA 和用途。Edit 可打开 Mindraw App。02-P/MEXP14-ExternalDistributionCandidate/qa/user-rollback-postcheck-20260707/sidebar-source-required-before-save.png02-P/MEXP14-ExternalDistributionCandidate/qa/user-rollback-postcheck-20260707/mindraw-app-after-rollback-edit.png02-P/MEXP14-ExternalDistributionCandidate/qa/user-rollback-postcheck-20260707.md/Users/ar/Downloads/01.md02-P/MEXP14-ExternalDistributionCandidate/qa/user-rollback-step1-precheck-20260707.md02-P/plan-progress.markdownINDEX.mdBuild202607061556 SHA256:OKinstalled, enabled。02-P/MEXP14-ExternalDistributionCandidate/qa/user-fresh-machine-plugin-cli-install-20260707.md。02-P/MEXP14-ExternalDistributionCandidate/qa/user-fresh-machine-gui-path-20260707.md。02-P/plan-progress.markdown,将 MEXP14 状态从 BLOCKED_PENDING_FRESH_MACHINE 调整为 user fresh-machine core path PASS_WITH_LIMITS / not formal release。OPS-EDC-02、QA-EDC-03、M4C-EDC-02 和 REVIEW-EDC-02 证据。REVIEW-EDC-02-20260707 从 active assignment 收回为 done,记录 crg-941a537b8e13=PASS。02-P/MEXP14-ExternalDistributionCandidate/pm/mexp14-pm-edc-regate-02-20260707.md。02-P/plan-progress.markdown,将 P-20260706-external-distribution-candidate 状态更新为 PM-EDC-REGATE-02 BLOCKED_PENDING_PREPARED_ROLLBACK_MACHINE。INDEX.md,加入新的 PMO Regate 文档入口。02-P/MEXP14-ExternalDistributionCandidate/ops/ops-edc-02-signing-notarization-rollback-policy-20260707.md,不修改...AGENTS.md、INDEX.md、统一台账 P-20260706-external-distribution-candidate、mexp14-governance-closure-20260707.md。02-P/MEXP14-ExternalDistributionCandidate/ops/ops-edc-02-signing-notarization-rollback-policy-20260707.md。INDEX.md 和 02-P/plan-progress.markdown,把 OPS-EDC-02 标成已回报,并记录待 PMO 决策项。1.2.4 / Build202607071930 signed / notarized / stapled DMG 的 PMO gate 和后续 fresh / clean 用户复验。MD-EDC-02 已产出 1.2.4 / Build202607071930 signed / notarized / stapled DMG。QA-EDC-04 已完成当前线程可安全执行的 artifact 层验证,结论为 partial artifact pass。PM-EDC-REGATE-04:GO_FOR_USER_RECHECK / NO_GO_FOR_PUBLIC_RELEASE_WITHOUT_FRESH_MACHINE_EVIDENCE。QA-EDC-04,要求 QA 基于 MD-EDC-02 已产出的 1.2.4 / Build202607071930 signed / notarized / stapled DMG,按已准备的验证矩阵执行普通用户路径验证,写入 QA validation report,回写统一台账,并回报 PMO。.p12 或 Keychain secret;如没有 fresh machine / clean macOS user,不得把本机普通 smoke 冒充跨机器验证。AGENTS.md、INDEX.md、02-P/plan-progress.markdown 的 P-20260707-signed-notarized-dmg、QA-EDC-04 验证矩阵、MD-EDC-02 自查 Markdown / JSON、Review Request crg-583d507f679。crg-583d507f679=PASS_SOURCE_DIFF_ONLY 的边界:只覆盖 source diff,不覆盖 artifact、QA、PMO Gate、用户验收或正式发布。hdiutil verify、xcrun stapler validate、DMG spctl、source tag、manifest metadata、DMG read-only mount、mounted App metadata、mounted App codesign 和 App `spc.../Applications、首次 GUI 启动、.mindraw / mindraw:// system handler、Codex sidebar、Edit / double-click、保存刷新、重启、rollback / uninstall;原因是当前机器不是 fresh / clean 环境,且 /Applications/Mindraw.app 已存在 `1.2...QA-EDC-04,要求先准备 signed / notarized DMG 的普通用户路径验证矩阵;等 MD-EDC-02 产出 artifact 和 Review Gate 结果后,再执行验证。当前不得自行打包、改代码或冒充已执行真实安装验证。AGENTS.md、INDEX.md、02-P/plan-progress.markdown 的 MEXP15 / MEXP14 / H8 相关段落。MD-EDC-02 artifact、Review Request 或 1.2.4 / Build20260707... DMG;未发现。02-P/MEXP15-SignedNotarizedDMG/qa/qa-edc-04-signed-notarized-dmg-validation-plan-20260707.md。02-P/plan-progress.markdown:MEXP15 状态更新为 Active / QA-EDC-04 validation plan ready / waiting MD-EDC-02 artifact,并补充 QA-EDC-04 任务卡、证据入口和 Progress Log。P-20260707-signed-notarized-dmg,目标版本口径为 1.2.4 / Build20260707HHMM。ARCH-EDC-02:架构有条件支持继续,无结构性 blocker。OPS-EDC-03:普通用户安装 / 回滚说明模板已准备,等待真实 artifact 补值。QA-EDC-04:signed / notarized DMG 验证矩阵已准备,等待真实 artifact。编辑 / Edit 也无法启动 Mindraw App;但如果用户手动启动 Mindraw,侧边栏画面又恢复正常。项目目标仍是把产品推进到足够成熟,能够面向普通用户推广使用。P-20260707-signed-notarized-dmg 的 fresh-machine 验证状态与 PMO 派工状态。02-P/MEXP15-SignedNotarizedDMG/qa/user-fresh-machine-sidebar-bootstrap-blocker-20260707.md02-P/MEXP15-SignedNotarizedDMG/qa/user-fresh-machine-sidebar-bootstrap-blocker-20260707.png02-P/plan-progress.markdownQA-EDC-05,要求 QA 复验 M4C-EDC-03 修复后的 fresh-machine / clean-user 用户路径,确认上一轮用户实测 blocker 是否解除:Mindraw App 未手动启动时,Codex sidebar 的 Edit / 双击是否能对已有 latest-created .mindraw package 拉起 Mindraw;保存后 side....p12、Keychain profile、token 或其他 secret。AGENTS.md、INDEX.md、MEXP15 台账、QA-EDC-05 续派简报、QA-EDC-04 plan / partial report、用户 fresh path blocker、MD-EDC-03 App 侧诊断、M4C-EDC-03 修复证据 / JSON / review request。REVIEW-EDC-04 / crg-eda4493ea1b8=PASS。编辑 附近显示 MINDRAW_OPEN_PACKAGE_API_REQUIRED。