An agent that runs every night will sooner or later hit something it cannot fix itself. An API key gets revoked, or a bucket's permissions change. The run fails or ends with a warning, the next night's run fails the same way, and you find out whenever you next look at the canvas.
Then you read through the run's transcript to work out what it needed, fix it, and start the agent again from nothing. Whatever it had worked out before it got stuck is lost, and so are the nights in between.
Reactor's remote agents can now ask a person. An agent blocked on something only a person can do, such as a credential, a sign-in, an access or a setting, files one question and ends its run. You answer, and the agent carries on in the same Claude Code session, from where it stopped.

What the agent sends
Every run has an ask_user tool next to the one it reports its status with. The question is short, at most two sentences and 300 characters. The details, up to 2,000 characters, say what failed, what the agent tried and what it did in the meantime. It can attach up to six images from its working directory, PNG, JPEG, WebP or GIF of up to 5 MB each, such as a screenshot of the error it got.
The agent is told not to bother you. It asks only when it is truly blocked, and it never asks you for a decision or an approval: it makes those itself. A run asks once, and an agent has at most one question open at a time.
Where you see it
The question appears as the asking run ends. The Need you pill at the top of the workspace counts it, and its popover lists questions first, newest first, under Asking you. Each one shows the agent, when it asked and its question. Details opens the rest, and a thumbnail opens its image whole in a new tab.
On the canvas the agent's card shows the question and reads Waiting for you. When you are looking at another workspace, the tab of a workspace with an agent asking has an amber dot.

Everyone who can read the workspace sees its questions. Owners and editors of the workspace answer them.
Answer it
Type a reply and press Resume. If there is nothing to say, leave the box empty and the agent hears just that you are done. Reactor starts a new run of the agent that resumes the asking run's session, with your reply and who sent it. The agent picks up its own reasoning where it left off instead of starting from a blank prompt. The new run is on a new machine, so anything the agent had not committed or pushed before it asked is gone, and the agent is told so. Starting the run can take a few minutes.

The session is kept for 14 days. An answer after that still starts the agent, fresh, with the question and your answer in its message.
Drop closes a question without an answer. The agent is not resumed and is not told, and it may ask again from a later run. Once a question has been answered or dropped, a second answer is turned away, so two people cannot both resume it.
Or answer in Slack
Through Selan's Slack app, the question also arrives as a direct message to the person who made the agent. The message has the agent's name, its question, how many images it attached and a link to its workspace. Reply in that message's thread and your reply is the answer; Selan replies in the thread with a link to the new run. If someone answers in Reactor first, the message is edited to say who did.
Or ask Claude
Questions are in Selan MCP as well. selan_remote_workspaces_list says how many questions each workspace has open, selan_remote_questions_open lists them, and selan_remote_question_answer and selan_remote_question_drop settle them. So in Claude Code you can ask:
What are my agents waiting on?
The docs cover who may answer, what is kept and for how long.