@pcircle/memesh 4.6.0 → 4.6.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/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/AGENTS.md +21 -0
- package/README.de.md +12 -13
- package/README.md +12 -14
- package/README.zh-TW.md +12 -13
- package/dashboard/dist/index.html +14 -13
- package/dist/core/analytics.d.ts +9 -0
- package/dist/core/analytics.d.ts.map +1 -1
- package/dist/core/analytics.js +36 -18
- package/dist/core/analytics.js.map +1 -1
- package/dist/core/briefing.d.ts.map +1 -1
- package/dist/core/briefing.js +1 -0
- package/dist/core/briefing.js.map +1 -1
- package/dist/core/config.d.ts +0 -1
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js.map +1 -1
- package/dist/core/demo.d.ts.map +1 -1
- package/dist/core/demo.js +1 -1
- package/dist/core/demo.js.map +1 -1
- package/dist/core/doctor.d.ts.map +1 -1
- package/dist/core/doctor.js +25 -6
- package/dist/core/doctor.js.map +1 -1
- package/dist/core/dreamer.d.ts +2 -2
- package/dist/core/dreamer.d.ts.map +1 -1
- package/dist/core/dreamer.js +221 -0
- package/dist/core/dreamer.js.map +1 -1
- package/dist/core/embedder.d.ts +4 -1
- package/dist/core/embedder.d.ts.map +1 -1
- package/dist/core/embedder.js +67 -17
- package/dist/core/embedder.js.map +1 -1
- package/dist/core/graph.d.ts +12 -0
- package/dist/core/graph.d.ts.map +1 -1
- package/dist/core/graph.js +56 -1
- package/dist/core/graph.js.map +1 -1
- package/dist/core/guards.d.ts +20 -0
- package/dist/core/guards.d.ts.map +1 -0
- package/dist/core/guards.js +103 -0
- package/dist/core/guards.js.map +1 -0
- package/dist/core/kg-backfill.d.ts +5 -1
- package/dist/core/kg-backfill.d.ts.map +1 -1
- package/dist/core/kg-backfill.js +155 -2
- package/dist/core/kg-backfill.js.map +1 -1
- package/dist/core/operations.d.ts +13 -2
- package/dist/core/operations.d.ts.map +1 -1
- package/dist/core/operations.js +93 -15
- package/dist/core/operations.js.map +1 -1
- package/dist/core/serializer.d.ts.map +1 -1
- package/dist/core/serializer.js +8 -0
- package/dist/core/serializer.js.map +1 -1
- package/dist/core/types.d.ts +1 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/why.d.ts +54 -0
- package/dist/core/why.d.ts.map +1 -0
- package/dist/core/why.js +168 -0
- package/dist/core/why.js.map +1 -0
- package/dist/core/work-topology.d.ts +3 -0
- package/dist/core/work-topology.d.ts.map +1 -1
- package/dist/core/work-topology.js +11 -2
- package/dist/core/work-topology.js.map +1 -1
- package/dist/db.d.ts +31 -4
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +163 -31
- package/dist/db.js.map +1 -1
- package/dist/skills-manifest.json +29 -19
- package/dist/storage/sqlite.d.ts.map +1 -1
- package/dist/storage/sqlite.js +1 -1
- package/dist/storage/sqlite.js.map +1 -1
- package/dist/transports/cli/cli.js +198 -61
- package/dist/transports/cli/cli.js.map +1 -1
- package/dist/transports/http/server.d.ts.map +1 -1
- package/dist/transports/http/server.js +43 -5
- package/dist/transports/http/server.js.map +1 -1
- package/dist/transports/mcp/handlers.d.ts.map +1 -1
- package/dist/transports/mcp/handlers.js +2 -2
- package/dist/transports/mcp/handlers.js.map +1 -1
- package/dist/transports/schemas.d.ts +8 -0
- package/dist/transports/schemas.d.ts.map +1 -1
- package/dist/transports/schemas.js +7 -0
- package/dist/transports/schemas.js.map +1 -1
- package/hooks/hooks.json +10 -0
- package/package.json +1 -1
- package/scripts/hooks/_generated/guards.js +110 -0
- package/scripts/hooks/_generated/sqlite.js +1 -1
- package/scripts/hooks/_generated/work-topology.js +11 -2
- package/scripts/hooks/_shared.js +77 -4
- package/scripts/hooks/guard-check.js +76 -0
- package/scripts/hooks/post-commit.js +27 -0
- package/scripts/hooks/pre-edit-recall.js +157 -121
- package/scripts/hooks/session-start.js +34 -23
- package/scripts/hooks/session-summary.js +43 -90
- package/skills/memesh/SKILL.md +11 -0
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"name": "memesh",
|
|
9
9
|
"source": "./",
|
|
10
10
|
"description": "MeMesh — agentic memory for coding agents. Captured from the agent's real work via hooks, recalled when it acts. One SQLite file, zero cloud required.",
|
|
11
|
-
"version": "4.6.
|
|
11
|
+
"version": "4.6.1",
|
|
12
12
|
"author": {
|
|
13
13
|
"name": "PCIRCLE AI"
|
|
14
14
|
},
|
package/AGENTS.md
CHANGED
|
@@ -52,6 +52,23 @@ host is recallable from all of them. Not installed yet? Follow
|
|
|
52
52
|
`observation` parameter removes just that fact and keeps the entity active.
|
|
53
53
|
Prefer it over archiving the whole entity.
|
|
54
54
|
|
|
55
|
+
## What you must never invent
|
|
56
|
+
|
|
57
|
+
- If MeMesh is unavailable or a recall returns nothing, **say so and work
|
|
58
|
+
without it** — never fabricate a memory, and never cite a `[mem:id]`
|
|
59
|
+
handle that was not actually shown to you. A wrong "remembered" fact is
|
|
60
|
+
worse than no memory: it arrives wearing the authority of the graph.
|
|
61
|
+
- Recall windows are bounded (the `limit` parameter, 30 by default), so do
|
|
62
|
+
not infer graph-wide counts or "there is no memory about X" from the
|
|
63
|
+
number of hits one query returns. Absence of results is absence of
|
|
64
|
+
results, not evidence of absence — vary the wording or narrow by tag
|
|
65
|
+
before concluding anything.
|
|
66
|
+
- Every recall answer carries a `retrieval` block that says how it was
|
|
67
|
+
produced — read it instead of guessing: `truncated: true` means the
|
|
68
|
+
window filled and more may exist; `degraded: true` means semantic search
|
|
69
|
+
is configured but could not run, so you are seeing keyword-only results
|
|
70
|
+
right now (worth telling the user, and `memesh doctor` explains why).
|
|
71
|
+
|
|
55
72
|
## What Claude Code already does — do not double-write
|
|
56
73
|
|
|
57
74
|
Under Claude Code with the MeMesh plugin, hooks capture automatically:
|
|
@@ -64,6 +81,10 @@ Under Claude Code with the MeMesh plugin, hooks capture automatically:
|
|
|
64
81
|
- **Stop** captures session knowledge and turns failures into lessons.
|
|
65
82
|
- **PreCompact** saves important knowledge before history is compressed.
|
|
66
83
|
- **UserPromptSubmit** detects "remember this" intent in the prompt.
|
|
84
|
+
- **PreToolUse (Bash)** fires accepted lesson-guards: a fenced warning
|
|
85
|
+
citing the source lesson (`[mem:id]`) when a command matches a mistake
|
|
86
|
+
the graph has recorded. Heed it, and cite the lesson if it changes what
|
|
87
|
+
you do.
|
|
67
88
|
|
|
68
89
|
So under Claude Code: skip step 1 of the loop (the topology is already
|
|
69
90
|
injected), and do not `remember` commits or session summaries by hand. Manual
|
package/README.de.md
CHANGED
|
@@ -219,11 +219,11 @@ memesh serve
|
|
|
219
219
|
```
|
|
220
220
|
|
|
221
221
|
<p align="center">
|
|
222
|
-
<img src="docs/images/dashboard-search.png" alt="MeMesh
|
|
222
|
+
<img src="docs/images/dashboard-search.png" alt="MeMesh — find any memory instantly" width="100%" />
|
|
223
223
|
</p>
|
|
224
224
|
|
|
225
225
|
<p align="center">
|
|
226
|
-
<img src="docs/images/dashboard-analytics.png" alt="MeMesh
|
|
226
|
+
<img src="docs/images/dashboard-analytics.png" alt="MeMesh analytics — health score, timeline, patterns, knowledge coverage" width="100%" />
|
|
227
227
|
</p>
|
|
228
228
|
|
|
229
229
|
<p align="center">
|
|
@@ -342,7 +342,7 @@ Reproduktionsbefehle, Datensatz-SHA256, rohe Ergebnisse pro Frage und Analyse be
|
|
|
342
342
|
|
|
343
343
|
## Was läuft in Claude Code automatisch ab
|
|
344
344
|
|
|
345
|
-
Sie müssen nicht manuell alles speichern. MeMesh verfügt über **
|
|
345
|
+
Sie müssen nicht manuell alles speichern. MeMesh verfügt über **7 Hooks**, die Wissen während der Arbeit erfassen und injizieren:
|
|
346
346
|
|
|
347
347
|
| Wenn | Was MeMesh tut |
|
|
348
348
|
|------|------------------|
|
|
@@ -351,6 +351,7 @@ Sie müssen nicht manuell alles speichern. MeMesh verfügt über **6 Hooks**, di
|
|
|
351
351
|
| **Nach jedem `git commit`** | Erfasst Ihre Änderungen mit Diff-Statistiken |
|
|
352
352
|
| **Wenn Claude stoppt** | Erfasst bearbeitete Dateien und behobene Fehler; generiert automatisch strukturierte Lektionen aus Fehlern |
|
|
353
353
|
| **Vor Context-Verdichtung** | Speichert Wissen, bevor es durch Context-Limits verloren geht |
|
|
354
|
+
| **Vor riskanten Befehlen und Edits** | Löst die von Ihnen akzeptierten Lektions-Guards aus — eine Warnung genau in dem Moment, in dem sich ein erfasster Fehler wiederholen würde |
|
|
354
355
|
|
|
355
356
|
> **Jederzeit abschalten:** `export MEMESH_AUTO_CAPTURE=false`
|
|
356
357
|
|
|
@@ -379,17 +380,14 @@ Wenn npm eine installierte Version als veraltet kennzeichnet (typischerweise ein
|
|
|
379
380
|
|
|
380
381
|
## Dashboard
|
|
381
382
|
|
|
382
|
-
|
|
383
|
+
5 Reiter, 11 Sprachen, keine externen Abhängigkeiten. Zugang unter `http://localhost:3737/dashboard` wenn der Server läuft.
|
|
383
384
|
|
|
384
385
|
| Reiter | Was Sie sehen |
|
|
385
386
|
|--------|-------------|
|
|
386
|
-
| **
|
|
387
|
-
| **
|
|
388
|
-
| **
|
|
389
|
-
| **Analytics** | Memory Health Score, 30-Tage-Timeline, PM-Velocity + KG-Konnektivitätskennzahlen, Arbeitsmuster, Bereinigungsvorschläge |
|
|
387
|
+
| **Home** | Was memesh für Sie getan hat — Dreamer-Insights zuerst: wöchentliche Zusammenfassungen und Mustervorschläge mit Ein-Klick-Akzeptieren/Ablehnen; die komplette Analyse (Memory Health Score, 30-Tage-Timeline, PM-Velocity + KG-Konnektivität, Arbeitsmuster) liegt in einem bei Bedarf ausklappbaren Bereich |
|
|
388
|
+
| **Memories** | Die ganze Bibliothek hinter einer Oberfläche — Sofortfilter plus Enter für server-gerankte Suche (Volltext + Vektor), Scope-Chips für die Arbeitsebene (Ziele/Entscheidungen/Lektionen/Pläne) vs. Belege vs. alle vs. archiviert, ein Cluster-Kompositionsbalken, aufklappbare Details pro Zeile (Lektionen behalten ihre strukturierte Fehler/Grundursache/Behebung/Prävention-Ansicht), Archivieren/Wiederherstellen inline |
|
|
389
|
+
| **Project** | Die Geschichte eines Projekts — die Roadmap-Ansicht (Phasen, Meilensteine, Schlüssellektionen) hinter einem Projektwähler |
|
|
390
390
|
| **Graph** | Interaktiver kraft-gerichteter Wissensgraph mit Typfiltern, Suche, Ego-Modus, Aktualitäts-Heatmap |
|
|
391
|
-
| **Lessons** | Strukturierte Lektionen aus vergangenen Fehlern (Fehler, Grundursache, Behebung, Prävention) |
|
|
392
|
-
| **Manage** | Entitäten archivieren und wiederherstellen |
|
|
393
391
|
| **Settings** | LLM-Provider-Konfiguration, sofortiger Sprachwahlschalter |
|
|
394
392
|
|
|
395
393
|
---
|
|
@@ -422,7 +420,7 @@ Importierte Bundles bleiben durchsuchbar, aber MeMesh injiziert importierte Memo
|
|
|
422
420
|
> — **3er-Startup mit gemeinsamer Wissensbasis**
|
|
423
421
|
|
|
424
422
|
> "Das Dashboard zeigte mir, dass 90 % meiner Memories automatisch generierte Session-Logs waren. Ich begann, `remember` bewusst für Architekturentscheidungen zu nutzen. Ein Spielwechsel."
|
|
425
|
-
> — **Entwickler, der
|
|
423
|
+
> — **Entwickler, der das Analytics-Panel entdeckte**
|
|
426
424
|
|
|
427
425
|
---
|
|
428
426
|
|
|
@@ -449,10 +447,11 @@ Standardmäßig macht MeMesh reines Keyword-Recall (FTS5) — kein API-Schlüsse
|
|
|
449
447
|
|
|
450
448
|
```bash
|
|
451
449
|
memesh config set embedder.provider openai # or: ollama
|
|
452
|
-
memesh config set embedder.model text-embedding-3-small
|
|
453
450
|
```
|
|
454
451
|
|
|
455
|
-
Der Embedder wird **unabhängig vom Chat-LLM** konfiguriert — `llm.provider` zu ändern ändert nie stillschweigend deine Embeddings.
|
|
452
|
+
Der Embedder wird **unabhängig vom Chat-LLM** konfiguriert — `llm.provider` zu ändern ändert nie stillschweigend deine Embeddings. Jeder Anbieter legt sein Modell und seine Dimension selbst fest (`ollama` → nomic-embed-text mit 768, `openai` → text-embedding-3-small mit 1536); das Modell ist nicht separat wählbar, weil ein Vektorindex auf eine Dimension festgelegt ist und ein zweites Modell Vektoren aus einem anderen Embedding-Raum hineinschreiben würde.
|
|
453
|
+
|
|
454
|
+
Wechselst du zu einer anderen Dimension (z. B. 768 → 1536), wird **nichts gelöscht**. MeMesh behält den bestehenden Index und weist beim Öffnen darauf hin, `memesh reindex` auszuführen: der neue Index wird neben dem alten aufgebaut und erst übernommen, wenn jede Erinnerung einen Vektor hat — ein abgebrochener Neuaufbau kostet dich also nichts und wird an der Abbruchstelle fortgesetzt. In diesem Zeitraum ist die semantische Suche aus und das Recall läuft nur über die Keyword-Suche; `recall` meldet das als `degraded`, statt eine Suche vorzugeben. Unterstützte `embedder.provider`-Werte: `ollama` (lokal), `openai` (gehostet). Ohne Einstellung bleibt das Recall bei der Keyword-Suche.
|
|
456
455
|
|
|
457
456
|
| | Stufe 0 (Standard) | Stufe 1 (Smart Mode) |
|
|
458
457
|
|---|---|---|
|
package/README.md
CHANGED
|
@@ -231,11 +231,11 @@ memesh serve
|
|
|
231
231
|
```
|
|
232
232
|
|
|
233
233
|
<p align="center">
|
|
234
|
-
<img src="docs/images/dashboard-search.png" alt="MeMesh
|
|
234
|
+
<img src="docs/images/dashboard-search.png" alt="MeMesh — find any memory instantly" width="100%" />
|
|
235
235
|
</p>
|
|
236
236
|
|
|
237
237
|
<p align="center">
|
|
238
|
-
<img src="docs/images/dashboard-analytics.png" alt="MeMesh
|
|
238
|
+
<img src="docs/images/dashboard-analytics.png" alt="MeMesh analytics — health score, timeline, patterns, knowledge coverage" width="100%" />
|
|
239
239
|
</p>
|
|
240
240
|
|
|
241
241
|
<p align="center">
|
|
@@ -354,7 +354,7 @@ Re-runnable in ~10 seconds. Full instructions, dataset SHA256, raw per-question
|
|
|
354
354
|
|
|
355
355
|
## What Happens Automatically In Claude Code
|
|
356
356
|
|
|
357
|
-
You don't need to manually remember everything. MeMesh has **
|
|
357
|
+
You don't need to manually remember everything. MeMesh has **7 hooks** that capture and inject knowledge while you work:
|
|
358
358
|
|
|
359
359
|
| When | What MeMesh does |
|
|
360
360
|
|------|------------------|
|
|
@@ -364,6 +364,7 @@ You don't need to manually remember everything. MeMesh has **6 hooks** that capt
|
|
|
364
364
|
| **After every `git commit`** | Records what you changed, with diff stats |
|
|
365
365
|
| **When Claude stops** | Captures files edited, errors fixed, and auto-generates structured lessons from failures |
|
|
366
366
|
| **Before context compaction** | Saves knowledge before it's lost to context limits |
|
|
367
|
+
| **Before risky commands and edits** | Fires the lesson-guards you accepted — a warning at the exact moment a recorded mistake is about to repeat |
|
|
367
368
|
|
|
368
369
|
> **Opt out anytime:** `export MEMESH_AUTO_CAPTURE=false`
|
|
369
370
|
|
|
@@ -392,17 +393,14 @@ When npm flags an installed version as deprecated (typically a security advisory
|
|
|
392
393
|
|
|
393
394
|
## Dashboard
|
|
394
395
|
|
|
395
|
-
|
|
396
|
+
5 tabs, 11 languages, zero external dependencies. Access at `http://localhost:3737/dashboard` when the server is running.
|
|
396
397
|
|
|
397
398
|
| Tab | What you see |
|
|
398
399
|
|-----|-------------|
|
|
399
|
-
| **
|
|
400
|
-
| **
|
|
401
|
-
| **
|
|
402
|
-
| **Analytics** | Memory Health Score, 30-day timeline, PM velocity + KG connectivity metrics, work patterns, cleanup suggestions |
|
|
400
|
+
| **Home** | What memesh did for you — dreamer insights lead: weekly recaps and pattern proposals with one-click accept/reject; the full analytics stack (Memory Health Score, 30-day timeline, PM velocity + KG connectivity, work patterns) folds into an on-demand expander |
|
|
401
|
+
| **Memories** | The whole library behind one surface — instant filter plus Enter for server-ranked search (full-text + vector), scope chips for the work layer (goals/decisions/lessons/plans) vs evidence vs all vs archived, a cluster composition bar, per-row expandable detail (lessons keep their structured error/root-cause/fix/prevention view), archive/restore inline |
|
|
402
|
+
| **Project** | One project's history — the roadmap view (phases, milestones, key lessons) behind a project selector |
|
|
403
403
|
| **Graph** | Interactive force-directed knowledge graph with type filters, search, ego mode, recency heatmap |
|
|
404
|
-
| **Lessons** | Structured lessons from past failures (error, root cause, fix, prevention) |
|
|
405
|
-
| **Manage** | Archive and restore entities |
|
|
406
404
|
| **Settings** | LLM provider config, instant language selector |
|
|
407
405
|
|
|
408
406
|
---
|
|
@@ -435,7 +433,7 @@ Imported bundles stay searchable, but MeMesh does not auto-inject imported memor
|
|
|
435
433
|
> — **3-person startup, shared knowledge base**
|
|
436
434
|
|
|
437
435
|
> "The dashboard showed me that 90% of my memories were auto-generated session logs. I started using `remember` deliberately for architecture decisions. Game changer."
|
|
438
|
-
> — **Developer who discovered the
|
|
436
|
+
> — **Developer who discovered the analytics panel**
|
|
439
437
|
|
|
440
438
|
---
|
|
441
439
|
|
|
@@ -514,13 +512,13 @@ By default MeMesh does **keyword-only** recall (FTS5) — no API key, no model d
|
|
|
514
512
|
|
|
515
513
|
```bash
|
|
516
514
|
memesh config set embedder.provider ollama # local, needs `ollama serve`
|
|
517
|
-
memesh config set embedder.model nomic-embed-text
|
|
518
515
|
# or, for a hosted embedder:
|
|
519
516
|
memesh config set embedder.provider openai
|
|
520
|
-
memesh config set embedder.model text-embedding-3-small
|
|
521
517
|
```
|
|
522
518
|
|
|
523
|
-
The embedder is configured **independently of the chat LLM** — changing `llm.provider` never silently changes your embeddings.
|
|
519
|
+
The embedder is configured **independently of the chat LLM** — changing `llm.provider` never silently changes your embeddings. Each provider pins its own model and width (`ollama` → nomic-embed-text at 768, `openai` → text-embedding-3-small at 1536); the model is not separately selectable, because a vector index is fixed at one width and a second model would put vectors from a different embedding space into it.
|
|
520
|
+
|
|
521
|
+
If you switch to an embedder with a different dimension (e.g. 768 → 1536), **nothing is deleted**. MeMesh keeps the existing index and tells you on open to run `memesh reindex`, which builds the new index beside the old one and switches over only once every memory has a vector — so an interrupted rebuild costs you nothing and resumes where it stopped. During that window semantic search is off and recall runs on keyword search alone; `recall` reports this as `degraded` rather than implying it searched. Supported `embedder.provider` values: `ollama` (local), `openai` (hosted). With none set, recall stays on keyword search.
|
|
524
522
|
|
|
525
523
|
| | Level 0 (default) | Level 1 (Smart Mode) |
|
|
526
524
|
|---|---|---|
|
package/README.zh-TW.md
CHANGED
|
@@ -227,11 +227,11 @@ memesh serve
|
|
|
227
227
|
```
|
|
228
228
|
|
|
229
229
|
<p align="center">
|
|
230
|
-
<img src="docs/images/dashboard-search.png" alt="MeMesh
|
|
230
|
+
<img src="docs/images/dashboard-search.png" alt="MeMesh — 瞬間找到任何記憶" width="100%" />
|
|
231
231
|
</p>
|
|
232
232
|
|
|
233
233
|
<p align="center">
|
|
234
|
-
<img src="docs/images/dashboard-analytics.png" alt="MeMesh
|
|
234
|
+
<img src="docs/images/dashboard-analytics.png" alt="MeMesh 分析面板 — 健康分數、時間線、模式、知識涵蓋範圍" width="100%" />
|
|
235
235
|
</p>
|
|
236
236
|
|
|
237
237
|
<p align="center">
|
|
@@ -350,7 +350,7 @@ MeMesh 的檢索引擎**只用 FTS5**(熱路徑上不使用 LLM、不使用嵌
|
|
|
350
350
|
|
|
351
351
|
## Claude Code 自動進行的事情
|
|
352
352
|
|
|
353
|
-
你不需要手動記住所有事情。MeMesh 有 **
|
|
353
|
+
你不需要手動記住所有事情。MeMesh 有 **7 個 hooks**,會在你工作時自動擷取與注入知識:
|
|
354
354
|
|
|
355
355
|
| 何時 | MeMesh 做什麼 |
|
|
356
356
|
|------|------------------|
|
|
@@ -360,6 +360,7 @@ MeMesh 的檢索引擎**只用 FTS5**(熱路徑上不使用 LLM、不使用嵌
|
|
|
360
360
|
| **每次 `git commit` 之後** | 記錄你的變更,包含 diff 統計 |
|
|
361
361
|
| **Claude 停止時** | 擷取已編輯的檔案、已修復的錯誤,並從失敗自動產生結構化教訓 |
|
|
362
362
|
| **上下文壓縮前** | 在知識被上下文限制丟掉之前先保存 |
|
|
363
|
+
| **危險指令與編輯前** | 觸發你接受過的教訓守衛——在記錄過的錯誤即將重演的那一刻發出警告 |
|
|
363
364
|
|
|
364
365
|
> **隨時退出:** `export MEMESH_AUTO_CAPTURE=false`
|
|
365
366
|
|
|
@@ -388,17 +389,14 @@ MeMesh 的檢索引擎**只用 FTS5**(熱路徑上不使用 LLM、不使用嵌
|
|
|
388
389
|
|
|
389
390
|
## 儀表板
|
|
390
391
|
|
|
391
|
-
|
|
392
|
+
5 個分頁、11 種語言、零外部相依性。伺服器執行時可在 `http://localhost:3737/dashboard` 存取。
|
|
392
393
|
|
|
393
394
|
| 分頁 | 你會看到 |
|
|
394
395
|
|-----|-------------|
|
|
395
|
-
| **
|
|
396
|
-
| **
|
|
397
|
-
| **
|
|
398
|
-
| **Analytics** | 記憶健康分數、30 天時間線、PM 速度 + KG 連通性指標、工作模式、清理建議 |
|
|
396
|
+
| **Home** | memesh 為你做了什麼 — 以 dreamer 洞察開場:每週摘要和模式提案,一鍵接受/拒絕;完整的分析內容(記憶健康分數、30 天時間線、PM 速度 + KG 連通性、工作模式)收在可展開的區塊裡,需要時再打開 |
|
|
397
|
+
| **Memories** | 整座記憶庫集中在同一個介面 — 即時過濾,按 Enter 由伺服器排名搜尋(全文 + 向量);範圍籤在工作層(目標/決策/教訓/計畫)、佐證、全部、已歸檔之間切換;叢集組成長條;每列可展開細節(教訓保留結構化的錯誤/根本原因/修復/預防檢視);歸檔/復原直接在列上操作 |
|
|
398
|
+
| **Project** | 單一專案的歷史 — 透過專案選擇器檢視路線圖(階段、里程碑、關鍵教訓) |
|
|
399
399
|
| **Graph** | 互動式力導向知識圖,具有類型篩選、搜尋、自我中心模式、近期熱力圖 |
|
|
400
|
-
| **Lessons** | 來自過去失敗的結構化教訓(錯誤、根本原因、修復、預防) |
|
|
401
|
-
| **Manage** | 歸檔和復原實體 |
|
|
402
400
|
| **Settings** | LLM 供應商設定、即時語言選擇器 |
|
|
403
401
|
|
|
404
402
|
---
|
|
@@ -431,7 +429,7 @@ MeMesh 的檢索引擎**只用 FTS5**(熱路徑上不使用 LLM、不使用嵌
|
|
|
431
429
|
> — **3 人新創公司,共享知識庫**
|
|
432
430
|
|
|
433
431
|
> 「儀表板顯示我 90% 的記憶是自動生成的對話日誌。我開始有意使用 `remember` 來記錄架構決策。改變了遊戲規則。」
|
|
434
|
-
> —
|
|
432
|
+
> — **發現分析面板的開發者**
|
|
435
433
|
|
|
436
434
|
---
|
|
437
435
|
|
|
@@ -458,10 +456,11 @@ memesh serve # 開啟儀表板 → Settings 分頁
|
|
|
458
456
|
|
|
459
457
|
```bash
|
|
460
458
|
memesh config set embedder.provider openai # or: ollama
|
|
461
|
-
memesh config set embedder.model text-embedding-3-small
|
|
462
459
|
```
|
|
463
460
|
|
|
464
|
-
嵌入器**獨立於對話 LLM** 設定 —— 更改 `llm.provider`
|
|
461
|
+
嵌入器**獨立於對話 LLM** 設定 —— 更改 `llm.provider` 絕不會悄悄改變你的嵌入。每個 provider 自己固定模型與維度(`ollama` → nomic-embed-text 768 維、`openai` → text-embedding-3-small 1536 維);模型不另外提供選項,因為一個向量索引的維度是固定的,換第二個模型會把另一個嵌入空間的向量寫進同一個索引。
|
|
462
|
+
|
|
463
|
+
如果切換到不同維度(如 768 → 1536),**不會刪掉任何東西**。MeMesh 保留現有索引,並在開啟時提示你執行 `memesh reindex`:新索引會建在舊索引旁邊,等到每一筆記憶都有向量才切換過去 —— 所以重建中途被打斷不會損失任何東西,下次會從斷點繼續。這段期間語意搜尋是關閉的,召回只走關鍵字搜尋;`recall` 會回報 `degraded`,不會假裝搜過了。支援的 `embedder.provider` 取值:`ollama`(本地)、`openai`(託管)。兩者都不設定時,召回保持關鍵字搜尋。
|
|
465
464
|
|
|
466
465
|
| | 等級 0(預設) | 等級 1(智慧模式) |
|
|
467
466
|
|---|---|---|
|