Skip to content

[BUG]Codex / GPT-5.5 触发需要审批的工具调用后,1Code UI 一直卡在 Running command / Generating #211

@ningzhaoxing

Description

@ningzhaoxing

Bug: Codex / GPT-5.5 触发需要审批的工具调用后,1Code UI 一直卡在 Running command / Generating

现象

在 1Code 中使用 Codex / GPT-5.5 发起任务,模型触发需要权限审批的 shell 命令后,界面会一直停在:

  • Running command: /bin/zsh,-lc,curl
  • 底部状态保持 Generating...
  • 不返回工具结果,也不结束当前 turn

示例命令:

curl -I -L --max-time 15 -A 'Mozilla/5.0 ...' https://www.jianshu.com/

复现路径

  1. 在 1Code 中选择 Codex / GPT-5.5。
  2. 发送类似任务:https://www.jianshu.com/ 非侵入式地漏洞挖掘一下这个网页
  3. 模型执行到需要外部网络 / escalation 的 curl 命令。
  4. UI 卡在 Running command,不会进入 finish。

会话日志证据

关键记录:

  • 第一次普通 curl 有正常 function_call_output,返回 DNS 错误:line 30
  • 第二次发起 sandbox_permissions: "require_escalated"exec_command:line 35
  • line 35 之后没有对应的 function_call_output / task_complete,所以前端一直等不到 finish

代码证据

Codex provider 创建时没有接入任何权限审批 handler,只传了 ACP 启动、env、auth、session 等配置:

源码位置

Codex chat 直接把 provider.tools 交给 streamText

源码位置

Codex 前端 transport 只处理 session-initauth-errorerrorfinish,没有处理 ACP session/request_permission 或 Codex 工具审批事件:

源码位置

对比 Claude 路径,Claude 有完整的工具审批/回传链路:

ACP 协议本身定义了 session/request_permission,这是 client-side 用户授权请求:

schema.json

当前使用的 @mcpc-tech/acp-ai-provider 内部有 requestPermission,但没有 handler 时会默认选择第一个 option,而不是交给 1Code UI:

index.mjs

同时 ACPProviderSettings 类型里也没有暴露 permission handler 配置项:

types.d.ts

初步判断

1Code 当前没有实现 Codex 工具审批的产品级处理链路。
当 Codex / GPT-5.5 发起 require_escalated 的工具调用时,前端没有审批 UI,后端也没有 pending approval 状态、超时兜底、拒绝/批准回传。结果就是流无法收到正常工具结果或 finish,UI 一直停在 Generating...

期望行为

  • Codex 触发敏感工具调用时,1Code 应显示审批 UI。
  • 用户可以 approve / deny。
  • 审批结果应回传给 Codex ACP。
  • 如果超时或无法处理,应返回明确错误并结束本轮,不能无限卡住。

建议修复

  1. 为 Codex ACP 接入 session/request_permission 处理链路。
  2. 增加 Codex 侧 pendingToolApprovals / respondToolApproval 类似 Claude 的机制。
  3. 前端支持 Codex 工具审批 UI 和回传。
  4. 增加工具调用超时兜底,避免 UI 永久 Generating...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions