chat: 非 call_skill 的 L2 工具中断没有任何审批入口,run 永久停在「等待确认」
- Dominant language
- TypeScript
- Stars
- 0
- Forks
- 0
- Avg merge
- 1h 7m
- Merged PRs (30d)
- 969
Description
## 现象
用户提交「同时推演四个画布」后,执行过程条显示「等待确认 · 历时 00:07 · 工具 1 次」,历时停住,页面上没有弹出任何审批界面,run 永远不继续。
## 根因
- `tool-risk-tier.ts` 的 `classifyToolRisk` 对未列出的工具兜底为 L2,所以 `wx_canvas_update` / `task` / `write_todos` 等在 native runtime 下都进 `interruptOn`,调用前停在 `awaiting_tool_permission`。
- 前端 `RestoredRunApproval`(`apps/web/components/chat/workbench/restored-run-approval.tsx`)只对 `call_skill` 渲染 `ToolPermissionCard`;其余非表单工具只渲染一句 `确认请求暂时无法恢复` 的 alert,还挂在线程顶部(`TaskTimeline` 之前),用户在底部完全看不到。
- 服务端 `decidePermissionRequest` 本来就接受所有非表单工具,只是前端没放行。
## 修法
去掉 `call_skill` 限定:任何没有可恢复表单的 L2 工具都渲染授权卡弹窗。
Contributor guide
No contributing guide indexed for this repository
Research direction
Start in apps/web/components/chat/workbench/restored-run-approval.tsx and inspect how RestoredRunApproval handles call_skill versus other tools, then trace the placement relative to TaskTimeline. Confirm that non-form L2 tools such as wx_canvas_update, task, and write_todos show a ToolPermissionCard and that the existing decidePermissionRequest flow can resume the run.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 76/100