Skip to content

feat(settings): support configurable timeout and maxRetries (#13) - #280

Open
innocarpe wants to merge 1 commit into
lessweb:mainfrom
innocarpe:feat/13-timeout-retries
Open

feat(settings): support configurable timeout and maxRetries (#13)#280
innocarpe wants to merge 1 commit into
lessweb:mainfrom
innocarpe:feat/13-timeout-retries

Conversation

@innocarpe

Copy link
Copy Markdown

Summary

  • Adds configurable timeoutMs and maxRetries in settings.json (or DEEPCODE_TIMEOUT_MS / DEEPCODE_MAX_RETRIES env vars), passed to the OpenAI client so intermittent network failures retry automatically with the SDK's built-in exponential backoff.

Why

On flaky networks, long requests (200K+ tokens) intermittently failed with Connection error / fetch failed and required manual retries. There was no way to configure a request timeout or retry policy.

Changes

  • packages/core/src/settings.ts: parse timeoutMs / maxRetries (settings + env) into the resolved settings.
  • packages/core/src/common/openai-client.ts: pass timeout and maxRetries to the OpenAI client; include them in the client cache key.
  • packages/core/src/tests/settings-and-notify.test.ts: tests for settings and env precedence.

Validation

  • npm run typecheck
  • npm test — new settings tests pass ✅

Closes #13

Read timeoutMs and maxRetries from settings.json (or DEEPCODE_TIMEOUT_MS / DEEPCODE_MAX_RETRIES env vars) and pass them to the OpenAI client so intermittent network failures retry with the SDK's built-in exponential backoff instead of requiring manual retries.

(cherry picked from commit 7c5f792ed3eb123a0e03c5e95a43a90e7f665eb6)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[功能请求] 增加可配置的超时和自动重试机制,以应对间歇性网络中断

1 participant