feat(TASK-028): escalation_timeout 0 waits indefinitely and is the default
Child escalations (coder plan approvals, deviation gates, user__* calls from subagents) previously expired after the escalating agent's escalation_timeout, defaulting to 300 s, and 0 timed out instantly. In autonomous runs the orchestrator often could not reply within that window, so approvals silently fell through to the best-judgment fallback. - Extract await_escalation_reply as the wait seam: 0 awaits the oneshot with no deadline; nonzero keeps tokio::time::timeout with the same timeout message. A dropped sender still resolves to the existing cancelled reply either way. - DEFAULT_ESCALATION_TIMEOUT_SECS and default_escalation_timeout() -> 0, so graph agents (which inherit the default via from_graph) are covered. - Document the new semantics in config.agent.example.yaml and drop the 5-minute-timeout claim from the default spawn instructions. - Tests: paused-clock unlimited wait (3600 s), nonzero expiry message, dropped-sender completion, default pin, and a grep pin that the stale timeout wording is gone from src/, assets/, and the example config. Plan: PLAN-review-retry §C (D3).
This commit is contained in:
4 files changed
+121
-14
No files matched your search
@@ -48,7 +48,7 @@ max_concurrent_jobs:
|
||||
inject_spawn_instructions: true # Inject the default agent spawning instructions into the agent's system prompt
|
||||
summarization_model: null # Model to use for summarizing sub-agent output (e.g. 'openai:gpt-4o-mini'); defaults to current model
|
||||
summarization_threshold: 4000 # Character threshold above which sub-agent output is summarized before returning to parent
|
||||
escalation_timeout: 300 # Seconds a sub-agent waits for a user interaction response before timing out (default: 5 minutes)
|
||||
escalation_timeout: 0 # 0 = wait indefinitely for the reply (default); N = give up after N seconds
|
||||
mcp_servers: # Optional list of MCP servers that the agent utilizes
|
||||
- github # Corresponds to the name of an MCP server in the `<coyote-config-dir>/mcp.json` file
|
||||
mcp_tools: # Optional per-server tool allowlist for the agent's MCP servers
|
||||
|
||||
Reference in new issue
Block a user