@pcircle/memesh 4.9.4 → 4.10.2
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/.codex-plugin/plugin.json +1 -1
- package/AGENTS.md +75 -13
- package/README.de.md +5 -5
- package/README.md +5 -5
- package/README.zh-TW.md +5 -5
- package/dashboard/dist/index.html +8 -8
- package/dist/cli/view-live.d.ts.map +1 -1
- package/dist/cli/view-live.js +0 -427
- package/dist/cli/view-live.js.map +1 -1
- package/dist/core/agent-message-inbox.d.ts +6 -0
- package/dist/core/agent-message-inbox.d.ts.map +1 -1
- package/dist/core/agent-message-inbox.js +28 -1
- package/dist/core/agent-message-inbox.js.map +1 -1
- package/dist/core/briefing-index.d.ts +30 -0
- package/dist/core/briefing-index.d.ts.map +1 -0
- package/dist/core/briefing-index.js +140 -0
- package/dist/core/briefing-index.js.map +1 -0
- package/dist/core/briefing-level.d.ts +22 -0
- package/dist/core/briefing-level.d.ts.map +1 -0
- package/dist/core/briefing-level.js +75 -0
- package/dist/core/briefing-level.js.map +1 -0
- package/dist/core/briefing.d.ts +7 -0
- package/dist/core/briefing.d.ts.map +1 -1
- package/dist/core/briefing.js +72 -12
- package/dist/core/briefing.js.map +1 -1
- package/dist/core/capture-liveness.d.ts +137 -0
- package/dist/core/capture-liveness.d.ts.map +1 -0
- package/dist/core/capture-liveness.js +448 -0
- package/dist/core/capture-liveness.js.map +1 -0
- package/dist/core/config.d.ts +2 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +5 -1
- package/dist/core/config.js.map +1 -1
- package/dist/core/delegation.d.ts +47 -0
- package/dist/core/delegation.d.ts.map +1 -0
- package/dist/core/delegation.js +174 -0
- package/dist/core/delegation.js.map +1 -0
- package/dist/core/doctor-fixes.d.ts +1 -0
- package/dist/core/doctor-fixes.d.ts.map +1 -1
- package/dist/core/doctor-fixes.js +21 -0
- package/dist/core/doctor-fixes.js.map +1 -1
- package/dist/core/doctor.d.ts +8 -0
- package/dist/core/doctor.d.ts.map +1 -1
- package/dist/core/doctor.js +148 -3
- package/dist/core/doctor.js.map +1 -1
- package/dist/core/note-derive.d.ts +14 -0
- package/dist/core/note-derive.d.ts.map +1 -0
- package/dist/core/note-derive.js +66 -0
- package/dist/core/note-derive.js.map +1 -0
- package/dist/core/note-ingest.d.ts +34 -0
- package/dist/core/note-ingest.d.ts.map +1 -0
- package/dist/core/note-ingest.js +445 -0
- package/dist/core/note-ingest.js.map +1 -0
- package/dist/core/operations.d.ts +10 -1
- package/dist/core/operations.d.ts.map +1 -1
- package/dist/core/operations.js +129 -14
- package/dist/core/operations.js.map +1 -1
- package/dist/core/paths.d.ts +1 -0
- package/dist/core/paths.d.ts.map +1 -1
- package/dist/core/paths.js +4 -0
- package/dist/core/paths.js.map +1 -1
- package/dist/core/schema-export.d.ts.map +1 -1
- package/dist/core/schema-export.js +15 -5
- package/dist/core/schema-export.js.map +1 -1
- package/dist/core/serializer.d.ts +2 -0
- package/dist/core/serializer.d.ts.map +1 -1
- package/dist/core/serializer.js +119 -3
- package/dist/core/serializer.js.map +1 -1
- package/dist/core/session-insight.d.ts +44 -0
- package/dist/core/session-insight.d.ts.map +1 -0
- package/dist/core/session-insight.js +216 -0
- package/dist/core/session-insight.js.map +1 -0
- package/dist/core/task-state-store.d.ts +4 -0
- package/dist/core/task-state-store.d.ts.map +1 -1
- package/dist/core/task-state-store.js +18 -5
- package/dist/core/task-state-store.js.map +1 -1
- package/dist/core/task-state.d.ts +5 -0
- package/dist/core/task-state.d.ts.map +1 -1
- package/dist/core/task-state.js +70 -0
- package/dist/core/task-state.js.map +1 -1
- package/dist/core/turn-signal.d.ts +22 -0
- package/dist/core/turn-signal.d.ts.map +1 -0
- package/dist/core/turn-signal.js +89 -0
- package/dist/core/turn-signal.js.map +1 -0
- package/dist/core/types.d.ts +14 -3
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/update-entrypoint.d.ts +19 -0
- package/dist/core/update-entrypoint.d.ts.map +1 -0
- package/dist/core/update-entrypoint.js +222 -0
- package/dist/core/update-entrypoint.js.map +1 -0
- package/dist/core/update-notice.d.ts +69 -0
- package/dist/core/update-notice.d.ts.map +1 -0
- package/dist/core/update-notice.js +188 -0
- package/dist/core/update-notice.js.map +1 -0
- package/dist/core/work-topology.d.ts +1 -0
- package/dist/core/work-topology.d.ts.map +1 -1
- package/dist/core/work-topology.js +3 -0
- package/dist/core/work-topology.js.map +1 -1
- package/dist/host-runtime/codex-session.d.ts +10 -0
- package/dist/host-runtime/codex-session.d.ts.map +1 -1
- package/dist/host-runtime/codex-session.js +1 -1
- package/dist/host-runtime/codex-session.js.map +1 -1
- package/dist/knowledge-graph.d.ts.map +1 -1
- package/dist/knowledge-graph.js +24 -3
- package/dist/knowledge-graph.js.map +1 -1
- package/dist/mcp/THIRD_PARTY_NOTICES.txt +2 -2
- package/dist/mcp/server.js +1438 -122
- package/dist/mcp/server.js.map +3 -3
- package/dist/skills-manifest.json +61 -36
- package/dist/storage/fts-index.d.ts +1 -0
- package/dist/storage/fts-index.d.ts.map +1 -1
- package/dist/storage/fts-index.js +5 -0
- package/dist/storage/fts-index.js.map +1 -1
- package/dist/transports/cli/cli.d.ts.map +1 -1
- package/dist/transports/cli/cli.js +7846 -5613
- package/dist/transports/cli/cli.js.map +3 -3
- package/dist/transports/http/server.d.ts.map +1 -1
- package/dist/transports/http/server.js +48 -28
- package/dist/transports/http/server.js.map +1 -1
- package/dist/transports/mcp/handlers.d.ts +31 -7
- package/dist/transports/mcp/handlers.d.ts.map +1 -1
- package/dist/transports/mcp/handlers.js +49 -7
- package/dist/transports/mcp/handlers.js.map +1 -1
- package/dist/transports/schemas.d.ts +5 -2
- package/dist/transports/schemas.d.ts.map +1 -1
- package/dist/transports/schemas.js +30 -3
- package/dist/transports/schemas.js.map +1 -1
- package/docs/platforms/README.md +1 -0
- package/docs/platforms/agent-messaging.md +39 -8
- package/package.json +11 -6
- package/scripts/hooks/_generated/agent-message-inbox.js +28 -1
- package/scripts/hooks/_generated/briefing-index.js +147 -0
- package/scripts/hooks/_generated/briefing-level.js +82 -0
- package/scripts/hooks/_generated/capture-liveness.js +455 -0
- package/scripts/hooks/_generated/core-paths.js +4 -0
- package/scripts/hooks/_generated/fts-index.js +5 -0
- package/scripts/hooks/_generated/task-state.js +70 -0
- package/scripts/hooks/_generated/update-notice.js +195 -0
- package/scripts/hooks/_generated/work-topology.js +3 -0
- package/scripts/hooks/_shared.js +923 -27
- package/scripts/hooks/_stop-notes.js +504 -0
- package/scripts/hooks/auto-update-runner.mjs +22 -0
- package/scripts/hooks/decision-nudge.js +32 -5
- package/scripts/hooks/guard-check.js +30 -3
- package/scripts/hooks/post-commit.js +329 -133
- package/scripts/hooks/pre-compact.js +17 -2
- package/scripts/hooks/pre-edit-recall.js +416 -64
- package/scripts/hooks/session-start.js +617 -150
- package/scripts/hooks/session-summary.js +217 -41
- package/scripts/hooks/user-prompt-intent.js +124 -22
- package/scripts/upgrade-plugin.sh +3 -4
- package/skills/memesh/SKILL.md +45 -23
- package/dist/cli/assets/d3.v7.min.js +0 -2
- package/dist/core/graph.d.ts +0 -26
- package/dist/core/graph.d.ts.map +0 -1
- package/dist/core/graph.js +0 -74
- package/dist/core/graph.js.map +0 -1
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"name": "memesh",
|
|
9
9
|
"source": "./",
|
|
10
10
|
"description": "MeMesh \u2014 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.
|
|
11
|
+
"version": "4.10.2",
|
|
12
12
|
"author": {
|
|
13
13
|
"name": "PCIRCLE AI"
|
|
14
14
|
},
|
package/AGENTS.md
CHANGED
|
@@ -9,12 +9,46 @@ host is recallable from all of them. Not installed yet? Follow
|
|
|
9
9
|
|
|
10
10
|
1. **Session start — load, don't re-explore.** Call the `briefing` tool once
|
|
11
11
|
(CLI: `memesh briefing`). It returns the assembled work topology for the
|
|
12
|
-
current project:
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
current project: decisions, lessons, knowledge and recent activity are
|
|
13
|
+
always included; the stated goal / next / blocked / done and the capped
|
|
14
|
+
durable-memory index (`memesh briefing --index` prints just that, one
|
|
15
|
+
line each with its `[mem:id]` handle) are added at `standard` (the
|
|
16
|
+
default) and up. How much is assembled depends on the `briefing` setting
|
|
17
|
+
— `minimal` (this project only: decisions, lessons, knowledge, recent
|
|
18
|
+
activity, with the repository state in front whenever anything else is
|
|
19
|
+
injected — nothing else), `standard` (+ the task state
|
|
20
|
+
when fresh, + the durable-memory index — **default**), `full` (+ global
|
|
21
|
+
memory + other projects' recent activity, the pre-#360 memory-block
|
|
22
|
+
behaviour — except when the task state itself is stale or of unknown
|
|
23
|
+
age, where the one-line replacement below applies at `full` too) — set
|
|
24
|
+
with `memesh config set briefing <level>`. The SessionStart hook
|
|
25
|
+
additionally appends a work-package notice at `full` (see below); that
|
|
26
|
+
notice is a host-agent instruction, not memory, and this tool never
|
|
27
|
+
includes it, at any level. A
|
|
28
|
+
goal/next/blocked/done stated more than 72 hours ago, or whose timestamp
|
|
29
|
+
is missing/unreadable/implausibly future-dated, is not injected as
|
|
30
|
+
current at any level — only one line saying so and how to see it
|
|
31
|
+
(`memesh task`). Only `minimal` can be fully silent: when the project has
|
|
32
|
+
no ranked memories, no stale-state flag and no unread message (a fresh
|
|
33
|
+
task state may exist — `minimal` does not show it — and there is no
|
|
34
|
+
index to fall back to), nothing is injected at all, the repository state
|
|
35
|
+
included — no empty framing; `standard`/`full` still show the index's
|
|
36
|
+
own "no durable memories yet" line even then, because that line is
|
|
37
|
+
itself informative. The index is a recent
|
|
38
|
+
window, not everything: it holds at most 40 lines / 3072 bytes, memories
|
|
39
|
+
untouched for 180 days collapse into a single count line with no
|
|
40
|
+
`[mem:id]`, and whatever else is cut past those caps becomes an
|
|
41
|
+
`N more — memesh recall --tag "project:…"` line, also with no
|
|
42
|
+
`[mem:id]`. Treat the index as "recent, capped" — when it says there is
|
|
43
|
+
more, call `recall` rather than assuming the index already covers it.
|
|
44
|
+
Read the index instead of re-reading the repo to reconstruct context.
|
|
15
45
|
2. **When the user states a goal, a next step, or a blocker — record it.**
|
|
16
|
-
Call the `task_state` tool (CLI: `memesh task --goal "…" --next "…"`).
|
|
17
|
-
is injected at the start of the next session
|
|
46
|
+
Call the `task_state` tool (CLI: `memesh task --goal "…" --next "…"`).
|
|
47
|
+
Fresh state is injected at the start of the next session at
|
|
48
|
+
`standard`/`full` (the default and above) and acted on as fact;
|
|
49
|
+
`minimal` never shows a fresh state, but a stale or unknown-age one
|
|
50
|
+
still gets a one-line flag at every level — `memesh task` always shows
|
|
51
|
+
the complete stored state.
|
|
18
52
|
- An empty string **clears** a field: pass `blocked: ""` (CLI:
|
|
19
53
|
`memesh task --blocked ""`) once a blocker is resolved.
|
|
20
54
|
- **Record only what the user actually said.** Never infer goal / next /
|
|
@@ -41,33 +75,49 @@ host is recallable from all of them. Not installed yet? Follow
|
|
|
41
75
|
declarations remain unknown. Then send a `message`. The host's own push tool (Claude
|
|
42
76
|
Code's `SendMessage`, a Codex queue) delivers a wakeup; it is not the
|
|
43
77
|
record, and it cannot reach an agent on a different host or one that is
|
|
44
|
-
not running. Generic `briefing`
|
|
45
|
-
|
|
46
|
-
`
|
|
47
|
-
|
|
78
|
+
not running. Generic `briefing` has no recipient identity and stays quiet;
|
|
79
|
+
so do the SessionStart and prompt hooks, unless the session declared who it
|
|
80
|
+
is by starting with `MEMESH_RECIPIENT=<id>`, in which case they say how many
|
|
81
|
+
messages wait for that recipient and in which project. Check an inbox with
|
|
82
|
+
the exact `project` and `recipient`; poll first, then fetch each returned
|
|
83
|
+
`message_id`, then record `intake` for it: fetching alone does not
|
|
84
|
+
acknowledge and does not end the reminder.
|
|
48
85
|
|
|
49
86
|
## All 12 MCP tools
|
|
50
87
|
|
|
51
88
|
| Tool | Purpose |
|
|
52
89
|
|---|---|
|
|
53
90
|
| `work_package` | Prepare one bounded untrusted digest (calendar-selected) or transcript package from the newest Claude Code session under the client's single matching MCP workspace root; submit one strictly validated result for pending human review or defer without durable change. Submission retains bounded redacted source turns for comparison; agents cannot apply or reject, and hashes identify freshness and workspace scope rather than authentication. |
|
|
54
|
-
| `remember` | Store knowledge as an entity with observations, tags, and relations |
|
|
91
|
+
| `remember` | Store knowledge as an entity with observations, tags, and relations; or pass only `note` (free text) and the title, observations and name are derived; `replace: true` rewrites a named memory, keeping the old version as history |
|
|
55
92
|
| `recall` | Search stored knowledge (words are OR-ed, ranked by relevance); empty query lists recent |
|
|
56
93
|
| `forget` | Archive an entity (soft-delete), or remove one observation via the `observation` parameter |
|
|
57
94
|
| `export` | Export memories as portable JSON for sharing or backup |
|
|
58
95
|
| `import` | Import a JSON export; `merge_strategy` (required): skip / append / overwrite |
|
|
59
96
|
| `learn` | Record a structured lesson: error, root cause, fix, prevention |
|
|
60
97
|
| `task_state` | Read or update where the work stands: goal / next / blocked / done |
|
|
61
|
-
| `briefing` | The assembled work topology; exact `project` + `recipient` can surface only that recipient's unfetched deliveries |
|
|
98
|
+
| `briefing` | The assembled work topology, closing, by default, with a capped index of the project's durable memories (the `briefing` setting — `minimal` / `standard` / `full` — controls how much is assembled); exact `project` + `recipient` can surface only that recipient's unfetched deliveries |
|
|
62
99
|
| `user_patterns` | Analyze work schedule, tool preferences, and focus areas from memory |
|
|
63
100
|
| `improvement` | Propose an evidence-linked product improvement or read its status; only a human may accept/reject it |
|
|
64
101
|
| `message` | Discover live agents, then exchange exact-recipient untrusted messages: durable JSON payload max 64 KiB; complete native envelope max 16 KiB with distinct `native_message_too_large` and `recipient_unavailable` errors; delivery reads/acceptance never imply ACK or disposition |
|
|
65
102
|
|
|
66
103
|
## Memory hygiene
|
|
67
104
|
|
|
105
|
+
- **The cheapest write is `remember({ note: "…" })`.** First line → title,
|
|
106
|
+
each following paragraph → one observation, name derived from the text
|
|
107
|
+
(the same text twice is one memory). Optional `type` (default `note`),
|
|
108
|
+
`tags`, `name`. The response echoes the derived shape under `derived`.
|
|
68
109
|
- **Reuse a stable `name` to append.** Calling `remember` with an existing
|
|
69
110
|
name appends observations and dedupes tags. A fresh name for every update
|
|
70
111
|
creates duplicates that recall must wade through.
|
|
112
|
+
- **Correct a memory in one call**: `remember` it again with its `name` and
|
|
113
|
+
`replace: true`. `type` is not needed — the memory keeps the one it has.
|
|
114
|
+
Pass a `type` only to reclassify: one that differs from what is stored
|
|
115
|
+
rewrites it. (`type` is still required on a call with no `note` that is
|
|
116
|
+
not a `replace`, and on a `replace` whose `name` does not exist yet.) Observations are rewritten (tags too
|
|
117
|
+
when you pass them, the title when you pass `title` or `note`); what was
|
|
118
|
+
there moves to `metadata.replaced_history` with the time it was replaced,
|
|
119
|
+
so the wrong line stops showing up in recall but is not lost (recall shows
|
|
120
|
+
only `replaced_history_count`; `export` has the versions).
|
|
71
121
|
- **Replacing a decision**: `remember` the new one with a relation of type
|
|
72
122
|
`supersedes` pointing at the old — the old entity is archived (recoverable),
|
|
73
123
|
not left active to contradict the new one.
|
|
@@ -97,8 +147,10 @@ host is recallable from all of them. Not installed yet? Follow
|
|
|
97
147
|
|
|
98
148
|
Under Claude Code with the MeMesh plugin, hooks capture automatically:
|
|
99
149
|
|
|
100
|
-
- **SessionStart** injects the work topology (the same block
|
|
101
|
-
returns
|
|
150
|
+
- **SessionStart** injects the work topology (the same memory block
|
|
151
|
+
`briefing` returns, plus a work-package notice at `full` that `briefing`
|
|
152
|
+
never includes) at the top of the session, whenever the configured level
|
|
153
|
+
has something to show; an empty project at `minimal` injects nothing.
|
|
102
154
|
- **PreToolUse (Edit|Write)** surfaces memories related to the file being
|
|
103
155
|
edited.
|
|
104
156
|
- **PostToolUse (Bash)** records git commits with diff stats.
|
|
@@ -106,6 +158,16 @@ Under Claude Code with the MeMesh plugin, hooks capture automatically:
|
|
|
106
158
|
decision just made — once per tool per session. It only reminds; unlike
|
|
107
159
|
the hooks above, it writes nothing to the graph itself.
|
|
108
160
|
- **Stop** captures bounded session evidence, including observed error/fix signals.
|
|
161
|
+
It also ingests the project's Claude Code memory directory
|
|
162
|
+
(`~/.claude/projects/<slug>/memory/*.md` — one memory per file with
|
|
163
|
+
`name`/`description`/`metadata.type` frontmatter, tagged `source:note-file`;
|
|
164
|
+
a file that disappears is tagged `source:note-file:missing`, never deleted),
|
|
165
|
+
and when the turn since the last Stop approved a plan, answered a question,
|
|
166
|
+
committed, or turned a test red then green — with no `remember`/`learn` call
|
|
167
|
+
and no note-file change — it shows one line suggesting a `remember`. Both
|
|
168
|
+
the session capture and the note-directory ingestion are writes, so both
|
|
169
|
+
stop when auto-capture is off (`memesh config set autoCapture false`, or
|
|
170
|
+
`MEMESH_AUTO_CAPTURE=false`); the reminder line still runs either way.
|
|
109
171
|
- **PreCompact** saves important knowledge before history is compressed.
|
|
110
172
|
- **UserPromptSubmit** detects "remember this" intent in the prompt.
|
|
111
173
|
- **PreToolUse (Bash)** fires accepted lesson-guards: a fenced warning
|
package/README.de.md
CHANGED
|
@@ -43,7 +43,7 @@ MeMesh merkt sich das für ihn. Claude-Code-Hooks erfassen und laden den laufend
|
|
|
43
43
|
- **Erfassen, Erinnern, Hinweise und Schutz im richtigen Moment.** MeMesh liefert **9 Hook-Befehle** über seine Claude-Code- und Codex-Integrationen: Acht Claude-Code-Hooks laufen beim Sitzungsstart, vor Dateiänderungen, nach `git commit`, nach einem freigegebenen Plan oder einer beantworteten Frage, wenn Claude aufhört, vor dem Kürzen des Kontexts, bei „remember this“ (in 5 Sprachen, Deutsch nicht darunter) und vor einem riskanten Befehl, der eine bestätigte Lektion wiederholen würde. Die Plan-/Frage- und „remember this“-Hooks erinnern den Agenten nur an `remember`; der neunte Befehl verarbeitet sowohl Codex SessionStart als auch SessionEnd und registriert beziehungsweise beendet eine geeignete gewöhnliche Codex-CLI-Sitzung kontrolliert.
|
|
44
44
|
- **Ein Gedächtnis für alle Tools.** Was du heute in Claude Code speicherst, steht morgen auch Codex oder Cursor zur Verfügung.
|
|
45
45
|
- **Agenten können sich Nachrichten hinterlassen.** Der dauerhafte lokale Posteingang übersteht Neustarts; unter macOS oder Linux kann auch eine exakt adressierte, aktive gewöhnliche Codex-CLI-Sitzung mit MeMesh-Plugin die begrenzte Nachricht über ihre native Queue erhalten.
|
|
46
|
-
- **Ein Dashboard** zum Stöbern:
|
|
46
|
+
- **Ein Dashboard** zum Stöbern: 4 Tabs, 11 Sprachen, unter `http://localhost:3737/dashboard`.
|
|
47
47
|
|
|
48
48
|
---
|
|
49
49
|
|
|
@@ -119,11 +119,11 @@ memesh remember "Login verwendet OAuth 2.0 mit PKCE"
|
|
|
119
119
|
memesh recall "Login"
|
|
120
120
|
# -> findet die PKCE-Entscheidung
|
|
121
121
|
|
|
122
|
-
memesh briefing # was der Agent über dieses Projekt weiß
|
|
122
|
+
memesh briefing # was der Agent über dieses Projekt weiß
|
|
123
123
|
memesh serve # startet den lokalen Server und gibt die Dashboard-URL aus
|
|
124
124
|
```
|
|
125
125
|
|
|
126
|
-
Lass `memesh serve` laufen und öffne die ausgegebene URL. Für die Memory-Tools brauchst du in Claude Code nicht einmal das Terminal: Sag im Chat „remember this“, und
|
|
126
|
+
Lass `memesh serve` laufen und öffne die ausgegebene URL. Für die Memory-Tools brauchst du in Claude Code nicht einmal das Terminal: Sag im Chat „remember this“, und sobald es etwas zu zeigen gibt, kommt das Briefing beim Sitzungsstart von selbst.
|
|
127
127
|
|
|
128
128
|
Zwei Dinge, die du kennen solltest, sobald Erinnerungen da sind:
|
|
129
129
|
|
|
@@ -139,14 +139,14 @@ Alle Befehle und Tools: [docs/api/API_REFERENCE.md](docs/api/API_REFERENCE.md).
|
|
|
139
139
|
| Tool | Was es tut |
|
|
140
140
|
|------|-------------|
|
|
141
141
|
| `work_package` | Einen begrenzten, nicht vertrauenswürdigen Kalender-Digest oder ein Claude-Code-Transkript-Paket unter einem passenden MCP-Workspace-Root vorbereiten; genau ein striktes Ergebnis zur menschlichen Prüfung einreichen oder ohne dauerhafte Änderung zurückstellen. Die Transkript-Einreichung bewahrt begrenzte redigierte Quellzüge auf; Dateipfad, verborgenes Denken, Provider-, Embedding- oder Vektordaten werden nicht offengelegt. |
|
|
142
|
-
| `remember` | Wissen mit Beobachtungen, Relationen und Tags speichern |
|
|
142
|
+
| `remember` | Wissen mit Beobachtungen, Relationen und Tags speichern — oder Freitext als `note` übergeben, woraus Titel, Beobachtungen und Name abgeleitet werden; `replace` korrigiert eine Erinnerung an Ort und Stelle |
|
|
143
143
|
| `recall` | Lokale FTS5-Suche mit Multi-Faktor-Bewertung (Relevanz, Aktualität, Häufigkeit, Konfidenz, Abruf-Auswirkung) |
|
|
144
144
|
| `forget` | Soft-Archivierung (löscht nie) oder entfernt spezifische Beobachtungen |
|
|
145
145
|
| `export` | Memories als JSON sichern, migrieren oder zwischen kompatiblen Agenten übertragen |
|
|
146
146
|
| `import` | Memories mit Merge-Strategien importieren (Skip / Overwrite / Append) |
|
|
147
147
|
| `learn` | Strukturierte Lektionen aus Fehlern erfassen (Fehler, Grundursache, Behebung, Prävention) |
|
|
148
148
|
| `task_state` | Arbeitsstand lesen oder festhalten — Ziel, nächster Schritt, Blocker, gerade Erledigtes |
|
|
149
|
-
| `briefing` | Die Arbeitstopologie für jeden MCP-Client; allgemeiner Kontext bleibt still, während exakte Angaben für `project` + `recipient` nur dessen noch nicht abgerufene Zustellungen anzeigen |
|
|
149
|
+
| `briefing` | Die Arbeitstopologie für jeden MCP-Client wird standardmäßig mit einem begrenzten Index der dauerhaften Memories des Projekts abgeschlossen; wie viel Inhalt zusammengestellt wird, steuert die Einstellung `briefing` (`minimal` / `standard` / `full`); allgemeiner Kontext bleibt still, während exakte Angaben für `project` + `recipient` nur dessen noch nicht abgerufene Zustellungen anzeigen |
|
|
150
150
|
| `user_patterns` | Arbeitsmuster analysieren — Zeitplan, Tools, Stärken, Lernbereiche |
|
|
151
151
|
| `improvement` | Evidenzverknüpfte Produktverbesserung zur menschlichen Prüfung vorschlagen oder ihren Status lesen; Agenten können sie nicht selbst annehmen oder ablehnen |
|
|
152
152
|
| `message` | Aktive Agenten finden und nicht vertrauenswürdige Nachrichten mit exaktem Empfänger austauschen. Dauerhafter JSON-Payload: max. 64 KiB; vollständiger nativer Envelope: max. 16 KiB mit getrennten Fehlern `native_message_too_large` und `recipient_unavailable`. Native Annahme, Discovery, Poll und Fetch bedeuten weder Bestätigung noch Workflow-Status |
|
package/README.md
CHANGED
|
@@ -43,7 +43,7 @@ MeMesh remembers for it. Claude Code hooks capture and restore routine context;
|
|
|
43
43
|
- **Capture, recall, reminders, and safeguards at the right time.** MeMesh ships **9 hooks** (nine hook commands) across its Claude Code and Codex integrations: eight Claude Code hooks run at session start, before file edits, after `git commit`, after a plan is approved or a question answered, when Claude stops, before context compaction, when you say "remember this" (5 languages), and before a risky command that repeats an accepted lesson. The plan/question and "remember this" hooks only remind the agent to call `remember`; the ninth command handles both Codex SessionStart and SessionEnd to register and retire an eligible ordinary Codex CLI session.
|
|
44
44
|
- **One memory for all your tools.** A decision stored from Claude Code is available to Codex or Cursor the next day.
|
|
45
45
|
- **Agents can leave each other messages.** A durable inbox survives restarts; on macOS or Linux, an ordinary Codex CLI thread with the MeMesh plugin can keep a bounded post-turn native queue window and consume the accepted message when that same thread resumes.
|
|
46
|
-
- **A dashboard** to browse it all:
|
|
46
|
+
- **A dashboard** to browse it all: 4 tabs, 11 languages, at `http://localhost:3737/dashboard`.
|
|
47
47
|
|
|
48
48
|
---
|
|
49
49
|
|
|
@@ -119,11 +119,11 @@ memesh remember "Login uses OAuth 2.0 with PKCE"
|
|
|
119
119
|
memesh recall "login"
|
|
120
120
|
# -> finds the PKCE decision
|
|
121
121
|
|
|
122
|
-
memesh briefing # what the agent knows about this project
|
|
122
|
+
memesh briefing # what the agent knows about this project
|
|
123
123
|
memesh serve # starts the local server and prints the dashboard URL
|
|
124
124
|
```
|
|
125
125
|
|
|
126
|
-
Keep `memesh serve` running and open the printed URL. In Claude Code you do not even need the terminal for memory tools: say "remember this" in chat, and the briefing arrives on its own at
|
|
126
|
+
Keep `memesh serve` running and open the printed URL. In Claude Code you do not even need the terminal for memory tools: say "remember this" in chat, and once there is something to show, the briefing arrives on its own at session start.
|
|
127
127
|
|
|
128
128
|
Two things worth knowing once you have memories:
|
|
129
129
|
|
|
@@ -139,14 +139,14 @@ Full command and tool reference: [docs/api/API_REFERENCE.md](docs/api/API_REFERE
|
|
|
139
139
|
| Tool | What it does |
|
|
140
140
|
|------|-------------|
|
|
141
141
|
| `work_package` | Prepare one bounded untrusted calendar digest or Claude Code transcript package under one matching MCP workspace root; submit one strict result for pending human review, or defer without durable change. Transcript submission retains bounded redacted source turns; no file path, hidden reasoning, provider, embedding, or vector data is exposed. |
|
|
142
|
-
| `remember` | Store knowledge
|
|
142
|
+
| `remember` | Store knowledge as observations, relations and tags — or pass free text as `note` and the title, observations and name are derived; `replace` corrects a memory in place |
|
|
143
143
|
| `recall` | Local FTS5 search with multi-factor scoring (relevance, recency, frequency, confidence, recall impact) |
|
|
144
144
|
| `forget` | Soft-archive (never deletes) or remove specific observations |
|
|
145
145
|
| `export` | Back up, migrate, or move memories as JSON between compatible agents |
|
|
146
146
|
| `import` | Import memories with merge strategies (skip / overwrite / append) |
|
|
147
147
|
| `learn` | Record structured lessons from mistakes (error, root cause, fix, prevention) |
|
|
148
148
|
| `task_state` | Read or record where the work stands — goal, next step, blocker, what was just finished |
|
|
149
|
-
| `briefing` | The assembled work topology for any MCP client; generic context stays quiet, while exact `project` + `recipient` can surface only that recipient's unfetched deliveries |
|
|
149
|
+
| `briefing` | The assembled work topology for any MCP client, closing, by default, with a capped index of the project's durable memories (the `briefing` setting — `minimal` / `standard` / `full` — controls how much is assembled); generic context stays quiet, while exact `project` + `recipient` can surface only that recipient's unfetched deliveries |
|
|
150
150
|
| `user_patterns` | Analyze your work patterns — schedule, tools, strengths, learning areas |
|
|
151
151
|
| `improvement` | Stage an evidence-linked product improvement for human review, or read its status; agents cannot accept or reject it |
|
|
152
152
|
| `message` | Discover live agents, then exchange exact-recipient untrusted messages. Durable JSON payload max: 64 KiB; complete native envelope max: 16 KiB with distinct `native_message_too_large` and `recipient_unavailable` failures. Native acceptance, discovery, poll, and fetch never imply acknowledgement or disposition |
|
package/README.zh-TW.md
CHANGED
|
@@ -45,7 +45,7 @@ MeMesh 幫它記住。Claude Code hooks 會記錄並還原日常工作脈絡;
|
|
|
45
45
|
- **在適當時機記錄、提醒與防護。** MeMesh 的 Claude Code 與 Codex 整合共提供 **9 個 hook command**:其中 8 個 Claude Code hook 分別在開新對話、改檔案前、`git commit` 後、計畫核准或你回答問題後、Claude 停下來時、對話被壓縮前、你說「記下來」時(聽得懂 5 種語言),以及執行可能重犯已接受教訓的危險指令前運作。計畫/問題與「記下來」hook 只會提醒 agent 呼叫 `remember`;第 9 個 command 同時處理 Codex SessionStart 與 SessionEnd,註冊並退場符合資格的一般 Codex CLI session。
|
|
46
46
|
- **所有工具共用一份記憶。** 今天在 Claude Code 存的決定,明天 Codex 或 Cursor 也用得到。
|
|
47
47
|
- **agent 之間可以留言。** 本機的耐久收件匣可跨重啟保存;在 macOS 或 Linux 上,確切且活動中的一般 Codex CLI session 裝有 MeMesh plugin 時,也能透過原生 queue 收到有界訊息。
|
|
48
|
-
- **有儀表板** 可以瀏覽全部內容:
|
|
48
|
+
- **有儀表板** 可以瀏覽全部內容:4 個分頁、11 種語言,在 `http://localhost:3737/dashboard`。
|
|
49
49
|
|
|
50
50
|
---
|
|
51
51
|
|
|
@@ -121,11 +121,11 @@ memesh remember "登入功能用 OAuth 2.0 加 PKCE"
|
|
|
121
121
|
memesh recall "登入"
|
|
122
122
|
# -> 找到那筆 PKCE 的決定
|
|
123
123
|
|
|
124
|
-
memesh briefing # agent
|
|
124
|
+
memesh briefing # agent 對這個專案知道多少
|
|
125
125
|
memesh serve # 啟動本機 server 並印出儀表板網址
|
|
126
126
|
```
|
|
127
127
|
|
|
128
|
-
讓 `memesh serve` 保持執行,再開啟它印出的網址。在 Claude Code
|
|
128
|
+
讓 `memesh serve` 保持執行,再開啟它印出的網址。在 Claude Code 裡使用記憶工具時連終端機都不用開:在對話裡說「記下來」就好;有內容可看之後,開新對話時也會自動先收到摘要。
|
|
129
129
|
|
|
130
130
|
有了記憶之後,兩件值得知道的事:
|
|
131
131
|
|
|
@@ -141,14 +141,14 @@ memesh serve # 啟動本機 server 並印出儀表板網址
|
|
|
141
141
|
| 工具 | 做什麼 |
|
|
142
142
|
|------|--------|
|
|
143
143
|
| `work_package` | 準備一份有界限且不受信任的日曆摘要,或從唯一符合的 MCP workspace root 準備 Claude Code transcript 套件;提交一份嚴格結果等待人工審核,或延後而不產生耐久變更。Transcript 提交會保留有界且已遮蔽的來源輪次;不會暴露檔案路徑、隱藏推理、provider、embedding 或 vector 資料。 |
|
|
144
|
-
| `remember` |
|
|
144
|
+
| `remember` | 用觀察、關係和標籤儲存知識;也可以只給一段自由文字(`note`),標題、觀察和名稱會自動推導出來;`replace` 則是直接改掉既有的那一筆 |
|
|
145
145
|
| `recall` | 本機 FTS5 搜尋,包含多因素評分(相關性、近期性、頻率、信心、回憶影響) |
|
|
146
146
|
| `forget` | 軟歸檔(永不刪除)或移除特定觀察 |
|
|
147
147
|
| `export` | 以 JSON 備份、搬遷記憶,或在相容代理之間轉移 |
|
|
148
148
|
| `import` | 匯入記憶,包含合併策略(跳過 / 覆寫 / 追加) |
|
|
149
149
|
| `learn` | 記錄來自錯誤的結構化教訓(錯誤、根本原因、修復、預防) |
|
|
150
150
|
| `task_state` | 讀取或記下工作進度——目標、下一步、卡住的地方、剛完成的事 |
|
|
151
|
-
| `briefing` | 提供給任何 MCP client
|
|
151
|
+
| `briefing` | 提供給任何 MCP client 的工作拓撲,預設情況下最後會附上這個專案長期記憶的索引(有數量上限)——實際組裝多少內容由 `briefing` 設定(`minimal` / `standard` / `full`)決定;一般情境不顯示未讀訊息,確切的 `project` + `recipient` 才會顯示該收件者尚未擷取的訊息 |
|
|
152
152
|
| `user_patterns` | 分析你的工作模式——時間表、工具、優勢、學習領域 |
|
|
153
153
|
| `improvement` | 將有證據來源的產品改善送交人類審核,或讀取其狀態;agent 不能自行接受或拒絕 |
|
|
154
154
|
| `message` | 先找出活動 agent,再交換確切收件者的不受信任訊息。Durable JSON payload 上限 64 KiB;完整 native envelope 上限 16 KiB,並區分 `native_message_too_large` 與 `recipient_unavailable`。原生接受、探索、輪詢與擷取都不代表 ACK 或 workflow disposition |
|