edit | blame | history | raw

MEXP发布与QA门禁

生成日期:2026-07-10

当前状态

  • 主题说明:MEXP发布与QA门禁 相关会话的长期二级汇编;原始会话记录仍是证据源。
  • 来源记录数:196
  • 时间范围:2026-06-24 至 2026-07-07
  • 最新记录:2026-07-07-QAEDC05复验.md

最近结论摘录

  • 2026-07-07 2026-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.mdINDEX.md02-P/plan-progress.markdownP-20260707-signed-notarized-dmgQA-EDC-04 验证矩阵、MD-EDC-02 自查 Markdown / JSON、Review Request crg-583d507f679
  • 2026-07-07 2026-07-07-MEXP15QA计划.md:PMO 派发 QA-EDC-04,要求先准备 signed / notarized DMG 的普通用户路径验证矩阵;等 MD-EDC-02 产出 artifact 和 Review Gate 结果后,再执行验证。当前不得自行打包、改代码或冒充已执行真实安装验证。;按入口顺序读取 AGENTS.mdINDEX.md02-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 2026-07-07-MEXP15门禁收敛.md:用户要求进入 goal 工作模式,以“生成普通用户可用的 signed / notarized DMG”为目标,PMO 负责整理 TODO、派工和收敛各角色回报。;建立 MEXP15 计划项 P-20260707-signed-notarized-dmg,目标版本口径为 1.2.4 / Build20260707HHMM。;派发并消费:
  • 2026-07-07 2026-07-07-MEXP15首启阻塞派工.md:用户在测试机复验 MEXP15 signed / notarized DMG 后反馈:侧边栏画面无法正常显示,点击 编辑 / Edit 也无法启动 Mindraw App;但如果用户手动启动 Mindraw,侧边栏画面又恢复正常。项目目标仍是把产品推进到足够成熟,能够面向普通用户推广使用。;变更对象:P-20260707-signed-notarized-dmg 的 fresh-machine 验证状态与 PMO 派工状态。;事实来源:
  • 2026-07-07 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.mdINDEX.md、MEXP15 台账、QA-EDC-05 续派简报、QA-EDC-04 plan / partial report、用户 fresh path blocker、MD-EDC-03 App 侧诊断、M4C-EDC-03 修复证据 / JSON / review request。

核心事实补录

2026-07-06 2026-07-06-MEXP14外部分发派工.md

  • 变更对象:MEXP14 外部分发候选计划与 PMO 派工。
  • 事实来源:
  • /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.md
  • 变更前:MEXP13 本机体验复验成功并已冻结 source checkpoint,但尚未形成外部分发候选计划、fresh machine QA 计划或外部安装说明任务。
  • 变更后:新增 P-20260706-external-distribution-candidate,拆分产品、设计、架构、Mindraw App、m4c plugin、代码审核、QA、运营和 PMO Gate 任务。

2026-07-06 2026-07-06-MEXP14设计检查.md

  • 变更对象:Mindraw sidebar / App 设计事实源的外部分发候选说明。
  • 事实来源:02-P/plan-progress.markdownP-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...
  • 范围边界:本轮不做视觉重设计、不改代码、不扩大 target link 范围、不替 PMO / QA / 发布角色下 Gate 结论。
  • 验证证据:通过 rg 核对新增设计段落、DESIGN-EDC-01 台账勾选和 Progress Log 均已存在。
  • 需要补设计事实源,因为 MEXP14 进入外部分发候选语境,而原设计规格只覆盖 MEXP13 内部路径。
  • READY 只能表达当前 sidebar preview source 可用,不能被解释为正式发布、跨机器验收完成或 target link 已支持。

2026-07-06 2026-07-06-MEXP14运营材料.md

  • 变更对象:MEXP14 外部分发候选运营材料入口。
  • 事实来源:
  • 02-P/MEXP14-ExternalDistributionCandidate/ops/ops-edc-01-distribution-kit-template-20260706.md
  • 02-P/plan-progress.markdown
  • 02-P/MEXP14-ExternalDistributionCandidate/pm/mexp14-round-spec-20260706.md
  • INDEX.md
  • 变更前:MEXP14 只有 PM Round Spec、角色派工文档和 qa/ 目录;OPS-EDC-01 状态为 assigned,没有运营安装 / 校验 / 回滚材料模板。
  • 变更后:

2026-07-07 2026-07-07-MEXP14-QAEDC03.md

  • qa_result=BLOCKED_PENDING_PREPARED_MACHINE
  • PM_NOTIFY_READY=yes,含义是 QA-EDC-03 报告和阻塞条件已经可供 PMO 收敛,不代表 QA PASS、PMO Gate、发布或用户验收通过。
  • 当前机器不执行 destructive rollback:不删除 /Applications/Mindraw.app,因为当前机器不是 prepared rollback target,且已经安装 rollback baseline。
  • Plugin remove-only rollback 只认定为 CLI 层 PASS_WITH_LIMITSM4C-EDC-02 已记录无 previous external plugin baseline 并采用 remove-only policy,但该记录仍待 Review Gate crg-941a537b8e13 / PMO 接受,Codex Desktop GUI removal 未覆盖。
  • 变更对象:MEXP14 QA-EDC-03 App rollback 与剩余真实环境风险状态。
  • 事实来源:
  • 02-P/MEXP14-ExternalDistributionCandidate/qa/qa-edc-03-rollback-and-residual-risk-20260707.md
  • 02-P/plan-progress.markdown

2026-07-07 2026-07-07-MEXP14回滚包.md

  • Candidate App DMG:Mindraw_1.2.3_aarch64-Build202607061556.dmg
  • Candidate SHA256:3b17b89461374621c80d127e6475e6de502031486201f672f7fc4fde57e744a8
  • Rollback App DMG:Mindraw_1.2.3_aarch64-Build202607042351.dmg
  • Rollback SHA256:5c8041288a61f8c09e7bf0ca8a0bcd68b55d17e5aaa1079eb8d7864a952481b5
  • Plugin tarball:mindraw-plugin-0.1.0+codex.20260704090518-EDC20260706154843.tar.gz
  • Plugin tarball SHA256:ee06e91a866049b6a8062367f77fc659aa3c3c9f5638f7b0c2b61ad8e14aa2f1
  • Rollback test kit zip:/Users/ar/Downloads/mindraw-edc-rollback-test-kit-20260707.zip
  • Rollback test kit zip SHA256:262980ce8704fed8e03d5130114b1cbcab7a4e6f462cd67afbc3c775ad4b3569

2026-07-07 2026-07-07-MEXP14回滚扎口.md

  • 变更对象:MEXP14 外部分发候选 rollback readiness。
  • 变更前:
  • PM-EDC-REGATE-02 结论为 BLOCKED_PENDING_PREPARED_ROLLBACK_MACHINE
  • 阻塞原因是 App rollback 尚未在已安装 Build202607061556 且允许替换 /Applications/Mindraw.app 的测试机器上实证。
  • 变更后:
  • 用户已在上一轮测试机器完成 rollback 实证。
  • rollback 安装 / 替换命令已证明 /Applications/Mindraw.app 回到 1.2.3 / Build202607042351,且 codesign 验证通过。
  • rollback 后 Mindraw App 可打开,Edit 可拉起 App。

2026-07-07 2026-07-07-MEXP14回滚预检.md

  • Candidate DMG Build202607061556 SHA256:OK
  • Rollback DMG Build202607042351 SHA256:OK
  • Plugin tarball SHA256:OK
  • Candidate DMG hdiutil verifyVALID
  • Rollback DMG hdiutil verifyVALID
  • 测试机当前 /Applications/Mindraw.app1.2.3 / Build202607061556
  • 当前 App codesign verify:valid on disk / satisfies Designated Requirement
  • codex plugin list:可见 mindraw@mindraw-mexp14-edc-20260706154843 installed, enabled

2026-07-07 2026-07-07-MEXP14新机验证.md

  • 变更对象:MEXP14 外部分发候选的新机器核心路径证据。
  • 事实来源:
  • 用户终端粘贴:/Users/ar/.codex/attachments/685c3064-c5fb-46bf-bd92-14bbed1259de/pasted-text.txt
  • 用户截图:
  • 02-P/MEXP14-ExternalDistributionCandidate/qa/user-fresh-machine-gui-path-20260707/codex-sidebar-ready-save-refresh.png
  • 02-P/MEXP14-ExternalDistributionCandidate/qa/user-fresh-machine-gui-path-20260707/mindraw-app-open-edit.png
  • 证据文档:
  • 02-P/MEXP14-ExternalDistributionCandidate/qa/user-fresh-machine-plugin-cli-install-20260707.md

