claude-recall 0.12.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,7 +8,7 @@ source: claude-recall
8
8
 
9
9
  # Corrections
10
10
 
11
- Auto-generated from 8 memories. Last updated: 2026-02-14.
11
+ Auto-generated from 9 memories. Last updated: 2026-02-14.
12
12
 
13
13
  ## Rules
14
14
 
@@ -20,6 +20,7 @@ Auto-generated from 8 memories. Last updated: 2026-02-14.
20
20
  - CORRECTION: Memory with complex metadata
21
21
  - CORRECTION: Memory with complex metadata
22
22
  - CORRECTION: Memory with complex metadata
23
+ - CORRECTION: Memory with complex metadata
23
24
 
24
25
  ---
25
26
  *Auto-generated by Claude Recall. Regenerate: `npx claude-recall skills generate`*
@@ -1,9 +1,10 @@
1
1
  {
2
2
  "topicId": "corrections",
3
- "sourceHash": "8577d80a5e9e313faab8aa7bb315162af642d608ef169d52d765fb7c353a9e76",
4
- "memoryCount": 8,
5
- "generatedAt": "2026-02-14T22:29:24.705Z",
3
+ "sourceHash": "e171dc9c703fdef2ac1bc9dcd388b60baa3fc6460739cbc559ea29ad73a085ed",
4
+ "memoryCount": 9,
5
+ "generatedAt": "2026-02-14T22:48:52.571Z",
6
6
  "memoryKeys": [
7
+ "memory_1771109332553_4qyuqzmn2",
7
8
  "memory_1771108164696_89hsume9t",
8
9
  "memory_1771107973416_yavkr0emz",
9
10
  "memory_1771107927302_h8tya387e",
@@ -8,10 +8,15 @@ source: claude-recall
8
8
 
9
9
  # Preferences
10
10
 
11
- Auto-generated from 55 memories. Last updated: 2026-02-14.
11
+ Auto-generated from 60 memories. Last updated: 2026-02-14.
12
12
 
13
13
  ## Rules
14
14
 
15
+ - Session test preference 1771109332627
16
+ - Test preference 1771109332573-2
17
+ - Test preference 1771109332573-1
18
+ - Test preference 1771109332573-0
19
+ - Test memory content
15
20
  - Session test preference 1771108164747
16
21
  - Test preference 1771108164707-2
17
22
  - Test preference 1771108164707-1
@@ -1,9 +1,14 @@
1
1
  {
2
2
  "topicId": "preferences",
3
- "sourceHash": "1856cfef74606f48a659cd8f6fc762bd471d6ad579d225cbae7ae8b66530e9fd",
4
- "memoryCount": 55,
5
- "generatedAt": "2026-02-14T22:29:24.759Z",
3
+ "sourceHash": "ca3b2e2083120ca63dd0f71f44380404830ead6712b13b4cc3df1f7feafb9ed1",
4
+ "memoryCount": 60,
5
+ "generatedAt": "2026-02-14T22:48:52.644Z",
6
6
  "memoryKeys": [
7
+ "memory_1771109332628_j31s9unle",
8
+ "memory_1771109332608_5a130qnjv",
9
+ "memory_1771109332590_smwf7lal5",
10
+ "memory_1771109332575_3kjb9xg1k",
11
+ "memory_1771109332522_y3tm01gva",
7
12
  "memory_1771108164748_43ts7z7qw",
8
13
  "memory_1771108164730_v9reytr47",
9
14
  "memory_1771108164719_zs0x2xtet",
@@ -9,11 +9,12 @@ license: "MIT"
9
9
 
10
10
  Persistent memory system that ensures Claude never repeats mistakes and always applies learned patterns across conversations.
11
11
 
12
- ## 3 Tools
12
+ ## 4 Tools
13
13
 
14
14
  - `mcp__claude-recall__load_rules` - Load all active rules before starting work. No query needed.
15
15
  - `mcp__claude-recall__store_memory` - Store a rule or learning. Immediately active in this conversation.
16
16
  - `mcp__claude-recall__search_memory` - Search memories by keyword. Use to find specific memories before making decisions.
17
+ - `mcp__claude-recall__delete_memory` - Delete a specific memory by ID. Use search_memory first to find the ID.
17
18
 
18
19
  ## When to Use
19
20
 
package/README.md CHANGED
@@ -20,7 +20,7 @@ Your preferences, project structure, workflows, corrections, and coding style ar
20
20
  - **User-Confirmed Storage** — Claude asks for your permission before storing any memory
21
21
  - **Project-Scoped Knowledge** — each project gets its own memory namespace; switch projects and Claude switches memory
22
22
  - **Failure Learning** — captures failures with counterfactual reasoning (what failed, why, what to do instead)
23
- - **Memory Evolution** — tracks agent progression over time across sophistication levels (L1–L4)
23
+ - **Skill Crystallization** — automatically generates `.claude/skills/auto-*/` files when enough memories accumulate, so learned patterns load natively without tool calls
24
24
  - **Zero Cloud Storage** — all memory stored locally, no telemetry, works fully offline
25
25
  - **Process Management** — automatic server lifecycle management with stale process cleanup
26
26
 
@@ -86,14 +86,16 @@ Claude Recall has three layers:
86
86
 
87
87
  Stores and evolves preferences, patterns, decisions, corrections, and failure learnings. Uses WAL mode for concurrency, content-hash deduplication, and automatic compaction.
88
88
 
89
- ### 2. MCP Server (2 tools)
89
+ ### 2. MCP Server (4 tools)
90
90
 
91
- Exposes two tools to Claude Code:
91
+ Exposes four tools to Claude Code:
92
92
 
93
93
  | Tool | Purpose |
94
94
  | ---- | ------- |
95
95
  | `load_rules` | Load all active rules (preferences, corrections, failures, devops) at the start of a task |
96
96
  | `store_memory` | Save new knowledge — preferences, corrections, devops rules, failures |
97
+ | `search_memory` | Search memories by keyword, ranked by relevance |
98
+ | `delete_memory` | Delete a specific memory by ID (use `search_memory` first to find the ID) |
97
99
 
98
100
  ### 3. Native Claude Skill
99
101
 
@@ -122,13 +124,21 @@ npx claude-recall clear --force # Clear all memories
122
124
  ### Analysis
123
125
 
124
126
  ```bash
125
- npx claude-recall evolution # Memory evolution metrics (L1-L4)
126
- npx claude-recall evolution --days 60 # Custom time window
127
127
  npx claude-recall failures # View failure memories
128
128
  npx claude-recall failures --limit 20 # Limit results
129
129
  npx claude-recall monitor # Memory search monitoring stats
130
130
  ```
131
131
 
132
+ ### Auto-Generated Skills
133
+
134
+ ```bash
135
+ npx claude-recall skills generate # Generate skills from accumulated memories
136
+ npx claude-recall skills generate --dry-run # Preview without writing
137
+ npx claude-recall skills generate --force # Regenerate even if unchanged
138
+ npx claude-recall skills list # List generated skills
139
+ npx claude-recall skills clean --force # Remove all auto-generated skills
140
+ ```
141
+
132
142
  ### MCP Server Management
133
143
 
134
144
  ```bash
@@ -145,6 +145,21 @@ class MemoryTools {
145
145
  required: ['query']
146
146
  },
147
147
  handler: this.handleSearchMemory.bind(this)
148
+ },
149
+ {
150
+ name: 'mcp__claude-recall__delete_memory',
151
+ description: 'Delete a specific memory by its ID (key). Use search_memory first to find the ID of the memory to delete.',
152
+ inputSchema: {
153
+ type: 'object',
154
+ properties: {
155
+ id: {
156
+ type: 'string',
157
+ description: 'The memory ID (key) to delete. Get this from search_memory or store_memory results.'
158
+ }
159
+ },
160
+ required: ['id']
161
+ },
162
+ handler: this.handleDeleteMemory.bind(this)
148
163
  }
149
164
  ];
150
165
  }
@@ -313,7 +328,7 @@ class MemoryTools {
313
328
  const val = typeof r.value === 'object'
314
329
  ? (r.value.content || r.value.value || JSON.stringify(r.value))
315
330
  : r.value;
316
- return `- [${r.type}] (score: ${r.score.toFixed(3)}) ${val}`;
331
+ return `- [${r.type}] (id: ${r.key}) ${val}`;
317
332
  });
318
333
  return {
319
334
  results: formatted.length > 0
@@ -329,6 +344,40 @@ class MemoryTools {
329
344
  throw error;
330
345
  }
331
346
  }
347
+ /**
348
+ * Delete a memory by ID
349
+ */
350
+ async handleDeleteMemory(input, context) {
351
+ try {
352
+ const { id } = input;
353
+ if (!id || typeof id !== 'string') {
354
+ throw new Error('Memory ID is required and must be a string');
355
+ }
356
+ const deleted = this.memoryService.delete(id);
357
+ if (deleted) {
358
+ this.logger.info('MemoryTools', 'Memory deleted', {
359
+ id,
360
+ sessionId: context.sessionId
361
+ });
362
+ return {
363
+ success: true,
364
+ id,
365
+ message: `Memory "${id}" deleted.`
366
+ };
367
+ }
368
+ else {
369
+ return {
370
+ success: false,
371
+ id,
372
+ message: `Memory "${id}" not found.`
373
+ };
374
+ }
375
+ }
376
+ catch (error) {
377
+ this.logger.error('MemoryTools', 'Failed to delete memory', error);
378
+ throw error;
379
+ }
380
+ }
332
381
  getTools() {
333
382
  return this.tools;
334
383
  }
@@ -259,6 +259,12 @@ class MemoryStorage {
259
259
  const rows = stmt.all(...params);
260
260
  return rows.map(row => this.rowToMemory(row));
261
261
  }
262
+ deleteByKey(key) {
263
+ const stmt = this.db.prepare('DELETE FROM memories WHERE key = ?');
264
+ const result = stmt.run(key);
265
+ this.db.pragma('wal_checkpoint(TRUNCATE)');
266
+ return result.changes > 0;
267
+ }
262
268
  clear(type) {
263
269
  let stmt;
264
270
  let result;
@@ -162,6 +162,23 @@ class MemoryService {
162
162
  relevanceScore: 1.0
163
163
  });
164
164
  }
165
+ /**
166
+ * Delete a single memory by key
167
+ */
168
+ delete(key) {
169
+ try {
170
+ const deleted = this.storage.deleteByKey(key);
171
+ this.logger.logMemoryOperation('DELETE', {
172
+ key,
173
+ deleted
174
+ });
175
+ return deleted;
176
+ }
177
+ catch (error) {
178
+ this.logger.logServiceError('MemoryService', 'delete', error, { key });
179
+ throw error;
180
+ }
181
+ }
165
182
  /**
166
183
  * Clear memories
167
184
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-recall",
3
- "version": "0.12.0",
3
+ "version": "0.13.0",
4
4
  "description": "Persistent memory for Claude Code with native Skills integration, automatic capture, failure learning, and project scoping via MCP server",
5
5
  "main": "dist/index.js",
6
6
  "bin": {