Files
claude-mem/openclaw/openclaw.plugin.json
T
Alex Newman a3b161f8c8 chore: bump version to 12.6.0
Minor release: 17 issues fixed and 4 foundations introduced via PR #2282.

Foundations (new public modules):
- F1 spawnHidden wrapper (src/shared/spawn.ts) — windowsHide default
- F2 paths namespace (src/shared/paths.ts) — 24 hardcoded sites collapsed,
  CLAUDE_MEM_DATA_DIR flows 100% of runtime
- F3 getUptimeSeconds (src/shared/uptime.ts) — fixes ms-bug at Server.ts:165
- F4 ClassifiedProviderError (src/services/worker/provider-errors.ts) — kind
  union (transient/unrecoverable/rate_limit/quota_exhausted/auth_invalid),
  per-provider classifiers, unrecoverablePatterns allowlist deleted

User-facing capabilities:
- OAuth keychain reader (#2215): readClaudeOAuthToken() reads from
  macOS keychain, Windows DPAPI, Linux libsecret at worker spawn-time
- Quota-aware wall-clock guard (#2234): RateLimitStore with auth-type gate
  (api_key never aborts; cli/oauth aborts at per-window thresholds);
  rateLimits surfaced on /api/health
- withRetry helper (#2254): honors ClassifiedProviderError.kind, exponential
  backoff with jitter, request-id capture for dedup logging

Bug fixes also landing in 12.6.0:
#2188 stdin fallback, #2196 ANTHROPIC_BASE_URL docs, #2220 chroma CPU storm,
#2225 opencode _zod.def crash, #2231 SECURITY.md, #2233 parser fence (Part A),
#2236 observer visible windows, #2237/#2238 hardcoded paths, #2240 Chroma
dedupe, #2242 check-pending-queue endpoints, #2243 scripts/package.json,
#2244 summaryStored=null, #2247 Codex task_complete, #2248 Cursor sessions,
#2250 health uptime ms, #2253 chroma macOS CPU.

Tests: 1454 pass / 77 fail (matches main baseline, zero net regressions).
All CI green: build, CodeRabbit (17 rounds resolved), Greptile (clean).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-03 22:48:11 -07:00

98 lines
3.8 KiB
JSON

{
"id": "claude-mem",
"name": "Claude-Mem (Persistent Memory)",
"description": "Official OpenClaw plugin for Claude-Mem. Records observations from embedded runner sessions and streams them to messaging channels.",
"kind": "memory",
"version": "12.6.0",
"author": "thedotmack",
"homepage": "https://claude-mem.com",
"skills": ["skills/make-plan", "skills/do"],
"configSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"syncMemoryFile": {
"type": "boolean",
"default": true,
"description": "Inject observation context into the agent system prompt via before_prompt_build hook. When true, agents receive cross-session context without MEMORY.md being overwritten."
},
"syncMemoryFileExclude": {
"type": "array",
"items": { "type": "string" },
"default": [],
"description": "Agent IDs excluded from automatic context injection (observations are still recorded, only prompt injection is skipped)"
},
"workerPort": {
"type": "number",
"default": 37777,
"description": "Port for Claude-Mem worker service"
},
"workerHost": {
"type": "string",
"default": "127.0.0.1",
"description": "Hostname for Claude-Mem worker service. Set to host.docker.internal when the gateway runs in Docker and the worker runs on the host."
},
"project": {
"type": "string",
"default": "openclaw",
"description": "Project name for scoping observations in the memory database"
},
"observationFeed": {
"type": "object",
"description": "Live observation feed — streams observations to any OpenClaw channel in real-time",
"properties": {
"enabled": {
"type": "boolean",
"default": false,
"description": "Enable live observation feed to messaging channels"
},
"channel": {
"type": "string",
"description": "Channel type: telegram, discord, signal, slack, whatsapp, line"
},
"to": {
"type": "string",
"description": "Target chat/user ID to send observations to"
},
"botToken": {
"type": "string",
"description": "Optional dedicated Telegram bot token for the feed (bypasses gateway channel)"
},
"emojis": {
"type": "object",
"description": "Emoji personalization for the observation feed. Each agent gets a unique emoji automatically — customize here to override.",
"properties": {
"primary": {
"type": "string",
"default": "🦞",
"description": "Emoji for the main OpenClaw gateway (project='openclaw')"
},
"claudeCode": {
"type": "string",
"default": "⌨️",
"description": "Emoji for Claude Code sessions (non-OpenClaw)"
},
"claudeCodeLabel": {
"type": "string",
"default": "Claude Code Session",
"description": "Display label prefix for Claude Code sessions in the feed (project identifier is appended automatically)"
},
"default": {
"type": "string",
"default": "🦀",
"description": "Fallback emoji when no match is found"
},
"agents": {
"type": "object",
"default": {},
"description": "Pin specific emojis to agent IDs (e.g. {\"devops\": \"🔧\"}). Agents not listed here get auto-assigned emojis.",
"additionalProperties": { "type": "string" }
}
}
}
}
}
}
}
}