diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index ec895a4..095a661 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -11,8 +11,8 @@ { "name": "claude-code", "source": "./plugins/claude-code", - "description": "Persistent semantic memory for Claude Code — user preferences, project context, prior decisions, and codebase facts that survive across sessions.", - "version": "0.1.14", + "description": "Persistent semantic memory for Claude Code - user preferences, project context, prior decisions, and codebase facts that survive across sessions.", + "version": "0.1.16", "category": "productivity", "homepage": "https://docs.atomicstrata.ai/integrations/coding-agents/claude-code", "license": "Apache-2.0" diff --git a/plugins/claude-code/.claude-plugin/plugin.json b/plugins/claude-code/.claude-plugin/plugin.json index a0fffae..662beaa 100644 --- a/plugins/claude-code/.claude-plugin/plugin.json +++ b/plugins/claude-code/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "atomicmemory", - "version": "0.1.14", + "version": "0.1.16", "description": "Persistent semantic memory for Claude Code — user preferences, project context, prior decisions, and codebase facts that survive across sessions.", "author": { "name": "AtomicMemory", @@ -11,7 +11,7 @@ "mcpServers": { "atomicmemory": { "command": "npx", - "args": ["-y", "--package=@atomicmemory/mcp-server@^0.1.1", "atomicmemory-mcp"], + "args": ["-y", "--package=@atomicmemory/mcp-server@^0.1.2", "atomicmemory-mcp"], "env": { "ATOMICMEMORY_API_URL": "${ATOMICMEMORY_API_URL:-}", "ATOMICMEMORY_API_KEY": "${ATOMICMEMORY_API_KEY:-}", diff --git a/plugins/claude-code/README.md b/plugins/claude-code/README.md index 2be6777..28e12ae 100644 --- a/plugins/claude-code/README.md +++ b/plugins/claude-code/README.md @@ -123,7 +123,7 @@ claude plugin update claude-code@atomicmemory claude plugin install claude-code@atomicmemory ``` -The plugin spawns `@atomicmemory/mcp-server` from the npm registry via `npx`, so no local build is needed. If you're developing the MCP server itself and want Claude Code to load a local checkout instead, override the manifest's `mcpServers.atomicmemory.command`/`args` in a private settings file rather than editing the published manifest. +The plugin spawns `@atomicmemory/mcp-server` from the npm registry via `npx`, so no local build is needed. If you're developing the MCP server itself and want Claude Code to load a local checkout instead, override the manifest's `mcpServers.atomicmemory.command`/`args` in a local settings file rather than editing the published manifest. If `claude plugin marketplace list` shows `atomicmemory` pointing at an old checkout, replace the marketplace entry from this repo first: @@ -175,7 +175,7 @@ plugins/claude-code/ └── README.md ``` -The plugin spawns [`@atomicmemory/mcp-server`](../../packages/mcp-server) from the npm registry via `npx -y --package=@atomicmemory/mcp-server@^0.1.1 atomicmemory-mcp`, so a `claude plugin install` is self-contained — no local clone or build required. Most semantic memory operations go through the MCP tools. Latency-sensitive prompt retrieval uses `/v1/memories/search/fast` directly, and lifecycle scripts write deterministic records to `/v1/memories/ingest/quick` with `skip_extraction=true` because command hooks cannot talk to Claude Code's already-running stdio MCP child. Hook record content stays clean and human-readable; lifecycle provenance, scope, dedupe keys, session IDs, cwd, transcript paths, tool counts, and validation details are sent separately in request `metadata` and persisted to the memory's `metadata` JSONB column, with `sourceSite` / `sourceUrl` continuing to carry the provider/route identity. +The plugin spawns [`@atomicmemory/mcp-server`](../../packages/mcp-server) from the npm registry via `npx -y --package=@atomicmemory/mcp-server@^0.1.2 atomicmemory-mcp`, so a `claude plugin install` is self-contained — no local clone or build required. Most semantic memory operations go through the MCP tools. Latency-sensitive prompt retrieval uses `/v1/memories/search/fast` directly, and lifecycle scripts write deterministic records to `/v1/memories/ingest/quick` with `skip_extraction=true` because command hooks cannot talk to Claude Code's already-running stdio MCP child. Hook record content stays clean and human-readable; lifecycle provenance, scope, dedupe keys, session IDs, cwd, transcript paths, tool counts, and validation details are sent separately in request `metadata` and persisted to the memory's `metadata` JSONB column, with `sourceSite` / `sourceUrl` continuing to carry the provider/route identity. ## Lifecycle hooks diff --git a/plugins/claude-code/package.json b/plugins/claude-code/package.json index 8277808..79fe465 100644 --- a/plugins/claude-code/package.json +++ b/plugins/claude-code/package.json @@ -1,12 +1,12 @@ { "name": "@atomicmemory/claude-code-plugin", - "version": "0.1.14", + "version": "0.1.16", "description": "AtomicMemory plugin for Claude Code — persistent semantic memory across sessions.", "private": false, "license": "Apache-2.0", "repository": { "type": "git", - "url": "git+https://github.com/atomicstrata/atomicmemory-integrations.git", + "url": "git+https://github.com/atomicstrata/atomicmemory.git", "directory": "plugins/claude-code" }, "files": [ @@ -18,5 +18,9 @@ ], "scripts": { "test": "bash scripts/__tests__/quick-ingest-body.sh && bash scripts/__tests__/load-env-defaults.sh && bash scripts/__tests__/auth-header.sh && bash scripts/__tests__/package-files.sh" - } + }, + "bugs": { + "url": "https://github.com/atomicstrata/atomicmemory/issues" + }, + "homepage": "https://github.com/atomicstrata/atomicmemory/tree/main/plugins/claude-code#readme" } diff --git a/plugins/claude-code/scripts/__tests__/quick-ingest-body.sh b/plugins/claude-code/scripts/__tests__/quick-ingest-body.sh index de497bb..c0328c6 100755 --- a/plugins/claude-code/scripts/__tests__/quick-ingest-body.sh +++ b/plugins/claude-code/scripts/__tests__/quick-ingest-body.sh @@ -12,7 +12,7 @@ # 3. real metadata object → 6-field body with `metadata` deep- # equal to the input # 4. malformed JSON → exits non-zero with a non-empty stderr -# (CLAUDE.md "no fallback values") +# (project rule: no fallback values) # # Runs entirely in-process: no Docker, no curl, no network. # The companion `metadata-roundtrip.sh` script is the optional diff --git a/plugins/claude-code/skills/atomicmemory/SKILL.md b/plugins/claude-code/skills/atomicmemory/SKILL.md index bf6b128..26f5250 100644 --- a/plugins/claude-code/skills/atomicmemory/SKILL.md +++ b/plugins/claude-code/skills/atomicmemory/SKILL.md @@ -32,7 +32,7 @@ Use `mode: "text"` for standalone facts. Use `mode: "messages"` only when the fu ## What NOT to save - Ephemeral task state (current WIP, what file you're editing) -- Facts already documented in CLAUDE.md, README, or recent git commits +- Facts already documented in repository docs, README files, or recent git commits - Anything the user can trivially re-derive from the code - Debugging session scratch