a3b161f8c8
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>
98 lines
3.8 KiB
JSON
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" }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|