edit | blame | history | raw

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 resolver 读取目标 Frame 内容,且不得读取或泄漏外部 Frame。

已完成事项

  • 读取并遵守主项目与 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 清单。
  • 回写主项目统一台账 M4C-FLSR-03 与 Progress Log。
  • 提交 m4c 03-O commit:ba0e048 feat: add FLSR MCP frame link entry

关键决策

  • 当前不能声明真正 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

文件变更

  • /Users/ar/Projects/ExcalidrawX/02-P/plan-progress.markdown
  • /Users/ar/Projects/ExcalidrawX/p.mindrawforcodex/03-O/C3.tools/scripts/m4c-frame-link-mcp-server.mjs
  • /Users/ar/Projects/ExcalidrawX/p.mindrawforcodex/03-O/.mcp.json
  • /Users/ar/Projects/ExcalidrawX/p.mindrawforcodex/03-O/C3.tools/README.md
  • /Users/ar/Projects/ExcalidrawX/p.mindrawforcodex/03-O/C1.source/CODEGRAPH.md
  • /Users/ar/Projects/ExcalidrawX/p.mindrawforcodex/03-O/K2.项目管理/README.md
  • /Users/ar/Projects/ExcalidrawX/p.mindrawforcodex/03-O/K2.项目管理/联调QA/2026-06-29-M4C-FLSR-03ZeroCommandEntry.md
  • /Users/ar/Projects/ExcalidrawX/p.mindrawforcodex/02-P/FrameLinkScopedRead/qa/m4c-flsr-03-zero-command-entry-check.md
  • /Users/ar/Projects/ExcalidrawX/p.mindrawforcodex/02-P/FrameLinkScopedRead/qa/m4c-flsr-03-mcp-stdio-smoke.jsonl
  • /Users/ar/Projects/ExcalidrawX/p.mindrawforcodex/02-P/FrameLinkScopedRead/qa/m4c-flsr-03-mcp-missing-element.jsonl
  • /Users/ar/Projects/ExcalidrawX/p.mindrawforcodex/02-P/FrameLinkScopedRead/qa/m4c-flsr-03-low-friction-resolver-output.json
  • /Users/ar/Projects/ExcalidrawX/p.mindrawforcodex/INDEX.md

未决问题

  • PM 需要决定后续是否拆正式 MCP / plugin / connector registration 或 Codex Desktop 配置复验任务。
  • 用户的真实 zero-command 复验仍需在注册完成后进行。

后续建议

  • 下一步由 PM 派发注册 / connector 任务,不由 m4c coder 自行修改用户 Codex 配置或声明正式 MCP release。

PM 后续注册进展

  • PM 已备份 Codex 配置:/Users/ar/.codex/config.toml.backup.before-m4c-flsr-20260629_2059
  • PM 已在 /Users/ar/.codex/config.toml 追加 [mcp_servers.m4c_frame_link],使用绝对 Node 路径 /Users/ar/.nvm/versions/node/v23.11.1/bin/node 和绝对 server 脚本路径 /Users/ar/Projects/ExcalidrawX/p.mindrawforcodex/03-O/C3.tools/scripts/m4c-frame-link-mcp-server.mjs
  • codex mcp get m4c_frame_link 显示该 server 已 enabled,transport 为 stdio。
  • 手工 MCP stdio smoke 通过:initializetools/listtools/call resolve_mindraw_frame_link 均可用,输出仍为 frame-only,只包含目标 Frame A 文本 FLSR_TARGET_FRAME_A_ONLY,不包含外部 Frame B。
  • 当前运行中的 Codex 会话未热加载新 tool,tool_search 仍找不到 resolve_mindraw_frame_link
  • 下一步需要 Codex Desktop reload / restart 或新会话启动后复验;复验前不能宣称真正 zero-command 已完成。

最终用户复验

  • 用户在 Codex reload / 新会话后通过已注册的 m4c Frame link MCP 入口复验。
  • 用户回传结果:“和预期的结果完全一致”,且唯一目标文本为 FLSR_TARGET_FRAME_A_ONLY
  • PM 判定:PM-FLSR-REG-01 PASS;M-体验07:Frame 链接定域读取体验 用户可感知验收通过。
  • 边界:这不等同于 H8 / formal release,不代表 Google Stitch 集成、真实 AI provider 或正式 MCP packaging 已完成。