computer_use click/type approval prompt never renders — always times out after 5 minutes

Author: dosakusaCreated Sep 16, 2026Updated Sep 16, 2026

Summary

computer_use actions that require approval (click, type, key, drag, scroll) never surface an approval prompt in the chat UI. The request silently hangs for 5 minutes and then fails with BLOCKED: Action timed out without user response, even though no approval dialog or inline card was ever shown to the user.

Read-only computer_use actions (capture, list_windows, focus_app without raise_window) work fine and complete instantly, since they don't require approval — only the "destructive" input actions are affected.

Environment

  • hermes-desktop: 0.7.7 (npm run dev, Windows 11)
  • hermes-agent: 0.21.3
  • Terminal backend: local
  • Reproduced consistently across 4 separate attempts in the same session (and after a full app restart)

Steps to reproduce

  1. Configure a custom OpenAI-compatible local provider (any works; tested with a local llama.cpp server)
  2. In chat, ask the agent to use computer_use to click something in an already-open window (e.g. "click the Weather link on this Yahoo page")
  3. The agent calls computer_use with action: "click" (or navigates via a click-driven flow)
  4. Observe: no approval card/dialog appears anywhere in the app
  5. After 5 minutes, the tool call fails with:
Tool computer_use returned error (300.02s): {"error": "BLOCKED: Action timed out without user response. The user has NOT consented to this action. Do NOT retry it, do NOT rephrase it, and do NOT attempt the same outcome via a different path. ..."}

This reproduced identically 4 times in a row (and again after fully quitting and relaunching the app), always timing out at exactly 300s.

Expected behavior

An approval card (or dialog) should appear in the chat, letting the user approve/deny the computer_use action, per the chat-approval-request IPC flow (src/main/ipc/register.tsonApprovalsafeSend("chat-approval-request", req) → renderer onApprovalRequest/respondApproval wiring referenced in src/renderer/src/screens/Chat/Chat.tsx and src/renderer/src/screens/Chat/hooks/useChatIPC.ts).

Actual behavior

No visible approval UI ever appears for computer_use destructive actions. The request just hangs until the 5-minute timeout fires and the tool call is denied automatically.

Notes

  • This only affects computer_use's destructive actions (click/type/key/drag/scroll), gated via tools.approval._run_approval_gate in hermes-agent (tools/computer_use/tool.py_request_approval).
  • Switching from computer_use to the browser_exec (Chromium/agent-browser) tool for the same kind of task works reliably without ever hitting this approval gate, which is the current workaround.
  • I wasn't able to pin down the exact point of failure in the renderer (whether the IPC event isn't being sent, isn't received, or is received but not rendered) — happy to help gather more logs/repro info if useful.