- Remove userConfig from .claude-plugin/plugin.json — OAuth flow handles
auth via mcp.mem0.ai, userConfig prompt was redundant and confusing
- Add ensure_deps.sh to install mem0ai SDK into persistent plugin venv
- Add requirements.txt (mem0ai) for dependency tracking
- Wire SessionStart hook to auto-install deps on first run
- Update setup_coding_categories.py to find venv site-packages
- Update onboarding SKILL.md with venv-aware install steps
userConfig was missing required `type` and `title` fields per Claude Code
plugin docs — value was never collected, so ${user_config.MEM0_API_KEY}
could not resolve. Added both fields. Restored .mcp.json to use
${user_config.MEM0_API_KEY} for the MCP server Authorization header.
This completes the fix for #4876: plugin now prompts for API key at
install, stores in keychain, and MCP server reads it via user_config
interpolation — no shell env var needed.
- on_pre_compact.py and capture_compact_summary.py now read cwd from
hook stdin and pass it to resolve_project_id/resolve_branch (monorepo safe)
- 5 new tests verify all write functions use app_id top-level and never
put project_id in metadata
- plugin.json declares userConfig.MEM0_API_KEY so Claude Code prompts
for the key at install time (sensitive, stored in system keychain)