fix(plugins): share one cached handoff runtime and use version 0.3.2
This commit is contained in:
@@ -5,7 +5,7 @@ description: "Add persistent memory to Google Antigravity with the Mem0 plugin:
|
||||
|
||||
Add persistent memory to [**Google Antigravity**](https://antigravity.google) (`agy` CLI and Desktop IDE) with the Mem0 plugin. The plugin captures completed work, and Antigravity can search those memories in later sessions.
|
||||
|
||||
<Info>Current plugin version: `0.4.0`.</Info>
|
||||
<Info>Current plugin version: `0.3.2`.</Info>
|
||||
|
||||
## Prerequisites
|
||||
|
||||
@@ -112,10 +112,6 @@ The local `search_memories` tool accepts `query`, `top_k`, `category`, `scope` (
|
||||
|
||||
Captured prompts and responses retain their full redacted text without a per-message character cutoff. Large extraction inputs are split across requests without dropping message text; recall output and tool-result previews have separate limits.
|
||||
|
||||
## Session handoff
|
||||
|
||||
The plugin can hand off supported native session context into a new Codex task through the shared importer. Handoff requires Python 3.11+ and a locally installed, signed-in Codex CLI. See [session handoff](/integrations/session-handoff) for commands, transferred content, and recovery.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
- **No tools appearing**: Restart your Antigravity session after installation
|
||||
|
||||
@@ -5,7 +5,7 @@ description: "Persistent cross-session memory for Claude Code. Install once, mem
|
||||
|
||||
Claude Code forgets everything between sessions. This plugin fixes that. Install it, work normally, and Claude remembers what happened across sessions.
|
||||
|
||||
<Info>Current plugin version: `0.4.0`.</Info>
|
||||
<Info>Current plugin version: `0.3.2`.</Info>
|
||||
|
||||
## Prerequisites
|
||||
|
||||
@@ -160,10 +160,6 @@ claude plugin marketplace update mem0-plugins
|
||||
claude plugin update mem0@mem0-plugins --scope user
|
||||
```
|
||||
|
||||
## Session handoff
|
||||
|
||||
Run `/mem0:handoff codex` to create a Codex task from the current Claude session, preserving its title, project, and active conversation. Handoff requires Python 3.11+ and a locally installed, signed-in Codex CLI. See [session handoff](/integrations/session-handoff) for commands, transferred content, and recovery.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
| Problem | Fix |
|
||||
|
||||
@@ -5,7 +5,7 @@ description: "Add persistent memory to OpenAI Codex with automatic capture, auto
|
||||
|
||||
Add persistent memory to [**OpenAI Codex**](https://openai.com/index/codex/) with the Mem0 plugin. Codex forgets everything between tasks. This plugin fixes that by connecting to Mem0's cloud memory layer via MCP, automatically capturing learnings at key lifecycle points, and retrieving relevant context on the first prompt of a session. Codex can use the search tool for recall later in the session.
|
||||
|
||||
<Info>Current plugin version: `0.4.0`.</Info>
|
||||
<Info>Current plugin version: `0.3.2`.</Info>
|
||||
|
||||
## Prerequisites
|
||||
|
||||
@@ -176,10 +176,6 @@ The local `search_memories` tool accepts `query`, `top_k`, `category`, `scope` (
|
||||
|
||||
Captured prompts and responses retain their full redacted text without a per-message character cutoff. Large extraction inputs are split across requests without dropping message text; recall output and tool-result previews have separate limits.
|
||||
|
||||
## Session handoff
|
||||
|
||||
The plugin can hand off supported native session context into a new Codex task through the shared importer. Handoff requires Python 3.11+ and a locally installed, signed-in Codex CLI. See [session handoff](/integrations/session-handoff) for commands, transferred content, and recovery.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
- **"Connection failed"**: Verify `MEM0_API_KEY` is set: `echo $MEM0_API_KEY`
|
||||
|
||||
@@ -5,7 +5,7 @@ description: "Add persistent memory to Cursor with automatic capture, explicit r
|
||||
|
||||
Add persistent memory to [**Cursor**](https://cursor.com) with the Mem0 plugin. Cursor captures completed work in the background, and its agent can search relevant project context in later sessions. You can also connect only the hosted MCP server when you do not need lifecycle capture.
|
||||
|
||||
<Info>Current plugin version: `0.4.0`.</Info>
|
||||
<Info>Current plugin version: `0.3.2`.</Info>
|
||||
|
||||
## Prerequisites
|
||||
|
||||
@@ -161,10 +161,6 @@ The local `search_memories` tool accepts `query`, `top_k`, `category`, `scope` (
|
||||
|
||||
Captured prompts and responses retain their full redacted text without a per-message character cutoff. Large extraction inputs are split across requests without dropping message text; recall output and tool-result previews have separate limits.
|
||||
|
||||
## Session handoff
|
||||
|
||||
The plugin can hand off supported native session context into a new Codex task through the shared importer. Handoff requires Python 3.11+ and a locally installed, signed-in Codex CLI. See [session handoff](/integrations/session-handoff) for commands, transferred content, and recovery.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
- **"Connection failed"**: Verify `MEM0_API_KEY` is set: `echo $MEM0_API_KEY`
|
||||
|
||||
@@ -5,7 +5,7 @@ description: "Add persistent memory to DeepSeek Harness with automatic recall, a
|
||||
|
||||
Add persistent memory to the [**DeepSeek Harness**](https://github.com/deepseek-ai/deepseek-harness) with `@mem0/deepseek-plugin`. The plugin recalls relevant context before a model request, captures completed turns, and provides explicit Mem0 tools when the agent needs them.
|
||||
|
||||
<Info>Current package version: `0.4.0`.</Info>
|
||||
<Info>Current package version: `0.3.2`.</Info>
|
||||
|
||||
## Overview
|
||||
|
||||
@@ -69,7 +69,7 @@ source ~/.bashrc
|
||||
2. Install it into a disposable Harness profile so Harness supplies its peer dependencies:
|
||||
```sh
|
||||
DSH_HOME=/tmp/mem0-dsh-dev pnpm dlx @deepseek-ai/dsh@0.1.1-rc.2 \
|
||||
plugin --profile headless add /tmp/mem0-deepseek-plugin/mem0-deepseek-plugin-0.4.0.tgz
|
||||
plugin --profile headless add /tmp/mem0-deepseek-plugin/mem0-deepseek-plugin-0.3.2.tgz
|
||||
```
|
||||
|
||||
3. Copy `cordis.example.yml`, set its installed package path and your `userId`, then load it with the same profile:
|
||||
@@ -119,10 +119,6 @@ Writes are tagged `source="DEEPSEEK_HARNESS"` so Mem0 can attribute usage to thi
|
||||
This plugin is a developer preview and tracks the evolving DeepSeek Harness plugin API.
|
||||
</Note>
|
||||
|
||||
## Session handoff
|
||||
|
||||
The plugin can hand off supported native session context into a new Codex task through the shared importer. Handoff requires Python 3.11+ and a locally installed, signed-in Codex CLI. See [session handoff](/integrations/session-handoff) for commands, transferred content, and recovery.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
- **`MISSING_CREDENTIAL` for `deepseek-official`**: Configure `DEEPSEEK_API_KEY` through Harness's Models page or export it in the shell that launches Harness.
|
||||
|
||||
@@ -5,7 +5,7 @@ description: "Add persistent project memory to Kimi Code with automatic capture,
|
||||
|
||||
Kimi Code forgets project decisions between sessions. The Mem0 plugin captures completed work, recalls relevant context before a response, and gives Kimi explicit memory tools and skills.
|
||||
|
||||
<Info>Current plugin version: `0.4.0`.</Info>
|
||||
<Info>Current plugin version: `0.3.2`.</Info>
|
||||
|
||||
## Prerequisites
|
||||
|
||||
@@ -93,10 +93,6 @@ The local `search_memories` tool accepts `query`, `top_k`, `category`, `scope` (
|
||||
|
||||
Captured prompts and responses retain their full redacted text without a per-message character cutoff. Large extraction inputs are split across requests without dropping message text; recall output and tool-result previews have separate limits.
|
||||
|
||||
## Session handoff
|
||||
|
||||
The plugin can hand off supported native session context into a new Codex task through the shared importer. Handoff requires Python 3.11+ and a locally installed, signed-in Codex CLI. See [session handoff](/integrations/session-handoff) for commands, transferred content, and recovery.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
| Problem | Fix |
|
||||
|
||||
@@ -5,7 +5,7 @@ description: "Add long-term memory to OpenClaw agents using the Mem0 plugin with
|
||||
|
||||
Add long-term memory to [OpenClaw](https://github.com/openclaw/openclaw) agents with the `@mem0/openclaw-mem0` plugin. Your agent forgets everything between sessions. This plugin fixes that by automatically watching conversations, extracting what matters, and bringing it back when relevant.
|
||||
|
||||
<Info>Current package version: `1.2.0`.</Info>
|
||||
<Info>Current package version: `0.3.2`.</Info>
|
||||
|
||||
## Overview
|
||||
|
||||
@@ -387,10 +387,6 @@ openclaw plugins list
|
||||
openclaw plugins inspect openclaw-mem0
|
||||
```
|
||||
|
||||
## Session handoff
|
||||
|
||||
The plugin can hand off supported native session context into a new Codex task through the shared importer. Handoff requires Python 3.11+ and a locally installed, signed-in Codex CLI. See [session handoff](/integrations/session-handoff) for commands, transferred content, and recovery.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### "plugins.allow excludes mem0" Error
|
||||
|
||||
@@ -5,7 +5,7 @@ description: "Add persistent memory to OpenCode with the Mem0 plugin: native SDK
|
||||
|
||||
Add persistent memory to [**OpenCode**](https://opencode.ai) with the Mem0 plugin. Your agent forgets everything between sessions. Mem0 fixes that by storing decisions, preferences, and learnings so they carry over automatically.
|
||||
|
||||
<Info>Current package version: `0.4.0`.</Info>
|
||||
<Info>Current package version: `0.3.2`.</Info>
|
||||
|
||||
## Prerequisites
|
||||
|
||||
@@ -122,10 +122,6 @@ The plugin uses the [mem0ai](https://www.npmjs.com/package/mem0ai) TypeScript SD
|
||||
|
||||
Automatic capture sends the selected user prompt with its full redacted text, without a per-message character cutoff. It does not capture every prompt or the full assistant transcript. These automatic writes use user and project scope, with the session ID in `metadata.session_id`; session-scoped tools use top-level `run_id`. A session-scoped search therefore does not include automatic writes that lack `run_id`.
|
||||
|
||||
## Session handoff
|
||||
|
||||
The plugin can hand off supported native session context into a new Codex task through the shared importer. Handoff requires Python 3.11+ and a locally installed, signed-in Codex CLI. See [session handoff](/integrations/session-handoff) for commands, transferred content, and recovery.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
- **No tools appearing**: Restart OpenCode after installing
|
||||
|
||||
@@ -5,7 +5,7 @@ description: "Add persistent memory to Pi Agent with the Mem0 plugin, semantic s
|
||||
|
||||
Add persistent memory to [**Pi Agent**](https://pi.dev) with `@mem0/pi-agent-plugin`. Your agent forgets everything between sessions. This plugin fixes that by automatically capturing knowledge from conversations, storing it in Mem0's cloud memory layer, and retrieving relevant context before every response.
|
||||
|
||||
<Info>Current package version: `0.4.0`.</Info>
|
||||
<Info>Current package version: `0.3.2`.</Info>
|
||||
|
||||
## Overview
|
||||
|
||||
@@ -144,10 +144,6 @@ You: What do you know about my preferences?
|
||||
# Pi retrieves stored memories, no re-explaining needed
|
||||
```
|
||||
|
||||
## Session handoff
|
||||
|
||||
The plugin can hand off supported native session context into a new Codex task through the shared importer. Handoff requires Python 3.11+ and a locally installed, signed-in Codex CLI. See [session handoff](/integrations/session-handoff) for commands, transferred content, and recovery.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
- **"No API key found"**: Verify `MEM0_API_KEY` is set: `echo $MEM0_API_KEY`. If empty, add it to your shell profile (see Prerequisites)
|
||||
|
||||
@@ -1,83 +0,0 @@
|
||||
---
|
||||
title: Session handoff
|
||||
description: "Continue a coding-agent session in Codex using Mem0's shared handoff runtime."
|
||||
icon: arrow-right-arrow-left
|
||||
---
|
||||
|
||||
Session handoff creates a normal Codex task from a coding agent's saved conversation. It preserves the title, project, and supported active context, including readable compaction summaries and completed tool history. It runs only when you request it.
|
||||
|
||||
All ten Mem0 plugin packages use the same handoff engine. Host adapters read native session state and pass it to a common converter, validator, and Codex importer. The transfer does not reconstruct the session from memories or ask a model to write a new handoff summary.
|
||||
|
||||
## Requirements
|
||||
|
||||
- Python 3.11 or newer available as `python3`.
|
||||
- Codex CLI installed, signed in, and available as `codex` on the same machine. Its app-server must support native external-session import and thread compaction. Open Codex once so its configuration and model metadata exist.
|
||||
- The source conversation and its project directory available locally.
|
||||
- Pi handoff requires Node.js 22.19 or newer, matching the native Pi SDK requirement.
|
||||
|
||||
The handoff runtime does not call Mem0 or use its API key. Memory features and host installation may still require their normal configuration. Handoff is separate from automatic memory capture.
|
||||
|
||||
## Commands
|
||||
|
||||
| Plugin | Entry point | Source |
|
||||
| --- | --- | --- |
|
||||
| Claude Code | `/mem0:handoff codex` | Current Claude session, read before the command's model invocation |
|
||||
| OpenCode | `/mem0-handoff codex` | Current session through the native session API |
|
||||
| Pi Agent | `/mem0-handoff codex` | Current session's active branch and native compaction context |
|
||||
| OpenClaw | `/mem0-handoff codex` | Current session's native transcript |
|
||||
| DeepSeek Harness | Explicitly request `mem0_handoff` | Current session's native derived messages |
|
||||
| Cursor, Codex, Kimi, Antigravity | Invoke the `handoff` skill with a completed native transcript path | The explicitly selected native conversation |
|
||||
| Portable Agent Plugins | Invoke the `handoff` skill with a source host and completed transcript, or a handoff bundle | Any supported source format |
|
||||
|
||||
The result includes the new task ID, title, and project. Open Codex and select that task. Handoff does not submit a new prompt or continue the task automatically.
|
||||
|
||||
Native tools exclude their own handoff invocation when its ID is available. Other unfinished calls still cause an error. For skills that run through a shell tool, use a completed transcript or exported bundle: reading that host's live transcript from its own tool loop can include the still-running shell call. Do not retry repeatedly or remove unrelated unfinished calls to force an import.
|
||||
|
||||
## Source formats and limits
|
||||
|
||||
- **Claude Code:** local JSONL, active parent chain, readable compaction summary, supported attachments and images. Session IDs are resolved under `~/.claude/projects/`.
|
||||
- **Codex:** readable rollout response items and replacement compaction history. Opaque compaction state cannot be transferred and causes an error.
|
||||
- **Cursor:** JSONL records with user/assistant roles and structured `message.content` (text, tool calls, and results). Missing tool results or unsupported records cause an error.
|
||||
- **Kimi:** native v2 wire events replayed into the active readable context.
|
||||
- **Antigravity:** completed `USER_INPUT` and `PLANNER_RESPONSE` text steps. Other trajectory step types require a supported context export and cause an error.
|
||||
- **Pi and OpenClaw:** active message branch and readable compaction context. Pi uses the native session manager's selected leaf, including branch navigation.
|
||||
- **OpenCode and DeepSeek:** the host's active session context, normalized by the shared TypeScript adapter.
|
||||
|
||||
Source formats evolve with their hosts. A format the plugin cannot represent safely fails explicitly; the importer does not silently shorten the conversation or fall back to a memory search. The portable bundle also accepts the common handoff format for hosts that can export their own context.
|
||||
|
||||
## What transfers
|
||||
|
||||
- User and assistant text, completed tool calls and results, and supported images.
|
||||
- The source's readable compaction summary and supported active history after it.
|
||||
- The session title and project. Git projects open at their repository root; an explicit directory override selects that directory.
|
||||
|
||||
Hidden reasoning and host-only control records do not transfer. Tool calls and results become visible tagged text because Codex's external importer cannot recreate every host's native tool events. Images are saved as private local assets under the selected Codex home.
|
||||
|
||||
If the imported state exceeds Codex's automatic-compaction limit, Codex compacts it before reporting success. That step invokes Codex's configured model. Smaller imports do not ask a model to summarize the conversation. Transcripts are transferred without the memory pipeline's secret redaction, so review the source before handing it off; the imported context is available to Codex and its model when compacting or continuing.
|
||||
|
||||
## Recovery and manual use
|
||||
|
||||
Incomplete JSONL, unmatched tool calls or results, unsupported model-visible records, and missing project directories cause a failure instead of silent data loss. For context too large for Codex to compact, compact in the source host and retry if it provides a readable summary.
|
||||
|
||||
If task creation fails after conversion, a private reusable bundle is saved under `~/.mem0/handoffs/`. The error reports its path. Check Codex for an already-created task before retrying an import that failed during naming or compaction.
|
||||
|
||||
Native Python and portable plugins ship `core/session_handoff.py`. TypeScript packages ship `dist/session_handoff.py`. From the installed plugin directory, use the relevant path:
|
||||
|
||||
```bash
|
||||
# Preview a native transcript without creating a task.
|
||||
python3 core/session_handoff.py --source codex --session /absolute/path/to/rollout.jsonl
|
||||
|
||||
# Create a task from an explicit completed native transcript.
|
||||
python3 core/session_handoff.py --source kimi --session /absolute/path/to/wire.jsonl --create --command-output
|
||||
|
||||
# Retry a saved bundle.
|
||||
python3 core/session_handoff.py --bundle /absolute/path/to/handoff.json --create --command-output
|
||||
```
|
||||
|
||||
Use `--title "Session title"` when the transcript does not include a title, and `--cwd /existing/project` when it does not include a directory (such as Cursor and Antigravity exports). DeepSeek handoff must run as a direct tool call; a nested code-mode call still has an unfinished enclosing program.
|
||||
|
||||
The importer also accepts `--export /path/to/bundle.json`, `--cwd /existing/project`, `--codex-home /path/to/codex-home`, and `--codex-bin /path/to/codex`. Exported bundles contain the transferred conversation; keep them private. The original `claude_to_codex.py` entry point remains available for explicit Claude imports.
|
||||
|
||||
Codex currently requires a temporary import file under `~/.claude/projects/`, even for normalized context from another host. The plugin removes that staging file after the import attempt. `--claude-projects-dir` changes Claude source lookup, not this native staging location.
|
||||
|
||||
The destination is Codex. Importing into other hosts, round trips between existing sessions, and background synchronization are not implemented.
|
||||
Reference in New Issue
Block a user