fix(plugin): expire stale state captures + document plugin-update restart
Memory expiration + recency
Hook-side captures (session_state in on_pre_compact.py and
compact_summary in capture_compact_summary.py) now set
expiration_date = today + 90 days. These types describe a single
moment of project state and become stale clutter after a quarter.
Durable types written by the agent (decision, anti_pattern,
convention, user_preference, task_learning, environmental) stay
unexpired by design -- a decision from a year ago is still a
decision.
Skill updated with two new sections:
- "Expiration: high-churn vs durable" -- table mapping each
metadata.type to whether it should carry an expiration_date.
- "Recency filter on recall" -- agent should layer a
created_at >= <90 days ago> filter on recall when the user
asks about *current* state, and skip it when looking for
durable facts.
Plugin-update / MCP reconnect
When the plugin updates, the MCP server connection in the running
client goes stale -- there's no in-process reconnection path from
inside the plugin. Documenting the workaround is the realistic
fix: README now has an "Updating the plugin" section explaining
/restart (Claude Code), quit-and-relaunch (Cursor), restart
(Codex). The auth header re-reads MEM0_API_KEY from the new
shell, so users don't have to re-enter the key.
This commit is contained in:
@@ -157,6 +157,18 @@ After installing, confirm the MCP server is connected:
|
||||
- **Mem0 SDK Skill** — Guides the AI on how to integrate the Mem0 SDK (Python & TypeScript) into your applications.
|
||||
- **Memory Protocol Skill** — Codex-specific skill that instructs the agent to retrieve relevant memories at task start, store learnings on completion, and capture session state before context loss. Complements the lifecycle hooks on Codex.
|
||||
|
||||
## Updating the plugin
|
||||
|
||||
When the plugin updates (new version pulled from the marketplace, or a fresh local install), the MCP server connection in your existing Claude Code / Cursor / Codex session is left holding a stale handle and stops responding. **Restart your client to reconnect:**
|
||||
|
||||
- **Claude Code:** run `/restart` in the prompt, or close and reopen the CLI.
|
||||
- **Cursor:** quit and relaunch.
|
||||
- **Codex:** restart the editor session.
|
||||
|
||||
Your `MEM0_API_KEY` doesn't need to be re-entered — the auth header is re-read from your environment on the new session. The plugin's MCP config uses `${MEM0_API_KEY}` interpolation at session start, not at install time, so as long as the env var is set persistently (in your shell profile or `~/.claude/settings.json` `env` block), reconnection is automatic on restart.
|
||||
|
||||
If reconnection still fails after a restart, check that `MEM0_API_KEY` is reachable in the new shell (`echo $MEM0_API_KEY`) and confirm you're using a key that starts with `m0-` (from https://app.mem0.ai/dashboard/api-keys, not a legacy token).
|
||||
|
||||
## Optional: tune categories for coding workflows
|
||||
|
||||
mem0 auto-tags every memory with one or more `categories` from a project-level list. The default list is consumer-oriented (`food`, `hobbies`, `music` …) — useful for chat assistants, less so for code. A one-shot script in this plugin replaces it with a coding-focused taxonomy:
|
||||
|
||||
Reference in New Issue
Block a user