2026-07-07 2026-07-07-MEXP14治理收口.md

  • 当前 MEXP14 App + plugin 新机器核心路径已由用户验证成功,但这不自动等于更正式的外部自助安装候选。
  • Signing / notarization 收敛为 CONTROLLED_CANDIDATE_ONLY:当前 App 是 ad-hoc signed、DMG unsigned、not notarized,只能按受控候选表达;若扩大到普通外部用户或自助安装,需要另拆 MD-EDC-02
  • Plugin rollback 接受 remove-only rollback,因为没有上一版外部分发 plugin baseline;该结论已由 crg-941a537b8e13=PASS 覆盖到代码复核层面。
  • P2 source freeze / artifact archival 接受 snapshot manifest + artifact archival 口径;这不是 clean commit/tag freeze,且 C2.builds/* 不进 Git。
  • App rollback 仍未实机验证:没有一台已安装 Build202607061556 且可安全替换 /Applications/Mindraw.app 的 prepared fresh / clean machine。因此 PMO 组合扎口结论为 BLOCKED_PENDING_PREPARED_ROLLBACK_MACHINE
  • App candidate:1.2.3 / Build202607061556
  • App DMG:03-O/C2.builds/releases/Build202607061556/Mindraw_1.2.3_aarch64-Build202607061556.dmg
  • App SHA256:3b17b89461374621c80d127e6475e6de502031486201f672f7fc4fde57e744a8

2026-07-07 2026-07-07-MEXP14运营收口.md

  • 变更对象:MEXP14 外部分发候选的运营分发政策和风险回报模板。
  • 事实来源:
  • 02-P/MEXP14-ExternalDistributionCandidate/ops/ops-edc-02-signing-notarization-rollback-policy-20260707.md
  • 02-P/plan-progress.markdown
  • 02-P/MEXP14-ExternalDistributionCandidate/pm/mexp14-governance-closure-20260707.md
  • 02-P/MEXP14-ExternalDistributionCandidate/qa/qa-edc-02-external-distribution-check-20260706.md
  • 02-P/MEXP14-ExternalDistributionCandidate/qa/user-fresh-machine-gui-path-20260707.md
  • 当前候选事实:

2026-07-07 2026-07-07-MEXP15PMOGate.md

  • 变更对象:MEXP15 普通用户可用 signed / notarized DMG gate。
  • 候选包:/private/tmp/mindraw-md-edc-02-signed-notarized-20260707/03-O/C2.builds/releases/Build202607071930/Mindraw_1.2.4_aarch64-Build202607071930.dmg
  • DMG SHA256:5a053f02910463507879b42bb63445810eae3bfb2a9730c65f753e32e5d74df3
  • Manifest:/private/tmp/mindraw-md-edc-02-signed-notarized-20260707/03-O/C2.builds/releases/Build202607071930/release-manifest.json
  • Manifest SHA256:1c9af6795bb239f3d92d84bd864e7df524845683219de37d6c021f8cdeb20931
  • Source commit:583d507f679866f670b4fec82f1e631d4a9dbf54
  • Release tag:v1.2.4-build20260707.1930-mexp15-signed-notarized
  • Notary submission:fc55d6cb-140e-4915-889f-d8f1c0a48662 / Accepted

2026-07-07 2026-07-07-MEXP15QA执行.md

  • QA 结论为 PARTIAL QA-EDC-04 WAITING_FOR_FRESH_MACHINE_OR_USER_OPERATION
  • artifact 层可判定为 PASS,但普通用户完整路径不得判定 PASS。
  • 当前主力机已有 Mindraw 安装,不执行会覆盖或删除 /Applications/Mindraw.app 的验证动作。
  • 变更对象:MEXP15 QA-EDC-04 状态与证据链。
  • 事实来源:
  • 02-P/MEXP15-SignedNotarizedDMG/qa/qa-edc-04-signed-notarized-dmg-validation-report-20260707.md
  • 02-P/MEXP15-SignedNotarizedDMG/qa/qa-edc-04-signed-notarized-dmg-validation-report-20260707.json
  • 02-P/plan-progress.markdown

2026-07-07 2026-07-07-MEXP15QA计划.md

  • 当前回报口令为:PARTIAL QA-EDC-04 WAITING_FOR_MD_EDC_02_ARTIFACT
  • 不创建执行报告,不声明 QA PASS、PMO Gate、用户验收或发布结论。
  • 执行验证前必须拿到 MD-EDC-02 signed / notarized DMG、自查报告 / JSON、Review Request、concrete Review Gate ID,以及 REVIEW-EDC-03 对同一 Gate ID 的结论或 PMO 明确允许的受限验证指令。
  • 普通用户路径优先使用真实 fresh macOS Apple Silicon machine;clean macOS user 只能作为 fallback,并必须标明限制。
  • rollback / uninstall 只允许在 prepared environment 执行,不得破坏当前主力机器 /Applications/Mindraw.app
  • 变更对象:MEXP15 QA-EDC-04 signed / notarized DMG QA 状态。
  • 事实来源:
  • 02-P/MEXP15-SignedNotarizedDMG/qa/qa-edc-04-signed-notarized-dmg-validation-plan-20260707.md

2026-07-07 2026-07-07-MEXP15门禁收敛.md

  • Plan ID:P-20260707-signed-notarized-dmg
  • Review Gate ID:crg-583d507f679
  • Source worktree:/private/tmp/mindraw-md-edc-02-signed-notarized-20260707
  • Source commit:583d507f679866f670b4fec82f1e631d4a9dbf54
  • Base commit:b694a42d46fd02dcd6873e1f3f2406d3166fb28a
  • Version / Build:1.2.4 / Build202607071930
  • MD-EDC-02 状态:blocked
  • Blocker:Developer ID Application identity 可见,但当前 shell / Keychain 下 notary credential profile 不可用;notarytool history 返回 Keychain password item missing。

2026-07-07 2026-07-07-MEXP15首启阻塞派工.md

  • 变更对象:P-20260707-signed-notarized-dmg 的 fresh-machine 验证状态与 PMO 派工状态。
  • 事实来源:
  • 02-P/MEXP15-SignedNotarizedDMG/qa/user-fresh-machine-sidebar-bootstrap-blocker-20260707.md
  • 02-P/MEXP15-SignedNotarizedDMG/qa/user-fresh-machine-sidebar-bootstrap-blocker-20260707.png
  • 02-P/plan-progress.markdown
  • 02-P/pmo-active-assignments.json
  • 变更前:
  • MEXP15 状态为 GO_FOR_USER_RECHECK / NO_GO_FOR_PUBLIC_RELEASE_WITHOUT_FRESH_MACHINE_EVIDENCE

2026-07-07 2026-07-07-QAEDC05复验.md

  • 本轮终态为 PARTIAL QA-EDC-05 WAITING_FOR_OWNER_OPERATION
  • 当前只完成前置证据和候选核对,不声明 QA PASS。
  • 真实复验必须由 Owner / PMO 在 fresh machine、clean macOS user 或 prepared rollback GUI environment 执行并回传证据。
  • 变更对象:MEXP15 QA-EDC-05 状态和证据链。
  • 事实来源:
  • 02-P/MEXP15-SignedNotarizedDMG/qa/qa-edc-05-fresh-machine-recheck-report-20260707.md
  • 02-P/MEXP15-SignedNotarizedDMG/qa/qa-edc-05-fresh-machine-recheck-report-20260707.json
  • 02-P/plan-progress.markdown

来源索引

时间线

2026-06-24 2026-06-24-Cate参考归档.md

  • 原始标题:2026-06-24 Cate参考归档
  • 将本轮获取到的 Cate 外部开源项目源码参考和架构分析成果放到 /Users/ar/Projects/ExcalidrawX/01-I/X-参考-cafe/ 下,便于 Mindraw 后续长期参考。
  • 01-I/X-参考-cafe/ 下新增 cate-538db77/ 归档目录。
  • 将本轮实际抓取并引用的 Cate 关键源码文件复制到 cate-538db77/source-key-files/
  • 删除早期抓取过程中产生的 404: Not Found 占位文件,只保留真实源码/配置/README 文件。
  • 将分析文档复制到 cate-538db77/analysis/cate-canvas-heterogeneous-app-analysis.md
  • 新增 cate-538db77/README.md,说明来源、commit 基线、内容范围和使用方式。

2026-06-24 2026-06-24-Cate架构分析.md

  • 原始标题:2026-06-24 Cate架构分析
  • 分析开源项目 0-AI-UG/cate 的技术结构,重点解释它如何把浏览器、终端等内在结构不同的应用放在同一张画布上展现,并输出为一份带详细结构图的项目文档,为 Mindraw 后续增强画布元素能力提供参考。
  • 查阅 Mindraw 项目索引和研发前置讨论规则,确认本轮只做架构分析和文档沉淀,不修改运行代码。
  • 通过 GitHub API 和 raw 源码读取 Cate 关键文件,分析基线固定为 main 分支 commit 538db77b1c8734fe6d9af45213dd48417625c49d,版本 1.3.2
  • 分析 Cate 的 PanelStateCanvasNodeStateDockLayoutNodePanel registryCanvasPanelCanvasNodeTerminalPanelBrowserPanel、终端 IPC 和浏览器 session/proxy 结构。
  • 新增架构分析文档,并登记到 INDEX.md
  • 文档放在 02-P/architecture/cate-canvas-heterogeneous-app-analysis.md,因为它属于后续 Mindraw 架构判断和技术路径参考。

2026-06-24 2026-06-24-Mindraw唯一真相.md

  • 原始标题:会话记忆 - Mindraw唯一真相 - 2026-06-24
  • 围绕基于 Mindraw / ExcalidrawX 重做“可视化上下文桥”的方案,确认 .mindraw 本地包格式中的唯一真相规则,避免未来出现画布结构、资产索引、图片文件和 AI 任务记录互相冲突。
  • 讨论了 Cowart 的产品思路问题:本地画布却以本地 URL 作为主要入口,容易造成用户找不到文件、误以为内容丢失。
  • 明确 Mindraw 新方案定位:以 Excalidraw 交互为基础,做本地文件优先的“可视化上下文桥”。
  • 用户确认关键取舍:
  • 不要求 .mindraw 文件被官方 Excalidraw 原样打开。
  • 只对“AI 标注 Frame”自动生成 paired AI Frame,不对普通 Frame 自动生成。

2026-06-24 2026-06-24-mindrawforcodex计划.md

  • 原始标题:会话记忆 - mindrawforcodex计划 - 2026-06-24
  • 为 Codex 做一个全新的 Mindraw 插件,名称为 mindrawforcodex,定位类似 Cowart,但采用 Mindraw 本地文件优先的产品路线。用户要求把此前讨论的重要决议点、详细分期计划整理成稳定文档,并把 Cowart 源码和架构分析材料归档到 p.mindrawforcodex/01-I/
  • 新增 mindrawforcodex 工作计划文档。
  • 将 Cowart 架构分析材料移动到 p.mindrawforcodex/01-I/
  • 将 Cowart 源码快照从临时目录 /private/tmp/cowart 移动到 p.mindrawforcodex/01-I/cowart-source/
  • 更新 INDEX.md,登记 p.mindrawforcodex/ 作为 Mindraw for Codex 插件计划入口。
  • 在工作计划文档中补充 Cowart 输入材料路径。

2026-06-24 2026-06-24-mindraw定义启动.md

  • 原始标题:2026-06-24 Mindraw 定义启动
  • 用户要求把 .mindraw 自定义格式建设方案和分期计划落成正式 Markdown 文档,更新到:
  • /Users/ar/Projects/ExcalidrawX/02-P/plan.markdown
  • 同时启动第一期工作,并将过程文档放到:
  • /Users/ar/Projects/ExcalidrawX/02-P/Round01-mindraw-defstart/
  • 已将 .mindraw 自定义格式建设方案和分期计划追加到 02-P/plan.markdown
  • 已创建 Round01 过程文档目录。

2026-06-24 2026-06-24-mindraw格式分期计划.md

  • 原始标题:2026-06-24 Mindraw 格式分期计划
  • 用户认可此前“Mindraw 面向未来的格式路线图”,并提出更具体的 .mindraw 文件格式设想:
  • .mindraw 本质上应像一个文件夹/包。
  • 包内包含 Excalidraw 场景文件。
  • 包内包含独立 .assets 文件夹,用于保存图片等附件。
  • 近期目标:让图片附件能以少压缩甚至不压缩的方式进入 .assets,降低画质损失。
  • 长期目标:支撑 HTML、terminal、browser、Txtflowy/OMD 等更复杂的 Mindraw 专属能力。

2026-06-24 2026-06-24-mindraw格式面向未来路线图.md

  • 原始标题:mindraw格式面向未来路线图
  • 用户希望对比 Mindraw(原名 ExcalidrawX)当前技术架构与开源项目 Cate 的技术思路,判断 Mindraw 是否有可能在画布中嵌入终端、HTML/XML/JS 类应用,并支持这些元素在普通状态下作为可视化 frame 展示,在合适状态下进入可编辑或深度工作状态。
  • 用户还提出一个补充方向:嵌入元素的 frame 未来可能需要支持置顶浮动,即固定在屏幕固定位置,而不是只跟随画布坐标移动。
  • 只读查看了 Mindraw 当前前端与 Tauri 架构:
  • 前端主入口是 App.tsx,整体布局为 Sidebar + ExcalidrawEditor
  • 核心画布依赖是 @excalidraw/excalidraw
  • 状态管理基于 Zustand,当前 tab 模型主要面向 .excalidraw 文档。

2026-06-24 2026-06-24-mindraw脚本能力.md

  • 原始标题:2026-06-24 Mindraw 脚本能力
  • 用户询问未来是否能吸收 Excalidraw scripts / ExcalidrawAutomate 的能力,并确认该能力不会改变 .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 设计。

2026-06-25 2026-06-25-Mindraw080冻结.md

  • 原始标题:2026-06-25 Mindraw 0.8.0 冻结
  • 确认当前最新版 Mindraw 的版本号。
  • 打一个可安装体验的 DMG 包。
  • 做代码冻结和 Git 存档,后续可回滚到该版本。
  • 将 Mindraw 发布版本确定为 0.8.0,Build 为 Build202606252106
  • 生成最终 DMG:
  • /Users/ar/Projects/ExcalidrawX/03-O/C2.builds/releases/Build202606252106/Mindraw_0.8.0_aarch64-Build202606252106.dmg

2026-06-25 2026-06-25-Mindraw另存.md

  • 原始标题:2026-06-25 Mindraw 另存
  • 继续推进 .mindraw Phase 2:在普通原生 Save As 面板无法直接创建 .mindraw 目录包后,补齐可真实使用的显式 .mindraw 另存路径。仍不进入 macOS package 注册、全局链接 runtime 或完整生产迁移。
  • 新增后端 Tauri 命令 save_mindraw_package_as,使用 Mindraw save panel filter,并把非 .mindraw 选择路径归一为 .mindraw
  • 新增 ensure_mindraw_save_path() 和对应 Rust 单测,覆盖无扩展/错误扩展时的 .mindraw 路径归一。
  • 前端新增 saveCurrentFileAsMindrawPackage(),接入 File > Save As Mindraw Package... 菜单命令。
  • 专用另存会先 flush active editor snapshot,传入其他 dirty tab 路径用于后端覆盖保护,并在保存成功后把当前 tab adopted 到新 .mindraw 包路径。
  • 默认保存名改为 原名 copy.mindraw,避免从 Source.excalidraw 另存到同目录时 macOS save panel 因同 basename 源文件禁用 Save。

2026-06-25 2026-06-25-Mindraw实现.md

  • 原始标题:2026-06-25 Mindraw 实现
  • 用户要求继续推进 .mindraw 格式建设;当前重点是不要停留在 Tauri 目录包 spike,而是向“Mindraw 格式 + 全局链接”目标继续开工。
  • 完成 .mindraw Phase 1/2 初始生产实现:
  • 新增前端文档格式识别模块,识别顶层 .excalidraw 文件和 .mindraw 目录包。
  • 明确拒绝 .mindraw 包内 drawing.excalidraw / .assets/* 作为独立文档打开。
  • 前端打开链路可对 .mindraw 包调用后端 read_mindraw_package
  • 前端保存链路可对 dirty .mindraw tab 调用后端 save_mindraw_package

2026-06-25 2026-06-25-Mindraw导出.md

  • 原始标题:2026-06-25 Mindraw 导出互通
  • 继续推进 .mindraw 基本可用,当前阶段补 Phase 3:.mindraw 导出标准 .excalidraw 和 Obsidian .excalidraw.md,不提前做 mindraw:// 全局链接 runtime。
  • 新增 File > Export as Excalidraw... 菜单项。
  • 新增前端 exportCurrentFileAsExcalidraw(),从当前 active Tab flush 后的 Excalidraw 内容导出标准 .excalidraw,导出后不接管当前 Tab。
  • 新增后端 Tauri command export_excalidraw_file,校验 Excalidraw JSON,保存面板只使用 .excalidraw filter,并把输出路径归一为 .excalidraw
  • 修正 Obsidian 导出文件名:Board.mindraw 建议导出为 Board.excalidraw.md
  • 补充前端和 Rust 测试,覆盖 .mindraw 当前 Tab 导出 .excalidraw / .excalidraw.md、active Tab 不变、路径归一和建议名净化。

2026-06-25 2026-06-25-Mindraw导出smoke.md

  • 原始标题:2026-06-25 Mindraw 导出保存面板 smoke
  • 继续推进 .mindraw 基本可用;在 Phase 3.5 推进过程中,顺手补齐 Phase 3 里此前因本机安装版 bundle id 冲突而未签 PASS 的完整保存面板导出 smoke。
  • 使用 debug .app 复制生成临时唯一 bundle id QA app:/Applications/MindrawExportQA-*.app,未覆盖正式 /Applications/Mindraw.app
  • 使用 single-image.mindraw fixture 生成临时测试包 /tmp/mindraw-phase3-export-smoke/ExportBoard.mindraw
  • 用临时 registry 和 mindraw://open?documentId=mdoc_fxt_single_image_2V8C5N1Q9L4B7S6D 打开测试包;首次冷启动 URL 未被前端接到,第二次热启动投递成功。
  • 通过 File > Export as Excalidraw... 真实系统保存面板导出标准 .excalidraw
  • 通过 File > Export as Obsidian Excalidraw... 真实系统保存面板导出 .excalidraw.md

2026-06-25 2026-06-25-Mindraw拖放.md

  • 原始标题:2026-06-25 Mindraw 拖放
  • 继续推进 .mindraw Phase 2:验证并补齐 Tauri 目录包相关的选择、打开、保存、watch、拖放、路径校验和失败态,不进入全局链接 runtime 或 macOS package 注册。
  • 补齐 Finder/Tauri drop 的文档路径分流:拖放路径中如果包含顶层 .mindraw 包或 .excalidraw 文件,先按文档打开;同批图片路径不再继续导入。
  • 空画布状态也挂载 drop root,使没有 active file 时具备接收文档 drop 的前端路径。
  • 增加自动化覆盖:
  • getSupportedDroppedDocumentPaths() 保留顶层 .mindraw / .excalidraw,拒绝 .mindraw/drawing.excalidraw 内部路径并去重。
  • openDroppedDocuments() 打开 .mindraw 包,且不会触发图片导入。

2026-06-25 2026-06-25-Mindraw深链.md

  • 原始标题:2026-06-25 Mindraw 深链基础链路
  • 继续推进 .mindraw 基本可用,进入 Phase 3.5:验证本机 mindraw:// Global Link / Deep Link,让从任意位置点击链接打开 Mindraw 文件成为可实现路径。
  • 接入 Tauri 2 deep-link 插件:
  • @tauri-apps/plugin-deep-link
  • tauri-plugin-deep-link
  • src-tauri/capabilities/default.json 增加 deep-link:default
  • src-tauri/tauri.conf.json 增加 plugins.deep-link.desktop.schemes = ["mindraw"]

2026-06-25 2026-06-25-Mindraw深链收口.md

  • 原始标题:2026-06-25 Mindraw 深链收口
  • 继续 Phase 3.5 Global Link / Deep Link 工作。
  • 用户确认允许直接处理 /Applications/Mindraw.app,且不要求恢复旧安装版。
  • 目标是让 .mindraw 的全局链接在本机基本可用,尤其是系统入口、浏览器、Finder 和 Markdown 文档入口。
  • Copy link to object 的规范输出从 mindraw://open?documentId=...&element=... 改为 mindraw://localhost?documentId=...&elementId=...
  • 保留后端对旧 mindraw://open?... 格式的兼容解析。
  • 重新构建 debug .app 并覆盖 /Applications/Mindraw.app,bundle id 为 com.mindraw.desktop,scheme 为 mindraw

2026-06-25 2026-06-25-Mindraw选择.md

  • 原始标题:2026-06-25 Mindraw选择
  • 继续向 Phase 3.5 前的完整 .mindraw 格式推进;本轮聚焦 Phase 2 剩余的目录包选择、系统打开边界和失败态状态保护。
  • 新增 openDirectoryOrDocument() store 入口:
  • 普通目录继续执行 loadDirectory()
  • .mindraw 路径按文档打开,调用 read_mindraw_package,随后加载父目录,避免浏览包内部。
  • 菜单 Open Directory、快捷键 Cmd/Ctrl+O、侧边栏目录选择按钮均接入 openDirectoryOrDocument()
  • 侧边栏空目录提示从 “No .excalidraw files found” 改为 “No Mindraw documents found”。

2026-06-25 2026-06-25-Mindraw验证.md

  • 原始标题:2026-06-25 Mindraw验证
  • 继续推进 .mindraw Phase 2 的 Tauri 目录包验证:选择、打开、保存、watch、路径校验和失败态;不进入全局链接实现,不提前 Phase 3.5。
  • 继续完善 .mindraw Phase 1/2 初始生产实现的文件树操作一致性:
  • .mindraw 文件树显示标题不再暴露扩展名。
  • .mindraw 重命名保持 .mindraw 扩展和文档 kind。
  • .mindraw 删除按目录包整体删除。
  • 修复 Tauri watch 缺口:

2026-06-25 2026-06-25-P0样例生成.md

  • 原始标题:2026-06-25 P0 样例生成
  • 继续推进 Round01 .mindraw 格式定义工作,生成第一批 P0 fixtures,并补齐可复核的预期结果、包结构快照和 SHA-256 证据。
  • 已生成第一批 P0 fixtures:
  • minimal-empty.mindraw
  • single-image.mindraw
  • missing-asset.mindraw
  • damaged-manifest.mindraw

2026-06-25 2026-06-25-P1-Txtflowy改名.md

  • 原始标题:2026-06-25 P1-Txtflowy 改名收口
  • 继续执行 0.6.0 clean extraction 收尾工作。
  • 在确认独立链路、文档路径、构建都稳定后,把子项目目录从 Txtflowy 正式改名为 P1-Txtflowy
  • 同时保持与 AnyBlock 的活跃链路完全脱钩,并确保独立源码继续由自己的 Git 仓库管理。
  • 采用“先脱钩、后改名”的顺序是正确的;只有在独立 build、独立 Git、Batch 2 对照都稳定后才做物理改名。
  • P1-Txtflowy/ 现在是唯一有效的独立源码物理根。
  • archive/any-block-fork/ 继续保留为历史基线,不重新接回活跃运行链路。

2026-06-25 2026-06-25-Phase36原生包.md

  • 原始标题:2026-06-25 Phase 3.6 原生包与链接恢复
  • 用户认可新增小阶段 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.document
  • LSTypeIsPackage = true
  • conforms to com.apple.packagepublic.directory

2026-06-25 2026-06-25-Round01复核.md

  • 原始标题:2026-06-25 Round01 复核
  • 用户要求组织一次 Round01 第一批文档复核,判断当前 .mindraw 格式定义工作是否可以进入 fixtures / Tauri 目录包 spike。
  • 复读当前 Round01 六份文档、02-P/plan-progress.markdownINDEX.md
  • 新增复核记录:02-P/Round01-mindraw-defstart/first-batch-review.md
  • 在复核记录中从架构师、Coder、QA 三个视角给出结论。
  • 更新 02-P/Round01-mindraw-defstart/README.md,登记 R01-07 复核文档,并把下一步调整为先生成 P0 fixtures。
  • 更新 02-P/plan-progress.markdown,追加复核 Progress Log,并把后置问题更新为 P0 fixtures 先行、Tauri 目录包 spike 后置。

2026-06-25 2026-06-25-Round01开工评审.md

  • 原始标题:2026-06-25 Round01 开工评审
  • 用户要求组织两位架构师和两位 QA,对 Round01-mindraw-defstart 当前状态进行小会评审,判断 Round01 是否具备开工条件。

2026-06-25 2026-06-25-Round01文档建设.md

  • 原始标题:2026-06-25 Round01 文档建设
  • 用户确认 Round01 第一批开工建设,要求基于已评审的 .mindraw 格式规划开始推进。用户明确确认 7 项前置决策:
  • 第一批范围限定为文档契约收口、QA 用例化和 fixtures 规格,不进入生产代码实现。
  • MVP 包结构固定为 Board.mindraw/manifest.jsonBoard.mindraw/drawing.excalidrawBoard.mindraw/.assets/
  • 第一版只按普通目录包处理,不注册 macOS package。
  • .assets 第一版只是镜像/资产池,drawing.excalidraw 中的 files.dataURL 仍是运行时和导出安全底座。
  • documentId MVP 必填,不包含用户名、路径等隐私信息;另存为新 .mindraw 包默认生成新的 documentId

2026-06-25 2026-06-25-Txtflowy批次2对照.md

  • 原始标题:2026-06-25 Txtflowy 批次2对照
  • 在已完成独立仓迁移的基础上,继续推进 0.6.0 Batch 2
  • 重点是对照旧 AnyBlock 链路,补齐独立 Txtflowy 工程中仍缺失的用户可见行为。
  • 这轮不做目录改名,不恢复 AnyBlock 主入口。
  • 不把 AnyBlock 的整套转换命令、状态栏按钮和外围杂项迁回独立 Txtflowy。
  • 只补回与 txtflowy 自身直接相关的最小刷新能力。
  • 0.6.0 Batch 2 在“源码对照层”视为已完成,后续重点应转向真实环境回归而不是继续搬运 AnyBlock 壳层。

2026-06-25 2026-06-25-Txtflowy独立仓迁移.md

  • 原始标题:2026-06-25 Txtflowy 独立仓迁移
  • 继续执行“先脱钩,后改名”方案。
  • 先不要把 Txtflowy 物理改名为 P1-Txtflowy
  • 先把 Txtflowy 内部整理成干净、独立、可单独 Git 管理的插件工程。
  • 要求与 AnyBlock 完全脱钩,不再让 AnyBlock 作为当前活跃工程主线。
  • 不先做 Txtflowy -> P1-Txtflowy 物理改名。
  • AnyBlock 不再作为当前活跃 runtime / build / Git 主线。

2026-06-25 2026-06-25-Txtflowy脱钩执行.md

  • 原始标题:用户目标
  • 用户接受“先脱钩,后改名”的建议。
  • 要求正式开始执行 TxtflowyAnyBlock 完全脱钩的迁移工作。
  • 创建新的根级独立工程文件:
  • Txtflowy/.gitignore
  • Txtflowy/package.json
  • Txtflowy/manifest.json

2026-06-25 2026-06-25-Txtflowy脱钩迁移方案.md

  • 原始标题:用户目标
  • 要求给出一份 Txtflowy 迁移方案。
  • 新增硬约束:Txtflowy 最终必须与 AnyBlock 完全脱钩
  • 迁移目标不是“从 AnyBlock fork 中继续演化”,而是:
  • 建立一套独立的 Txtflowy 插件源码、构建、文档、发布和 Git 管理体系
  • 最终状态下,AnyBlock 不再参与运行、构建、发布、安装、测试主路径
  • 目录改名与 clean extraction 不绑定:

2026-06-25 2026-06-25-Txtflowy迁移评估-01.md

  • 原始标题:用户目标
  • 只读评估是否适合把 /Users/ar/Projects/ExcalidrawX/Txtflowy 重命名为 /Users/ar/Projects/ExcalidrawX/P1-Txtflowy,并把 Txtflowy 源代码独立管理到 /Users/ar/Projects/ExcalidrawX/P1-Txtflowy/src;重点关注实现复杂度、潜在回归、脚本/构建/版本文件/复制流程影响,并给...
  • 读取研发前置讨论、代码治理、任务连续推进、会话记忆规则。
  • 读取项目根 INDEX.md02-P/plan-progress.markdown,确认 Txtflowy/ 被主项目视为独立子项目。
  • 检查 Git 管理边界,确认:
  • Txtflowy/ 整体当前未纳入外层 Git 跟踪。
  • 真正受 Git 管理的源码位于 Txtflowy/any-block/,且该目录是指向上游 any-block 的独立嵌套 Git 仓库。

2026-06-25 2026-06-25-Txtflowy迁移评估-02.md

  • 原始标题:用户目标
  • 评估两个动作是否适合现在执行:
    1. /Users/ar/Projects/ExcalidrawX/Txtflowy 重命名为 /Users/ar/Projects/ExcalidrawX/P1-Txtflowy
    1. 将 Txtflowy 源代码独立管理到 /Users/ar/Projects/ExcalidrawX/P1-Txtflowy/src
  • 要求从项目经理、架构师、代码审核员三个视角做只读评估,不直接改代码或迁移目录。
  • 读取并遵守全局与项目规则:
  • ~/.codex/AGENTS.md

2026-06-25 2026-06-25-Txtflowy迁移评估.md

  • 原始标题:用户目标
  • 只读评估 Txtflowy 是否适合重命名为 P1-Txtflowy,并判断是否应把源码独立收敛到 P1-Txtflowy/src;重点检查 Git 边界、any-block/.git 嵌套仓、构建入口、Obsidian 本地安装复制路径,以及文档 / 原型 / requirements 与代码目录的关系。
  • 读取父项目 INDEX.mdCODEGRAPH.md02-P/plan-progress.markdown 与研发规则。
  • 核实 Txtflowy 当前 Git 边界:父仓根是 /Users/ar/Projects/ExcalidrawXTxtflowy/ 当前未被父仓纳管。
  • 核实 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.jsonmain.jsstyles.css

2026-06-25 2026-06-25-Txtflowy问答备注.md

  • 原始标题:2026-06-25 Txtflowy 问答备注
  • 用户确认把“缩进的 答:... 自动识别为上一节点备注”纳入 Txtflowy 产品规则。目标是修复 Obsidian 日记文件中 AI 问答记录的渲染问题:问题作为节点,回答作为幕布式浅灰备注。
  • 排查 /Users/ar/Downloads/Syn/Ob/Ob.bobo/X0.Diary/26.0625.md,确认回答行写法为列表项续行 答:...,不是当前已支持的 > 备注。
  • ListProcess.splitTxtflowyNote() 增加问答续行备注识别:
  • 列表项内容的第 2 行及后续行,以 答:答: 开头时识别为备注。
  • - 答:... 仍然保留为普通节点标题。
  • 升级 Txtflowy 到 0.5.20

2026-06-25 2026-06-25-codegraph初始化.md

  • 原始标题:2026-06-25 CODEGRAPH 初始化
  • 用户要求先重新读取 /Users/ar/.codex/AGENTS.md 和项目根目录 AGENTS.md,再继续检查 Mindraw 主项目是否已有 CODEGRAPH.md;如果没有,则按规则初始化,并确保 CODEGRAPH.md 纳入 Git 管理范围。
  • 重新读取全局 /Users/ar/.codex/AGENTS.md 和项目根 AGENTS.md
  • 读取 code-governance.mdwork-continuity.mdsession-memory.md 和项目 INDEX.md
  • 确认主项目根目录原本没有 CODEGRAPH.md;唯一既有 CODEGRAPH.md 位于 p.mindrawforcodex/03-O/C1.source/CODEGRAPH.md,属于独立子项目。
  • 只读扫描主项目源码入口、状态模型、Tauri 命令、导入/导出模块、测试入口和打包脚本。
  • 新增根目录 CODEGRAPH.md,记录稳定模块、核心文件、入口符号、依赖关系、关联测试、受保护行为、修改前阅读路线和验证入口。

2026-06-25 2026-06-25-m4c依赖回流.md

  • 原始标题:2026-06-25-m4c依赖回流
  • 评估 m4c 新计划对 Mindraw 主项目的依赖,特别是:
    1. m4c 是否需要依赖 02-P/plan-progress.markdown 中 Phase 4 AssetStore 完成。
    1. m4c 正式发布时,若希望用户安装 Codex 插件后也能安装 Mindraw App,会给 Mindraw 产品带来哪些需求和计划调整。
  • 读取并核对 02-P/plan-progress.markdown
  • 明确 Phase 4 当前是 AssetStore 外置资产权威化,状态为 Backlog。
  • 将主项目计划更新为:最新源码版本 0.8.1,并记录 0.8.1 已有 macOS .mindraw package registration 事实。

2026-06-25 2026-06-25-mindraw全局链接影响.md

  • 原始标题:2026-06-25 Mindraw 全局链接影响
  • 用户要求读取 /Users/ar/Projects/ExcalidrawX/.codex-sessionhistory/2026-06-25-全局链接需求.md,判断全局链接需求是否影响 .mindraw 路线;如果影响,则更新相关文档,没必要则不改。
  • 新增 Phase 3.5:Global Link / Deep Link Addressing Spike
  • .mindraw manifest 建议 MVP 即生成稳定 documentId
  • 第一版全局链接可以使用 file path + Excalidraw element id。
  • 长期应支持 documentId + element id / anchor id,降低文件移动或改名后的断链风险。
  • 对象定位优先使用 Excalidraw element id / frame id,不使用 frame 名称作为主要定位依据。

2026-06-25 2026-06-25-plan进度规则.md

  • 原始标题:2026-06-25 plan 进度规则
  • 用户已将 02-P/plan.markdown 改名为 02-P/plan-progress.markdown,要求该文件成为每个 plan 事项的提前规划、执行过程 progress、最终完成记录的统一入口;同时扫描历史文档,按当前事实更新内容,并把项目全局规则和相关索引同步更新,确保后续每轮有成果都更新 progress。
  • 读取并遵守项目规则、PM 工作流、会话记忆规则、研发前置讨论、代码治理、连续推进和交付门禁规则。
  • 按索引和历史文档扫描 Mindraw 主项目,避开 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

2026-06-25 2026-06-25-会话复制迁移-01.md

  • 原始标题:用户目标
  • 读取 /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 ...
  • 已读取 Langmei 的迁移经验,确认需要同时处理 ~/.codex/state_5.sqlite~/.codex/sessions/.../rollout-*.jsonl~/.codex/session_index.jsonl
  • 已创建新会话:019efeab-8b41-7984-907b-f4b0671ad725
  • 已生成新 rollout:/Users/ar/.codex/sessions/2026/06/25/rollout-2026-06-25T20-05-15-019efeab-8b41-7984-907b-f4b0671ad725.jsonl
  • 已写入新的 threadsthread_dynamic_tools 记录,并补了一条 sidebar 索引。
  • 已完成自查与 QA,确认时间窗口过滤、旧 id 替换、cwd 改写、compacted 清洗和 Git 元数据都符合预期。

2026-06-25 2026-06-25-会话复制迁移.md

  • 原始标题:会话复制迁移记录
  • 读取 /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.sqlitethreads 记录和 sessions/.../rollout-*.jsonl
  • 已确认当前活跃状态库为 /Users/ar/.codex/state_5.sqlite
  • 已创建新会话:019efd0e-ae6e-7331-9a51-82906bb2c5cd
  • 已生成新 rollout 文件:/Users/ar/.codex/sessions/2026/06/25/rollout-2026-06-25T12-34-18-019efd0e-ae6e-7331-9a51-82906bb2c5cd.jsonl
  • 已复制源会话的 thread_dynamic_tools 记录。

2026-06-25 2026-06-25-全局链接需求.md

  • 原始标题:2026-06-25 全局链接需求
  • 用户提出“需求-全局链接”:希望在 Mindraw 中复制对象链接后,可以在本机任何地方点击该链接,自动打开对应 .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。
  • 已检查现有 Tauri 配置与安装版 App:

2026-06-25 2026-06-25-目录包Spike.md

  • 原始标题:2026-06-25 目录包 Spike
  • 继续推进 Round01 .mindraw 工作,执行 Tauri 目录包 spike:验证普通目录包在选择、打开、保存、watch、拖放、路径校验和失败态上的可行性,但不进入生产 .mindraw 读写实现。
  • 只读核对当前 Tauri / 前端文件入口:
  • src/store/useStore.ts
  • src-tauri/src/lib.rs
  • src/components/ExcalidrawEditor.tsx
  • src/types/index.ts

2026-06-25 2026-06-25-竞品需求资料库.md

  • 原始标题:2026-06-25 竞品需求资料库
  • 用户要求以整个产品的产品经理视角,基于幕布和 Workflowy 官网公开信息,整理两款产品当前已具备功能的完整需求文档资料库。要求“有总有分”:总层面有索引和整体功能树表格,并标注来源是幕布、Workflowy 还是共同具备;分层面有单个需求的详细、明确描述。成果需放在 /Users/ar/Projects/ExcalidrawX/01-I/X-参考幕布与workflowy,必要图示只能使用 Excali...
  • 读取并遵守项目规则入口 INDEX.md02-P/plan-progress.markdown 以及全局规则 pre-implementation-discussion.mdwork-continuity.mddelivery-gate.mdqa-workflow.mdsession-memory.md
  • 使用 prd-writing 技能约束文档结构,保持需求描述聚焦用户可感知功能、信息架构和交互流程。
  • 调研幕布官网首页、官方 GitBook/帮助中心、高级版说明、导入导出说明、图片/编辑/分享/演示/思维导图等公开页面。
  • 调研 Workflowy 官网首页、Help 功能页、Downloads、Pricing、What's New 等公开页面。
  • 新增主文档 01-I/X-参考幕布与workflowy/幕布与Workflowy功能需求资料库.md,包含来源清单、总索引、产品定位、总体功能树、20 个需求模块和未覆盖风险。

2026-06-25 2026-06-25-阶段35收口审计.md

  • 原始标题:2026-06-25 阶段35收口审计
  • 用户要求继续以 Phase 3.5 为界,完成“完整可用的 .mindraw 格式 + 全局链接”目标;同时确认 /Applications/Mindraw.app 可以直接作为当前测试安装位使用,不需要恢复旧安装版。
  • 新增 02-P/qa/mindraw-phase35-completion-audit.md,对 Phase 0-3.5 做完成审计。
  • 审计结论为 PASS FOR PHASE 0-3.5 BASELINE
  • 将 Phase 1 / Phase 2 在 02-P/plan-progress.markdown 中调整为 baseline Done。
  • 将 Finder / open -a 直接打开普通目录包、原生 picker 直接选包、普通 Save As 直接创建 .mindraw 包归入后续 package/native 体验增强。
  • 将真实 Finder 拖放 smoke 和权限不足等扩展失败态归入 QA 增强,不再作为 Phase 0-3.5 baseline 阻塞项。

2026-06-26 2026-06-26-083双击热修.md

  • 原始标题:2026-06-26 0.8.3 双击热修
  • 用户已验收 0.8.2 的 5 项 native 文件体验,但发现桌面 / Finder 双击 .mindraw 时会打开画布同时弹出:Failed to open Mindraw link: Invalid Mindraw link: expected mindraw:// scheme
  • 本轮目标:修复该回归,重新打 0.8.3 DMG,安装验证桌面 .mindraw 打开不再弹错,并确认 mindraw://localhost?... 全局链接不回退。
  • 定位根因:Finder / LaunchServices 打开 .mindraw package 时,Tauri/Rust 已经通过 native document open 流程处理文件路径;但 deep link 插件也可能把 file://...mindraw 送入前端 openMindrawDeepLinkUrls(),导致后端 resolve_mindraw_link 按 deep l...
  • 修复前端 deep link 入口:openMindrawDeepLinkUrls() 现在只处理 mindraw: scheme,忽略 file: 等非 Mindraw URL。
  • 新增回归测试:file:///Users/ar/Desktop/Board.mindraw 不再调用 resolve_mindraw_link,不触发 alert,也不影响 native 文件打开流程。
  • 版本提升到 0.8.3,更新 package.jsonsrc-tauri/Cargo.tomlsrc-tauri/tauri.conf.jsonCHANGELOG.md

2026-06-26 2026-06-26-AI需求文档.md

  • 原始标题:2026-06-26 AI 需求文档
  • 把围绕 Mindraw AI 的这一套讨论整理成正式需求文档。
  • 判断正式文档最合理的落点。
  • 重新审视主项目 plan 分期,把这份真实需求纳入计划。
  • 新增主项目正式 PRD:02-P/功能任务/ai-frame-workflow-prd.md
  • 新增 m4c Round04 已确认语义契约:p.mindrawforcodex/02-P/Round04-AIFrameSemantics/01-confirmed-semantics-contract.md
  • 更新 p.mindrawforcodex/02-P/Round04-AIFrameSemantics/README.md

2026-06-26 2026-06-26-AI需求语义-01.md

  • 原始标题:2026-06-26 AI需求语义-01
  • 继续收口 Mindraw AI 相关需求,锁定结果 frame 的布局、内容模板和读取作用域。
    1. 结果 frame 默认布局先固定在源 frame 右侧。
    1. 后续允许用户在设置中自行配置布局策略:
  • 右侧
  • 下方
  • 按空间自动排布

2026-06-26 2026-06-26-AI需求语义-02.md

  • 原始标题:2026-06-26 AI需求语义-02
  • 继续收口 AI 结果 frame 的命名规则,判断标题格式是否需要额外包含源 frame 名、任务类型、时间或状态。
    1. 自动生成的结果 frame 命名方式固定为:AGC-年月日-时间-序号
    1. 当前不要求标题额外强制带上源 frame 名、任务类型或状态。
    1. 该命名规则已足够作为结果 frame 的默认标题格式。
  • 状态 字段的最终枚举是否采用:pending / running / done / failed / canceled
  • 来源 prompt 的落地方式:完整原文、摘要,还是摘要 + 可展开全文。

2026-06-26 2026-06-26-AI需求语义-03.md

  • 原始标题:2026-06-26 AI需求语义-03
  • 继续收口 AI 结果 frame 中 来源 prompt 的落地方式。
    1. 来源 prompt 采用“保存摘要,再附可展开全文”的形式。
    1. 默认展示层优先保持结果 frame 简洁,不直接塞入完整长 prompt。
    1. 需要追溯时,仍然保留完整原始 prompt 供展开查看。
  • 状态 字段的最终枚举是否采用:pending / running / done / failed / canceled
  • 下一轮只需要把 状态 字段定掉,AI 结果 frame 的核心语义就可以进入正式契约整理。

2026-06-26 2026-06-26-AI需求语义-04.md

  • 原始标题:2026-06-26 AI需求语义-04
  • 最终锁定 AI 结果 frame 中 status 字段的设计方案。
    1. status 固定采用:
  • pending
  • running
  • done
  • failed

2026-06-26 2026-06-26-AI需求语义.md

  • 原始标题:2026-06-26 AI需求语义
  • 通过现有 mindraw:// 链接直接读取并理解 Mindraw 画布里的 AI 相关需求。
  • 在不进入代码实现的前提下,先把 AI 交互语义中的关键产品决策锁定。
  • 成功解析并打开以下两个深链,对应桌面文件 /Users/ar/Desktop/Mindraw-需求 copy.mindraw
  • mindraw://localhost?documentId=mdoc_18bc8c73f4d986d0_40c3&elementId=Xs81wStiO68qq-Pk-M9PM
  • mindraw://localhost?documentId=mdoc_18bc8c73f4d986d0_40c3&elementId=uv7fID8fFZMEpDZr2qeig
  • 直接读取 drawing.excalidraw,确认两个目标 frame:

2026-06-26 2026-06-26-MDH101生产设计.md

  • 原始标题:2026-06-26 MDH101 生产设计
  • 进入 goal 模式,从 02-P/plan-progress.markdownP-20260626-m4c-handshake-coordination 领取 Mindraw 侧 MD-H1-01,完成 Phase 3.8 External Write API / Document Lease production design;不启动真实写回实现;把 MD-H1-02 到 `MD-H1...
  • 创建 goal 并按 PM 台账规则只领取 MD-H1-01
  • 新增 production design:02-P/功能任务/document-lease-app-write-api-production-design.md
  • 新增审阅 / QA planning 证据:02-P/qa/mindraw-phase38-production-design-review.md
  • 更新 INDEX.md,登记新增 design 和 QA 证据。
  • 更新 02-P/plan-progress.markdown

2026-06-26 2026-06-26-MDH102只读API.md

  • 原始标题:2026-06-26 MDH102 只读 API
  • 02-P/plan-progress.markdownP-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

2026-06-26 2026-06-26-MDH103租约.md

  • 原始标题:2026-06-26 MD-H1-03 租约
  • /Users/ar/Projects/ExcalidrawX/02-P/plan-progress.markdownP-20260626-m4c-handshake-coordination 领取 Mindraw 侧 MD-H1-03,完成 Phase 3.8 External Write API / Document Lease 的 lease manager 垂直切片。
  • 边界:
  • 只做 lease / revision / 并发 / 过期拒绝。
  • 不做任意 JSON patch。
  • 不写文件保存。
  • 不覆盖 source Frame。

2026-06-26 2026-06-26-MDH104写入.md

  • 原始标题:2026-06-26 MD-H1-04 写入
  • /Users/ar/Projects/ExcalidrawX/02-P/plan-progress.markdownP-20260626-m4c-handshake-coordination 领取 Mindraw 侧 MD-H1-04,完成受控 createAiResultFrame mutation 垂直切片。
  • 范围边界:
  • 必须复用 MD-H1-03 lease / actor / writePlanId / workingRevision guard。
  • 不暴露任意 JSON patch。
  • 不覆盖 source Frame、source Frame 内原始元素或用户批注。
  • 不绕过 lease 检查。

2026-06-26 2026-06-26-MDH105真实QA.md

  • 原始标题:2026-06-26 MD-H1-05 真实 App QA
  • 02-P/plan-progress.markdownP-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。
  • 新增 QA 报告 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 测试入口。

2026-06-26 2026-06-26-Phase361收尾.md

  • 原始标题:Phase 3.6.1 收尾
  • 用户确认先做 Phase 3.6.1。目标是继续补齐 .mindraw native 文件体验:active .mindraw 的普通 Save As... 应创建新的 .mindraw 目录包,并提供原生 picker 直接打开 .mindraw package document。
  • 版本提升到 0.8.2
  • 新增 File > Open Mindraw Package... 菜单项。
  • 新增 Tauri command select_mindraw_package,原生 picker 可返回 .mindraw package path。
  • 新增前端 openMindrawPackageFromPicker(),picker 选包后走 openDirectoryOrDocument() 打开。
  • 新增 saveCurrentFileAs(),active .mindraw 普通 Save As... 分流到 save_mindraw_package_as;普通 .excalidraw 仍走 save_file_as

2026-06-26 2026-06-26-Phase372DoctorPOC.md

  • 原始标题:2026-06-26 Phase 3.7.2 Doctor POC
  • 用户认可推进顺序:先做 3.7.2 doctor/preflight POC,再做 3.7.3 clean environment QA,然后进入 3.8 document lease / App write API
  • 本轮目标是落地 Phase 3.7.2:提供一个 m4c 可复用的 Mindraw companion app doctor/preflight POC。
  • 新增 scripts/mindraw-doctor.mjs
  • 默认只读检测 /Applications/Mindraw.app
  • 检测 bundle id、版本、mindraw:// scheme 声明、.mindraw package document 声明。
  • 输出 m4c 可解析 JSON。

2026-06-26 2026-06-26-Phase373CleanQA.md

  • 原始标题:Phase 3.7.3 Clean QA
  • 用户确认按“先做 3.7.2 doctor/preflight POC,再做 3.7.3 clean environment QA,然后进入 3.8 document lease / App write API”的顺序推进,并要求开工 Phase 3.7.3。
  • scripts/mindraw-doctor.mjs 增加 --system-handlers 模式。
  • --system-handlers 通过 macOS NSWorkspace 查询 mindraw:// 默认 handler 和临时 .mindraw 探针包默认 handler,不启动 App,不修改 LaunchServices。
  • 补充 doctor 单测到 11 条,覆盖缺 App、旧版本、缺 scheme、缺 document type、bundle id 错误、URL handler 错配、.mindraw handler 错配和非 macOS。
  • 用临时 fake app CLI 矩阵验证 clean / 异常环境。
  • 完成有效 .mindraw fixture 的 package smoke:packageOpen=pass

2026-06-26 2026-06-26-Phase37分发契约.md

  • 原始标题:2026-06-26 Phase 3.7 分发契约
  • 用户确认可以推进 Phase 3.7。
  • 用户同意第一批范围限定为:Companion App Distribution Spec、QA/doctor 检测契约、plan-progress 更新。
  • 明确不进入生产代码、不重新打包、不做签名公证、不做 Windows 安装器。
  • 新增 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

2026-06-26 2026-06-26-Phase38LeaseSpike.md

  • 原始标题:Phase 3.8 Lease Spike
  • 用户要求进入 Phase 3.8:document lease / App write API spike。
  • 新增 Phase 3.8 spike 目录:02-P/Round01-mindraw-defstart/spikes/002-document-lease-app-write-api/
  • 新增可运行脚本:validate-document-lease.mjs,在临时目录生成测试 .mindraw 包,验证 document lease / App write API 状态机。
  • 新增 spike README,记录 Given / When / Then、覆盖项、发现和 verdict。
  • 新增主项目契约文档:02-P/功能任务/document-lease-app-write-api-spike.md
  • 新增 QA 记录:02-P/qa/mindraw-phase38-document-lease-spike-check.md

2026-06-26 2026-06-26-Phase38实现方案.md

  • 原始标题:Phase 3.8 实现方案
  • 用户询问 Phase 3.8 最小生产切片如何实现,并要求保存会话。
  • 解释了 Phase 3.8 生产实现完成与 spike 完成的区别。
  • 明确真实验收前必须先实现最小生产切片,否则只能验证 spike 状态机。
  • 梳理了最小生产切片的实现路径:
    1. App 暴露 live context。
    1. App 暴露 document lease。

2026-06-26 2026-06-26-Round02回填.md

  • 原始标题:2026-06-26 Round02回填
  • 启动 Round02 - 历史流水回填
  • 只处理“简版 Round02”:
  • 回填旧日志里 2026-06-25 到 2026-06-26 的近期核心工程历史
  • 不做全量历史大搬家
  • docs/implementation-log.md 退出活跃写入
  • 不修改产品行为和代码逻辑

2026-06-26 2026-06-26-Round04工程收口.md

  • 原始标题:2026-06-26 Round04 工程收口
  • 用户要求在没有需要用户决策堵点的情况下,完成 Round04-A 技术契约、Round04-QA 矩阵和 Round05 Go / No-Go 复审。
  • 完成 m4c Round04-A:
  • metadata storage contract
  • MCP tool contract
  • writeback safety contract
  • 完成 m4c Round04-QA:

2026-06-26 2026-06-26-Round04语义收口.md

  • 原始标题:2026-06-26 Round04 语义收口
  • 用户确认此前整理出的 8 组剩余 Round04 语义问题全部同意默认建议,不再需要继续逐项追问。
  • 更新主项目 02-P/plan-progress.markdown
  • 记录 Round04 用户语义完整收口。
  • 将下一步从“继续补剩余契约”改为 metadata storage、MCP tool contract、QA matrix 和 Round05 Go / No-Go。
  • 同步 m4c Round04 文档状态:
  • 用户语义已收口。

2026-06-26 2026-06-26-Round05Alpha.md

  • 原始标题:2026-06-26 Round05 Alpha
  • 用户确认 m4c Round05 alpha 可以开工,并要求除非必须用户决策或执行,否则不要停下来。
  • 启动并完成 p.mindrawforcodex 的 Round05 MCP Alpha 首批实现。
  • 新增统一 alpha tool runner:p.mindrawforcodex/03-O/C3.tools/scripts/m4c-mcp-alpha.mjs
  • 支持 validate-packageresolve-linkget-frame-contextsearch-packagesdry-run-write-resultcommit-write-resultrepair-reportprepare-copysmoke
  • 建立 Round05 过程容器:p.mindrawforcodex/02-P/Round05-MCPAlpha/
  • 运行 Round05 smoke,结果 PASS。

2026-06-26 2026-06-26-inline-target统一.md

  • 原始标题:2026-06-26 inline target 统一
  • 在先完成 git commit + freeze tag 之后,继续下一步,把
  • selection / current line 的正文目标区间选择策略统一成一层纯逻辑。
    1. 冻结基线
  • 仓库:/Users/ar/Projects/ExcalidrawX/P1-Txtflowy
  • 提交:
  • 90d333dc6cc2196740ab94862896e49a1e9c0e0d

2026-06-26 2026-06-26-m4cRound04回流.md

  • 原始标题:2026-06-26 m4c Round04 回流
  • 用户确认 m4c 后续可以推进真实用户 .mindraw 写回和全盘扫描,并要求把 Mindraw App 正打开同包时“当前先拒写、未来提供正式写入 API / lease”的需求加入 Mindraw 未来计划。同时要求把 Round04 需要用户确认的语义完整列出,不再用“比如”式零散表达。
  • 更新 02-P/plan-progress.markdown
  • 新增 Phase 3.8:External Write API / Document Lease Spike。
  • .mindraw 主计划 Progress Log 记录 m4c 真实写回 / 全盘扫描 / App 打开拒写策略回流。
  • 在后续增强和 p.mindrawforcodex 依赖边界中补充 App API / lease 需求。
  • 更新根 INDEX.md

2026-06-26 2026-06-26-m4c代码冻结.md

  • 原始标题:2026-06-26 m4c 代码冻结
  • 用户要求对 m4c 已完成的正式输出区变更做代码冻结并提交。
  • 确认 m4c 默认 Git 根目录为 /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
  • 提交正式输出区初始冻结 commit。
  • 创建冻结 tag。

2026-06-26 2026-06-26-m4c联调总台账.md

  • 原始标题:2026-06-26 m4c 联调总台账
  • 用户明确要求:从现在起,Mindraw / m4c 联调由 PM 总台账统一调度。
  • 唯一活跃任务台账为:/Users/ar/Projects/ExcalidrawX/02-P/plan-progress.markdown
  • 当前计划项为:P-20260626-m4c-handshake-coordination
  • H* 只是顶层工作流编号,不由执行项目直接领取。
  • Mindraw 只领取 MD-* 编号任务。
  • m4c 只领取 M4C-* 编号任务。

2026-06-26 2026-06-26-代码冻结Phase38.md

  • 原始标题:2026-06-26 代码冻结 Phase38
  • 只提交已经完成并应归档的 Mindraw 主项目变更,排除 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:通过。

2026-06-26 2026-06-26-任务领取防错.md

  • 原始标题:2026-06-26 任务领取防错
  • 用户指出 /Users/ar/Projects/ExcalidrawX/02-P/plan-progress.markdown 中没有讲清楚 Mindraw 和 m4c 两边团队如何准确领取自己的任务,担心 worker 拿错别人的任务。
  • P-20260626-m4c-handshake-coordination 中新增 任务领取防错规则
  • 将 worker 可领取任务从裸 H* 顶层编号改为带团队前缀的任务卡:
  • MD-*:仅 Mindraw 主项目窗口领取。
  • M4C-*:仅 m4c 子项目窗口领取。
  • PM-*:仅 PM 调度台处理,coder 不直接领取。

2026-06-26 2026-06-26-会话保存.md

  • 原始标题:2026-06-26 会话保存
  • 用户要求保存当前会话。
  • 已完成 m4c Round05 MCP Alpha 首批工作。
  • 已新增并验证 p.mindrawforcodex/03-O/C3.tools/scripts/m4c-mcp-alpha.mjs
  • 已建立 p.mindrawforcodex/02-P/Round05-MCPAlpha/ 过程容器。
  • 已更新 m4c 总计划到 V2.7。
  • 已同步主项目 02-P/plan-progress.markdownINDEX.md 的 m4c 交叉引用。

2026-06-26 2026-06-26-全局防错规则.md

  • 原始标题:2026-06-26 全局防错规则
  • 用户认为“Mindraw 只领 MD-*、m4c 只领 M4C-*PM-* 只由 PM 处理、H* 不作为 worker 直接领取单位”不应只作为通知,而应作为全局项目规则强约束。
  • 更新 /Users/ar/.codex/AGENTS.mdUnified Plan Ledger 章节:
  • 多团队 / 多子项目 / 多 worker session 的统一台账必须声明机械的任务领取防错规则。
  • 必须先定义执行窗口身份,再定义可领取任务前缀或等价所有权字段。
  • worker 只能领取匹配自身身份的任务。
  • PM / Gate / 共同验收任务不得由普通 worker 直接领取。

2026-06-26 2026-06-26-内联样式回归.md

  • 原始标题:2026-06-26 内联样式回归
  • 继续 P1-Txtflowy 独立仓的下一批纯逻辑抽离,聚焦:
  • Enter / Ctrl+Enter
  • 粘贴规整
  • 颜色覆盖
  • 并在完成后判断是否需要补最小化的 CodeMirror 集成测试。
    1. 新增内联样式纯逻辑模块

2026-06-26 2026-06-26-回归测试基线-01.md

  • 原始标题:2026-06-26 回归测试基线-01
  • 继续推进 0.6.x,范围只限独立仓 P1-Txtflowy
  • 在没有新增用户缺陷样本前,优先补最稳健、最长期有价值的行为回归保护。
  • 不继续搬运 AnyBlock 外围壳层;0.6.x 当前最优先的是让独立链路拥有可持续回归能力。
  • 不为测试再引入一套新框架;直接使用 Node 内建 test runner,保持工程轻量。
  • 第二批优先覆盖“纯逻辑编辑模型”,暂不强行测试整套 CodeMirror view 事件链。
  • 测试命令:

2026-06-26 2026-06-26-回归测试基线.md

  • 原始标题:2026-06-26 回归测试基线
  • 继续推进 0.6.x,但范围只限独立仓 P1-Txtflowy
  • 在没有新的用户缺陷样本前,优先做稳健、长期有价值的回归收口工作。
  • 当前最理性的 0.6.x 推进方式,是先保护独立链路的核心语义,再继续做真实环境下的编辑细节回归。
  • 这轮只做测试基线,不改用户可见交互,不提前进入 WYSIWYG 编辑器路线。
  • 测试框架不额外引入新依赖,直接使用 Node 内建 test runner,保持工程轻量。
  • Git 提交:

2026-06-26 2026-06-26-总台账合并.md

  • 原始标题:2026-06-26 总台账合并
  • 将 Mindraw / m4c 后续活跃任务、派工、Progress Log 和 Go / No-Go 统一到一份 plan-progress.markdown
  • 将 m4c 旧工作计划和 Round 计划的核心历史事实合并进主台账,旧文档不再作为活跃任务入口。
  • 在全局工作规则和项目规则中写明统一台账要求,方便通知两个执行窗口。
  • 更新 02-P/plan-progress.markdown,声明其为 Mindraw / m4c 当前唯一活跃任务台账。
  • P-20260626-m4c-handshake-coordination 下补充“单一活跃任务台账规则”。
  • 将 m4c 旧 mindrawforcodex-工作计划.md 的产品原点、Round00-Round08 状态、Round05-A 结论、写回安全阈值、全盘扫描边界摘要合并进主计划项。

2026-06-26 2026-06-26-文档治理迁移.md

  • 原始标题:2026-06-26 文档治理迁移
  • 针对 P1-Txtflowy 建立新的文档治理结构。
  • 根目录采用 3 个编号化核心文档:
  • 01backlog.md
  • 02plan-progress.md
  • 03changelog.md
  • 采用方案 A:逐步取消 docs/implementation-log.md,实现流水迁入 02-P/RoundXX-主题/

2026-06-26 2026-06-26-模板治理讨论.md

  • 原始标题:2026-06-26 模板治理讨论
  • 在 side conversation 中梳理 P1-Txtflowy 的项目文档治理方案,并准备一套可复用的模板文件,供后续在主线程正式落盘使用。
    1. 明确 P1-Txtflowy 的文档治理方向:
  • 不再依赖分散的多入口文档作为活跃进度台账。
  • 未来应建立独立子项目自己的总控文档。
    1. 明确三份核心文档及其职责:
  • 01backlog.md:长期 backlog / 大事备忘 / 暂不执行方向

2026-06-26 2026-06-26-结构规划回归.md

  • 原始标题:2026-06-26 结构规划回归
  • 继续 P1-Txtflowy 独立仓的 0.6.x 第四批工作,只做结构安全相关的纯逻辑抽离与回归:
  • 多行选区 Tab / Shift+Tab
  • 空节点 Backspace join
  • subtree move 的 block planner
  • 明确不做:
  • 不扩到 Minddraw 主项目

2026-06-26 2026-06-26-编辑行为回归.md

  • 原始标题:2026-06-26 编辑行为回归
  • 继续推进 0.6.x 第三批回归。
  • Enter / Ctrl+Enter / Backspace / Tab / Shift+Tab / 粘贴规整 这些编辑器行为继续拆成可测逻辑。
  • 范围只限独立仓 P1-Txtflowy
  • 第三批仍然不直接上 CodeMirror 集成测试,而是继续优先抽“纯行模型 / 纯字符串 / 纯前缀规则”的那层逻辑。
  • txtflowy 的编辑行为测试顺序继续保持:
    1. parser / note / serialize

2026-06-26 2026-06-26-跨项目联调总Todo.md

  • 原始标题:2026-06-26 跨项目联调总Todo
  • 明确 m4c 的过程计划不纳入版本管理。
  • 为 Mindraw 与 m4c 建立一个统一的跨项目协调入口和出口。
  • 围绕“编辑同包协调写入、.assets 权威化、Mindraw 被 m4c 外部调用”整理两边下一批轮次 Todo 和进度归口。
  • 确认 m4c 02-P/ 过程文档不进入 m4c Git;m4c 正式输出区仍以 p.mindrawforcodex/03-O 为 Git 根目录。
  • 确认并保留两边基线提交:
  • Mindraw 主仓:ebe64a4,tag freeze-mindraw-phase37-38-20260626

2026-06-26 2026-06-26-高亮加粗回归.md

  • 原始标题:2026-06-26 高亮加粗回归
  • 继续 P1-Txtflowy 独立仓纯逻辑抽离,把高亮和加粗的目标区间/包裹计划也做成可测试逻辑。
    1. 扩展内联样式纯逻辑模块
  • 文件:
  • /Users/ar/Projects/ExcalidrawX/P1-Txtflowy/src/editor/txtflowyInlineStylePrimitives.ts
  • 新增:
  • planTxtflowyTextWrap

2026-06-27 2026-06-27-MDH506就绪.md

  • 原始标题:2026-06-27 MD-H5-06 Canonical Readiness
  • 02-P/plan-progress.markdownP-20260626-m4c-handshake-coordination 领取 Mindraw 侧 MD-H5-06,为 H5 canonical 轻量联合复核准备 Mindraw live 运行态与证据。范围限定为 live readiness / capability / 安全副本 / read-context-lease 证据,...
  • 重新读取并遵守全局 / 项目规则、INDEX.mdCODEGRAPH.md 和统一计划台账。
  • 确认当前 Mindraw QA debug App live capability:
  • PID:79278
  • endpoint:http://127.0.0.1:56546/rpc
  • contract:h5-md-h5-05-canonical-v1

2026-06-27 2026-06-27-MDH601AssetStore.md

  • 原始标题:2026-06-27 MD-H6-01 AssetStore 契约
  • Coder@mindraw 身份领取统一台账 P-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.mdINDEX.mdCODEGRAPH.md 和统一台账中 H6 / MD-H6-01 / PM-H6-ASSETSTORE-CONTRACT-GATE 最新状态。
  • 读取现有 .mindraw ADR、manifest schema、兼容矩阵、Phase 2 QA 和当前读写实现事实,确认当前 files.dataURL 仍是运行时和导出安全底座。
  • 新增 Mindraw 侧 Phase 4 AssetStore / .assets 权威契约草案。
  • 新增契约自查报告。
  • 同步 INDEX.mdCODEGRAPH.md02-P/plan-progress.markdown

2026-06-27 2026-06-27-MEXP01体验包.md

  • 原始标题:2026-06-27 MEXP01 体验包
  • 用户认可“从 freeze tag 打包,不从当前脏工作区直接打包”的判断,要求按该结论生成可体验包。
  • 从 Mindraw freeze tag mindraw-freeze-20260627-mexp01-alpha / commit fd709d87f9fe1536630faef310bad8e76cc06bb9 创建隔离 worktree:/Users/ar/Projects/ExcalidrawX-build-worktrees/mexp01-alpha-mindraw
  • 确认 m4c 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.dmg

2026-06-27 2026-06-27-MEXP01冻结-01.md

  • 原始标题:2026-06-27 MEXP01 冻结
  • Coder@mindraw 身份领取统一台账 P-20260626-m4c-handshake-coordinationMD-MEXP01-03,完成 Mindraw 主仓 M-体验01 本机 Alpha 源码检查点冻结。
  • 重新读取项目入口、工程地图、发布版本规则、代码治理规则、工作连续性、交付门禁、QA 和会话记忆规则。
  • 审计 Mindraw 主仓 Git 状态,确认当前分支 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.md02-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...

2026-06-27 2026-06-27-MEXP01冻结-02.md

  • 原始标题:2026-06-27 MEXP01 冻结
  • Coder@m4c 身份完成 M4C-MEXP01-02
  • 对 m4c 03-OM-体验01 本机 Alpha 输出做 source checkpoint 冻结。
  • 创建冻结记录、提交 m4c 03-O、创建 tag,并回写统一台账。
  • 确认 m4c 03-O 初始状态干净,分支 main,冻结前 HEAD 为 e3edd6c87aad5b5484503d2fc06091f70e0682f7
  • 创建 m4c 冻结记录:p.mindrawforcodex/03-O/K2.项目管理/代码冻结/2026-06-27-M4C-MEXP01-Alpha.md
  • 更新 m4c 03-O 内索引入口:K2.项目管理/README.mdC1.source/CODEGRAPH.md

2026-06-27 2026-06-27-MEXP01冻结判断.md

  • 原始标题:2026-06-27 MEXP01 冻结判断
  • 用户要求在 PM 流程纠偏后,让 Mindraw coder/reviewer 审核 PM 误直接修改的代码,并判断当前是否到了应该冻结代码的节点。
  • 复核总台账和 Mindraw coder 线程,确认 MD-MEXP01-02 已完成:Mindraw coder/reviewer 给出 PASS_WITH_MINIMAL_FIX_FOR_MD_MEXP01_02_LAYOUT_AVOIDANCE,并补了布局避让的最小修正和测试。
  • 检查 Mindraw 主仓 Git 状态:当前存在大量未提交 / 未跟踪改动,不能由 PM 直接草率提交或声明冻结完成。
  • 检查 m4c 03-O Git 状态:当前干净,HEAD 为 e3edd6c Refresh MEXP01 visual QA evidence
  • PM 判定已到 M-体验01 本机 Alpha 源码检查点冻结节点,但不是 H8 / formal release 冻结,不生成 DMG,不递增版本号。
  • 02-P/plan-progress.markdown 新增 MD-MEXP01-03M4C-MEXP01-02PM-MEXP01-FREEZE-GATE

2026-06-27 2026-06-27-MEXP01布局复核.md

  • 原始标题:2026-06-27 MEXP01 布局复核
  • Coder@mindraw 身份领取统一台账 P-20260626-m4c-handshake-coordination 中的 MD-MEXP01-02,正式复核 PM 误直接实现的 createAiResultFrame 布局避让改动,必要时做最小修正,补 QA / review 证据,明确 CHANGELOG.md 决策,并回写总台账。
  • 重新读取 /Users/ar/.codex/AGENTS.md、项目 AGENTS.mdINDEX.mdCODEGRAPH.md02-P/plan-progress.markdown 相关 MD-MEXP01-02 / 最新 Progress Log。
  • 复核 src/lib/mindrawAppWriteMutation.tssrc/lib/mindrawAppWriteMutation.test.ts
  • 确认 PM 原实现方向正确:result Frame 从 source Frame 右侧开始,遇到非 source 元素 / Frame 相交时继续向右找空位。
  • 发现并修正两个风险:固定 100 次扫描上限与实际 obstacle 数量无关;测试只覆盖单个已有 Frame。
  • 最小修正 toElementRect() 负宽高归一化、layoutObstacles() deterministic 排序、planResultLayout() 扫描上限改为 obstacles.length + 1

2026-06-27 2026-06-27-MEXP01本机演示.md

  • 原始标题:2026-06-27 MEXP01 本机演示
  • Coder@m4c 身份完成统一台账 P-20260626-m4c-handshake-coordination 下的 M4C-MEXP01-01。当前全局目标锁定为 M-体验01:AI Frame 本机 Alpha 写回演示,不得切换到 H7/H8、正式 MCP server、真实 AI release、完整 .assets 权威实现或分发增强。
  • 新增 m4c 本机 Alpha demo runner:p.mindrawforcodex/03-O/C3.tools/scripts/m4c-local-alpha-demo-runner.mjs
  • runner 复用 H5 canonical transport 模式,读取当前 ~/Library/Application Support/com.mindraw.desktop/runtime/write-api.json,以真实 /health 为准,不复用旧 PID / 旧端口 / 旧 token。
  • 使用 Mindraw App API 完成 source Frame context 读取、lease acquire、workingRevision 校验和受控 commit_write_result(createAiResultFrame)
  • 在 demo 安全副本 /Users/ar/Projects/ExcalidrawX/02-P/demo/mexp01/MEXP01-ai-frame-demo.mindraw 中生成 result Frame:frame_result_m4c-mexp01-01-1782552302251
  • 输出用户可运行命令、QA 报告、JSON 证据和 token redaction 检查。

2026-06-27 2026-06-27-MEXP01演示准备.md

  • 原始标题:2026-06-27 MEXP01 演示准备
  • Coder@mindraw 身份从统一台账 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.mdINDEX.mdCODEGRAPH.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 未改动。
  • 用真实本机 debug App /Users/ar/Projects/ExcalidrawX/src-tauri/target/debug/bundle/macos/Mindraw.app 打开 demo 包,当前 live capability 为 h5-md-h5-05-canonical-v1
  • 外部 Node JSON-RPC smoke 验证 /health/capabilities、JSON-RPC get_capabilitiesget_open_document_stateget_live_frame_context、lease acquire/release 和受控 commit_write_result(createAiResultFrame)
  • 在 demo 包内生成 result Frame:frame_result_md-mexp01-01-demo-alpha / MEXP01 AI Frame Alpha Result

2026-06-27 2026-06-27-MEXP01视觉修正.md

  • 原始标题:2026-06-27 MEXP01 视觉修正
  • 用户反馈 M-体验01 demo 画面中多个对象重叠,无法肉眼确认 source Frame 右侧是否新增 result Frame。
  • 复核 demo 包 02-P/demo/mexp01/MEXP01-ai-frame-demo.mindrawdrawing.excalidraw,确认旧包内存在两个 result Frame,并与 fixture 的 outside note / image 在右侧区域重叠。
  • 重置 demo 包为可验收状态:删除旧 result 元素,保留 source Frame,将 outside note / image 移到 source Frame 下方。
  • 重启 debug 版 Mindraw App,重新运行 m4c 绝对路径 runner。
  • 最新 runner 返回 GO-FOR-PM-MEXP01-GATE,生成唯一 result Frame:frame_result_m4c-mexp01-01-1782555421452
  • 磁盘复核确认包内只有 2 个 Frame:source Frame x=40,width=720,result Frame x=840,width=720,result 位于 source 右侧;manifest scene sha256 匹配。

2026-06-27 2026-06-27-MEXP01路径修正.md

  • 原始标题:2026-06-27 MEXP01 路径修正
  • 用户在执行 M-体验01 的 m4c 外部调用命令时遇到 MODULE_NOT_FOUND,需要确认原因并给出可从任意当前目录运行的正确命令。
  • 确认失败原因:用户当前目录为 /Users/ar/Library/Application Support,旧命令使用相对脚本路径 p.mindrawforcodex/...,Node 因此解析到当前目录下并报找不到模块。
  • m4c-local-alpha-demo-runner.mjshelp 和运行报告输出改为绝对脚本路径。
  • 将总台账、demo README、m4c QA / checklist / JSON 中的用户命令同步为绝对路径。
  • 刷新 m4c 03-O 的 codebase-memory 共享索引。
  • 在 m4c 正式输出区完成提交:b0626aba265081c1b19ca450149dfbba22111fd0,提交信息 Fix MEXP01 runner absolute command

2026-06-27 2026-06-27-MEXP02m4c收口.md

  • 原始标题:2026-06-27 MEXP02 m4c 收口
  • Coder@m4c 身份收口 M4C-MEXP02-01,只处理 m4c 侧安装版 Alpha runner / preflight,不领取 PM-*MD-*H*
  • 新增 m4c 安装版 Alpha runner / preflight:p.mindrawforcodex/03-O/C3.tools/scripts/m4c-installable-alpha-runner.mjs
  • 更新 m4c 正式输出区索引:C3.tools/README.mdC1.source/CODEGRAPH.md
  • 新增正式输出区 QA checklist:p.mindrawforcodex/03-O/K2.项目管理/联调QA/2026-06-27-M4C-MEXP02-01InstallableAlpha.md
  • 生成过程 QA / JSON 证据到 p.mindrawforcodex/02-P/MEXP02-InstallableAlpha/qa/,但未纳入 m4c Git。
  • 回写统一台账 02-P/plan-progress.markdownM4C-MEXP02-01 保持未完成,runner/preflight ready,最终 smoke 等待标准安装版 capability。

2026-06-27 2026-06-27-MEXP02写回smoke.md

  • 原始标题:2026-06-27 MEXP02 写回 smoke
  • Coder@m4c 身份完成 M4C-MEXP02-02:基于 Mindraw 提供的标准用户路径 live capability,复跑 m4c 安装版 Alpha runner,并通过 Mindraw App API 受控生成 result Frame。
  • 读取 m4c / Mindraw 规则、索引、CODEGRAPH 和统一台账。
  • 验证标准 HOME capability:/Users/ar/Library/Application Support/com.mindraw.desktop/runtime/write-api.json
  • 验证 live PID 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
  • 更新 m4c runner 支持 --task-id,避免复跑时落回默认任务名。

2026-06-27 2026-06-27-MEXP02安装版.md

  • 原始标题:2026-06-27 MEXP02 安装版
  • Coder@mindraw 身份领取统一台账 P-20260626-m4c-handshake-coordinationMD-MEXP02-01,完成 M-体验02:可安装版 AI Frame Alpha 的 Mindraw 安装版 Alpha readiness。只领取 MD-*,不领取 M4C-*PM-*H*
  • 重新读取全局 / 项目 AGENTS.mdINDEX.mdCODEGRAPH.mdrelease-versioning.mddelivery-gate.mdqa-workflow.mdcode-governance.mdwork-continuity.mdsession-memory.md 和统一台账相关状态。
  • 审计候选包 03-O/C2.builds/releases/Build202606272239/,确认 DMG SHA256 与 manifest 一致,hdiutil verify PASS,DMG 挂载后包含 Mindraw.appApplications -> /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_capabilitiesget_open_document_stateget_live_frame_context 均 PASS。

2026-06-27 2026-06-27-MEXP02标准capability.md

  • 原始标题:2026-06-27 MEXP02 标准 capability
  • Coder@mindraw 身份完成统一台账 P-20260626-m4c-handshake-coordination 下的 MD-MEXP02-02,解阻 M-体验02:可安装版 AI Frame Alpha 的标准用户路径 capability。要求不关闭、不覆盖当前 /Applications/Mindraw.app,不改 m4c 03-O,不扩大到写回 smoke。
  • 重新读取项目规则、工程索引、工程地图、发布 / 交付 / QA / 会话记忆规则和统一台账。
  • 诊断当前 /Applications/Mindraw.app
  • PID 15059 仍运行,本轮未关闭、未覆盖、未移动。
  • 版本显示 0.8.3,但二进制 SHA256 为 87ebf7487a16be3ba0fa5485de0b424e249f05a14be654ae1e1aa27ac353ac89
  • App API transport marker line count 为 0

2026-06-27 2026-06-27-PMH5CanonicalRecheck.md

  • 原始标题:2026-06-27 PM H5 Canonical Recheck
  • 根据 mindraw-m4c heartbeat,检查 Mindraw / m4c 当前派工是否完成,并在满足入口条件时由 PM 直接拆出下一轮任务,不让用户当传声筒。
  • 检查统一台账 /Users/ar/Projects/ExcalidrawX/02-P/plan-progress.markdownP-20260626-m4c-handshake-coordination
  • 复核两边执行线程:
  • Mindraw 线程 019efd00-2841-77c0-9aa4-540c1a550210 已完成 MD-H5-05 并回到 idle。
  • m4c 线程 019efd0e-ae6e-7331-9a51-82906bb2c5cd 已完成 M4C-H5-08 并回到 idle。
  • 确认 m4c 03-O 只读状态检查无未提交变更。

2026-06-27 2026-06-27-PMMEXP01Gate.md

  • 原始标题:PM-MEXP01 Gate 收口
  • 用户要求在 M-体验01:AI Frame 本机 Alpha 写回演示 完成前团队不得停下,并以该里程碑作为当前唯一目标。
  • PM 将 P-20260626-m4c-handshake-coordination 收口到 M-体验01 本机 Alpha 用户体验入口。
  • Mindraw 侧 MD-MEXP01-01 已完成,产出 demo 包、QA 报告、JSON 证据和体验说明。
  • m4c 侧 M4C-MEXP01-01 已完成,产出本机 Alpha demo runner、QA 报告、JSON 证据,并在 m4c 03-O 提交 d10c32e300dfe849f7ffc58232d3da715744bc08
  • PM 已将 PM-MEXP01-GATE 标记完成,并写入 Progress Log。
  • M-体验01 判定为 GO for local Alpha user experience

2026-06-27 2026-06-27-PM流程纠偏.md

  • 原始标题:2026-06-27 PM 流程纠偏
  • 用户要求复盘全局 PM 线程直接修改 Mindraw 代码是否符合角色边界,并追问改前 Todo、改后审核和 changelog 情况。
  • 确认本次 createAiResultFrame 布局避让代码改动存在 PM 流程偏差:PM 线程不应直接承担 Mindraw coder 工作。
  • 02-P/plan-progress.markdownP-20260626-m4c-handshake-coordination 中新增 MD-MEXP01-02,要求 Mindraw coder / reviewer 正式复核该 diff、补齐 QA / changelog 决策后再声明合规交付。
  • 在同一计划项 Progress Log 记录本次流程偏差、事实回答和补救归口。
  • 新增 03-O/K2.项目管理/项目经理-经验与教训.md,沉淀“PM 不直接替代 coder 改代码”规则。
  • 更新 INDEX.md,登记新增经验教训文件。

2026-06-27 2026-06-27-联调可视化.md

  • 原始标题:2026-06-27 联调可视化
  • 用户要求将 Mindraw / m4c 跨项目协调的关键事务和咬合点维护成一份可视化 draw.io 图表,并把后续每次顶层联调工作流变化都必须同步更新图表作为项目强制规则。
  • 新增跨项目联调可视化目录:03-O/K2.项目管理/跨项目联调/
  • 新增可编辑 draw.io 图表:03-O/K2.项目管理/跨项目联调/Mindraw-m4c-跨项目握手联调咬合图.drawio
  • 新增图表视觉原则:03-O/K2.项目管理/跨项目联调/跨项目咬合图-视觉原则.md
  • 新增目录说明:03-O/K2.项目管理/跨项目联调/README.md
  • 更新 AGENTS.md,将 draw.io 图和颜色规则纳入项目强制规则。

2026-06-28 2026-06-28-MEXP02Gate.md

  • 原始标题:2026-06-28 MEXP02 Gate
  • 彻底完成 M-体验02:可安装版 AI Frame Alpha:用户像普通用户一样安装 / 打开 Mindraw,用 m4c 命令或入口调用它,在安全用户副本里生成 result Frame,不需要理解 debug App、capability、临时 PID 等工程细节。
  • Mindraw worker 完成 MD-MEXP02-01:确认 Build202606272239 DMG 可作为 MEXP02 安装版 Alpha 输入。
  • Mindraw worker 完成 MD-MEXP02-02:标准 HOME capability 可由 QA App 生成并通过 live transport 基础能力检查。
  • m4c worker 完成 M4C-MEXP02-02:通过标准 capability 调用 Mindraw App,在安全副本中生成 result Frame。
  • PM 完成 PM-MEXP02-GATE:以证据链判定 MEXP02 达到 PM Gate GO,但不等同于 H8 正式发布冻结。
  • 用户使用干净 fixture 路径完成亲手验证:从 p.mindrawforcodex/02-P/Round01-ContractBaseline/fixtures/annotated-frame.mindraw 复制到桌面安全副本,运行 installable runner 后,右侧新增 result Frame,体验通过。

2026-06-28 2026-06-28-MEXP03Gate.md

  • 原始标题:2026-06-28 MEXP03 Gate
  • 先完成 MEXP02 后的代码冻结基线,再以 M-体验03:Mindraw 内置 AI Frame MVP 为目标持续推进:不靠外部命令,在 Mindraw 内选中 Frame,直接发起 AI,并在右侧生成 result Frame。
  • MEXP02 本地冻结基线已确认存在:Mindraw tag mindraw-freeze-20260628-mexp02-alpha-user-accepted,m4c tag m4c-freeze-20260628-mexp02-alpha-user-accepted
  • 原 Mindraw worker 卡在空的 inProgress turn 后,PM 记录恢复检查并重派 MD-MEXP03-01 到 recovery worker。
  • Mindraw coder 完成 MD-MEXP03-01:App 内 AI Frame 入口、prompt 面板、本地 Alpha provider、workflow facade、测试、QA 和文档。
  • 独立 reviewer 未发现阻断级安全或逻辑问题;非阻断建议已由 coder 最小补强。
  • PM 复测通过并将 PM-MEXP03-GATE 收敛为 GO for user hands-on

2026-06-28 2026-06-28-MEXP03内置AI-01.md

  • 原始标题:2026-06-28 MEXP03 内置 AI Follow-up
  • 作为 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.markdownMD-MEXP03-01 Progress Log,明确下一步仍归属 PM Gate,PM-MEXP03-GATE 未勾选。
  • npm run test:run -- src/lib/mindrawAiFrameWorkflow.test.ts:PASS,1 file / 8 tests。

2026-06-28 2026-06-28-MEXP03内置AI.md

  • 原始标题:2026-06-28 MEXP03内置AI
  • Coder@mindraw-recovery 身份领取 P-20260626-ai-frame-workflowMD-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,并编排 mindrawGetLiveFrameContextmindrawAcquireWriteLeasemindrawCommitWriteResult、`mindrawRel...
  • 新增 src/components/AiFramePanel.tsx:画布右上角 AI Frame 入口、prompt 输入、默认 prompt、运行 / 成功 / 错误状态。
  • 更新 src/components/ExcalidrawEditor.tsxsrc/index.css:挂载并样式化 AI Frame 控件。
  • 新增 src/lib/mindrawAiFrameWorkflow.test.ts:覆盖成功写入、默认 prompt、非 .mindraw、无选择、多选、非 Frame、dirty 阻断、save failed dirty recovery。
  • 新增 QA 报告和证据:02-P/qa/mindraw-mexp03-ai-frame-mvp-check.md02-P/qa/mindraw-mexp03-ai-frame-mvp.json02-P/qa/mindraw-mexp03-smoke-after-save.png02-P/qa/mindraw-mexp03-smoke-reopen-result-visible.png

2026-06-28 2026-06-28-MEXP03启动.md

  • 原始标题:2026-06-28 MEXP03 启动
  • 先冻结 MEXP02:可安装版 AI Frame Alpha 的用户亲测通过状态。
  • 再进入 goal 模式,以 M-体验03:Mindraw 内置 AI Frame MVP 为唯一目标推进:不靠外部命令,在 Mindraw 内选中 Frame 直接发起 AI,右侧生成 result Frame。
  • Mindraw 主仓已形成本地冻结基线:
  • tag:mindraw-freeze-20260628-mexp02-alpha-user-accepted
  • tag 当前指向:fb979fa7880b9b354641c96d483a5377f86da646
  • 远端推送尝试失败,原因是 GitHub HTTPS 凭据不可用;本地 commit / tag 已保留。

2026-06-28 2026-06-28-MEXP03用户验收.md

  • 原始标题:2026-06-28 MEXP03 用户验收
  • 用户按 PM 提供的步骤手动体验 M-体验03:Mindraw 内置 AI Frame MVP,确认是否能在 Mindraw 内选中 Frame、发起 AI Frame,并在右侧生成 result Frame。
  • 用户打开本地 QA App 并按步骤手动验证。
  • 用户明确反馈:“通过”。
  • 已将验收结论写回 02-P/plan-progress.markdownP-20260626-ai-frame-workflow
  • 已将用户验收结论补入 02-P/qa/mindraw-mexp03-pm-gate.md
  • M-体验03 当前状态更新为 User accepted local Alpha; not H8 release Go

2026-06-28 2026-06-28-MEXP04PMGate.md

  • 原始标题:2026-06-28 MEXP04 PM Gate
  • M-体验04:真实用户文件安全写回 Alpha 为目标推进到可亲测状态:从真实 .mindraw 文件出发,通过安全副本、restore point、恢复和错误提示保护原始用户文件,并在安全写入目标中生成 result Frame。
  • PM 建立并提交 MEXP04 计划基线:02-P/功能任务/mexp04-real-user-safe-writeback-alpha.md02-P/qa/mindraw-mexp04-gate-checklist.md
  • 派发 MD-MEXP04-01 给 Mindraw recovery worker 实现;PM 未直接改源码。
  • Coder 实现安全副本写入目标、restore point、恢复 UI、失败提示、测试、QA、CODEGRAPH.md / INDEX.md / CHANGELOG.md 回写。
  • PM 进行了三轮 independent review:
  • 第一轮 No-Go:文件名推断 safe copy、restore point 归属、保存失败恢复路径。

2026-06-28 2026-06-28-MEXP04二补.md

  • 原始标题:2026-06-28 MEXP04 二补
  • 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...
  • 新增 workflow 回归:live context 捕获 A 后切换 active tab 到 B,验证 restore point 与 save 均绑定 A,未为 B 创建 restore point。
  • Rust restore 失败分支新增 rollback report 和错误 formatter;rollback 无法恢复时返回明确错误,包含 targetPathrollbackPathstagingPath 和 rollback IO 错误,不再声称原目标已恢复。
  • 新增 Rust 回归 restore_rollback_failure_reports_unrestored_target_paths,模拟 rollback package 缺失,覆盖“不可信已恢复描述”错误分支。

2026-06-28 2026-06-28-MEXP04安全写回.md

  • 原始标题:2026-06-28 MEXP04安全写回
  • 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 必须一致。
  • 新增写入前 restore point:每次 AI Frame commit 前在 <safe-copy-stem> AI Frame Backups/ 下创建 .mindraw restore point,hash 必须等于写入前安全目标 hash。
  • 新增恢复动作:从 restore point 通过 staging / rollback 恢复安全写入目标,恢复后刷新 active editor。
  • AI Frame 面板显示写入目标、原始 hash、restore point,并提供 Create safe copyRestore
  • runMindrawAiFrameWorkflow() 在未安全化 .mindraw 上返回 SAFE_COPY_REQUIRED,不 acquire lease、不保存、不写原件。

2026-06-28 2026-06-28-MEXP04补修.md

  • 原始标题:2026-06-28 MEXP04 补修
  • 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
  • 在 Tauri safe copy manifest 写入 aiFrameSafeWriteback 元数据,包含 kind=safeCopysafeCopyDocumentIdoriginalPathoriginalHashcreatedAt
  • restore_ai_frame_restore_point 恢复前校验 restore point 与当前 safe copy 的元数据一致、位于当前 safe copy 的 backup folder、文件名前缀匹配,并继续使用 staging / rollback 与 hash 校验。
  • 保存失败后 AiFramePanel 会刷新本次 restore point 状态;restoreActiveMindrawFromRestorePoint() 允许 dirty safe copy 执行受控恢复,恢复成功后清 dirty。
  • 新增/补强测试:伪造 safe-copy 文件名、错误 backup folder、不同 safe copy / documentId restore point、保存失败后面板显示 restore point 并可恢复。

2026-06-28 2026-06-28-MEXP05PMGate-01.md

  • 原始标题:2026-06-28 MEXP05 PM Gate 续跑核验
  • 继续推进 M-体验05:.assets 权威化体验 goal,PM 负责计划、Gate 和证据收敛,不直接改源码。
  • 只读复核 MEXP05 当前状态:统一台账与 PM Gate 报告均保持 GO for user hands-on; not H8 / formal release
  • 确认本地 QA App 仍存在:src-tauri/target/debug/bundle/macos/Mindraw.app
  • 确认用户亲测空白起点仍可用:02-P/Round01-mindraw-defstart/fixtures/minimal-empty.mindraw,manifest 当前 assets=0assetStore=null
  • 执行 git diff --check,结果 PASS。
  • 02-P/plan-progress.markdown 的两个 MEXP05 Progress Log 中新增 PM 续跑核验记录。

2026-06-28 2026-06-28-MEXP05PMGate.md

  • 原始标题:2026-06-28 MEXP05 PM Gate
  • M-体验05:.assets 权威化体验 为 goal,推进到用户可以亲测:图片 / 生成资产进入 .assets,保存、重开、导出稳定,repair 稳定性有证据。
  • PM 收敛 PM-MEXP05-GATEGO for user hands-on; not H8 / formal release
  • 新增 PM Gate 报告:02-P/qa/mindraw-mexp05-pm-gate.md
  • 更新统一台账:02-P/plan-progress.markdownP-20260626-ai-frame-workflowP-20260626-m4c-handshake-coordination 的 MEXP05 状态、PM-MEXP05-GATE 和 Progress Log。
  • 更新 Gate 清单:02-P/qa/mindraw-mexp05-gate-checklist.md
  • 更新规格状态:02-P/功能任务/mexp05-assetstore-authority-alpha.md

2026-06-28 2026-06-28-MEXP05亲测等待-01.md

  • 原始标题:2026-06-28 MEXP05 亲测等待 01
  • 继续推进 active goal:M-体验05:.assets 权威化体验,要求 .assets 权威源、保存重开、导出、修复链路稳定;PM 只做计划、派工、Gate 和证据收敛,不直接改源码。
  • 按 PM 工作流复核当前角色边界:本轮不写代码、不改源码。
  • 读取 02-P/plan-progress.markdownP-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 记录第二次复查结果。

2026-06-28 2026-06-28-MEXP05亲测等待.md

  • 原始标题:2026-06-28 MEXP05 亲测等待
  • M-体验05:.assets 权威化体验 为当前 goal,要求图片 / 生成资产进入 .assets,并在保存、重开、导出、修复链路中稳定。
  • PM 复核当前 goal 仍为 active,目标是 MEXP05 .assets 权威化体验 Alpha。
  • 按项目规则复核 work-continuity.mddelivery-gate.mdqa-workflow.mdINDEX.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 错误。

2026-06-28 2026-06-28-MEXP05亲测阻塞.md

  • 原始标题:2026-06-28 MEXP05 亲测阻塞
  • 继续推进 active goal:M-体验05:.assets 权威化体验,要求图片 / 生成资产进入 .assets 权威源,并在保存、重开、导出、修复链路中稳定。PM 只做计划、派工、Gate 和证据收敛,不直接改源码。
  • 读取并遵守 PM 工作流,确认本轮不碰源码。
  • 只读复核统一台账和 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

2026-06-28 2026-06-28-MEXP05冻结.md

  • 原始标题:2026-06-28 MEXP05 冻结
  • 用户在 MEXP05 .assets 权威化体验两次验收通过后,要求按 PM 建议以冻结为独立目标执行 source checkpoint / code freeze。
  • 完成 MEXP05 Alpha 本机 source checkpoint,不生成 DMG,不递增版本,不进入 H8 formal release。
  • 主仓提交:5e214c029fc607d46ae94da9650e32c02d36db1e,提交信息 chore: freeze MEXP05 assetstore alpha checkpoint
  • 主仓 tag:mindraw-freeze-20260628-mexp05-alpha-user-accepted,指向上述提交。
  • m4c 03-O tag:m4c-freeze-20260628-mexp05-alpha-user-accepted,指向 e95af70cfef6ac72457c23ffb6bab4dfbf691943
  • 更新统一台账、MEXP05 QA / PM Gate、INDEX.mdCODEGRAPH.mdCHANGELOG.md、跨项目 draw.io 咬合图和冻结记录。

2026-06-28 2026-06-28-MEXP05安全读取.md

  • 原始标题:2026-06-28 MEXP05 安全读取
  • 作为 Mindraw 主项目 coder,只领取 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()
  • Unix 读取路径在打开父目录后、打开最终 blob 前后复验父目录仍在 .assets 内,最终 blob 通过 openat(O_NOFOLLOW) 读取;非 Unix 缺少可证明安全读路径时 fail-closed。
  • repair hydrate 重读 blob 后,在写入 inline 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.mdCODEGRAPH.mdCHANGELOG.md02-P/plan-progress.markdownINDEX.md 无新增入口未改。

2026-06-28 2026-06-28-MEXP05父目录竞态.md

  • 原始标题:2026-06-28 MEXP05 父目录竞态修复
  • 以 Mindraw coder 身份只领取 MD-MEXP05-03,修复 PM-MEXP05-GATE 第二轮 independent review No-Go:AssetStore blob 写入与新增 blob cleanup 在父目录被 symlink 替换 / TOCTOU race 时必须 fail-closed。边界:不领取 PM-* / M4C-* / H*,不做 H8 / ...
  • 重新读取 AGENTS.mdINDEX.mdCODEGRAPH.md02-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,使...
  • 在 temp create 前、temp write 前、rename 前、rename 后、cleanup 前复检父目录 canonical 仍在 .assets root 内,并校验打开的目录 fd 仍对应当前路径。
  • 将新增 blob cleanup 从绝对 PathBuf 改为 package root + asset relative path,避免 raced parent symlink 导致删除包外文件。
  • 新增回归测试 mexp05_intermediate_asset_directory_symlink_race_does_not_write_outsidemexp05_cleanup_intermediate_symlink_race_does_not_delete_outside

2026-06-28 2026-06-28-MEXP05补修.md

  • 原始标题:2026-06-28 MEXP05 补修
  • 以 Mindraw coder 身份只领取 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.rssrc-tauri/src/lib.rs 的原子 temp 写入,改为 OpenOptions::create_new(true),预置 temp symlink / 旧 temp 文件 fail-closed。
  • AssetStore save / repair 写入时记录本轮新建 blob;后续 drawing.excalidrawmanifest.json 写失败时只删除这些本轮新增 blob,不删除既有资产,不自动清理 orphan。
  • 新增 3 个 MEXP05 回归测试:
  • mexp05_preexisting_asset_temp_symlink_does_not_write_outside

2026-06-28 2026-06-28-MEXP05资产权威化.md

  • 原始标题:2026-06-28 MEXP05 资产权威化
  • Coder@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[] 覆盖 assetIdsha256pathmimeTypebyteLengthrefssource.kind,并固定 source.privacy="no-original-path"

2026-06-28 2026-06-28-MEXP05验收通过.md

  • 原始标题:2026-06-28 MEXP05 验收通过
  • M-体验05:.assets 权威化体验 为目标,确认图片 / 生成资产进入 .assets 权威源,并在保存、重开、导出、修复链路中稳定;PM 负责计划、Gate、证据收敛和 code freeze 判断,不直接改源码。
  • 用户两次回复“验收通过”。
  • PM 复核亲测包:/Users/ar/Desktop/MEXP05-assets-test/MEXP05-assets-empty.mindraw
  • manifest 证据:assetStore.authority=dualassetCount=1
  • .assets 证据:存在 blob .assets/objects/sha256/97/33/9733a89c539115de3c49bd06720bfc99639d9a918f5df48a810e267cf3554119.png
  • blob 校验:实际 sha256 与 manifest sha256 一致,byteLength 8591 一致。

2026-06-28 2026-06-28-MEXP06PMGate.md

  • 原始标题:2026-06-28 MEXP06 PM Gate
  • 用户要求检查当前项目进度。
  • 当前主线仍是 M-体验06:Companion App 分发就绪 Alpha
  • 读取 PM 工作流、INDEX.md、统一台账 02-P/plan-progress.markdown,并检查 coder2@mindrawCoder@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

2026-06-28 2026-06-28-MEXP06冻结.md

  • 原始标题:2026-06-28 MEXP06 冻结
  • 用户确认在 M-体验06:Companion App 分发就绪 Alpha 亲测通过后,按 PM 建议执行 source checkpoint / code freeze。
  • 审计主仓分支、HEAD、tag、候选包、安装版 App metadata、m4c preflight 和 m4c 03-O 状态。
  • 创建冻结记录:03-O/K2.项目管理/代码冻结/2026-06-28-MEXP06-Alpha.md
  • 更新统一台账:02-P/plan-progress.markdown
  • 更新索引:INDEX.md
  • 同步 MEXP06 PM Gate 报告和 Gate 清单的用户验收状态。

2026-06-28 2026-06-28-MEXP06分发候选.md

  • 原始标题:2026-06-28 MEXP06 分发候选
  • coder2@mindraw 身份领取统一台账中的 MD-MEXP06-01,完成 M-体验06:Companion App 分发就绪 Alpha 的 Mindraw 侧分发候选 / readiness。边界:不领取 M4C-*PM-*H*;不做 H8 / formal release;不静默安装或覆盖 /Applications/Mindraw.app;不做 Windows...
  • 读取项目入口、工程图、统一台账、MEXP06 规格 / Gate 清单、Phase 3.7 证据和发布 / QA / 代码治理规则。
  • 判断旧 0.8.3 / Build202606272239 DMG 不可沿用,因为它早于 MEXP03MEXP04MEXP05 用户验收后的源码能力,且旧包缺少 CFBundleVersion build 证据。
  • 生成新的 0.9.0 / Build202606281348 macOS arm64 本地 Alpha 候选包:03-O/C2.builds/releases/Build202606281348/Mindraw_0.9.0_aarch64-Build202606281348.dmg
  • 记录 SHA256:86493f275f107010feeb47889cfea8ac73351d8ab28e8d9972de8551060fb78f
  • 创建 source tag:v0.9.0-Build202606281348,指向 03c048964d6ae57f41e2b8315843d2aa86f322c7

2026-06-28 2026-06-28-MEXP06验收.md

  • 原始标题:2026-06-28 MEXP06 验收
  • 用户按 PM Gate 步骤安装 Mindraw 0.9.0 / Build202606281348 后,不理解第 5 步 m4c preflight 的预期结果,需要 PM 判断是否通过并解释。
  • PM 在同一台机器执行 MEXP06 第 5 步 m4c preflight。
  • 命令返回 ok=truestatus=PASS
  • 当前 /Applications/Mindraw.app0.9.0 / Build202606281348
  • 当前机器 currentMachine.analysis.status=M4C_READY
  • mindraw://.mindraw handler、App API capability 与 appWriteLease 均 pass。

2026-06-29 2026-06-29-MEXP08A-Stitch阻塞.md

  • 原始标题:2026-06-29 MEXP08A Stitch 阻塞
  • 以 Goal 模式推进 M-体验08A:Mindraw Frame -> Stitch UI 生成 -> Codex 返回可见结果
  • PM 在 02-P/plan-progress.markdown 立项 P-20260629-mexp08a-frame-to-stitch,并将 P-20260601-finder-pdf-dragP-20260531-default-new-dirP-20260531-periodic-autosave 调低为 Low priority backlog。
  • PM 派发 M4C-MEXP08A-01Coder@m4c,要求先补真实 Mindraw Frame link 的 frame-only context gate。
  • Coder@m4c 完成并提交 ee035fd4a5623995cb0e0c8790e638dadfcc1098,结论为 PASS_FOR_PM_MEXP08A_STITCH_01
  • PM 使用 --no-live 文档索引路径复核真实链接 mdoc_18bd9099d5510060_c76d / caJFkm_EjKdNTBQw9afOg,确认返回 readScope=frame-onlytarget.kind=frameoutsideTextIncluded=falsefallbackToDocumentRead=false
  • PM 连接本机 stitch MCP,确认工具可用,并成功创建 Stitch project projects/4145955783540509949

2026-06-29 2026-06-29-MEXP08A上下文门禁.md

  • 原始标题:2026-06-29 MEXP08A 上下文门禁
  • 用户派发 M4C-MEXP08A-01:修复 / 收口真实 Mindraw Frame link context gate,使 m4c 能对真实 Frame link 返回合法 frame-only context,作为 M-体验08A:Mindraw Frame → Stitch UI 生成 → Codex 返回可见结果 的前置。
  • m4c 修复真实 Frame link resolver 的 pipe 截断和真实 documentId fallback 问题。
  • m4c CLI / MCP stdio 均可对真实 Frame link 返回 readScope=frame-onlytarget.kind=frametargetFrameId=caJFkm_EjKdNTBQw9afOg
  • 输出包含 text / image / arrow / rectangle / frame 的受控摘要;图片仅输出 asset 引用、可用性、MIME 和低风险描述。
  • 已回写统一台账 P-20260629-mexp08a-frame-to-stitch,将 M4C-MEXP08A-01 标为完成,并将 PM-MEXP08A-STITCH-01 标为 Ready / waiting PM。
  • m4c 允许通过 Mindraw local document index 将 documentId 映射到本机包,但只能调用 readonly frame filter 读取目标 Frame。

2026-06-29 2026-06-29-MEXP08A默认入口.md

  • 原始标题:2026-06-29 MEXP08A 默认入口
  • 用户派发 M4C-MEXP08A-02:硬化默认 Frame link resolver 入口,使默认 resolve --input <mindraw://...> 在 live App API 返回旧形状 / 非 frame-only DTO 时,继续走受控 frame-only fallback。
  • m4c 默认 resolver 已从修改前的 FRAME_SCOPE_UNAVAILABLE 修复为合法 frame-only context。
  • live old-shape / 非 frame-only DTO 会被记录为 LIVE_FRAME_SCOPE_REJECTED,随后继续走 selected package / registry / Mindraw document index 的 frame-filtered fallback。
  • CLI 默认入口、--no-live、selected package fallback、m4c-mcp-alpha resolve-frame-link、MCP stdio 入口均通过验证。
  • 已回写统一台账 P-20260629-mexp08a-frame-to-stitch,将 M4C-MEXP08A-02 标为完成。
  • 不把 live old-shape 直接暴露为最终失败。

2026-06-30 2026-06-30-MEXP08B-PM-Gate.md

  • 原始标题:MEXP08B PM Gate
  • M-体验08B:外部模型生成结果写回 Mindraw result Frame 为目标,完成外部模型 PNG 结果从 frame-only context 到 Mindraw result Frame 的受控写回闭环。
  • 收到并复核 coder2@mindrawMD-MEXP08B-02:Mindraw live capability 已刷新,包含 createAiResultFrameImageResult="write"
  • 派发并复核 Coder@m4cM4C-MEXP08B-03:m4c 使用有效 source Frame 安全副本,通过 Mindraw App API / lease / controlled mutation 完成外部 PNG live writeback。
  • PM 完成 PM-MEXP08B-GATE,结论为 GO_FOR_USER_ACCEPTANCE
  • 删除 heartbeat automation mexp08b-pm-monitor,避免继续轮询已经完成的 m4c 等待项。
  • 二次只读审计安全副本 .assets 真实路径:generated asset 位于 .assets/objects/sha256/98/db/98dba5ab7dd7ddc17d0c5ddffca36c81d67fcdbf3c179a44743ba0a3f82d9e73.png,并修正 PM Gate QA 文档中的简写路径。

2026-06-30 2026-06-30-MEXP08B-m4c复跑-01.md

  • 原始标题:2026-06-30 MEXP08B m4c 复跑补证
  • 用户要求 Coder@m4c 领取统一台账 P-20260630-mexp08b-external-model-writebackM4C-MEXP08B-03,基于 Mindraw MD-MEXP08B-02 刷新后的 live capability,完成外部 PNG result Frame live writeback retry。若当前 TL 目标包仍因 source Frame 本体缺...
  • 读取并遵守主项目与 m4c 本地规则、统一台账、Mindraw MD-MEXP08B-02 capability refresh QA、m4c 现有 runner 与 MEXP08B-02 证据。
  • 确认 Mindraw live capability 当前暴露 createAiResultFrameImageResult="write"
  • 增强 m4c runner m4c-external-image-writeback-runner.mjs
  • 支持 M4C-MEXP08B-03 默认 QA / checklist 路径。
  • 支持 --live-context 从 Mindraw live frame-only DTO 构建 sanitized writeback package。

2026-06-30 2026-06-30-MEXP08B-m4c复跑.md

  • 原始标题:2026-06-30 MEXP08B m4c 复跑
  • Coder@m4c 身份领取统一台账 P-20260630-mexp08b-external-model-writebackM4C-MEXP08B-02,在 Mindraw MD-MEXP08B-01 宣称完成新 imageResult capability 后,复跑 m4c 外部模型 PNG result writeback runner,验证 live writeback 闭环...
  • 将 m4c runner 从上一轮 package-only / capability blocker guard 增强为 Mindraw 新契约:
  • mindraw.app.commit_write_result
  • mutation.kind="createAiResultFrame"
  • mutation.imageResult.kind="external-image-result"
  • capability guard 要求 createAiResultFrameImageResult="write"

2026-06-30 2026-06-30-MEXP08B-m4c收口.md

  • 原始标题:2026-06-30 MEXP08B m4c 收口
  • Coder@m4c 身份领取统一台账 P-20260630-mexp08b-external-model-writebackM4C-MEXP08B-01,完成 m4c 侧外部模型 PNG 结果包 / writeback runner:消费已确认的 frame-only context 与 MEXP08A 已验收 PNG,生成 sanitized writeback request/pa...
  • 新增 m4c runner:p.mindrawforcodex/03-O/C3.tools/scripts/m4c-external-image-writeback-runner.mjs
  • runner 支持 buildrunsmokehelp
  • build 生成 m4c.externalImageResultWriteback.v1 sanitized package。
  • run 读取当前 Mindraw runtime capability、检查 health/capabilities,并仅在图片 result writeback capability 存在时走 App API。
  • smoke 生成过程 QA JSON / check Markdown 与正式 QA checklist。

2026-06-30 2026-06-30-MEXP08B写回.md

  • 原始标题:2026-06-30 MEXP08B 写回
  • 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 上限和本机路径泄漏。
  • 成功写回时创建右侧 result Frame、image element 和 referenced files[fileId]
  • file metadata 标记 source.kind="ai-generation"privacy="no-original-path",保存仍走 saveTab() / save_mindraw_package,由既有 AssetStore dual 路径登记 .assets
  • App API capability 增加非破坏性 createAiResultFrameImageResult="write"

2026-06-30 2026-06-30-MEXP08B启动.md

  • 原始标题:2026-06-30 MEXP08B 启动
  • 用户确认下一轮 goal:M-体验08B:外部模型生成结果写回 Mindraw result Frame,要求开工。
  • PM 创建 goal:M-体验08B:外部模型生成结果写回 Mindraw result Frame
  • 在统一台账 /Users/ar/Projects/ExcalidrawX/02-P/plan-progress.markdown 新增计划项 P-20260630-mexp08b-external-model-writeback
  • 新增 PM dispatch 文档:/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-01coder2@mindraw 线程 019f0cb7-61d6-7b81-8f41-b3544b62e737

2026-06-30 2026-06-30-MEXP08B能力刷新.md

  • 原始标题:MEXP08B 能力刷新
  • 领取统一台账 P-20260630-mexp08b-external-model-writebackMD-MEXP08B-02,刷新 / 启动包含 MD-MEXP08B-01 的 Mindraw live App capability,让本机 runtime 对 m4c 暴露 createAiResultFrameImageResult="write",为后续 m4c live write...
  • 读取项目规则、索引、统一台账、MEXP08B-01 QA 证据和 runtime capability 文件。
  • 只读确认旧 runtime PID 82352 可达但能力面缺 createAiResultFrameImageResult,且旧 App 未打开目标文档。
  • 关闭旧 debug App PID 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

2026-06-30 2026-06-30-MEXP08B验收.md

  • 原始标题:2026-06-30 MEXP08B 验收
  • 完成 M-体验08B:外部模型生成结果写回 Mindraw result Frame:外部模型生成的 PNG UI 结果由 m4c 通过 Mindraw App API / lease / controlled mutation 写回 Mindraw,在 source Frame 右侧生成 result Frame,source 不被覆盖,图片进入 .assets 权威链路,并经用户可见验收。
  • Mindraw 侧完成外部 imageResult.kind="external-image-result" 受控写回能力。
  • m4c 侧完成 live writeback retry,并在有效 source Frame 安全副本上通过 App API 写回外部 PNG。
  • PM Gate 文档 02-P/qa/mindraw-mexp08b-pm-gate.md 收敛为 USER_ACCEPTED
  • 用户执行 open-MEXP08B-ACCEPTANCE.command --precheck-only,输出 MEXP08B acceptance precheck: PASS
  • 用户回复“验收通过”,MEXP08B 最终可见验收完成。

2026-06-30 2026-06-30-里程碑路线图.md

  • 原始标题:2026-06-30 里程碑路线图
  • P1-Txtflowy 当前与未来的里程碑整理成正式路线图文档。
  • 文档需要包含:
  • 近期 / 中期 / 长期分层
  • 每个里程碑的完成标准
  • 前置依赖
  • 推荐执行顺序

2026-06-30 26.0630-P1-Txtflowy.收口治理-060最终收口.md

  • 原始标题:会话摘要
  • 在上一份里程碑路线图完成后,正式进入 0.6.x clean extraction 最终收口
  • /Users/ar/Projects/ExcalidrawX/P1-Txtflowy 作为唯一活跃工程根
  • 不改产品行为,只继续做独立插件链路的收口、文档对齐、边界澄清和后续推进安排
    1. 核实真实工程根目录是 P1-Txtflowy,不是旧 Txtflowy 路径。
    1. 复核活跃台账、Round04 文档、路线图、README、安装说明、archive 说明和执行清单。
    1. 修正路线图剩余漂移:

2026-07-01 2026-07-01-MEXP09BGoal.md

  • 原始标题:MEXP09B Goal
  • 用户明确要求以“最终产出物必须可人工验证”为新的 Goal:
  • 给一个 Frame link,Frame 里只放真实截图或弱提示,agent 要能描述截图细节;Frame 外 sentinel 不能被读出来。
  • PM 已进入 Goal 模式,目标为完成 MEXP09B 端到端可人工验证验收。
  • PM 将 MD-MEXP09B-01-20260701 assignment 从 active 收为 done。
  • PM 新增 M4C-MEXP09B-01-20260701 active assignment。
  • PM 创建 m4c 派工说明:02-P/MEXP09B-TargetFramePixelPayload/pm/m4c-mexp09b-01-dispatch-20260701.md

2026-07-01 2026-07-01-MEXP09BPMGate.md

  • 原始标题:2026-07-01 MEXP09B PM Gate
  • 以“用户可人工验证”为 Goal:给出一个 Mindraw Frame link,Frame 内只放真实截图或弱提示,agent 必须能描述截图细节;Frame 外 sentinel 不能被读出来。
  • M4C-MEXP09B-01 已由 m4c worker 完成,m4c 03-O commit:f92f293e3fc393ccd50dc643977bd6196d4eb6ed
  • PM 已把 M4C-MEXP09B-01-20260701 active assignment 收为 done
  • PM 新建严格验收包:02-P/MEXP09B-TargetFramePixelPayload/pm/mexp09b-pm-gate-strict-20260701.mindraw
  • PM 完成严格 Gate 报告: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

2026-07-01 2026-07-01-MEXP09B像素payload.md

  • 原始标题:MEXP09B 像素 payload
  • coder2@mindraw 身份领取统一台账 P-20260701-mexp09b-target-frame-pixel-payloadMD-MEXP09B-01,补齐 Mindraw 侧 target Frame 像素输入能力:当用户给 agent 一个 mindraw://localhost?documentId=...&elementId=<frameId> Frame lin...
  • 在 Mindraw read API 新增 targetFramePixelPayload="read" capability。
  • 新增 JSON-RPC 方法 mindraw.app.get_target_frame_pixel_payload
  • 新增 mindrawGetTargetFramePixelPayload(),输入 documentId、可选 packagePathsourceFrameIdelementId
  • 输出 target Frame-only PNG payload:MIME、尺寸、byteLength、SHA256、Frame bounds、生成时间、pixelsIncluded=truebytesIncluded=true
  • 输出 pixelScopeAudit:targetFrameOnly、source snapshot hash、rasterizer、outside text / image / pixel exclusion、no OCR、no document visual fallback。

2026-07-01 2026-07-01-MEXP09B像素消费.md

  • 原始标题:2026-07-01 MEXP09B 像素消费
  • 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 m4c-frame-link-agent-resolver.mjs 中新增 resolve-pixel / smoke-pixel
  • 在 m4c MCP stdio server 中新增 tool:resolve_mindraw_target_frame_pixel_payload
  • 消费 Mindraw targetFramePixelPayload="read" 与 JSON-RPC mindraw.app.get_target_frame_pixel_payload
  • 校验 target Frame-only PNG payload 的 mimeType、尺寸、byteLength、SHA、pixelsIncluded=truebytesIncluded=truepixelScopeAudit
  • 将 raw PNG dataURL 仅作为内存 vision input 通道使用;sanitized package、MCP response、QA JSON 和长期文档只保存 metadata / SHA / scope audit / redacted placeholder。

2026-07-01 2026-07-01-MEXP09B阻断与MEXP10暂停.md

  • 原始标题:MEXP09B 阻断与 MEXP10 暂停
  • 用户通过侧会话紧急回传:真实复验显示 MEXP09 当前不能作为“agent 已能看懂 Frame 内截图细节”的发布价值基线。用户需要主线判断:让当前任务继续跑完,还是先停下并立 MEXP09B。
  • PM 决策:当前任务不按原目标跑完,不进入 Gate,不继续推进 MEXP09 价值包;先让 active worker 到安全 checkpoint 后暂停,并立 MEXP09B:Target Frame Pixel Payload / Vision Input Delivery
  • coder2@mindraw 线程 019f0cb7-61d6-7b81-8f41-b3544b62e737 下达紧急暂停指令:不强杀当前命令,完成后停在可恢复 checkpoint;不提交、不打 DMG、不进入 PM-MCPE-GATE、不派发 m4c retry。
  • 新增 MEXP09B blocker 证据文件: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

2026-07-01 2026-07-01-MEXP09Runtime.md

  • 原始标题:2026-07-01 MEXP09 Runtime
  • coder2@mindraw 身份领取 P-20260701-mexp09-frame-visual-contextMD-MEXP09-02,刷新包含 MD-MEXP09-01 commit 1765cad3c679d46ce2c49afc137a7e0253386355 的 Mindraw live App runtime,并准备 PM-MEXP09-GATE 可用的真实 F...
  • 确认当前 HEAD 为 1765cad3c679d46ce2c49afc137a7e0253386355,且 required commit 是 HEAD 祖先。
  • 准备 MEXP09 Gate fixture:
  • /Users/ar/Projects/ExcalidrawX/02-P/MEXP09-FrameVisualContext/fixtures/mexp09-gate-visual-context.mindraw/
  • Frame link: mindraw://localhost?documentId=mdoc_mexp09_gate_visual_context_20260701&elementId=frame_mexp09_gate_target
  • 构建并启动本地 QA App:

2026-07-01 2026-07-01-MEXP09价值包.md

  • 原始标题:2026-07-01 MEXP09 价值包
  • 领取 P-20260701-mexp09-value-dmg-releaseMD-MEXP09-REL-01,生成体现 MEXP09 用户价值的 Mindraw 可安装 DMG 候选包。版本从 1.0.0 升到 1.1.0,因为项目本地规则要求用户可感知新 feature 至少递增 0.1
  • MEXP09 价值边界固定为:
  • target Frame -> visualContext.snapshot -> visualScopeAudit -> m4c sanitized package
  • 本轮不做 H8 / formal release,不触碰 m4c,不实现新功能,不把 OCR-only、文本摘要或整文档读取写成 MEXP09 价值。
  • 将已跟踪版本元数据升级到 1.1.0package.jsonsrc-tauri/tauri.conf.jsonsrc-tauri/Cargo.toml
  • 本地同步忽略项 lockfile:package-lock.jsonsrc-tauri/Cargo.lock,但未强制纳入 Git,因为 .gitignore 明确忽略 package-lock.json*.lock

2026-07-01 2026-07-01-MEXP09价值包PMGate.md

  • 原始标题:MEXP09 价值包 PM Gate
  • 用户从侧会话回传:MEXP09 已验收通过,价值是“目标 Frame 视觉能力”,不是 OCR 增强;希望有新的 Mindraw DMG 安装包体现该价值。主线需按 release 规则推进,且不能把后续 Cowart 替代 / Mindraw for Codex 的“看画布 / 看 Frame”能力退回 OCR-only、文本摘要或整文档猜上下文。
  • 已按项目 Versioning Rules 判定目标版本为 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.jsonMD-MEXP09-REL-01-20260701active 改为 done
  • 已回写 02-P/plan-progress.markdown:该 release 事项状态为 Complete / PM-MEXP09-REL-GATE pass; ready for user acceptance with ad-hoc signing warning

2026-07-01 2026-07-01-MEXP09监控关闭.md

  • 原始标题:2026-07-01 MEXP09 监控关闭
  • 用户确认 MEXP09 已验收通过后,询问 MEXP09 visual context PM monitor 是否可以关闭。
  • 核对 02-P/plan-progress.markdownP-20260701-mexp09-frame-visual-context 已为 Complete / USER_ACCEPTED
  • 核对任务状态:M4C-MEXP09-02PM-MEXP09-GATE 均已完成,用户已确认“验收通过”。
  • 核对 02-P/pmo-active-assignments.json:没有 MEXP09 active assignment。
  • 查看并删除 heartbeat automation mexp09-visual-context-monitor,原名称为 MEXP09 visual context PM monitor,原频率为每 15 分钟。
  • 回写 02-P/plan-progress.markdown 的 MEXP09 Progress Log,记录 monitor 已关闭。

2026-07-01 2026-07-01-MEXP09视觉Gate.md

  • 原始标题:2026-07-01 MEXP09视觉Gate
  • 用户要求以 Mindraw 全局 PM 身份,接续 codex://threads/019efd0e-ae6e-7331-9a51-82906bb2c5cd 未完成工作,围绕 02-P/plan-progress.markdown 继续安排和跟进项目进度。
  • 读取 PM 工作流、本项目 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
  • 重新打开 MEXP09 Gate fixture 并刷新本地 QA App runtime,PID 9822
  • 复跑 live resolve-visual,确认 Gate package ok=truereadScope=frame-onlyoutsideTextIncluded=falsetargetFrameSnapshot.available=truebytesIncluded=false

2026-07-01 2026-07-01-MEXP09视觉上下文-01.md

  • 原始标题:2026-07-01 MEXP09 m4c 视觉上下文收口
  • Coder@m4c 身份领取统一台账 P-20260701-mexp09-frame-visual-contextM4C-MEXP09-01,完成 m4c 侧 Frame visual context consumer guard / agent package:UI 修改类任务必须有目标 Frame visual snapshot,OCR-only / text-only 必须 No-Go。
  • 在 m4c 03-O 正式输出区完成 Visual Frame Context Package consumer guard。
  • m4c-frame-link-agent-resolver.mjs 新增 resolve-visualsmoke-visual
  • m4c-frame-link-mcp-server.mjs 新增 MCP tool resolve_mindraw_visual_frame_context
  • 兼容 Mindraw MD-MEXP09-01 实际 DTO:visualContext.snapshot + visualScopeAudit,输出统一的 sanitized targetFrameSnapshot 元数据。
  • OCR-only / missing visual context 返回 VISUAL_CONTEXT_REQUIRED;live capability 缺失返回 MINDRAW_VISUAL_CONTEXT_CAPABILITY_UNAVAILABLE

2026-07-01 2026-07-01-MEXP09视觉上下文-02.md

  • 原始标题:2026-07-01 MEXP09 视觉上下文 m4c scopeAudit 兼容
  • 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。
  • live attempt diagnostics 改为摘要,避免 raw live DTO / visual snapshot dataURL 进入 agent-facing package。

2026-07-01 2026-07-01-MEXP09视觉上下文.md

  • 原始标题:2026-07-01 MEXP09 视觉上下文
  • coder2@mindraw 身份领取统一台账 P-20260701-mexp09-frame-visual-contextMD-MEXP09-01,完成 Mindraw 侧 target Frame visual snapshot / visual context contract。边界:不做 H8/formal release,不重打 DMG,不修 Stitch,不做 m4c cons...
  • Frame link / live frame context 的 AI/App API 读取语义继续固定为 frame-only
  • UI 任务主上下文必须是目标 Frame visual snapshot;OCR-only 不可作为完成路径。
  • 本轮实现采用受控 SVG visual snapshot:在 mindrawGetLiveFrameContext() 的 target Frame 过滤之后,仅用目标 Frame 内元素和内部图片 dataURL 生成 SVG,避免整图截图、整份 .mindraw promptable read 或 document visual scan。
  • 非 Frame target / missing target 仍分别返回 TARGET_NOT_FRAME / TARGET_NOT_FOUND
  • npm test -- --run src/lib/mindrawAppReadApi.test.ts src/lib/mindrawAppApiTransport.test.ts:PASS,2 files / 15 tests。

2026-07-01 2026-07-01-MEXP09验收通过.md

  • 原始标题:2026-07-01 MEXP09验收通过
  • 用户确认 M-体验09:Frame 定域视觉读取 的最终可见验收结果,要求项目经理继续按统一台账收口。
  • 02-P/plan-progress.markdownP-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
  • 在该计划项 Progress Log 追加用户最终验收通过记录。
  • MEXP09 完成标准已达成:Mindraw Frame link 可提供目标 Frame 的视觉上下文与真实文本上下文,m4c consumer 能生成 frame-only sanitized package,PM Gate 已通过,用户已验收。
  • 本项不等于 H8 / formal release,不打 DMG,不启动新源码任务。

2026-07-01 2026-07-01-MEXP10PMGate.md

  • 原始标题:MEXP10 PM Gate
  • 用户确认以 MEXP10 为当前 Goal:完成 MD-MCPE-01 -> M4C-MCPE-02 -> PM-MCPE-GATE 的端到端验收,让 ~/plugins/mindraw 支持 Open the Mindraw canvas for this project.,在项目根创建 / 打开 MindrawCanvas/ 下最新 .mindraw,侧边栏显示完整只读预览,并通过 `编...
  • PM 复核 M4C-MCPE-02 worker 证据,确认 ~/plugins/mindraw 已实际消费 Mindraw createBlankPackage / previewSnapshot / openPackage capability。
  • PM 重建并启动当前 debug QA App:/Users/ar/Projects/ExcalidrawX/src-tauri/target/debug/bundle/macos/Mindraw.app
  • npm run doctor:mindraw -- --pretty 在新 debug QA App 启动后显示 projectCanvasCreate=passprojectCanvasPreview=passprojectCanvasOpen=passtargetFramePixelPayload=pass
  • live MCP 验证首次创建、重复打开不新建、显式新建递增、mtime 干扰、registry 丢失恢复、非规范文件 warning。
  • live sidebar HTTP 验证 /api/state READY、/api/preview 返回 image/svg+xml full preview、DOM 含 pan / zoom / reset / 编辑 / double-click handoff。

2026-07-01 2026-07-01-MEXP11PMGate.md

  • 原始标题:MEXP11 PM Gate 收口
  • 用户要求继续 Goal 模式推进 MEXP11:在 MEXP10 已经通过项目画布创建 / 预览 / 打开 Gate 后,把 ~/plugins/mindraw 的 Project Canvas Lifecycle 产品化。
  • PM 创建并派发 P-20260701-mindraw-project-canvas-lifecycle
  • Coder@m4c 完成 M4C-MPCL-01,并回报 PASS / PM_NOTIFY_READY: yes
  • PM 独立执行 PM-MPCL-GATE,结论为 GO_FOR_MEXP11_LIFECYCLE / NOT_RELEASE
  • 02-P/pmo-active-assignments.jsonM4C-MPCL-01-20260701 已从 active 改为 done
  • 统一台账 02-P/plan-progress.markdown 已把 MEXP11 状态改为 Complete / PM-MPCL-GATE GO

2026-07-01 2026-07-01-MPCL生命周期收口.md

  • 原始标题:M4C-MPCL-01 Project Canvas Lifecycle 收口
  • 领取统一台账 P-20260701-mindraw-project-canvas-lifecycle 中的 M4C-MPCL-01,在 MEXP10 PM-MCPE-GATE GO 之后,对 ~/plugins/mindraw 做 Project Canvas Lifecycle hardening。
  • 本轮重点不是重做 create / preview / open,而是补齐 registry 损坏 / 缺失 / stale / cross-project path、MindrawCanvas 目录冲突、sequence 冲突和上限、Git ignore 状态、多项目隔离、稳定错误码和脱敏 QA。
  • 更新 ~/plugins/mindraw/lib/project-canvas.mjs
  • registry JSON 损坏时恢复并返回 REGISTRY_JSON_INVALID
  • stale registry entry 返回 REGISTRY_ENTRY_STALE,不选 missing canvas。
  • cross-project / 越界 registry path 返回 REGISTRY_ENTRY_OUTSIDE_CANVAS_DIR,不信任外部项目 canvas。

2026-07-01 2026-07-01-SkillSpector修复.md

  • 原始标题:2026-07-01 SkillSpector 修复
  • 用户已确认 M-体验09 验收通过;随后 Stop hook 阻止收尾,指出 /Users/ar/.codex/skills/dev-project-bootstrap 新增或变更的 agent skill 未达到 SAFE,原报告为 DO_NOT_INSTALL。本轮目标是解除该安全门阻塞,不安装、发布或分享该 skill。
  • 读取并遵守 agent skill 安全治理规则:/Users/ar/.codex/rules/agent-skill-security.md
  • 检查 SkillSpector 报告,确认原始高风险来自脚本自动执行 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 而失败。

2026-07-02 2026-07-02-MEXP12到13.md

  • 原始标题:2026-07-02 MEXP12到13
  • 用户指出:已规划且归属 PM 的下一步不应停下来等待用户确认;只有必须用户真实验证或操作时才应等待。PM 因此直接进入 PM-MSPP-GATE,并在 MEXP12 通过后继续启动 MEXP13 scope freeze。
  • 完成 PM-MSPP-GATE
  • MEXP12 Sidebar Preview polish 结论为 GO_FOR_MEXP12_SIDEBAR_PREVIEW_POLISH / NOT_RELEASE
  • Gate 报告:02-P/MEXP12-SidebarPreviewPolish/pm/mexp12-pm-gate-20260702.md
  • PM 复跑证据:02-P/MEXP12-SidebarPreviewPolish/pm/gate-rerun-20260702/
  • 关闭 MEXP12 goal:

2026-07-02 2026-07-02-MEXP13Gate1.2.2.md

  • 原始标题:2026-07-02 MEXP13 Gate 1.2.2
  • 用户询问最新进展,并关心“大家是不是都停下来了”。本轮目标是核查 MEXP13 App + Codex Plugin Acceptance Bundle 的真实状态,收口已经完成的 worker 任务,执行 PM re-Gate,并明确下一步是否轮到用户复验。
  • 核查 02-P/plan-progress.markdown02-P/pmo-active-assignments.json02-P/PMO_INBOX.md
  • 确认 MD-BUNDLE-05 worker 已完成并回报 PM_NOTIFY_READY=yes,但 PMO assignment 曾仍显示 active
  • 1.2.2 / Build202607021605 refreshed DMG 执行 PM re-Gate。
  • 新增 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

2026-07-02 2026-07-02-MEXP13PMGate.md

  • 原始标题:MEXP13 PM Gate
  • 用户希望交付一组可真实体验的 Mindraw App + Codex Plugin 联合验收包,并确认当前 worker 是否卡住或都在休息。
  • 本轮完成标准:
  • 复核 MD-BUNDLE-01 App DMG 候选包与 M4C-BUNDLE-01 Codex plugin runbook 证据。
  • 给出 PM-BUNDLE-GATE Go / No-Go。
  • 如果通过,明确下一步是否需要用户人工验收,而不是继续等待 worker。
  • 不做范围:

2026-07-02 2026-07-02-MEXP13侧栏入口失败.md

  • 原始标题:2026-07-02 MEXP13 侧栏入口失败
  • 用户按 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” 时启动。
  • 在统一台账中将 MEXP13 状态改为 USER_REACCEPTANCE_FAILED_ON_SIDEBAR_ENTRY / M4C-BUNDLE-03 active
  • 新建派工:02-P/MEXP13-AcceptanceBundle/pm/m4c-bundle-03-sidebar-entry-dispatch-20260702.md

2026-07-02 2026-07-02-MEXP13刷新包-01.md

  • 原始标题:MEXP13 刷新包 1.2.2
  • coder2@mindraw 身份完成统一台账 P-20260701-app-codex-plugin-acceptance-bundleMD-BUNDLE-05:生成包含 MD-BUNDLE-04 preview freshness / target guard 修复的 MEXP13 internal acceptance DMG。
  • 不做范围:不改 m4c/plugin、不做 PM Gate / re-Gate、不做 H8 / formal release / notarized installer、不覆盖 /Applications/Mindraw.app、不修改用户项目文件。
  • 目标版本:1.2.2
  • Build:Build202607021605
  • Release class input:mexp13-acceptance-bundle
  • Manifest releaseClass:mexp13-acceptance-bundle-not-formal-release-not-notarized-installer

2026-07-02 2026-07-02-MEXP13刷新包.md

  • 原始标题:2026-07-02 MEXP13 刷新包
  • 领取 MD-BUNDLE-03,基于 MD-BUNDLE-02 project canvas preview fidelity 修复生成新的 Mindraw App 内部验收 DMG。旧 1.2.0 / Build202607020214 不包含修复,不得继续给用户复验。
  • 版本:1.2.1
  • Build:Build202607021050
  • Release class:mexp13-acceptance-bundle
  • Source commit / tag target:f70263019a8dd47a5460903bca4ea0e6e5fa74bb
  • Release tag:v1.2.1-Build202607021050

2026-07-02 2026-07-02-MEXP13复验包.md

  • 原始标题:2026-07-02 MEXP13 复验包
  • 用户要求提供新的 DMG 来复验 MEXP13 preview fidelity 修复,并要求一步一步说明如何验证。
  • 跟进 coder2@mindrawMD-BUNDLE-03,确认其最终 PM_NOTIFY_READY=yes / PASS
  • PM 独立复核 refreshed DMG 的 SHA、manifest、tag、hdiutil verify、mount structure、App metadata 和 codesign。
  • 关闭 MD-BUNDLE-03-20260702 active assignment。
  • PM-BUNDLE-REGATE 记为 GO_FOR_USER_REACCEPTANCE / NOT_FORMAL_RELEASE
  • 新增 PM Gate 记录:02-P/MEXP13-AcceptanceBundle/pm/mexp13-pm-regate-20260702.md

2026-07-02 2026-07-02-MEXP13复验失败-01.md

  • 原始标题:MEXP13 复验失败与后续派工
  • 用户在复验 MEXP13 App + Codex Plugin Acceptance Bundle 时报告两个新问题,希望 PM 不再让用户继续试错,而是安排 worker 修复:
    1. sidebar preview 里点击 编辑 按钮或双击画布,预期应激活 / 打开 Mindraw desktop App,实际不行。
    1. 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_ACTIVATING

2026-07-02 2026-07-02-MEXP13复验失败派工.md

  • 原始标题:MEXP13 复验失败派工
  • 用户完成 1.2.2 / Build202607021605 真实复验后,反馈两个阻塞问题,并要求 PM 继续推进而不是停在旧 Gate 结论:
    1. sidebar 点击 编辑 能打开 Mindraw App,但窗口没有实时前置 / 聚焦,可能落在另一个 macOS Space,用户感知为“没反应”。
    1. 用户在 App 中编辑并保存后,回到 sidebar preview 仍显示旧画面,没有实时同步 / 刷新。
  • 复验 link:mindraw://localhost?documentId=mdoc_18be6dd16dcd65a8_13325&elementId=0FsB_qTE-Ks07kgUCyChk
  • P-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

2026-07-02 2026-07-02-MEXP13显式入口.md

  • 原始标题:2026-07-02 MEXP13 显式入口
  • 用户确认 Mindraw for Codex 第一阶段不做复杂的默认偏好 / 首次选择弹窗,而是用命令本身直接表达打开位置:
  • Open Mindraw in sidebar for this project.
  • Open Mindraw app for this project.
  • 在侧边栏打开这个项目的 Mindraw
  • 在 Mindraw App 中打开这个项目
  • 新增 PM 派工文档:02-P/MEXP13-AcceptanceBundle/pm/m4c-bundle-04-explicit-open-location-commands-dispatch-20260702.md

2026-07-02 2026-07-02-MEXP13补派m4c.md

  • 原始标题:MEXP13 补派 m4c
  • 用户指出“其他人都停下来了”,要求 PM 检查当前执行状态并继续推进,不要在已明确的下一步上等待用户。
  • 巡检 pmo-active-assignments.jsonplan-progress.markdowncoder2@mindraw 线程。
  • 发现 MD-BUNDLE-02 已完成并回写台账,但 PMO active assignment 仍未关闭。
  • 关闭 MD-BUNDLE-02-20260702done
  • 新增并派发 M4C-BUNDLE-02-20260702Coder@m4c
  • 新增派工文档:

2026-07-02 2026-07-02-MEXP13预览修复.md

  • 原始标题:2026-07-02 MEXP13 预览修复
  • 领取 MD-BUNDLE-02,修复 MEXP13 用户验收发现的 preview fidelity 缺口:Codex sidebar 中的 Mindraw project canvas preview 必须接近 Mindraw desktop 的只读高保真画面,不得继续使用手写近似 SVG / 灰色图片占位 / 简化重绘。
  • 将非空 project canvas preview 从 Rust 手写 SVG 近似 renderer 改为前端 Excalidraw export pipeline 生成 PNG。
  • 新增 mindrawProjectCanvasPreview facade,负责解析 .mindraw scene、保留 image files、调用 exportToBlob、读取 PNG 尺寸并返回 base64 + metadata。
  • 新增 Rust write_mindraw_preview_snapshot 受控写入命令,只接受 PNG,校验 source、尺寸、PNG signature、byte cap,并写入 preview/preview.png 与 manifest preview metadata。
  • 保留 blank canvas approved SVG fallback,避免空画布伪造高保真内容。
  • 使用用户验收安全副本生成 after-fix PNG:真实图片、红色标注、箭头、圆角矩形、Frame 和布局比例可见,旧灰色 image 占位消失。

2026-07-02 2026-07-02-MEXP13预览失败.md

  • 原始标题:MEXP13 预览失败
  • 用户按 MEXP13 人工验收步骤测试了 Mindraw App + Codex Plugin 联合体验包。主流程能走通,但用户指出 Codex sidebar preview 和 Mindraw desktop 实际画面视觉差异极大,不像同一个画布;预期应该像一张 1:1 高保真照片,唯一差异只是不能编辑。
  • 将本次反馈定性为 USER-BUNDLE-ACCEPTANCE Failed / PREVIEW_FIDELITY_MISMATCH
  • 保存用户截图证据到:
  • 02-P/MEXP13-AcceptanceBundle/pm/user-acceptance-preview-fidelity-20260702/sidebar-preview-mismatch.png
  • 02-P/MEXP13-AcceptanceBundle/pm/user-acceptance-preview-fidelity-20260702/mindraw-desktop-reference.png
  • 只读定位根因:Mindraw App 侧 src-tauri/src/lib.rsbuild_mindraw_preview_svg() 是手写近似 SVG renderer,image 分支只输出灰色占位框和 image 文本。

2026-07-02 2026-07-02-MEXP13验收包.md

  • 原始标题:MEXP13 验收包
  • 生成 MEXP13 内部联合体验包的 Mindraw App 侧 .dmg 验收候选包。包类型为 mexp13-acceptance-bundle,不是 H8 / formal release,也不是 notarized installer;需要按发布版本规则固定 version、build、source commit、tag、manifest、SHA256、签名边界和回滚说明。
  • 将 App metadata 从 1.1.0 升到 1.2.0package.jsonsrc-tauri/tauri.conf.jsonsrc-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.md03-O/C2.builds/README.md 的 MEXP13 打包入口和最新构建索引。
  • 从固定 source commit 生成 DMG,并创建 tag。

2026-07-02 2026-07-02-MSPP预览收口.md

  • 原始标题:MSPP 侧栏预览收口
  • 继续未完成的 M4C-MSPP-01,不要重启任务,从 checkpoint 收口:
  • 完成 ~/plugins/mindraw Codex sidebar preview polish。
  • 验证默认 fit-to-view、清晰非空、pan / zoom / reset、编辑 / double-click 打开同一 .mindraw、loading / unavailable / blocked 状态脱敏。
  • 完成 installed cache 更新 / 验证 / smoke、SkillSpector、敏感扫描、m4c 03-O QA 证据、CODEGRAPH / INDEX / 台账回写。
  • 修改 ~/plugins/mindraw/scripts/mindraw-canvas-service.mjs
  • sidebar preview 默认 fit-to-view。

2026-07-05 2026-07-05-MEXP13组合复验.md

  • 原始标题:2026-07-05 MEXP13 组合复验
  • 用户要求汇报最新项目进度,并明确更关心普通用户可感知成果的验收状态。
  • 读取并核对 INDEX.md02-P/plan-progress.markdown、PMO active assignment、MEXP13 MD-BUNDLE-07M4C-BUNDLE-06 证据。
  • 发现 1.2.3 / Build202607042351 已生成,且 crg-7784e7708416 已由代码审核员回写 PASS,但本机 hook 起初仍误判为 changes_requested
  • 定位 hook 误判根因:02-P/PMO_INBOX.md / 02-P/pmo-events.jsonl 中旧 stop 事件摘要、以及 02-P/pmo-active-assignments.json 末尾 notes 的精确 gate 字符串,和后续 review 文档中的历史“阻塞”词落入同一机械扫描窗口。
  • 中性化本机 PMO 事件日志中的精确 gate 字符串,并把 pmo-active-assignments.json 末尾 notes 改成 same-gate 表述;正式 gate 事实仍保留在统一台账。
  • 复算 hook:Review Gate ID: crg-7784e7708416review_status=passdecision=allow

2026-07-06 2026-07-06-MEXP13冻结.md

  • 原始标题:2026-07-06 MEXP13 冻结
  • 用户确认今天的真实体验复验完全成功,希望冻结一版代码,避免后续继续开发时丢失当前可用基线。
  • 读取并遵守项目入口、统一台账、代码治理、发布版本、交付门禁、QA、连续推进和会话记忆规则。
  • 核对 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.markdownINDEX.mdCODEGRAPH.md03-O/C2.builds/README.md,把当前状态从“待用户复验”收敛为“用户复验成功 + local source checkpoint”。
  • 创建本地提交:8eba6a9fa82e12dd5e24a71a876e4a75f4d90c3f

2026-07-06 2026-07-06-MEXP13复验成功.md

  • 原始标题:2026-07-06 MEXP13 复验成功
  • 用户完成 1.2.3 / Build202607042351 与当前 Mindraw Codex plugin baseline 的真实路径试验,并反馈:“这轮试验完全成功,效果非常好”。
  • 启动当前项目 Mindraw sidebar 预览服务。
  • 打开 Codex in-app browser/sidebar 到 http://127.0.0.1:43227/
  • 记录服务返回状态:READYprojectRoot=/Users/ar/Projects/MindrawcanvasDir=/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。

2026-07-06 2026-07-06-MEXP14-QAEDC02.md

  • 原始标题:MEXP14 QA-EDC-02 外部分发候选验证
  • 日期:2026-07-06
  • 项目:Mindraw
  • 角色:QA
  • PMO 补派 QA-EDC-02,要求在两个 Review Gate 已回写代码复核层面 PASS 后,按 QA-EDC-01 计划尽可能执行 MEXP14 外部分发候选验证。
  • 限制:
  • 不改源码、需求、设计、App/plugin 产物或发布资料。

2026-07-06 2026-07-06-MEXP14-QA计划.md

  • 原始标题:MEXP14 QA 计划与阻塞记录
  • PMO 派发 QA-EDC-01:建立并执行 MEXP14 fresh machine / clean profile 验收计划。真实 fresh machine 优先;若没有真实新机器,必须明确 clean macOS user / clean Codex profile fallback 风险,不能把本机普通 smoke 冒充跨机器验证。
  • 按要求读取 AGENTS.mdINDEX.md02-P/plan-progress.markdown 的 MEXP14 计划项、MEXP14 Round Spec、角色派工简报中的 QA-EDC-01、以及 MEXP13 用户成功路径证据。
  • 读取 QA / 交付 / 发布版本 / agent skill 安全 / 会话记忆规则。
  • 采集当前本机环境、当前 MEXP13 App baseline、当前 plugin baseline 和 SkillSpector 扫描结果。
  • 新增 QA 计划: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

2026-07-06 2026-07-06-MEXP14QA回报收口.md

  • 原始标题:2026-07-06 MEXP14 QA 回报收口
  • 用户询问 QA-EDC-02 是否还没有回复,需要 PMO 给出当前 MEXP14 外部分发候选的真实进展。
  • 只读核对 INDEX.md02-P/plan-progress.markdown,确认当前活跃计划为 P-20260706-external-distribution-candidate
  • 核对 QA-EDC-02 已完成回报,结果为 PARTIAL,不是 QA PASS、PMO Gate、正式公开版本或用户验收。
  • 02-P/pmo-active-assignments.jsonQA-EDC-02-20260706active 收口为 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

2026-07-06 2026-07-06-MEXP14产品口径.md

  • 原始标题:2026-07-06 MEXP14 产品口径
  • PMO 派发 PO-EDC-01,要求产品经理为 MEXP14 外部分发候选定义外部用户能理解、能验收的产品口径,并按需最小回写 PRD / 产品知识库。
  • 按指定顺序读取 AGENTS.mdINDEX.md02-P/plan-progress.markdownP-20260706-external-distribution-candidate、MEXP14 Round Spec 和角色派工 brief。
  • 补读 release-versioning.md,用于限定外部分发候选与正式可回滚测试包 / 发布包的边界。
  • 读取现有 02-P/po/prd.md、产品知识库入口和 MEXP13 用户复验证据。
  • 回写 MEXP14 外部用户安装与体验成功标准、安装前提、不做范围和普通用户风险说明。
  • 旧 PRD 是当前产品经理事实源,且存在 MEXP13 状态过期问题,因此直接最小回写,不另建 proposal。

2026-07-06 2026-07-06-MEXP14复核派工.md

  • 原始标题:2026-07-06 MEXP14 复核派工
  • 用户要求 PMO 继续推进 MEXP14 外部分发候选工作,不停在“候选已产出但未收口”的状态。
  • PMO 补派代码审核员线程 019f28ec-36d0-7b03-8056-7e61ea782e59,正式复核两个 concrete Review Gate:
  • crg-b694a42d46fdMD-EDC-01 App / packaging manifest gate。
  • crg-ce3b411d6ccaM4C-EDC-01 plugin candidate gate。
  • 核验代码审核员新 turn 已启动:019f37a2-e186-7210-bbc7-46073f97f7aa,状态为 inProgress
  • 代码审核员已在统一台账回写两个 Gate 的代码复核层面结论:

2026-07-06 2026-07-06-MEXP14外部分发派工.md

  • 原始标题:2026-07-06 MEXP14 外部分发候选派工
  • 用户在确认 MEXP13 本机体验复验成功后,要求 PMO 规划下一轮工作,并组织团队把 Mindraw App 安装包 + m4c Codex plugin 安装包 / 安装说明 / fresh machine QA 打成外部分发候选。
  • 按项目规则先对齐目标和起点:本轮目标是规划并派发 MEXP14 外部分发候选,不直接宣布正式发布;起点是 1.2.3 / Build202607042351mindraw@personal 0.1.0+codex.20260704090518
  • 读取发布版本、交付门禁、QA、agent skill 安全、代码治理、项目治理、连续推进和会话记忆规则。
  • 新增 Round Spec: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

2026-07-06 2026-07-06-MEXP14设计检查.md

  • 原始标题:2026-07-06 MEXP14 设计检查
  • PMO 派工 DESIGN-EDC-01,Plan ID P-20260706-external-distribution-candidate。以设计总监身份检查 MEXP14 外部分发候选在外部安装、first-run、sidebar 状态和截图说明上是否容易让普通用户误解,并在需要时最小回写设计事实源。
  • 按顺序读取 /Users/ar/Projects/Mindraw/AGENTS.mdINDEX.md02-P/plan-progress.markdownP-20260706-external-distribution-candidate
  • 读取 02-P/MEXP14-ExternalDistributionCandidate/pm/mexp14-round-spec-20260706.md
  • 读取 02-P/MEXP14-ExternalDistributionCandidate/pm/mexp14-role-dispatch-briefs-20260706.mdDESIGN-EDC-01 任务段。
  • 读取并审查 02-P/ui/design-spec.md
  • 02-P/ui/design-spec.md 增补 MEXP14 外部分发候选 UX 说明。

2026-07-06 2026-07-06-MEXP14运营材料.md

  • 原始标题:MEXP14 运营材料
  • PMO 派工要求运营窗口把 MEXP14 外部分发候选组织成普通用户能拿到、校验、安装和回滚的材料。必须按项目入口读取规则执行,不绕过 QA / PMO Gate,不把本机验收成功写成正式公开版本;等待 App / plugin 新产物时先产出模板和阻塞条件。
  • 变更对象:MEXP14 外部分发候选运营材料入口。
  • 事实来源:
  • 02-P/MEXP14-ExternalDistributionCandidate/ops/ops-edc-01-distribution-kit-template-20260706.md
  • 02-P/plan-progress.markdown
  • 02-P/MEXP14-ExternalDistributionCandidate/pm/mexp14-round-spec-20260706.md

2026-07-07 2026-07-07-MEXP14-QAEDC03.md

  • 原始标题:MEXP14 QA-EDC-03
  • PMO 派发 QA-EDC-03,要求从 QA 角色收口 MEXP14 外部分发候选的 App rollback 验证与剩余真实环境风险。边界是不得破坏当前主力机器状态,不改源码、构建、候选产物,不替 PMO 宣布候选升级。
  • 按派工顺序读取 AGENTS.mdINDEX.md、统一台账 MEXP14 计划项、治理收口文档、QA-EDC-02 报告、用户新机器 CLI / GUI 证据和 OPS rollback 模板。
  • 核对 App candidate 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
  • 产出 QA 报告:02-P/MEXP14-ExternalDistributionCandidate/qa/qa-edc-03-rollback-and-residual-risk-20260707.md

2026-07-07 2026-07-07-MEXP14回滚包.md

  • 原始标题:MEXP14 回滚包
  • 用户决定使用上一轮测试机器补做 MEXP14 App rollback 实证,要求 PMO 给出详细操作步骤,并准备相关软件 / 工具。
  • 在当前机器准备 rollback test kit:/Users/ar/Downloads/mindraw-edc-rollback-test-kit-20260707/
  • 生成便于传输的 zip:/Users/ar/Downloads/mindraw-edc-rollback-test-kit-20260707.zip
  • 在测试包中放入两个 App DMG、MEXP14 plugin tarball、SHA256SUMS.txt、只读预检查脚本和 README。
  • 当前机器已运行只读预检查脚本,确认三个 SHA 均 OK,两个 DMG hdiutil verify 均 valid。
  • 回写统一台账 02-P/plan-progress.markdown,登记 rollback test kit 路径、zip SHA 和用途。

2026-07-07 2026-07-07-MEXP14回滚扎口.md

  • 原始标题:MEXP14 回滚扎口
  • 用户在上一轮测试机器上继续验证 MEXP14 外部分发候选的 App rollback 路径,并补充说明此前“保存后 sidebar 不刷新”的判断可能是误报。
  • 记录用户 rollback 后检查反馈:App 可打开,Codex sidebar 需要点击主界面链接后显示,Edit 可打开 Mindraw App。
  • 保存用户回传截图到:
  • 02-P/MEXP14-ExternalDistributionCandidate/qa/user-rollback-postcheck-20260707/sidebar-source-required-before-save.png
  • 02-P/MEXP14-ExternalDistributionCandidate/qa/user-rollback-postcheck-20260707/mindraw-app-after-rollback-edit.png
  • 新增证据文档:02-P/MEXP14-ExternalDistributionCandidate/qa/user-rollback-postcheck-20260707.md

2026-07-07 2026-07-07-MEXP14回滚预检.md

  • 原始标题:MEXP14 回滚预检
  • 用户回传上一轮测试机器执行 rollback test kit 第 1 步预检查的终端输出,要求判断是否可以继续后续 App rollback 实测。
  • 读取用户回传文件:/Users/ar/Downloads/01.md
  • 提取关键结果并写入项目 QA 证据:02-P/MEXP14-ExternalDistributionCandidate/qa/user-rollback-step1-precheck-20260707.md
  • 更新统一台账:02-P/plan-progress.markdown
  • 更新项目索引:INDEX.md
  • Candidate DMG Build202607061556 SHA256:OK

2026-07-07 2026-07-07-MEXP14新机验证.md

  • 原始标题:2026-07-07 MEXP14 新机验证
  • 用户在另一台电脑上验证 MEXP14 App + Codex plugin 候选,并回传安装、Codex GUI/sidebar、编辑、保存刷新和截图结果。PMO 需要记录证据并更新项目状态。
  • 读取用户终端粘贴证据,确认 MEXP14 plugin 已在新机器 Codex CLI 中安装并显示 installed, enabled
  • 保存用户回传的两张截图到项目证据目录。
  • 新增 plugin CLI 安装证据:02-P/MEXP14-ExternalDistributionCandidate/qa/user-fresh-machine-plugin-cli-install-20260707.md
  • 新增 GUI 核心路径证据: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

2026-07-07 2026-07-07-MEXP14治理收口.md

  • 原始标题:MEXP14 治理收口
  • 用户要求在新机器核心路径验证成功后,继续收口 MEXP14 剩余工程治理项:signing / notarization、App rollback、plugin rollback 策略、P2 source freeze / artifact archival。
  • 回收并整理 OPS-EDC-02QA-EDC-03M4C-EDC-02REVIEW-EDC-02 证据。
  • REVIEW-EDC-02-20260707 从 active assignment 收回为 done,记录 crg-941a537b8e13=PASS
  • 新增 PMO 组合扎口文档: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 文档入口。

2026-07-07 2026-07-07-MEXP14运营收口.md

  • 原始标题:MEXP14 运营收口
  • PMO 派工要求运营 / 发布角色收口 MEXP14 外部分发候选的 signing / notarization 状态、Gatekeeper 风险、受控候选分发边界和用户回报模板。要求产出 02-P/MEXP14-ExternalDistributionCandidate/ops/ops-edc-02-signing-notarization-rollback-policy-20260707.md,不修改...
  • 按顺序读取 AGENTS.mdINDEX.md、统一台账 P-20260706-external-distribution-candidatemexp14-governance-closure-20260707.md
  • 读取相关证据:OPS-EDC-01 模板、PM-EDC-GATE、QA-EDC-02、MD-EDC-01 App candidate、用户新机器 plugin CLI 和 GUI/sidebar 路径证据。
  • 新增运营政策文件:02-P/MEXP14-ExternalDistributionCandidate/ops/ops-edc-02-signing-notarization-rollback-policy-20260707.md
  • 同步 INDEX.md02-P/plan-progress.markdown,把 OPS-EDC-02 标成已回报,并记录待 PMO 决策项。
  • 变更对象:MEXP14 外部分发候选的运营分发政策和风险回报模板。

2026-07-07 2026-07-07-MEXP15PMOGate.md

  • 原始标题:2026-07-07 MEXP15 PMO Gate
  • 把 Mindraw 推进到足以面向普通用户推广的成熟度。本轮聚焦 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。
  • PMO 已写入 PM-EDC-REGATE-04GO_FOR_USER_RECHECK / NO_GO_FOR_PUBLIC_RELEASE_WITHOUT_FRESH_MACHINE_EVIDENCE
  • 已更新统一台账、PMO active assignments 和 INDEX。
  • 变更对象:MEXP15 普通用户可用 signed / notarized DMG gate。

2026-07-07 2026-07-07-MEXP15QA执行.md

  • 原始标题:2026-07-07 MEXP15 QA-EDC-04 执行记录
  • 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.mdINDEX.md02-P/plan-progress.markdownP-20260707-signed-notarized-dmgQA-EDC-04 验证矩阵、MD-EDC-02 自查 Markdown / JSON、Review Request crg-583d507f679
  • 复核 crg-583d507f679=PASS_SOURCE_DIFF_ONLY 的边界:只覆盖 source diff,不覆盖 artifact、QA、PMO Gate、用户验收或正式发布。
  • 对当前可安全执行的 artifact 层验证完成 QA 复核:DMG / manifest SHA、hdiutil verifyxcrun stapler validate、DMG spctl、source tag、manifest metadata、DMG read-only mount、mounted App metadata、mounted App codesign 和 App `spc...
  • 未执行 copy to /Applications、首次 GUI 启动、.mindraw / mindraw:// system handler、Codex sidebar、Edit / double-click、保存刷新、重启、rollback / uninstall;原因是当前机器不是 fresh / clean 环境,且 /Applications/Mindraw.app 已存在 `1.2...

2026-07-07 2026-07-07-MEXP15QA计划.md

  • 原始标题:MEXP15 QA-EDC-04 QA 计划
  • PMO 派发 QA-EDC-04,要求先准备 signed / notarized DMG 的普通用户路径验证矩阵;等 MD-EDC-02 产出 artifact 和 Review Gate 结果后,再执行验证。当前不得自行打包、改代码或冒充已执行真实安装验证。
  • 按入口顺序读取 AGENTS.mdINDEX.md02-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 证据。
  • 检查当前工作区内是否已有 MD-EDC-02 artifact、Review Request 或 1.2.4 / Build20260707... DMG;未发现。
  • 新增 QA 计划文件: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。

2026-07-07 2026-07-07-MEXP15门禁收敛.md

  • 原始标题:2026-07-07 MEXP15 门禁收敛
  • 用户要求进入 goal 工作模式,以“生成普通用户可用的 signed / notarized DMG”为目标,PMO 负责整理 TODO、派工和收敛各角色回报。
  • 建立 MEXP15 计划项 P-20260707-signed-notarized-dmg,目标版本口径为 1.2.4 / Build20260707HHMM
  • 派发并消费:
  • ARCH-EDC-02:架构有条件支持继续,无结构性 blocker。
  • OPS-EDC-03:普通用户安装 / 回滚说明模板已准备,等待真实 artifact 补值。
  • QA-EDC-04:signed / notarized DMG 验证矩阵已准备,等待真实 artifact。

2026-07-07 2026-07-07-MEXP15首启阻塞派工.md

  • 原始标题:2026-07-07 MEXP15 首启阻塞派工
  • 用户在测试机复验 MEXP15 signed / notarized DMG 后反馈:侧边栏画面无法正常显示,点击 编辑 / Edit 也无法启动 Mindraw App;但如果用户手动启动 Mindraw,侧边栏画面又恢复正常。项目目标仍是把产品推进到足够成熟,能够面向普通用户推广使用。
  • 变更对象:P-20260707-signed-notarized-dmg 的 fresh-machine 验证状态与 PMO 派工状态。
  • 事实来源:
  • 02-P/MEXP15-SignedNotarizedDMG/qa/user-fresh-machine-sidebar-bootstrap-blocker-20260707.md
  • 02-P/MEXP15-SignedNotarizedDMG/qa/user-fresh-machine-sidebar-bootstrap-blocker-20260707.png
  • 02-P/plan-progress.markdown

2026-07-07 2026-07-07-QAEDC05复验.md

  • 原始标题:2026-07-07 QA-EDC-05 复验记录
  • 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.mdINDEX.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
  • 只读核对候选:App DMG SHA、plugin tarball SHA、plugin candidate 文件存在、tarball 根目录结构、candidate JSON 均通过。
  • 查看用户 blocker 截图:sidebar 显示 fail-closed preview,底部 编辑 附近显示 MINDRAW_OPEN_PACKAGE_API_REQUIRED