computer_use click/type approval prompt never renders — always times out after 5 minutes
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
- Configure a custom OpenAI-compatible local provider (any works; tested with a local llama.cpp server)
- In chat, ask the agent to use
computer_useto click something in an already-open window (e.g. "click the Weather link on this Yahoo page") - The agent calls
computer_usewithaction: "click"(or navigates via a click-driven flow) - Observe: no approval card/dialog appears anywhere in the app
- 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.ts → onApproval → safeSend("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 viatools.approval._run_approval_gatein hermes-agent (tools/computer_use/tool.py→_request_approval). - Switching from
computer_useto thebrowser_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.
Source: fathah/hermes-desktop