Skip to content

feat: expose autoRecallTimeoutMs in plugin configuration schema#442

Draft
Displayer226 wants to merge 1 commit intoCortexReach:masterfrom
Displayer226:feat/timeout-config
Draft

feat: expose autoRecallTimeoutMs in plugin configuration schema#442
Displayer226 wants to merge 1 commit intoCortexReach:masterfrom
Displayer226:feat/timeout-config

Conversation

@Displayer226
Copy link
Copy Markdown

Summary

Exposes autoRecallTimeoutMs in the plugin configuration schema.

Motivation

Users running local embedding or reranking services (e.g., Jina, TEI, or local Ollama instances) often encounter "auto-recall timed out" warnings during agent startup when their hardware has higher latency. Currently, this value is hardcoded or difficult to adjust via the standard config schema.

This change allows users to increase the timeout to match their specific infrastructure needs, ensuring stable memory injection.

Key Changes

  • Added autoRecallTimeoutMs to the properties in openclaw.plugin.json.
  • Set a safe minimum of 1ms and a default of 5000ms to maintain backward compatibility while allowing flexibility.

Testing

  • Verified openclaw config validate passes with the new key.
  • Confirmed that setting autoRecallTimeoutMs: 15000 in a live environment successfully prevents timeouts on slower local inference setups.

@Displayer226 Displayer226 marked this pull request as draft April 1, 2026 12:00
Copy link
Copy Markdown
Collaborator

@AliceLJY AliceLJY left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Clean, focused change.

What it does: Exposes the already-used autoRecallTimeoutMs config key in the plugin JSON schema so it becomes user-configurable through the standard config validation path.

Verified:

  • The code in index.ts already reads config.autoRecallTimeoutMs with a fallback to 5000, so the default here matches.
  • The type: "integer" + minimum: 1 + maximum: 60000 constraints are reasonable — consistent with other timeout fields in the schema (e.g., memoryReflection.timeoutMs uses minimum: 1000, maximum: 120000; llm.timeoutMs uses minimum: 1).
  • Placement between autoRecallMinRepeated and autoRecallMaxItems follows the existing naming group.
  • No behavioral change for existing users since the default matches the hardcoded fallback.

One minor note (non-blocking): minimum: 1 allows values like 1ms or 10ms which would effectively guarantee a timeout on every call. The memoryReflection.timeoutMs field uses minimum: 1000 as a floor. A minimum of ~500ms might be more practical, but this is fine as-is — users setting 1ms get what they asked for.

Approved.

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.

3 participants