fix: allow errand agent to end session with questions and resume
The errand agent can now write { "status": "questions", ... } to
signal.json to pause mid-task and ask the user for clarification.
The session ends cleanly; the user answers via UI or CLI; the system
resumes the agent with their answers via sendUserMessage.
Two changes:
- buildErrandPrompt: adds "Option B" explaining the questions signal
format and the resume-on-answer lifecycle, alongside the existing
inline-question approach.
- sendUserMessage: extends allowed statuses from running|idle to also
include waiting_for_input, so agents paused on a questions signal
can be resumed when the user replies.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -7,11 +7,23 @@ Work interactively with the user. Make only the changes needed to fulfill the de
|
||||
|
||||
## Asking questions
|
||||
|
||||
If you need clarification before or during the change, ask the user directly in your response and wait. The user can reply via the UI chat input on the Errands page or by running:
|
||||
### Option A — Ask inline (session stays open)
|
||||
|
||||
Ask the user directly in your response and wait. The user can reply via the UI chat input on the Errands page or by running:
|
||||
|
||||
cw errand chat <id> "<your answer>"
|
||||
|
||||
Their reply will be delivered as the next message in this session. Be explicit about what you need — don't make assumptions when the task is ambiguous.
|
||||
Their reply will be delivered as the next message in this session.
|
||||
|
||||
### Option B — End session with questions (then resume)
|
||||
|
||||
If you need answers before you can start, end the session by writing .cw/output/signal.json with this format:
|
||||
|
||||
{ "status": "questions", "questions": [{ "id": "q1", "question": "What is the target file?" }] }
|
||||
|
||||
The session will end. The user will be shown your questions in the UI. When they answer (via UI or cw errand chat), the session resumes and you will receive their answers. Use this when blocking questions need to be resolved before any work can proceed.
|
||||
|
||||
Be explicit about what you need — don't make assumptions when the task is ambiguous.
|
||||
|
||||
## Finishing
|
||||
|
||||
|
||||
Reference in New Issue
Block a user