# 2026-06-29 FLSR m4c 收口 ## 用户目标 以 `Coder@m4c` 身份领取并完成统一台账 `P-20260629-frame-link-scoped-read-contract` 下的 `M4C-FLSR-01`,确保 m4c 处理 `mindraw://localhost?documentId=...&elementId=` 时只给 Codex / agent 暴露目标 Frame 内上下文,不把同一 `.mindraw` 的其他 Frame 文本、草稿或备注交给 agent。 ## 已完成事项 - 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`。 ## 关键决策 - m4c 直接包解析路径也必须先过滤目标 Frame;不能把 `drawing.excalidraw` 整份原文作为 promptable context。 - Frame 外元素只允许以低语义 diagnostics 进入审计,不带文本内容。 - 本轮不做 H8 release、正式 MCP server、direct package write 或 `.assets` 权威写入。 ## 文件变更 - `/Users/ar/Projects/ExcalidrawX/02-P/plan-progress.markdown` - `/Users/ar/Projects/ExcalidrawX/p.mindrawforcodex/03-O/C3.tools/scripts/m4c-readonly-poc.mjs` - `/Users/ar/Projects/ExcalidrawX/p.mindrawforcodex/03-O/C3.tools/scripts/generate-round01-fixtures.mjs` - `/Users/ar/Projects/ExcalidrawX/p.mindrawforcodex/03-O/C1.source/CODEGRAPH.md` - `/Users/ar/Projects/ExcalidrawX/p.mindrawforcodex/03-O/C3.tools/README.md` - `/Users/ar/Projects/ExcalidrawX/p.mindrawforcodex/03-O/K2.项目管理/联调QA/2026-06-29-M4C-FLSR-01FrameLinkScopedRead.md` - `/Users/ar/Projects/ExcalidrawX/p.mindrawforcodex/02-P/FrameLinkScopedRead/qa/m4c-flsr-01-frame-link-scoped-read-check.md` - `/Users/ar/Projects/ExcalidrawX/p.mindrawforcodex/02-P/FrameLinkScopedRead/qa/m4c-flsr-01-readonly-smoke.json` ## 验证 - `node --check` 三个 m4c 脚本:PASS。 - `m4c-readonly-poc.mjs smoke --report .../m4c-flsr-01-readonly-smoke.json`:PASS。 - direct context / MCP wrapper context 反向检查:目标 A 存在,外部 B 不存在。 - missing `elementId`:返回 `FRAME_SCOPE_UNAVAILABLE`。 - `git -C p.mindrawforcodex/03-O diff --check`:PASS。 - 敏感信息扫描:PASS。 - `codebase-memory-mcp cli index_repository`:PASS。 ## Git - m4c `03-O` commit:`d78d910ef40290e7197febb3bc9c77d99064276b` - m4c `03-O` commit:`8452d9e6b9b8ceae8bf6c31e0ffa146fa65ba444` ## 未决问题 - `PM-FLSR-GATE` 由 PM 合并 Mindraw 与 m4c 两侧证据后收敛。