--- title: "OpenClaw" description: "Release notes for the OpenClaw plugin and agent harness." mode: "wide" --- **New Features:** - **Chat-Based Setup:** Added chat-based Platform setup flow — users can now configure the plugin conversationally instead of editing config files manually - **Installation Docs Rewrite:** Rewrote README and integration docs with chat-first setup, numbered manual steps. **Improvements:** - **SDK Upgrade:** Bumped `mem0ai` dependency to 3.0.1 for V3 API compatibility - **Config Cleanup:** Dropped deprecated `orgId`, `projectId`, `enableGraph` config options; updated CLI prompts ([#4734](https://github.com/mem0ai/mem0/pull/4734), [#4764](https://github.com/mem0ai/mem0/pull/4764)) - **Noise Filtering:** Expanded noise patterns in memory add tool; handle leading text in JSON extraction **Bug Fixes:** - **Telemetry:** Replaced shared `"anonymous-openclaw"` fallback with a persistent per-machine random hash (`openclaw-anon-`), so anonymous plugin users are counted individually in PostHog ([#4790](https://github.com/mem0ai/mem0/pull/4790)) - **Telemetry:** Added PostHog `$identify` event on first authenticated run to stitch anonymous history onto the authenticated profile ([#4790](https://github.com/mem0ai/mem0/pull/4790)) - **Telemetry:** Fixed event loss on short-lived CLI invocations — added `beforeExit` handler to flush queued events before the process exits ([#4790](https://github.com/mem0ai/mem0/pull/4790)) - **Telemetry:** Added lazy `/v1/ping/` email resolution so users who configure API key outside `mem0 init` show as their email in PostHog, not an md5 hash ([#4790](https://github.com/mem0ai/mem0/pull/4790)) - **Telemetry:** Unified CLI event prefix from `openclaw.` to `openclaw.cli.` on the needsSetup branch to match the authenticated branch ([#4790](https://github.com/mem0ai/mem0/pull/4790)) **Improvements:** - **API:** Added `source: "OPENCLAW"` to all provider calls (`add`, `search`, `getAll`) across tools, CLI commands, recall, and the OSS backend adapter ([#4790](https://github.com/mem0ai/mem0/pull/4790)) **Bug Fixes:** - **Init interactive choice bug**: Fixed number selection in `openclaw mem0 init` — entering 1/2/3 now correctly selects the corresponding option (was broken by readline prefill concatenating with user input) - **OSS pgvector crash** ([#4727](https://github.com/mem0ai/mem0/issues/4727)): Fixed "Client has already been connected" cascade when using pgvector in OSS mode. The warmup call swallowed errors leaving a half-initialized pg client; concurrent recall/capture then all hit `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:** - **Interactive init flow**: `openclaw mem0 init` with interactive menu (email verification or direct API key). Non-interactive modes: `--api-key`, `--email`, `--email --code` - **`memory_add` tool**: Replaces `memory_store` — name now matches `mem0` CLI and platform API - **`memory_delete` tool**: Unified delete — single ID, search-then-delete, bulk, entity cascade. Replaces `memory_forget` and `memory_delete_all` - **CLI subcommands**: `openclaw mem0 init`, `openclaw mem0 status`, `openclaw mem0 config show`, `openclaw mem0 config set` - **`import` CLI command**: Bulk-import memories from a JSON file with `--user-id` and `--agent-id` overrides - **`event list` / `event status` CLI commands**: Monitor background processing events - **`fs-safe.ts` module**: Isolated filesystem wrappers in a separate entry point - **`backend/` module**: `PlatformBackend` with direct HTTP API access for CLI commands - **Plugin manifest**: Added `contracts.tools`, `configSchema`, and `uiHints` to `openclaw.plugin.json` - **Test suite**: 329 tests across 10 test files **Changes:** - **Modular architecture**: Extracted tools into `tools/` directory (6 files) and CLI into `cli/commands.ts` - **Code splitting**: tsup builds with `splitting: true` and two entry points - **Skills updated**: All SKILL.md files reference new tool names (`memory_add`, `memory_delete`) - **Auto-recall timeout**: Recall wrapped in 8-second `Promise.race` - **Auto-capture fire-and-forget**: `provider.add()` runs in background via `.then()/.catch()` - **Auto-capture minimum content gate**: Skips extraction when total user content is fewer than 50 chars **Removed:** - `memory_store` tool — replaced by `memory_add` - `memory_forget` tool — replaced by `memory_delete` - `memory_delete_all` tool — merged into `memory_delete` - `memory_history` tool and `history` CLI command — deprecated **Bug Fixes:** - **Security**: Added `safePath()` containment helper to `readSkillFile` and `readDomainOverlay` in `skill-loader.ts` — prevents directory traversal - **Noise filter**: Reverted incorrect `After-Compaction` regex rename back to `Post-Compaction` **Changes:** - **Supply-chain hardening**: Pinned `mem0ai` dependency to exact `2.3.0` (was `^2.3.0`) **Tests:** - 12 new tests covering `safePath`, `readSkillFile`, `readDomainOverlay`, and `loadSkill` with traversal inputs **Bug Fixes:** - **Security**: Removed `resolveEnvVars()` and `resolveEnvVarsDeep()` from `config.ts` — plugin-side env resolution was redundant and triggered static analysis warnings ([#4676](https://github.com/mem0ai/mem0/pull/4676)) **New Features:** - **CD workflow**: Added continuous deployment workflow with OIDC trusted publishing ([#4672](https://github.com/mem0ai/mem0/pull/4672)) - **Plugin configuration manifest**: Added `compat` and `build` metadata to `package.json` ([#4667](https://github.com/mem0ai/mem0/pull/4667)) - **LICENSE**: Added Apache-2.0 license file ([#4667](https://github.com/mem0ai/mem0/pull/4667)) **Bug Fixes:** - **Dream gate**: Fixed cheap-first ordering, session isolation, and verified completion ([#4666](https://github.com/mem0ai/mem0/pull/4666)) - **Graceful startup**: Plugin now starts gracefully when no API key is configured ([#4669](https://github.com/mem0ai/mem0/pull/4669)) **New Features:** - **Skills-based memory architecture**: New skill-loader and skill-based extraction pipeline with batched extraction ([#4624](https://github.com/mem0ai/mem0/pull/4624)) - **Dream gate**: Memory consolidation and dream-cycle processing during idle periods - **Enhanced recall**: New `recall.ts` module with improved recall logic and skill-aware retrieval - **Memory triage skill**: Domain-aware memory triage with companion domain support and recall protocol - **Memory dream skill**: Skill for memory consolidation during idle periods - **Plugin configuration**: Added `openclaw.plugin.json` manifest and `scripts/configure.py` setup helper **Changes:** - Extraction pipeline refactored to use skills-based architecture for more contextual and higher quality memory capture **New Features:** - **Improved extraction quality**: Enhanced noise filtering, deduplication, and better extraction instructions **Bug Fixes:** - **Credential detection**: Improved detection of credentials, API keys, and secrets in extraction instructions (#4552) - **Standalone timestamps**: Prevented extraction of standalone timestamps as memories (#4550) **New Features:** - **Non-interactive trigger filtering**: Skips recall and capture for `cron`, `heartbeat`, `automation`, and `schedule` triggers - **Subagent hallucination prevention**: Detects ephemeral subagent sessions and routes recall to parent namespace - **Dynamic recall thresholding**: Memories scoring less than 50% of top result are dropped - **SQLite resilience**: Init error recovery with automatic retry for OSS mode - **`disableHistory` config option**: New `oss.disableHistory` flag - 78 unit tests covering filtering, isolation, trigger filtering, subagent detection, and SQLite resilience **Changes:** - Auto-recall threshold raised from 0.5 to 0.6 for stricter precision - Recall candidate pool increased to `topK * 2` for better filtering headroom - Relaxed extraction instructions: related facts kept together to preserve context **Bug Fixes:** - **Concurrent session race condition**: Lifecycle hooks now use `ctx.sessionKey` directly instead of a shared mutable variable **New Features:** - **Message filtering pipeline**: Multi-stage noise removal before extraction - **Broad recall for new sessions**: Short or new-session prompts trigger secondary broad search - **Client-side threshold filtering**: Safety net that drops low-relevance results - **Temporal anchoring**: Extraction instructions now include current date - 55 unit tests covering filtering and isolation helpers **Changes:** - Extraction window expanded from last 10 to last 20 messages - Rewritten custom extraction instructions for conciseness and deduplication - Refactored monolithic `index.ts` (1772 lines) into 6 focused modules **Bug Fixes:** - Updated `mem0ai` dependency with sqlite3 to better-sqlite3 migration (#4270) **New Features:** - Per-agent memory isolation for multi-agent setups via `agentId` - "Understanding userId" section in docs **Changes:** - Updated config examples to use concrete `userId` values instead of placeholders **Bug Fixes:** - Migrated platform search to Mem0 v2 API **New Features:** - Source field for openclaw memory entries **Bug Fixes:** - Auto-recall injection and auto-capture message drop **New Features:** - Initial release of the OpenClaw Mem0 plugin - Platform mode (Mem0 Cloud) and open-source mode support - Auto-recall: inject relevant memories before each turn - Auto-capture: store facts after each turn - Configurable `topK`, `threshold`, and `apiVersion` options