memorix 0.6.5 → 0.7.1
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/CHANGELOG.md +35 -0
- package/README.md +52 -21
- package/dist/cli/index.js +576 -16
- package/dist/cli/index.js.map +1 -1
- package/dist/dashboard/static/app.js +93 -22
- package/dist/dashboard/static/style.css +19 -3
- package/dist/index.js +576 -16
- package/dist/index.js.map +1 -1
- package/package.json +10 -9
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,41 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [0.7.1] — 2026-02-22
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
- **Dashboard checkbox checkmark not visible** — Added `position: relative/absolute` to `.obs-checkbox::after` so the ✓ renders correctly in batch select mode
|
|
9
|
+
- **Embedding provider status flickers to "fulltext only"** — Replaced `initialized` boolean flag with a shared Promise lock; concurrent callers now wait for the same initialization instead of seeing `provider = null` mid-load
|
|
10
|
+
- **`memorix_dashboard` MCP tool reliability** — Replaced fixed 800ms wait with TCP port polling (up to 5s) so the tool only returns after the HTTP server is actually listening
|
|
11
|
+
- **Dashboard embedding status always shows "fulltext only"** — Fixed root cause: dashboard is an independent process, `isEmbeddingEnabled()` from orama-store always returns false there; now uses `provider !== null` directly
|
|
12
|
+
|
|
13
|
+
## [0.7.0] — 2026-02-21
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
- **Memory-Driven Skills Engine** (`memorix_skills` MCP tool):
|
|
17
|
+
- `list` — Discover all `SKILL.md` files across 7 agent directories
|
|
18
|
+
- `generate` — Auto-generate project-specific skills from observation patterns (gotchas, decisions, how-it-works)
|
|
19
|
+
- `inject` — Return full skill content directly to agent context
|
|
20
|
+
- Intelligent scoring: requires skill-worthy observation types, not just volume
|
|
21
|
+
- Write to any target agent with `write: true, target: "<agent>"`
|
|
22
|
+
- **Transformers.js Embedding Provider**:
|
|
23
|
+
- Pure JavaScript fallback (`@huggingface/transformers`) — no native deps required
|
|
24
|
+
- Provider chain: `fastembed` → `transformers.js` → fulltext-only
|
|
25
|
+
- Quantized model (`q8`) for small footprint
|
|
26
|
+
- **Dashboard Enhancements**:
|
|
27
|
+
- Canvas donut chart for observation type distribution
|
|
28
|
+
- Embedding provider status card (enabled/provider/dimensions)
|
|
29
|
+
- Search result highlighting with `<mark>` tags
|
|
30
|
+
- **17 new tests** for Skills Engine (list, generate, inject, write, scoring, dedup)
|
|
31
|
+
|
|
32
|
+
### Changed
|
|
33
|
+
- Scoring algorithm requires at least 1 skill-worthy type (gotcha/decision/how-it-works/problem-solution/trade-off) — pure discovery/what-changed entities won't generate skills
|
|
34
|
+
- Volume bonus reduced from 2×obs to 1×obs (capped at 5) to favor quality over quantity
|
|
35
|
+
- Type diversity bonus increased from 2 to 3 points per unique skill-worthy type
|
|
36
|
+
|
|
37
|
+
### Fixed
|
|
38
|
+
- 422 tests passing (up from 405), 34 test files, zero regressions
|
|
39
|
+
|
|
5
40
|
## [0.5.0] — 2026-02-15
|
|
6
41
|
|
|
7
42
|
### Added
|
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
<a href="https://www.npmjs.com/package/memorix"><img src="https://img.shields.io/npm/dm/memorix.svg?style=flat-square&color=blue" alt="npm downloads"></a>
|
|
8
8
|
<a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache%202.0-green.svg?style=flat-square" alt="License"></a>
|
|
9
9
|
<a href="https://github.com/AVIDS2/memorix"><img src="https://img.shields.io/github/stars/AVIDS2/memorix?style=flat-square&color=yellow" alt="GitHub stars"></a>
|
|
10
|
-
<img src="https://img.shields.io/badge/tests-
|
|
10
|
+
<img src="https://img.shields.io/badge/tests-422%20passed-brightgreen?style=flat-square" alt="Tests">
|
|
11
11
|
</p>
|
|
12
12
|
<p align="center">
|
|
13
13
|
<a href="#-quick-start">Quick Start</a> •
|
|
@@ -28,11 +28,8 @@
|
|
|
28
28
|
|
|
29
29
|
## ⚡ Quick Start
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
One config line. Seven agents. Zero context loss.
|
|
32
32
|
|
|
33
|
-
Add Memorix to your agent's MCP config — **that's it**. No global install needed.
|
|
34
|
-
|
|
35
|
-
**Windsurf** → `~/.codeium/windsurf/mcp_config.json`
|
|
36
33
|
```json
|
|
37
34
|
{
|
|
38
35
|
"mcpServers": {
|
|
@@ -44,17 +41,9 @@ Add Memorix to your agent's MCP config — **that's it**. No global install need
|
|
|
44
41
|
}
|
|
45
42
|
```
|
|
46
43
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
> 💡 More agent configs: [Cursor](#cursor) • [Claude Code](#claude-code) • [Codex](#codex) • [VS Code Copilot](#vs-code-copilot) • [Antigravity](#antigravity) • [Kiro](#kiro)
|
|
50
|
-
|
|
51
|
-
### Or Install Globally
|
|
52
|
-
|
|
53
|
-
```bash
|
|
54
|
-
npm install -g memorix
|
|
55
|
-
```
|
|
44
|
+
Add this to your agent's MCP config, restart — done. 🎉
|
|
56
45
|
|
|
57
|
-
|
|
46
|
+
> 💡 Agent-specific config paths: [Windsurf](#windsurf) • [Cursor](#cursor) • [Claude Code](#claude-code) • [Codex](#codex) • [VS Code Copilot](#vs-code-copilot) • [Antigravity](#antigravity) • [Kiro](#kiro)
|
|
58
47
|
|
|
59
48
|
---
|
|
60
49
|
|
|
@@ -97,6 +86,7 @@ Then use `"command": "memorix"` instead of `"command": "npx"` in your config.
|
|
|
97
86
|
- **MCP Config Migration** — Detect and migrate MCP server configs (merges — never overwrites)
|
|
98
87
|
- **Rules Sync** — Scan → Deduplicate → Conflict detection → Cross-format generation
|
|
99
88
|
- **Skills & Workflows** — Copy skill folders and workflow files across agents
|
|
89
|
+
- **Memory-Driven Skills** — `memorix_skills` auto-generates project-specific `SKILL.md` from observation patterns (gotchas, decisions, how-it-works)
|
|
100
90
|
- **Apply with Safety** — Backup `.bak` → Atomic write → Auto-rollback on failure
|
|
101
91
|
|
|
102
92
|
### 🔒 Project Isolation
|
|
@@ -112,8 +102,11 @@ Then use `"command": "memorix"` instead of `"command": "npx"` in your config.
|
|
|
112
102
|
- **Web Dashboard** — `memorix_dashboard` opens a beautiful web UI at `http://localhost:3210`
|
|
113
103
|
- **Project Switcher** — Dropdown to view any project's data without switching IDEs
|
|
114
104
|
- **Knowledge Graph** — Interactive visualization of entities and relations
|
|
105
|
+
- **Type Distribution Chart** — Canvas donut chart showing observation type breakdown
|
|
106
|
+
- **Embedding Status** — Real-time display of vector search provider status (enabled/provider/dimensions)
|
|
115
107
|
- **Retention Scores** — Exponential decay scoring with immunity status
|
|
116
|
-
- **Observation Management** — Expand/collapse details, search
|
|
108
|
+
- **Observation Management** — Expand/collapse details, **search with text highlighting**, delete with confirmation, data export
|
|
109
|
+
- **Batch Cleanup** — Auto-detect and bulk-delete low-quality observations
|
|
117
110
|
- **Light/Dark Theme** — Premium glassmorphism design, bilingual (EN/中文)
|
|
118
111
|
|
|
119
112
|
### 🪝 Auto-Memory Hooks
|
|
@@ -139,6 +132,32 @@ Session 2: New chat, same project
|
|
|
139
132
|
|
|
140
133
|
## 🔧 Agent Configuration
|
|
141
134
|
|
|
135
|
+
### Windsurf
|
|
136
|
+
|
|
137
|
+
`~/.codeium/windsurf/mcp_config.json`:
|
|
138
|
+
```json
|
|
139
|
+
{
|
|
140
|
+
"mcpServers": {
|
|
141
|
+
"memorix": {
|
|
142
|
+
"command": "npx",
|
|
143
|
+
"args": ["-y", "memorix@latest", "serve"]
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
> **Timeout troubleshooting** — If you see `MCP server initialization timed out after 60 seconds`, add `--cwd` to force the project root:
|
|
150
|
+
> ```json
|
|
151
|
+
> {
|
|
152
|
+
> "mcpServers": {
|
|
153
|
+
> "memorix": {
|
|
154
|
+
> "command": "npx",
|
|
155
|
+
> "args": ["-y", "memorix@latest", "serve", "--cwd", "<your-project-path>"]
|
|
156
|
+
> }
|
|
157
|
+
> }
|
|
158
|
+
> }
|
|
159
|
+
> ```
|
|
160
|
+
|
|
142
161
|
### Cursor
|
|
143
162
|
|
|
144
163
|
`.cursor/mcp.json`:
|
|
@@ -327,15 +346,26 @@ Files: ["src/auth/jwt.ts", "src/config.ts"]
|
|
|
327
346
|
|
|
328
347
|
## 🔮 Optional: Vector Search
|
|
329
348
|
|
|
330
|
-
|
|
349
|
+
Memorix supports **hybrid search** (BM25 + semantic vectors) with a provider priority chain:
|
|
350
|
+
|
|
351
|
+
| Priority | Provider | How to Enable | Notes |
|
|
352
|
+
|----------|----------|---------------|-------|
|
|
353
|
+
| 1st | `fastembed` | `npm install -g fastembed` | Fastest, native ONNX bindings |
|
|
354
|
+
| 2nd | `transformers.js` | `npm install -g @huggingface/transformers` | Pure JS/WASM, cross-platform |
|
|
355
|
+
| Fallback | Full-text (BM25) | Always available | Already very effective for code |
|
|
331
356
|
|
|
332
357
|
```bash
|
|
358
|
+
# Option A: Native speed (recommended if it installs cleanly)
|
|
333
359
|
npm install -g fastembed
|
|
360
|
+
|
|
361
|
+
# Option B: Universal compatibility (works everywhere, no native deps)
|
|
362
|
+
npm install -g @huggingface/transformers
|
|
334
363
|
```
|
|
335
364
|
|
|
336
|
-
- **Without
|
|
337
|
-
- **With
|
|
338
|
-
-
|
|
365
|
+
- **Without either** — BM25 full-text search works great out of the box
|
|
366
|
+
- **With any provider** — Queries like "authentication" also match "login flow" via semantic similarity
|
|
367
|
+
- Both run **locally** — zero API calls, zero privacy risk, zero cost
|
|
368
|
+
- The dashboard shows which provider is active in real-time
|
|
339
369
|
|
|
340
370
|
---
|
|
341
371
|
|
|
@@ -379,7 +409,8 @@ src/
|
|
|
379
409
|
├── memory/ # Graph, observations, retention, entity extraction
|
|
380
410
|
├── store/ # Orama search engine + disk persistence
|
|
381
411
|
├── compact/ # 3-layer Progressive Disclosure engine
|
|
382
|
-
├── embedding/ #
|
|
412
|
+
├── embedding/ # Vector providers (fastembed → transformers.js → fallback)
|
|
413
|
+
├── skills/ # Memory-driven project skills engine (list → generate → inject)
|
|
383
414
|
├── hooks/ # Auto-memory hooks (normalizer + pattern detector)
|
|
384
415
|
├── workspace/ # Cross-agent MCP/workflow/skills sync
|
|
385
416
|
├── rules/ # Cross-agent rules sync (7 adapters)
|