校正客户端 MCP 运行边界
Project CI / Repository checks (pull_request) Successful in 3m4s
Project CI / Frontend tests (pull_request) Failing after 2m43s
Project CI / Backend tests (pull_request) Successful in 7m8s
Project CI / Native shell tests (pull_request) Successful in 20m37s

明确保留客户端对话与 Codex app-server

将 MCP 能力限定为绑定项目的 stdio 子进程

同步决策日志与实施计划
This commit is contained in:
2026-09-03 17:29:08 +08:00
parent d0f9d6a88a
commit 5cabfa258b
2 changed files with 3 additions and 3 deletions
@@ -7963,7 +7963,7 @@ CI 上 `background_agent_runtime_recovers_stale_running_before_pending_task` 在
## 2026-09-03 AGC 客户端能力以 MCP 暴露
- 背景:客户端仍启动并驱动自己的 Codex 对话;同时需要把客户端自身的受控业务能力以 MCP 暴露给 Codex。客户端不应替 Codex 做业务语义门禁、意图判断或完成判定。
- 决策:MCP 作为客户端能力层外挂,GUI 主进程提供 loopback MCPstdio broker 只做协议转发;会话绑定 `accountId + projectId + clientInstanceId + sessionId`,项目切换、登出、重启、断开或令牌轮换失效。客户端保留现有对话/UI 和 `codex_app_server` 链路,仅暴露稳定业务工具白名单,不透传全部 Tauri command、任意路径、凭据、内部 URL、shell、数据库或管理能力。
- 决策:MCP 作为客户端能力层外挂,由客户端启动的 Codex app-server 通过绑定项目工作目录的 stdio MCP 子进程调用;客户端回合结束、项目切换、登出、重启或退出时回收该子进程。账号和项目权限由客户端业务桥接层校验。客户端保留现有对话/UI 和 `codex_app_server` 链路,仅暴露稳定业务工具白名单,不透传全部 Tauri command、任意路径、凭据、内部 URL、shell、数据库或管理能力。
- 返回记录:客户端对话继续走现有 conversation projection;外部 Host 如需旁路归档,才调用 `conversation.record_codex_response` 写入有界、脱敏 journal。该记录不是客户端对话前置条件,UI 不从文本推断完成、规划、同步或其它副作用。
- 迁移与兼容:`codex_app_server``codex_cli``provider`、既有 Agent Runtime 和客户端对话均保留;MCP 仅新增能力暴露,不替换现有 Codex 控制链。公网 `/api/external/v1/mcp` 与桌面 MCP facade 保持独立。
- 影响范围:AGC 客户端 MCP facade、loopback/stdio 传输、DirectProject 会话绑定、Codex 返回 journal、前端对话数据源、运行模式与恢复/幂等测试;不新增 SpacetimeDB 表,不改变公网 External MCP 合同。