Two timeout env vars now active across the provider surface after v0.9.17 + #379:
Same value, different names. Confusing for ops.
Proposal
- Make
AGENTMEMORY_LLM_TIMEOUT_MS the canonical name.
OpenAIProvider.call() reads OPENAI_TIMEOUT_MS first (back-compat), then falls back to AGENTMEMORY_LLM_TIMEOUT_MS, then 60s.
- README documents both in the OpenAI section; quick-start / .env.example shows only
AGENTMEMORY_LLM_TIMEOUT_MS.
- Long-term: per-provider override pattern
AGENTMEMORY_<PROVIDER>_TIMEOUT_MS if users ask. Out of scope for now.
Files
src/providers/openai.ts — line where OPENAI_TIMEOUT_MS is read
README.md — both env tables
.env.example — single source of truth
Acceptance
- Setting only
AGENTMEMORY_LLM_TIMEOUT_MS=30000 bounds OpenAI provider to 30s.
- Setting both prefers
OPENAI_TIMEOUT_MS (back-compat).
- Setting neither uses 60s default.
- New unit test in
test/fetch-timeout.test.ts covering the precedence.
Two timeout env vars now active across the provider surface after v0.9.17 + #379:
OPENAI_TIMEOUT_MS— scoped tosrc/providers/openai.ts(the OpenAI LLM provider from feat: add OpenAI-compatible LLM provider #307). Inline AbortController, default 60s.AGENTMEMORY_LLM_TIMEOUT_MS— scoped to the sharedsrc/providers/_fetch.tshelper introduced in fix: add AbortController timeout to all raw-fetch providers #379, used by minimax/openrouter LLM + cohere/gemini/openai/voyage/openrouter embedding. Default 60s.Same value, different names. Confusing for ops.
Proposal
AGENTMEMORY_LLM_TIMEOUT_MSthe canonical name.OpenAIProvider.call()readsOPENAI_TIMEOUT_MSfirst (back-compat), then falls back toAGENTMEMORY_LLM_TIMEOUT_MS, then 60s.AGENTMEMORY_LLM_TIMEOUT_MS.AGENTMEMORY_<PROVIDER>_TIMEOUT_MSif users ask. Out of scope for now.Files
src/providers/openai.ts— line whereOPENAI_TIMEOUT_MSis readREADME.md— both env tables.env.example— single source of truthAcceptance
AGENTMEMORY_LLM_TIMEOUT_MS=30000bounds OpenAI provider to 30s.OPENAI_TIMEOUT_MS(back-compat).test/fetch-timeout.test.tscovering the precedence.