dvarapala द्वारपाल

Accepted ADR 0009 · 2026-11-02

#9. The window closes on the answer; the agent does the waiting

#Context

The window stayed on screen until the approved commands finished, showing each one's state and output, and stayed open after a failure until it was closed. A slow command (a package install, a build) left a window in the way for minutes, with nothing for the user to do in it: a run can't be cancelled, and the agent gets the full output anyway. The user's part ends at the answer; only the agent needs the result.

#Decision

The window hides as soon as the request is answered: on Deny, Esc, close or expiry as before, and on approval right after the password check passes (at once when no password is needed). A wrong password keeps it open to retry, since that's still waiting on the user. The phone's request clears at the same moment ({"t": "done", "status": "approved"}, then the socket closes).

The same process keeps running the commands with no window, then writes result.json and exits. It stays the transient service the agent didn't start, so nothing about what runs or how changes (ADR 4). The results view goes: per-card state and output, and the key that closed the window after a failure.

#Consequences

← All decisions · source