Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions src/agent/worker.rs
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,9 @@ const MAX_OVERFLOW_RETRIES: usize = 2;
/// Max consecutive transient provider error retries before giving up.
/// Transient errors (upstream 500s, timeouts, rate limits that survived
/// model-level retries) get a backoff-and-retry at the worker level so
/// the worker survives temporary provider outages.
const MAX_TRANSIENT_RETRIES: usize = 5;
/// the worker survives temporary provider outages. Each retry triggers
/// up to 3 model-level attempts, so 3 worker retries = 9 total attempts.
const MAX_TRANSIENT_RETRIES: usize = 3;

/// Base delay for worker-level transient error backoff (doubles each retry).
const TRANSIENT_RETRY_BASE_DELAY: std::time::Duration = std::time::Duration::from_secs(5);
Expand Down
3 changes: 3 additions & 0 deletions src/llm/anthropic/params.rs
Original file line number Diff line number Diff line change
Expand Up @@ -97,8 +97,11 @@ pub fn build_anthropic_request(
body["output_config"] = serde_json::json!({ "effort": effort });
}

// Override the global 120s client timeout — large completions with
// extended thinking can easily take 5–10 minutes to generate.
let builder = http_client
.post(&url)
.timeout(std::time::Duration::from_secs(10 * 60))
.header("anthropic-version", "2023-06-01")
.header("content-type", "application/json");

Expand Down
Loading