claw-code/rust/crates
TheArchitectit 04bc5f5788 feat: API timeout config, Retry-After header, configurable retry, and 400 transient retry
Cherry-picked from PR #2816 onto current upstream/main, resolving
conflicts from PR #3015's merge (which added retry_after to ApiError
but some construction sites were missing it).

Commits preserved:
- ade85398: API timeout config, Retry-After header, configurable retry
  - TimeoutConfig in HTTP client builder (connect 30s, request 5min)
  - CLAW_API_CONNECT_TIMEOUT and CLAW_API_REQUEST_TIMEOUT env vars
  - Retry-After header parsing on 429 responses
  - ApiTimeoutConfig in runtime config (settings.json)
- 8a883430: retry 400 responses with transient gateway error bodies
  - Detects known gateway phrases in 400 response bodies
  - Marks them as retryable instead of hard-failing
- ed91a61e: add 'no parseable body' to CONTEXT_WINDOW_ERROR_MARKERS
  - Some providers return 400 with 'no parseable body' for oversized
    requests instead of a proper context_length_exceeded error

Commits skipped (already in upstream via PR #3015):
- 453ab642: optional id field (already merged)
- baa8d1ba: HTML detection in streaming (already merged)
- 33d2f789: JSON error detection in streaming (already merged)

8 files changed, 299 insertions, 80 deletions
2026-06-02 15:35:29 -05:00
..
api feat: API timeout config, Retry-After header, configurable retry, and 400 transient retry 2026-06-02 15:35:29 -05:00
claw-analog Reject drifted claw-analog bootstrap phases 2026-05-25 19:33:37 +00:00
claw-rag-service feat(rag): add claw-rag-service 2026-05-25 11:25:25 +09:00
commands Suppress config warnings on JSON local surfaces (#3192) 2026-05-28 20:34:18 +09:00
compat-harness feat: ultraclaw droid batch — ROADMAP #41 test isolation + #50 PowerShell permissions 2026-04-12 03:06:24 +09:00
mock-anthropic-service Stabilize final gate before release checkpoint 2026-05-15 13:34:57 +09:00
plugins fix: resolve EACCES error from incorrect bundled plugins directory 2026-05-25 11:22:34 +09:00
runtime feat: API timeout config, Retry-After header, configurable retry, and 400 transient retry 2026-06-02 15:35:29 -05:00
rusty-claude-cli feat: API timeout config, Retry-After header support, and configurable retry 2026-06-02 15:30:22 -05:00
telemetry feat: anthropic SDK header matching + request profile 2026-04-01 05:55:25 +00:00
tools chore: fix conflict markers and cargo fmt drift in main (commands, openai_compat, trident, config, tools) 2026-05-25 11:51:44 +09:00