docs/changelog/openclaw.mdx
Security:
distinct_id now uses SHA-256 instead of MD5 — prevents rainbow-table reversal of API key hashesdistinct_id — no PII in telemetry payloadsus.i.posthog.com) in providerEndpointsFixes:
ensureInstallRecord() now detects semver-pinned specs (e.g. @mem0/[email protected]) and rewrites them to @latest or clawhub: prefix so openclaw plugins update resolves to the newest releasesearchThreshold default inconsistency: standardized to 0.3 across docs, README, and manifestPLUGIN_VERSION now injected at build time via tsup define from package.json — no more hardcoded version stringsManifest Compliance:
requiredEnvVars, dataLocations, privacy, setup (with externalEndpoints, providers, requiresRuntime, postInstallHint)setup.externalEndpoints with spec-compliant providerEndpoints using endpointClass + hosts formatproviderAuthEnvVars (already spec-compliant)Docs:
openclaw plugins update command: uses plugin ID (openclaw-mem0), not npm package name (@mem0/openclaw-mem0)Security & Compliance:
requiredEnvVars to plugin manifest, declaring env vars per mode (platform, OSS OpenAI, OSS Anthropic, OSS Ollama). Fixes ClaHub scanner "required env vars: none" mismatchsensitive: true and descriptions to apiKey and userEmail in configSchema — previously only declared in uiHintsdefault: false with descriptions to autoCapture and autoRecall in configSchema so scanner can confirm opt-in defaultsdataLocations field to manifest declaring all persistence paths (config, vectorStore, historyDb, dreamState)privacy field to manifest documenting data flow for platform vs open-source mode and credential storage guidanceexternalEndpoints to setup section declaring api.mem0.ai and app.mem0.ai with purpose and requirement contextTests:
process.env access in tests/cli-commands.test.ts and tests/fs-safe.test.ts with vi.stubEnv/vi.unstubAllEnvs. Fixes ClaHub static analysis flag for "environment variable access combined with network send"New Features:
--json flag to all 16 CLI commands for machine-readable output. Agents can call openclaw mem0 help --json to discover every command and flag--mode open-source with --oss-llm, --oss-embedder, --oss-vector flags for fully automated OSS configuration without promptscli/json-helpers.ts with jsonOut, jsonErr, and redactSecrets utilities for consistent structured outputImprovements:
gpt-5-miniconfigSchema.required for clean installsTests:
json-helpers.test.ts, oss-wizard.test.ts, cli-commands.test.ts)New Features:
Improvements:
mem0ai dependency to 3.0.1 for V3 API compatibilityorgId, projectId, enableGraph config options; updated CLI prompts (#4734, #4764)Bug Fixes:
"anonymous-openclaw" fallback with a persistent per-machine random hash (openclaw-anon-<uuid>), so anonymous plugin users are counted individually in PostHog (#4790)$identify event on first authenticated run to stitch anonymous history onto the authenticated profile (#4790)beforeExit handler to flush queued events before the process exits (#4790)/v1/ping/ email resolution so users who configure API key outside mem0 init show as their email in PostHog, not an md5 hash (#4790)openclaw.<cmd> to openclaw.cli.<cmd> on the needsSetup branch to match the authenticated branch (#4790)Improvements:
source: "OPENCLAW" to all provider calls (add, search, getAll) across tools, CLI commands, recall, and the OSS backend adapter (#4790)Bug Fixes:
openclaw mem0 init — entering 1/2/3 now correctly selects the corresponding option (was broken by readline prefill concatenating with user input)client.connect() on the same client. Fix: let warmup errors propagate (so initPromise resets and retries with a fresh Memory + fresh pg client) and build fresh config objects per attempt instead of mutating shared state.Removed:
orgId / projectId config parameters: Removed from config schema, CLI (config show/get/set), init display, and providers. The API key is project-scoped, so separate org/project IDs are unnecessary and could cause access errors if mismatched.enableGraph config parameter: Removed from all config surfaces, providers, backend, and tools. Graph memory is being deprecated — removing the flag avoids unnecessary exposure.New Features:
openclaw mem0 init with interactive menu (email verification or direct API key). Non-interactive modes: --api-key, --email, --email --codememory_add tool: Replaces memory_store — name now matches mem0 CLI and platform APImemory_delete tool: Unified delete — single ID, search-then-delete, bulk, entity cascade. Replaces memory_forget and memory_delete_allopenclaw mem0 init, openclaw mem0 status, openclaw mem0 config show, openclaw mem0 config setimport CLI command: Bulk-import memories from a JSON file with --user-id and --agent-id overridesevent list / event status CLI commands: Monitor background processing eventsfs-safe.ts module: Isolated filesystem wrappers in a separate entry pointbackend/ module: PlatformBackend with direct HTTP API access for CLI commandscontracts.tools, configSchema, and uiHints to openclaw.plugin.jsonChanges:
tools/ directory (6 files) and CLI into cli/commands.tssplitting: true and two entry pointsmemory_add, memory_delete)Promise.raceprovider.add() runs in background via .then()/.catch()Removed:
memory_store tool — replaced by memory_addmemory_forget tool — replaced by memory_deletememory_delete_all tool — merged into memory_deletememory_history tool and history CLI command — deprecatedBug Fixes:
safePath() containment helper to readSkillFile and readDomainOverlay in skill-loader.ts — prevents directory traversalAfter-Compaction regex rename back to Post-CompactionChanges:
mem0ai dependency to exact 2.3.0 (was ^2.3.0)Tests:
safePath, readSkillFile, readDomainOverlay, and loadSkill with traversal inputsBug Fixes:
resolveEnvVars() and resolveEnvVarsDeep() from config.ts — plugin-side env resolution was redundant and triggered static analysis warnings (#4676)New Features:
compat and build metadata to package.json (#4667)Bug Fixes:
New Features:
recall.ts module with improved recall logic and skill-aware retrievalopenclaw.plugin.json manifest and scripts/configure.py setup helperChanges:
New Features:
Bug Fixes:
New Features:
cron, heartbeat, automation, and schedule triggersdisableHistory config option: New oss.disableHistory flagChanges:
topK * 2 for better filtering headroomBug Fixes:
ctx.sessionKey directly instead of a shared mutable variableNew Features:
Changes:
index.ts (1772 lines) into 6 focused modulesBug Fixes:
mem0ai dependency with sqlite3 to better-sqlite3 migration (#4270)New Features:
agentIdChanges:
userId values instead of placeholdersBug Fixes:
New Features:
Bug Fixes:
New Features:
topK, threshold, and apiVersion options