fix(openclaw): graceful startup without API key

Plugin no longer throws during register() when API key is missing.
Instead it registers successfully, logs a clear setup message with
the exact command to run, and disables memory features until configured.

Before: openclaw plugins install -> register() throws -> gateway logs error
After:  openclaw plugins install -> registers ok -> logs setup instructions

Users see:
  openclaw-mem0: API key not configured. Memory features are disabled.
  To set up, run:
  openclaw config set plugins.entries.openclaw-mem0.config.apiKey "m0-your-key"
  openclaw gateway restart

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
chaithanyak42
2026-04-02 15:25:13 +05:30
co-authored by Claude Opus 4.6
parent 7e9824e394
commit 5a5e201dd9
3 changed files with 25 additions and 8 deletions
+4 -8
View File
@@ -196,14 +196,9 @@ export const mem0ConfigSchema = {
const mode: Mem0Mode =
cfg.mode === "oss" || cfg.mode === "open-source" ? "open-source" : "platform";
// Platform mode requires apiKey
if (mode === "platform") {
if (typeof cfg.apiKey !== "string" || !cfg.apiKey) {
throw new Error(
"apiKey is required for platform mode (set mode: \"open-source\" for self-hosted)",
);
}
}
// Platform mode requires apiKey — but don't throw on missing config.
// The plugin should register successfully and log a setup message.
const needsSetup = mode === "platform" && (typeof cfg.apiKey !== "string" || !cfg.apiKey);
// Resolve env vars in oss config
let ossConfig: Mem0Config["oss"];
@@ -241,6 +236,7 @@ export const mem0ConfigSchema = {
searchThreshold:
typeof cfg.searchThreshold === "number" ? cfg.searchThreshold : 0.5,
topK: typeof cfg.topK === "number" ? cfg.topK : 5,
needsSetup,
oss: ossConfig,
skills:
cfg.skills && typeof cfg.skills === "object" && !Array.isArray(cfg.skills)