mirror of
https://github.com/openclaw/openclaw.git
synced 2026-06-23 06:28:08 +00:00
* fix(memory): abort orphaned embedding work when memory_search times out memory_search raced its 15s deadline with Promise.race and returned a clean timeout to the agent, but the underlying embedQueryWithRetry loop kept retrying (3 attempts x 60s) against the embedding backend with no consumer. Thread the tool-owned AbortSignal through manager.search -> embedQueryWithRetry -> runEmbeddingOperationWithTimeout so the deadline cancels in-flight embedding work, stops the retry loop, and skips fallback-provider activation for an absent caller. Fixes #91718 * fix(memory): let the deadline result win before aborting the search Abort listeners dispatch synchronously, so an abort-aware search could reject the raced task before the timeout promise resolved and replace the stable 'memory_search timed out after 15s' result with a provider-wrapped abort error. Resolve the timeout first, then abort. * fix(memory): scope deadline abort to builtin embeddings * fix(memory): preserve deadline signal across fallback --------- Co-authored-by: Vincent Koc <vincentkoc@ieee.org>