edit | blame | history | raw

Frame定域读取与FLSR

生成日期:2026-07-10

当前状态

  • 主题说明:Frame定域读取与FLSR 相关会话的长期二级汇编;原始会话记录仍是证据源。
  • 来源记录数:7
  • 时间范围:2026-06-27 至 2026-06-29
  • 最新记录:2026-06-29-Frame链接读边界.md

最近结论摘录

  • 2026-06-29 2026-06-29-FLSR-m4c收口.md:以 Coder@m4c 身份领取并完成统一台账 P-20260629-frame-link-scoped-read-contract 下的 M4C-FLSR-01,确保 m4c 处理 mindraw://localhost?documentId=...&elementId=<frameId> 时只给 Codex / agent 暴露目标 Frame 内上下文,不把同一 .mindraw 的其...;m4c 侧 get-frame-context 输出已补强为 readScope="frame-only" sanitized context。;缺少目标 elementId 时返回 FRAME_SCOPE_UNAVAILABLE,不 fallback 到整文档读取。
  • 2026-06-29 2026-06-29-FLSR入口接通.md:以 Coder@m4c 身份完成 P-20260629-frame-link-scoped-read-contract 下的 M4C-FLSR-02:接通用户实际 agent / MCP / m4c 入口,让用户提供 mindraw://localhost?documentId=...&elementId=<frameId> 后,agent 能调用 m4c frame-only resolver...;定位原因:MD-FLSR-01 / M4C-FLSR-01 的安全边界已通过;用户实际 agent 返回 FRAME_SCOPE_UNAVAILABLE 是因为 agent 入口没有自动路由到 m4c frame context resolver。;新增 m4c agent-facing resolver:m4c-frame-link-agent-resolver.mjs
  • 2026-06-29 2026-06-29-FLSR零命令入口.md:用户通过 PM 派发 M4C-FLSR-03,要求 m4c 把 M4C-FLSR-02 已完成的命令式 Frame link resolver 推进为 Codex / agent zero-command 或低摩擦入口:用户粘贴 mindraw://localhost?documentId=...&elementId=<frameId> 后,agent 应能调用 m4c frame-only res...;读取并遵守主项目与 m4c 项目规则、统一台账 P-20260629-frame-link-scoped-read-contractPM-FLSR-GATEM4C-FLSR-02 QA 证据。;只读核对当前 Codex Desktop 配置,确认未注册 m4c MCP server / connector。
  • 2026-06-29 2026-06-29-FrameScopedRead.md:以 coder2@mindraw 身份领取并完成 MD-FLSR-01,把 Mindraw 侧 Frame link 的 AI / App API 读取边界机械化为 frame-only,防止同一 .mindraw 文档中 Frame 外文本进入 promptable context。;读取项目规则、索引、统一台账、CODEGRAPH.md 和 m4c 既有 deep link / Frame context package 契约。;修改 src/lib/mindrawAppReadApi.tsmindrawGetLiveFrameContext() 返回 readScope="frame-only"target.kind="frame"、Frame bounds、included / excluded / outside text scope audit、outsideTextIncluded=false 和 `s...
  • 2026-06-29 2026-06-29-Frame链接读边界.md:用户发现 AI agent 阅读 mindraw://localhost?documentId=mdoc_18bc9f3d08cd8958_1626b&elementId=tZ7mNn3V9Bl6mCd6gVOAw 时,读取了目标 0629-pro-ui Frame 之外另一个 Frame 的内容。用户要求先讨论清楚原因、是否是问题以及未来约定;随后同意立项并安排 Mindraw / m4c 两侧落实。;PM 只读复核 Taglauncher 线程 019f0f52-679c-7061-b464-c74672a5ed35 的证据,确认 agent 曾通过 Mindraw 本机 registry 定位整个 .mindraw 包并读取 drawing.excalidraw。;确认用户指出的“Mac 自带应用容器纵向特别细长”来自另一个 Frame,是 Frame 外内容误读证据。

核心事实补录

2026-06-27 2026-06-27-ResultFrame避让.md

  • 避让逻辑放在 Mindraw App 的受控 mutation 层,而不是让 m4c 自己猜位置;所有通过 commit_write_result(createAiResultFrame) 的外部调用都会复用这条规则。
  • 当前运行中的旧 debug App 进程不会自动热更新;需要关闭重开 debug App 才会加载新代码。

2026-06-29 2026-06-29-FLSR-Gate收口.md

  • PM-FLSR-GATE 判定为 GO_FOR_MEXP07_USER_VALIDATION
  • M-体验07 的用户可感知目标是:复制 Mindraw Frame 链接给 agent 后,agent 只读取目标 Frame 内容;同画布其他 Frame、草稿、备注或隐私文本不得被引用、总结或影响回答。
  • 若无法定位目标 Frame,系统应明确返回 frame scope 不可用,不得默默读取整份 .mindraw

2026-06-29 2026-06-29-FLSR-m4c收口.md

  • m4c 直接包解析路径也必须先过滤目标 Frame;不能把 drawing.excalidraw 整份原文作为 promptable context。
  • Frame 外元素只允许以低语义 diagnostics 进入审计,不带文本内容。
  • 本轮不做 H8 release、正式 MCP server、direct package write 或 .assets 权威写入。

2026-06-29 2026-06-29-FLSR入口接通.md

  • 真实 App API 可用时优先消费 Mindraw mindraw.app.get_live_frame_context
  • live API 不可用时,只允许受控 registry / selected-package 做 frame-filtered fallback。
  • 没有 live API / registry / selected package 或缺少 elementId 时继续返回 FRAME_SCOPE_UNAVAILABLE,不做 document read fallback。
  • 本轮不是正式 MCP server,不做 H8 release、真实 AI provider、Google Stitch、direct package write 或 .assets 写入。

2026-06-29 2026-06-29-FLSR零命令入口.md

  • 当前不能声明真正 zero-command 已完成,因为运行中的 Codex Desktop 未注册 m4c MCP server。
  • 本轮交付定义为 LOW_FRICTION_ENTRY_READY / ZERO_COMMAND_BLOCKED_ON_CODEX_REGISTRATION
  • 新增 MCP server 只复用 FLSR-02 frame-only resolver,不新增整文档读取 tool;缺少 frame-only 能力时继续返回 FRAME_SCOPE_UNAVAILABLE

2026-06-29 2026-06-29-FrameScopedRead.md

  • mindraw://localhost?documentId=...&elementId=<frameId> 在 AI / App API 读取场景默认是 frame-only
  • 普通对象链接若被当作 Frame 读取,必须返回 TARGET_NOT_FRAME,不得 fallback 到 document read。
  • diagnostics / scopeAudit 只记录 Frame 外元素 id / count 等低语义信息,不记录 Frame 外文本内容。
  • 本轮不做 H8 release、不重打 DMG、不做真实 AI provider、不做正式 MCP server、不触碰 m4c 03-O

2026-06-29 2026-06-29-Frame链接读边界.md

  • Frame link 在 AI 读取场景中必须默认表示 frame-only,不是 document-level。
  • 如果无法获得 frame-scoped context,agent / m4c 必须停止并报 blocker,不得静默读取整个 .mindraw 包。
  • Frame 外元素不得把文本、图片语义、prompt、说明内容进入 agent promptable context;如需诊断,只能保存低语义 metadata。
  • 本事项不是 H8 formal release 延伸,不重打 DMG,不做真实 AI provider 或正式 MCP server。

来源索引

时间线

2026-06-27 2026-06-27-ResultFrame避让.md

  • 原始标题:2026-06-27 ResultFrame 避让
  • 用户确认 M-体验01 视觉验收通过后,进一步要求后续 AI 自动生成的新 Frame 不能与已有 Frame 重叠,必须避开已有 Frame,在右侧空白处生成。
  • 补强 src/lib/mindrawAppWriteMutation.tscreateAiResultFrame 布局策略:从 source Frame 右侧开始放置 result Frame,但会扫描当前 scene 中非 source 的元素 / Frame;若候选位置与已有对象相交,则继续向右移动到下一个空位。
  • 新增回归测试:source 右侧已有 Frame 时,新 result Frame 会落到已有 Frame 的右侧,而不是覆盖它。
  • 更新 CODEGRAPH.md02-P/plan-progress.markdown,把 result Frame 避让规则记录为项目事实。
  • 重新生成本地 debug App:/Users/ar/Projects/ExcalidrawX/src-tauri/target/debug/bundle/macos/Mindraw.app
  • 避让逻辑放在 Mindraw App 的受控 mutation 层,而不是让 m4c 自己猜位置;所有通过 commit_write_result(createAiResultFrame) 的外部调用都会复用这条规则。

2026-06-29 2026-06-29-FLSR-Gate收口.md

  • 原始标题:2026-06-29 FLSR Gate 收口
  • 用户确认按 PM 建议推进 PM-FLSR-GATE,目标是先收敛 Frame 链接定域读取门禁,再进入 M-体验07:Frame 链接定域读取体验 用户复验。
  • 复核统一台账 P-20260629-frame-link-scoped-read-contract
  • 复核 Mindraw 侧 MD-FLSR-01 QA:02-P/qa/mindraw-flsr-frame-scoped-read-check.md / .json
  • 复核 m4c 侧 M4C-FLSR-01 QA:p.mindrawforcodex/03-O/K2.项目管理/联调QA/2026-06-29-M4C-FLSR-01FrameLinkScopedRead.md 和 smoke JSON。
  • PM 执行只读反向复验:目标 Frame A 文本进入 context,外部 Frame B 文本不进入 promptable elements;缺少 elementId 返回 FRAME_SCOPE_UNAVAILABLE,不 fallback 到 document read。
  • 新增 Gate 记录:02-P/qa/mindraw-flsr-pm-gate.md

2026-06-29 2026-06-29-FLSR-m4c收口.md

  • 原始标题:2026-06-29 FLSR m4c 收口
  • Coder@m4c 身份领取并完成统一台账 P-20260629-frame-link-scoped-read-contract 下的 M4C-FLSR-01,确保 m4c 处理 mindraw://localhost?documentId=...&elementId=<frameId> 时只给 Codex / agent 暴露目标 Frame 内上下文,不把同一 .mindraw 的其...
  • m4c 侧 get-frame-context 输出已补强为 readScope="frame-only" sanitized context。
  • 缺少目标 elementId 时返回 FRAME_SCOPE_UNAVAILABLE,不 fallback 到整文档读取。
  • 新增反向 fixture frame-scope-reverse.mindraw:目标 Frame A 文本可进入 context,外部 Frame B 等价 sentinel 不进入 context、MCP wrapper context、smoke report 或 summary。
  • 同步 m4c 03-O 正式 QA 清单、CODEGRAPH.md、工具 README、项目管理 README 和 codebase-memory 图谱。
  • 回写统一台账:M4C-FLSR-01 标记完成,状态更新为等待 PM-FLSR-GATE

2026-06-29 2026-06-29-FLSR入口接通.md

  • 原始标题:2026-06-29 FLSR 入口接通
  • Coder@m4c 身份完成 P-20260629-frame-link-scoped-read-contract 下的 M4C-FLSR-02:接通用户实际 agent / MCP / m4c 入口,让用户提供 mindraw://localhost?documentId=...&elementId=<frameId> 后,agent 能调用 m4c frame-only resolver...
  • 定位原因:MD-FLSR-01 / M4C-FLSR-01 的安全边界已通过;用户实际 agent 返回 FRAME_SCOPE_UNAVAILABLE 是因为 agent 入口没有自动路由到 m4c frame context resolver。
  • 新增 m4c agent-facing resolver:m4c-frame-link-agent-resolver.mjs
  • 接入既有 m4c-mcp-alpha resolve-frame-link 命令。
  • 输出 agent-facing JSON,只包含 promptableTextreadScope、scope audit 和 leak guards,不输出整份 drawing.excalidraw
  • 回写统一台账,标记 M4C-FLSR-02 完成。

2026-06-29 2026-06-29-FLSR零命令入口.md

  • 原始标题:2026-06-29 FLSR 零命令入口
  • 用户通过 PM 派发 M4C-FLSR-03,要求 m4c 把 M4C-FLSR-02 已完成的命令式 Frame link resolver 推进为 Codex / agent zero-command 或低摩擦入口:用户粘贴 mindraw://localhost?documentId=...&elementId=<frameId> 后,agent 应能调用 m4c frame-only res...
  • 读取并遵守主项目与 m4c 项目规则、统一台账 P-20260629-frame-link-scoped-read-contractPM-FLSR-GATEM4C-FLSR-02 QA 证据。
  • 只读核对当前 Codex Desktop 配置,确认未注册 m4c MCP server / connector。
  • 在 m4c 03-O 新增最小 MCP stdio server m4c-frame-link-mcp-server.mjs,暴露 resolve_mindraw_frame_link tool。
  • 新增 03-O/.mcp.json 作为后续 MCP / plugin / connector registration 草案。
  • 完成 MCP stdio smoke、missing elementId blocker、低摩擦 resolver output、敏感信息扫描和正式 QA 清单。

2026-06-29 2026-06-29-FrameScopedRead.md

  • 原始标题:2026-06-29 Frame Scoped Read
  • coder2@mindraw 身份领取并完成 MD-FLSR-01,把 Mindraw 侧 Frame link 的 AI / App API 读取边界机械化为 frame-only,防止同一 .mindraw 文档中 Frame 外文本进入 promptable context。
  • 读取项目规则、索引、统一台账、CODEGRAPH.md 和 m4c 既有 deep link / Frame context package 契约。
  • 修改 src/lib/mindrawAppReadApi.tsmindrawGetLiveFrameContext() 返回 readScope="frame-only"target.kind="frame"、Frame bounds、included / excluded / outside text scope audit、outsideTextIncluded=false 和 `s...
  • 补强 src/lib/mindrawAppReadApi.test.tssrc/lib/mindrawAppApiTransport.test.ts,覆盖目标 Frame 内文本 / 图片可读,Frame 外普通文本、同文档外部 Frame 文本和外部图片 file 不进入返回 context。
  • 新增 QA 证据 02-P/qa/mindraw-flsr-frame-scoped-read-check.md.json
  • 同步 INDEX.mdCODEGRAPH.mdCHANGELOG.md02-P/plan-progress.markdown

2026-06-29 2026-06-29-Frame链接读边界.md

  • 原始标题:2026-06-29 Frame 链接读边界
  • 用户发现 AI agent 阅读 mindraw://localhost?documentId=mdoc_18bc9f3d08cd8958_1626b&elementId=tZ7mNn3V9Bl6mCd6gVOAw 时,读取了目标 0629-pro-ui Frame 之外另一个 Frame 的内容。用户要求先讨论清楚原因、是否是问题以及未来约定;随后同意立项并安排 Mindraw / m4c 两侧落实。
  • PM 只读复核 Taglauncher 线程 019f0f52-679c-7061-b464-c74672a5ed35 的证据,确认 agent 曾通过 Mindraw 本机 registry 定位整个 .mindraw 包并读取 drawing.excalidraw
  • 确认用户指出的“Mac 自带应用容器纵向特别细长”来自另一个 Frame,是 Frame 外内容误读证据。
  • 复核现有契约:
  • p.mindrawforcodex/02-P/Round01-ContractBaseline/02-deeplink-contract.md
  • p.mindrawforcodex/02-P/Round01-ContractBaseline/03-frame-context-package-draft.md