memory-pulse-mcp-server 0.1.15 → 0.1.17
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.
- package/README.md +72 -32
- package/dist/index.js +1204 -156
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/prisma/schema.prisma +36 -0
package/README.md
CHANGED
|
@@ -14,6 +14,33 @@
|
|
|
14
14
|
|
|
15
15
|
---
|
|
16
16
|
|
|
17
|
+
## What's New
|
|
18
|
+
|
|
19
|
+
### v0.1.16 - Smart Retrieval with Auto-Degradation
|
|
20
|
+
|
|
21
|
+
This release introduces a major upgrade to the retrieval engine. **Memory Pulse now guarantees you always get results** -- even when your query keywords don't exactly match stored content.
|
|
22
|
+
|
|
23
|
+
**Multi-Dimension Search** -- Searches across 5 dimensions simultaneously: `projectId`, `summary`, `fullText`, `tags`, and `keywords`. Any keyword matching any dimension counts as a hit.
|
|
24
|
+
|
|
25
|
+
**Smart Auto-Degradation** -- When no results are found, the engine automatically relaxes search conditions in two stages:
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
Stage 1: Query matches nothing?
|
|
29
|
+
-> Remove keywords, return latest memories for the project
|
|
30
|
+
|
|
31
|
+
Stage 2: Still nothing?
|
|
32
|
+
-> Remove project filter, search globally
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
This means `mpulse_recall` with a `projectId` will **never return empty** as long as that project has any memories stored -- no matter what query you use.
|
|
36
|
+
|
|
37
|
+
**Other improvements:**
|
|
38
|
+
- Auto-relationship building: new memories automatically link to related existing memories
|
|
39
|
+
- Improved PostgreSQL storage: `multiDimensionSearch` replaces legacy search methods
|
|
40
|
+
- Fixed `storeSolution` tags handling for PostgreSQL
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
17
44
|
## Why Memory Pulse?
|
|
18
45
|
|
|
19
46
|
### The Problem with Existing AI Memory Solutions
|
|
@@ -30,26 +57,31 @@
|
|
|
30
57
|
| Feature | Memory Pulse | mem0 | Zep | LangChain Memory |
|
|
31
58
|
|---------|-------------|------|-----|------------------|
|
|
32
59
|
| **Storage** | Full context (no compression) | Vector embeddings | Vector + Graph | Vector embeddings |
|
|
33
|
-
| **Retrieval
|
|
60
|
+
| **Retrieval** | Multi-dimension + auto-degradation | Semantic only | Semantic + Temporal | Semantic only |
|
|
61
|
+
| **Never Empty Recall** | Yes (auto-degradation) | No | No | No |
|
|
34
62
|
| **Decision Tracking** | Forced structured fields | - | - | - |
|
|
63
|
+
| **Auto-Relationships** | Built-in | - | - | - |
|
|
35
64
|
| **Relationship Graph** | Built-in | - | Built-in | - |
|
|
36
65
|
| **Timeline View** | Built-in | - | Built-in | - |
|
|
37
66
|
| **MCP Native** | Yes | - | - | - |
|
|
38
|
-
| **Local-first** | SQLite | Cloud-dependent | Cloud-dependent | Varies |
|
|
67
|
+
| **Local-first** | SQLite + PostgreSQL | Cloud-dependent | Cloud-dependent | Varies |
|
|
39
68
|
| **Zero Config** | Yes | - | - | - |
|
|
40
69
|
|
|
41
70
|
---
|
|
42
71
|
|
|
43
72
|
## Features
|
|
44
73
|
|
|
74
|
+
- **Always Gets Results** - Smart auto-degradation ensures you never get empty recalls
|
|
75
|
+
- **Multi-Dimension Search** - Searches across projectId, summary, fullText, tags, and keywords simultaneously
|
|
45
76
|
- **Complete Context Preservation** - No compression, no information loss
|
|
46
|
-
- **Multi-level Retrieval** - L1 Exact match → L2 Full-text search → L3 Semantic search
|
|
47
77
|
- **Structured Memory Types** - Decision / Solution / Session / Code / Error / Config
|
|
78
|
+
- **Auto-Relationship Building** - New memories automatically link to related existing ones
|
|
48
79
|
- **Relationship Chains** - Track how memories relate and evolve
|
|
49
80
|
- **Timeline View** - See memory evolution over time
|
|
50
81
|
- **Forced Structure** - AI must provide complete context (no lazy summaries)
|
|
51
|
-
- **Local-first** - SQLite storage, your data stays with you
|
|
52
|
-
- **
|
|
82
|
+
- **Local-first** - SQLite storage by default, your data stays with you
|
|
83
|
+
- **PostgreSQL Support** - Scale to cloud for team usage
|
|
84
|
+
- **Zero Config** - Works out of the box with `npx`
|
|
53
85
|
|
|
54
86
|
---
|
|
55
87
|
|
|
@@ -337,38 +369,45 @@ Relationships:
|
|
|
337
369
|
|
|
338
370
|
## Retrieval Algorithm
|
|
339
371
|
|
|
340
|
-
Memory Pulse uses a **
|
|
372
|
+
Memory Pulse uses a **multi-dimension search with smart auto-degradation**:
|
|
341
373
|
|
|
342
374
|
```
|
|
343
|
-
|
|
344
|
-
│
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
│ -
|
|
350
|
-
│
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
│ -
|
|
357
|
-
│
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
│ -
|
|
363
|
-
│
|
|
364
|
-
|
|
375
|
+
┌──────────────────────────────────────────────────────┐
|
|
376
|
+
│ User Query │
|
|
377
|
+
│ (query + projectId + filters) │
|
|
378
|
+
└──────────────────────┬───────────────────────────────┘
|
|
379
|
+
▼
|
|
380
|
+
┌──────────────────────────────────────────────────────┐
|
|
381
|
+
│ Multi-Dimension Search (< 100ms) │
|
|
382
|
+
│ Searches 5 dimensions simultaneously: │
|
|
383
|
+
│ projectId | summary | fullText | tags | keywords │
|
|
384
|
+
│ Any keyword matching any dimension = hit │
|
|
385
|
+
└──────────────────────┬───────────────────────────────┘
|
|
386
|
+
▼ (if 0 results)
|
|
387
|
+
┌──────────────────────────────────────────────────────┐
|
|
388
|
+
│ Auto-Degradation Stage 1 │
|
|
389
|
+
│ Remove query keywords, keep projectId │
|
|
390
|
+
│ -> Returns latest memories for the project │
|
|
391
|
+
└──────────────────────┬───────────────────────────────┘
|
|
392
|
+
▼ (if still 0 results)
|
|
393
|
+
┌──────────────────────────────────────────────────────┐
|
|
394
|
+
│ Auto-Degradation Stage 2 │
|
|
395
|
+
│ Remove projectId filter, search globally │
|
|
396
|
+
│ -> Returns latest memories across all projects │
|
|
397
|
+
└──────────────────────┬───────────────────────────────┘
|
|
398
|
+
▼ (optional, if vector available)
|
|
399
|
+
┌──────────────────────────────────────────────────────┐
|
|
400
|
+
│ Semantic Search Fallback │
|
|
401
|
+
│ Embedding similarity for fuzzy matching │
|
|
402
|
+
└──────────────────────────────────────────────────────┘
|
|
365
403
|
```
|
|
366
404
|
|
|
367
405
|
**Why this approach?**
|
|
368
406
|
|
|
369
|
-
- **
|
|
370
|
-
- **
|
|
371
|
-
- **
|
|
407
|
+
- **Never empty**: Smart degradation guarantees results when memories exist
|
|
408
|
+
- **Precision first**: Multi-dimension exact matching before relaxing conditions
|
|
409
|
+
- **Graceful fallback**: Progressively broader search, not a sudden jump to fuzzy matching
|
|
410
|
+
- **Works with any language**: No tokenizer dependency, LIKE-based matching works with Chinese, English, and mixed content
|
|
372
411
|
|
|
373
412
|
---
|
|
374
413
|
|
|
@@ -415,8 +454,9 @@ Features:
|
|
|
415
454
|
- [x] MCP Server core functionality
|
|
416
455
|
- [x] SQLite local storage
|
|
417
456
|
- [x] PostgreSQL cloud support
|
|
418
|
-
- [x] Multi-
|
|
457
|
+
- [x] Multi-dimension retrieval with smart auto-degradation
|
|
419
458
|
- [x] Decision/Solution/Session structured storage
|
|
459
|
+
- [x] Auto-relationship building between memories
|
|
420
460
|
- [x] Web Dashboard for visualization
|
|
421
461
|
- [ ] CLI tool for manual operations
|
|
422
462
|
- [ ] Semantic search (Embedding)
|