ff2f6c281a
Root cause: .mcp.json required ${MEM0_API_KEY} shell env var which
OAuth flow never populates — MCP server never started, only auth
stubs were exposed.
Fix: switch .mcp.json to ${user_config.MEM0_API_KEY} so Claude Code
reads the key from plugin userConfig (system keychain). Add
resolve_api_key() fallback chain (MEM0_API_KEY -> CLAUDE_PLUGIN_OPTION_MEM0_API_KEY)
to all hook scripts. Update onboard skill and setup_coding_categories.py
to handle keychain-only users. Add 3 tests for key resolution.
30 lines
878 B
Bash
30 lines
878 B
Bash
# Source this file. Sets MEM0_API_KEY and MEM0_RESOLVED_USER_ID.
|
|
#
|
|
# API key resolution (first non-empty wins):
|
|
# 1. MEM0_API_KEY env var (explicit / shell profile)
|
|
# 2. CLAUDE_PLUGIN_OPTION_MEM0_API_KEY (set by Claude Code userConfig)
|
|
#
|
|
# User ID resolution:
|
|
# 1. MEM0_USER_ID env var (explicit override)
|
|
# 2. $USER, else "default"
|
|
|
|
# Resolve API key from userConfig fallback
|
|
if [ -z "${MEM0_API_KEY:-}" ] && [ -n "${CLAUDE_PLUGIN_OPTION_MEM0_API_KEY:-}" ]; then
|
|
MEM0_API_KEY="$CLAUDE_PLUGIN_OPTION_MEM0_API_KEY"
|
|
export MEM0_API_KEY
|
|
fi
|
|
|
|
_mem0_resolve_identity() {
|
|
if [ -n "${MEM0_USER_ID:-}" ]; then
|
|
printf '%s' "$MEM0_USER_ID"
|
|
return
|
|
fi
|
|
printf '%s' "${USER:-default}"
|
|
}
|
|
|
|
MEM0_RESOLVED_USER_ID="$(_mem0_resolve_identity)"
|
|
export MEM0_RESOLVED_USER_ID
|
|
|
|
# Also resolve project context
|
|
. "$( cd "$(dirname "${BASH_SOURCE[0]:-$0}")" && pwd )/_project.sh"
|