现象
今天多个会话任务中,反复出现:
patch rejected by user
exec command rejected by user
但用户没有看到权限申请提示,也没有点击拒绝。模型随后反复修改 patch 或命令并重试,造成大量 token 浪费。
复现步骤
- 使用 Cindy 的 Codex 会话,权限模式为 Auto。
- 使用
provider=xd、model=codex/gpt-5.6-sol 执行需要自动审阅或审批的 patch/exec 操作。
- 在自动权限审阅请求超时、空响应或桥接异常时观察工具结果。
- 观察到工具层返回
rejected by user,模型继续重试。
期望行为
- 自动审阅器超时、返回空响应、格式错误或桥接异常时,应明确标记为“自动审批服务不可用”。
- 不应将该状态显示为“用户拒绝”。
- 应向模型返回不可重试语义,并在会话级熔断,避免重复消耗 token。
- 只有真实的用户点击拒绝,才显示
rejected by user。
实际行为
当前链路疑似为:
Auto 权限模式
→ xd 路由无法使用 Codex 原生 auto_review
→ 转到 Cindy utility reviewer
→ reviewer 超时/空响应
→ Cindy 返回 block / unavailable
→ Codex app-server 压缩为 decline
→ 工具层显示 patch rejected by user / exec command rejected by user
因此用户未进行拒绝操作,但模型收到的仍是用户拒绝语义,并可能持续重试。
复现频率
2026 年 8 月 13 日多个不同会话均出现,疑似与自动审批桥接或 utility reviewer 不稳定有关。
已尝试
- 确认项目目录 ACL 正常。
- 确认运行环境为
workspace-write。
- 检查 Cindy main/agent 日志及相关代码。
- 重启 Cindy 后做最小权限探针;问题仍需进一步验证。
- 临时切换到 Default/Ask 权限模式可绕过自动审阅链路;不建议切换到
danger-full-access 或 --yolo。
脱敏诊断摘要
用户已同意公开以下摘要,不包含个人路径、原始日志、令牌或密钥:
- 2026 年 8 月 13 日 15:42–15:49(日志时区 +08:00),
providerId=xd、model=codex/gpt-5.6-sol 的 utility text reviewer 多次记录 reason: timeout,期间间歇成功。
- agent 日志记录过
auto permission reviewer attempt failed、failure: empty。
- 代码中,reviewer 超时/空响应/异常会进入
unavailable → block → decline 路径。
- Codex app-server 的
decline 结果没有区分“用户拒绝”和“审阅器不可用”,最终被工具层显示为 rejected by user。
建议修复
- 保留独立的
AUTO_REVIEW_UNAVAILABLE / approval_unavailable 错误码。
- 禁止将 reviewer timeout、empty response、bridge exception 显示成
user rejected。
- 增加会话级熔断:自动审阅器连续失败后,后续需要审批的动作直接停止,不再重复调用。
- UI 明确提示“自动审批服务暂时不可用,已停止执行”。
- 向模型返回不可重试语义,明确要求停止继续尝试。
- 日志增加
sessionId/threadId/turnId/requestId/actionKind/provider/reviewerOutcome,以区分真实用户拒绝与桥接故障。
- 为 empty、timeout、malformed、handler throw 增加回归测试。
现象
今天多个会话任务中,反复出现:
但用户没有看到权限申请提示,也没有点击拒绝。模型随后反复修改 patch 或命令并重试,造成大量 token 浪费。
复现步骤
provider=xd、model=codex/gpt-5.6-sol执行需要自动审阅或审批的 patch/exec 操作。rejected by user,模型继续重试。期望行为
rejected by user。实际行为
当前链路疑似为:
因此用户未进行拒绝操作,但模型收到的仍是用户拒绝语义,并可能持续重试。
复现频率
2026 年 8 月 13 日多个不同会话均出现,疑似与自动审批桥接或 utility reviewer 不稳定有关。
已尝试
workspace-write。danger-full-access或--yolo。脱敏诊断摘要
用户已同意公开以下摘要,不包含个人路径、原始日志、令牌或密钥:
providerId=xd、model=codex/gpt-5.6-sol的 utility text reviewer 多次记录reason: timeout,期间间歇成功。auto permission reviewer attempt failed、failure: empty。unavailable → block → decline路径。decline结果没有区分“用户拒绝”和“审阅器不可用”,最终被工具层显示为rejected by user。建议修复
AUTO_REVIEW_UNAVAILABLE/approval_unavailable错误码。user rejected。sessionId/threadId/turnId/requestId/actionKind/provider/reviewerOutcome,以区分真实用户拒绝与桥接故障。