OpenCode v2 严重 bug:拒绝工具调用会被记成关机并在重启后恢复执行
edwluo · ghdev · 2026-10-10
OpenCode v2 被报告一个已复现的逻辑 bug:用户拒绝权限请求或取消问题类工具调用时,该轮被记录为服务器 shutdown,导致:
- 客户端无法区分「用户拒绝」与「服务器退出」,session.execution.interrupted 以 reason: "shutdown" 发布
- execution claim 未释放,jobs.cancel 被跳过
- 服务器下次启动时,被拒绝的轮次会被自动恢复——模型收到指令「服务器重启了,从断点继续,不要重复已完成的工作」,等于替用户重新执行刚被拒绝的任务
根因在 step.ts 中拒绝即 Effect.interrupt,而 execution.ts 把无 reason 的 interrupt 默认为 shutdown;v2.0.12、v2.0.26 及 v2 分支均受影响。两部分逻辑各自有单测覆盖,但缺少组合测试。预期行为是被拒绝应以 reason: "user" 结束并释放 claim。
「编程与Agent」频道最新
- Decisions API 正式 GA,agent 反馈循环全自动剪辑云视频 — dkundel · 2026-10-23
- 50+ 免费 AI Agent 学习资源合集:视频与仓库一站打包 — ifioknkem · 2026-10-23
- 自封「全网最佳」的免费 AI Agent 资源库引围观 — ifioknkem · 2026-10-23
- Vercel 推出免注册部署:拖拽文件到首页即得线上 URL — steren · 2026-10-23
- 5 个 Claude Code 会话经 MCP 互发邮件,组队攻破多品牌网络摄像头 — doodlestein · 2026-10-23
- Vercel 上线 vercel deploy --temporary,可临时部署后自动清理 — cramforce · 2026-10-23