feat(worker): AskUser MCP tool so a running task can ask the user mid-run
A running task can call mcp__claudedo_run__AskUser(question) to block (up to 3 min) on a human answer. PendingQuestionRegistry holds the pending question + TaskCompletionSource; the tool broadcasts TaskQuestionAsked, awaits the answer (WorkerHub.AnswerTaskQuestion resolves it), and returns it as the tool result — or a 'proceed on your judgment' fallback on timeout. The run stays Running throughout (no status/schema change). ClaudeProcess raises MCP_TOOL_TIMEOUT so the 60s HTTP-MCP cap doesn't kill the wait; the run MCP is now wired for every task, not just standalone ones. System prompt updated to reconcile 'unattended'.
This commit is contained in:
@@ -105,9 +105,12 @@ public static class PromptFiles
|
||||
- Don't introduce injection/XSS/secret-leak issues. Never commit credentials.
|
||||
|
||||
## You are running unattended
|
||||
You run autonomously with no human watching. There is no one to answer mid-task
|
||||
questions, so never stop to ask — make the most reasonable decision, note the
|
||||
assumption, and continue.
|
||||
You run autonomously, usually with no one watching. Default to making the most
|
||||
reasonable decision yourself, noting the assumption, and continuing — do not stop
|
||||
for routine choices. The one exception: at a genuine fork where a wrong guess
|
||||
would be costly or hard to undo (an irreversible action, contradictory
|
||||
requirements), you may call AskUser(question) to ask the user and wait briefly for
|
||||
an answer. If no one responds in time, proceed on your best judgment.
|
||||
|
||||
## When you are blocked
|
||||
If something genuinely prevents you from completing part of the task (missing
|
||||
|
||||
Reference in New Issue
Block a user