Skip to content

[RFC-030] Codex TUI 人类与 Agent 共用会话桥接 — 实施跟踪 #428

Description

@s2agi

RFC-030:Codex TUI 人类与 Agent 共用会话桥接

设计docs/rfcs/RFC-030-codex-tui-bridge.md · 状态 Accepted(通信龙 review 通过 + Vincent 授权实施,2026-07-10)

能力:一个 Codex 会话同时有两类入口——人类在 Codex TUI 直接用;Agent Network 节点经 CommHub 向同一 thread 派任务。共享一个 codex app-server,人类 TUI 与 anet bridge 都 attach 同一持久 thread。

评审要点(已核源码)

  • 引用的代码位置全部存在且准确(codex-stdio-client.ts / send_dedup.ts / push.ts / RFC-005/006/007/012)。
  • 关键 bug 属实:现有 stdio client 的 dispatch() 先判 id 再判 method,会把 app-server 的反向请求(同时带 id+method)误当成 response —— PR1 必须修。
  • 安全边界完整:token 隔离(真 ntok 只在 bridge,Codex 只连本地最小权限 tool proxy)、默认 read-only、bridge 绝不自动答审批、prompt injection 防护、durable ledger「持久接收+尽力去重」恢复语义。

保守默认(通信龙 lead 决定,可调)

  1. Agent task MVP 强制 read-only;写操作由人类在 TUI 审批后单独 turn 执行。
  2. 先作为 codex-sdkcodexTransport=app-server preview flag,不先造新 runtime
  3. 正式 task 一律排队独立 turn,不 steer
  4. 仅单用户主机 + 隔离工作区 + 可信专用 network。
  5. 无人类在线时 fail-closed。
    (§15 六个开放问题:除「read-only vs 人类审批写」外均取保守默认;该项 MVP 取 read-only,Vincent 可放开。)

实施顺序

  • Phase 0(现在起):协议 PoC —— 单机 loopback WS、双客户端验证、PR1 app-server client(含反向请求修复)、仅 send_task、FIFO、bridge 不答审批、假服务器测竞态。退出条件:双客户端完整事件 + 任务回复映射 + 人工审批三关过。
  • Phase 1:MVP(Unix socket / durable ledger / clientUserMessageId 去重 / new_message·new_reply doorbell / 最小权限 tool proxy / thread 显式绑定 / 专用 network + 文件权限 + token revoke)。
  • Phase 2:产品化(Dashboard、可选 steer 限 chat、审批 owner/lease、认证 principal + per-node ACL、schema 兼容门禁)。

红线:安全面重,PR 走安全 reviewer 评审(不 lead-merge 绕过);跟 v2.3.0 GA 并行,Phase 0 不碰发版 4 包。

PR 拆分见 RFC §13(PR1 transport → PR2 shared transport → PR3 消息与恢复 → PR4 tool proxy → PR5 CLI/Dashboard/安全)。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions