memorix 1.0.7 → 1.0.8
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 +36 -9
- package/README.md +469 -409
- package/README.zh-CN.md +468 -415
- package/TEAM.md +106 -0
- package/dist/cli/index.js +31325 -26915
- package/dist/cli/index.js.map +1 -1
- package/dist/dashboard/static/app.js +49 -49
- package/dist/dashboard/static/index.html +2 -2
- package/dist/index.js +1061 -234
- package/dist/index.js.map +1 -1
- package/dist/sdk.d.ts +677 -0
- package/dist/sdk.js +18962 -0
- package/dist/sdk.js.map +1 -0
- package/dist/types.d.ts +10 -10
- package/dist/types.js +10 -10
- package/dist/types.js.map +1 -1
- package/docs/AGENT_OPERATOR_PLAYBOOK.md +684 -0
- package/docs/AI_CONTEXT.md +18 -0
- package/docs/API_REFERENCE.md +687 -0
- package/docs/ARCHITECTURE.md +488 -0
- package/docs/CLOUD_SYNC_AND_MULTI_AGENT_RESEARCH.md +470 -0
- package/docs/CONFIGURATION.md +265 -0
- package/docs/DESIGN_DECISIONS.md +358 -0
- package/docs/DEVELOPMENT.md +317 -0
- package/docs/DOCKER.md +138 -0
- package/docs/GIT_MEMORY.md +221 -0
- package/docs/KNOWN_ISSUES_AND_ROADMAP.md +149 -0
- package/docs/MEMORY_FORMATION_PIPELINE.md +224 -0
- package/docs/MODULES.md +383 -0
- package/docs/PERFORMANCE.md +64 -0
- package/docs/README.md +79 -0
- package/docs/SETUP.md +521 -0
- package/docs/hooks-architecture.md +108 -0
- package/package.json +24 -23
|
@@ -0,0 +1,684 @@
|
|
|
1
|
+
# Memorix Agent Operator Playbook
|
|
2
|
+
|
|
3
|
+
> Primary operating guide for coding agents that need to install, configure, bind, and use Memorix correctly.
|
|
4
|
+
|
|
5
|
+
This document is written for AI coding agents, not for human-first browsing. If you are an agent helping a user adopt Memorix, use this file as the execution guide before you attempt installation, integration, or troubleshooting.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. What Memorix Is
|
|
10
|
+
|
|
11
|
+
Memorix is an open-source cross-agent memory layer for coding agents via MCP.
|
|
12
|
+
|
|
13
|
+
It is designed for software work, not generic chat memory. Its core value is that multiple coding agents and IDEs can share:
|
|
14
|
+
|
|
15
|
+
- **Observation Memory**: what changed, how something works, gotchas, problem-solution notes
|
|
16
|
+
- **Reasoning Memory**: why a decision was made, alternatives, trade-offs, risks
|
|
17
|
+
- **Git Memory**: structured engineering truth derived from commits
|
|
18
|
+
|
|
19
|
+
It supports:
|
|
20
|
+
|
|
21
|
+
- stdio MCP (`memorix serve`)
|
|
22
|
+
- HTTP control plane + dashboard (`memorix background start` or `memorix serve-http --port 3211`)
|
|
23
|
+
- local-first project-scoped memory
|
|
24
|
+
- cross-agent recall across Cursor, Claude Code, Codex, Windsurf, Gemini CLI, GitHub Copilot, Kiro, OpenCode, Antigravity, and Trae
|
|
25
|
+
|
|
26
|
+
### 1.0.8 operator delta
|
|
27
|
+
|
|
28
|
+
If you used Memorix before `1.0.8`, the operator-visible changes worth knowing are:
|
|
29
|
+
|
|
30
|
+
- session, search, detail, and timeline now expose a clearer `L1 / L2 / L3` retrieval model
|
|
31
|
+
- compact evidence surfaces better distinguish repository-backed signals, synthesized analysis, and citation-lite support
|
|
32
|
+
- retrieval is more task-line aware inside a single repo and less likely to surface the wrong subdomain
|
|
33
|
+
- obvious credentials are sanitized on write and redacted on retrieval surfaces
|
|
34
|
+
- retention, stale review, audit, and resolve now form a clearer cleanup/remediation loop
|
|
35
|
+
- OpenCode compaction guidance now preserves structured continuation context without falsely implying automatic MCP tool calls
|
|
36
|
+
- `memorix_session_start` is now **lightweight by default**: it binds the project, opens the session, and restores context without auto-registering a team identity
|
|
37
|
+
- team participation is now explicit: use `joinTeam: true` on `memorix_session_start` or call `team_manage(join)` directly
|
|
38
|
+
- Memorix is now **CLI-first for operators**: every Memorix-native operator capability has a terminal route, while MCP remains the integration protocol for IDEs and agents
|
|
39
|
+
- Agent Team page is an **autonomous CLI agents status surface** (not an org backend or IDE-window chat room): shows explicitly joined autonomous agents, open tasks, handoffs, and a "Continue This Project" resume area
|
|
40
|
+
- Docker now has an official HTTP control-plane deployment path; when running in a container, `projectRoot` must be visible inside that container or project-scoped semantics will fail closed
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## 2. Operating Principles You Must Respect
|
|
45
|
+
|
|
46
|
+
### CLI is the primary operator surface; MCP is the integration layer
|
|
47
|
+
|
|
48
|
+
For human operators, prefer `memorix ...` commands first. In 1.0.8, the CLI covers all Memorix-native operator capabilities across session, memory, reasoning, retention, formation, audit, transfer, skills, team, task, message, lock, handoff, poll, sync, and ingest workflows.
|
|
49
|
+
|
|
50
|
+
Do not ask memory-only users to join the Agent Team. A lightweight session is enough for memory, retrieval, reasoning, and continuation. Join only for explicit task/message/lock coordination or for autonomous CLI-agent work managed by `memorix orchestrate`.
|
|
51
|
+
|
|
52
|
+
Use MCP when:
|
|
53
|
+
|
|
54
|
+
- an IDE or agent needs tool calls
|
|
55
|
+
- you are integrating Memorix into an MCP-capable client
|
|
56
|
+
- you need the optional graph-compatibility tools that intentionally remain MCP-only
|
|
57
|
+
|
|
58
|
+
Use the CLI when:
|
|
59
|
+
|
|
60
|
+
- a human is operating Memorix directly
|
|
61
|
+
- you are on SSH / Docker / CI / NAS and want direct control
|
|
62
|
+
- you want readable, stable command namespaces instead of raw tool payloads
|
|
63
|
+
|
|
64
|
+
### Git is the source of truth for project identity
|
|
65
|
+
|
|
66
|
+
Memorix is project-scoped by default.
|
|
67
|
+
|
|
68
|
+
Important:
|
|
69
|
+
|
|
70
|
+
- `projectRoot` is a **detection anchor**
|
|
71
|
+
- Git identity is the **final project identity**
|
|
72
|
+
|
|
73
|
+
If the workspace is not a Git repository:
|
|
74
|
+
|
|
75
|
+
- project-safe memory will not bind correctly
|
|
76
|
+
- some commands may fail closed
|
|
77
|
+
- the right first step is usually:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
git init
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Do not assume a plain folder path is enough.
|
|
84
|
+
|
|
85
|
+
### Choose one runtime model intentionally
|
|
86
|
+
|
|
87
|
+
There are four practical operator entry points:
|
|
88
|
+
|
|
89
|
+
- `memorix` for the interactive local workbench in a TTY
|
|
90
|
+
- `memorix serve` for stdio MCP hosts
|
|
91
|
+
- `memorix background start` for an optional long-lived HTTP control plane
|
|
92
|
+
- `memorix serve-http --port 3211` for foreground HTTP control-plane work
|
|
93
|
+
|
|
94
|
+
The two server runtime modes are:
|
|
95
|
+
|
|
96
|
+
Use:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
memorix serve
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
when the MCP host launches Memorix directly from the current workspace and stdio transport is enough.
|
|
103
|
+
|
|
104
|
+
Prefer:
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
memorix background start
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
when the user wants:
|
|
111
|
+
|
|
112
|
+
- HTTP MCP transport
|
|
113
|
+
- dashboard
|
|
114
|
+
- multiple agents or sessions
|
|
115
|
+
- team/task/message features
|
|
116
|
+
- one shared control-plane process
|
|
117
|
+
|
|
118
|
+
Default recommendation: if the user just wants memory inside one IDE or terminal, start with `memorix` or `memorix serve`. Reach for HTTP only when a shared background service, multi-client MCP access, or a live dashboard endpoint is actually needed.
|
|
119
|
+
|
|
120
|
+
Use:
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
memorix serve-http --port 3211
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
when the user wants the same HTTP control plane in the foreground for debugging, manual supervision, or a custom port.
|
|
127
|
+
|
|
128
|
+
### In HTTP mode, always bind the project explicitly
|
|
129
|
+
|
|
130
|
+
At the beginning of a new project session, call:
|
|
131
|
+
|
|
132
|
+
```json
|
|
133
|
+
{
|
|
134
|
+
"agent": "your-agent-name",
|
|
135
|
+
"projectRoot": "ABSOLUTE_WORKSPACE_PATH"
|
|
136
|
+
}
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
through `memorix_session_start`.
|
|
140
|
+
|
|
141
|
+
Do not assume the HTTP connection alone tells Memorix which project the user means.
|
|
142
|
+
|
|
143
|
+
The HTTP control plane is normally started with `memorix background start`; the same project-binding rules apply when you run `memorix serve-http --port 3211` in the foreground.
|
|
144
|
+
|
|
145
|
+
HTTP MCP sessions idle out after 30 minutes by default. If the user's HTTP MCP client is sensitive to stale session IDs after long idle periods, set `MEMORIX_SESSION_TIMEOUT_MS` before starting or restarting the control plane. Example: `MEMORIX_SESSION_TIMEOUT_MS=86400000` keeps sessions alive for 24 hours.
|
|
146
|
+
|
|
147
|
+
### Do not confuse project config and global config
|
|
148
|
+
|
|
149
|
+
Memorix intentionally supports both:
|
|
150
|
+
|
|
151
|
+
- **project-level** settings and integrations
|
|
152
|
+
- **global-level** defaults
|
|
153
|
+
|
|
154
|
+
Your job as an agent is to choose the smallest scope that matches the user's goal.
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## 3. Fastest Valid Setup
|
|
159
|
+
|
|
160
|
+
Use this path when the user wants the quickest possible adoption.
|
|
161
|
+
|
|
162
|
+
### Step 1. Install Memorix
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
npm install -g memorix
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Step 2. Ensure the workspace is a Git repo
|
|
169
|
+
|
|
170
|
+
If not:
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
git init
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### Step 3. Initialize config
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
memorix init
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
`memorix init` is a scope selector, not just a project-local generator. It lets the user choose between:
|
|
183
|
+
|
|
184
|
+
- `Global defaults`
|
|
185
|
+
- `Project config`
|
|
186
|
+
|
|
187
|
+
Memorix uses:
|
|
188
|
+
|
|
189
|
+
- `memorix.yml` for behavior and project settings
|
|
190
|
+
- `.env` for secrets such as API keys
|
|
191
|
+
|
|
192
|
+
### Step 4. Start stdio MCP mode
|
|
193
|
+
|
|
194
|
+
If the user wants the local interactive workbench first, they can also run:
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
memorix
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
Use that for local browsing, commands, and quick validation in a TTY.
|
|
201
|
+
|
|
202
|
+
Inside the TUI workbench, slash commands are available: `/chat` (or just type a question), `/search`, `/remember`, `/recent`, `/resume` (or `/resume 2` for thread #2), `/new`, `/clear`, `/doctor`, `/project`, `/background`, `/dashboard`, `/integrate`, `/configure`, `/cleanup`, `/ingest`, `/help`, `/exit`. Most have short aliases (e.g. `/s`, `/r`, `/v`, `/d`, `/q`).
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
memorix serve
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
### Step 5. Add MCP config to the target client
|
|
209
|
+
|
|
210
|
+
Generic stdio MCP example:
|
|
211
|
+
|
|
212
|
+
```json
|
|
213
|
+
{
|
|
214
|
+
"mcpServers": {
|
|
215
|
+
"memorix": {
|
|
216
|
+
"command": "memorix",
|
|
217
|
+
"args": ["serve"]
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
Generic HTTP MCP example:
|
|
224
|
+
|
|
225
|
+
```json
|
|
226
|
+
{
|
|
227
|
+
"mcpServers": {
|
|
228
|
+
"memorix": {
|
|
229
|
+
"transport": "http",
|
|
230
|
+
"url": "http://localhost:3211/mcp"
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
**⚠ serverUrl mode requires the background control plane to already be running.**
|
|
237
|
+
The `serverUrl` config is a pure HTTP client — it connects to an endpoint but does NOT start the server.
|
|
238
|
+
If the control plane is down, the MCP client receives `ECONNREFUSED` with no auto-recovery.
|
|
239
|
+
|
|
240
|
+
To guarantee the server is available before the IDE connects, use:
|
|
241
|
+
|
|
242
|
+
```bash
|
|
243
|
+
memorix background ensure
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
This command checks health and auto-starts if needed. Add it to your shell profile or IDE startup script.
|
|
247
|
+
|
|
248
|
+
Some IDEs (Windsurf, Cursor) use `serverUrl` in their MCP config and do not support preflight commands.
|
|
249
|
+
For those, the background must be started manually or via OS startup (see §4 Step 3b below).
|
|
250
|
+
|
|
251
|
+
If you choose HTTP mode, do not stop at the URL. The agent must also bind each project session with `memorix_session_start(projectRoot=ABSOLUTE_WORKSPACE_PATH)` when the workspace path is available.
|
|
252
|
+
|
|
253
|
+
This is the best path for:
|
|
254
|
+
|
|
255
|
+
- one workspace
|
|
256
|
+
- one agent/IDE
|
|
257
|
+
- quick validation
|
|
258
|
+
- minimal moving parts
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
## 4. Full Control-Plane Setup
|
|
263
|
+
|
|
264
|
+
Use this path when the user wants the full Memorix product model.
|
|
265
|
+
|
|
266
|
+
### Step 1. Install and initialize
|
|
267
|
+
|
|
268
|
+
```bash
|
|
269
|
+
npm install -g memorix
|
|
270
|
+
memorix init
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
### Step 2. Ensure Git identity exists
|
|
274
|
+
|
|
275
|
+
If needed:
|
|
276
|
+
|
|
277
|
+
```bash
|
|
278
|
+
git init
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
### Step 3. Start HTTP control plane
|
|
282
|
+
|
|
283
|
+
```bash
|
|
284
|
+
memorix background start
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
Main URLs:
|
|
288
|
+
|
|
289
|
+
- MCP endpoint: `http://localhost:3211/mcp`
|
|
290
|
+
- dashboard: `http://localhost:3211`
|
|
291
|
+
|
|
292
|
+
Companion commands:
|
|
293
|
+
|
|
294
|
+
```bash
|
|
295
|
+
memorix background status # Show running state and health
|
|
296
|
+
memorix background ensure # Auto-start if not running (idempotent, silent when healthy)
|
|
297
|
+
memorix background logs # Show recent log output
|
|
298
|
+
memorix background stop # Stop the background control plane
|
|
299
|
+
memorix background restart # Stop + start
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
### Step 3b. Make the control plane persistent (recommended)
|
|
303
|
+
|
|
304
|
+
`memorix background start` spawns a detached process that survives the terminal, but it does **not** survive system reboots or user logouts.
|
|
305
|
+
|
|
306
|
+
The background control plane is a **persistent server** — it is designed to run continuously in the background, not to be auto-launched by MCP clients on demand.
|
|
307
|
+
|
|
308
|
+
To make it truly persistent:
|
|
309
|
+
|
|
310
|
+
**Windows** — add to shell profile (`$PROFILE`):
|
|
311
|
+
|
|
312
|
+
```powershell
|
|
313
|
+
memorix background ensure
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
**macOS/Linux** — add to shell profile (`.bashrc`, `.zshrc`):
|
|
317
|
+
|
|
318
|
+
```bash
|
|
319
|
+
memorix background ensure 2>/dev/null
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
Or use a launchd plist / systemd user service for true boot-time persistence.
|
|
323
|
+
|
|
324
|
+
**Why this matters:** IDEs that use `serverUrl` (Windsurf, Cursor HTTP mode) connect to `http://localhost:3211/mcp` but cannot start the server. If the control plane is down, the IDE shows an MCP error with no recovery path. The user must run `memorix background start` or `ensure` manually.
|
|
325
|
+
|
|
326
|
+
At startup, `serve-http` seeds its default project root from:
|
|
327
|
+
|
|
328
|
+
1. `--cwd`
|
|
329
|
+
2. `MEMORIX_PROJECT_ROOT`
|
|
330
|
+
3. `~/.memorix/last-project-root`
|
|
331
|
+
4. `process.cwd()`
|
|
332
|
+
|
|
333
|
+
That startup root is useful for dashboard and server boot, but it does not replace explicit session binding.
|
|
334
|
+
|
|
335
|
+
### Step 4. Bind each HTTP session explicitly
|
|
336
|
+
|
|
337
|
+
At session start, call:
|
|
338
|
+
|
|
339
|
+
```json
|
|
340
|
+
{
|
|
341
|
+
"agent": "your-agent-name",
|
|
342
|
+
"projectRoot": "ABSOLUTE_WORKSPACE_PATH"
|
|
343
|
+
}
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
through `memorix_session_start`.
|
|
347
|
+
|
|
348
|
+
This is the right path for:
|
|
349
|
+
|
|
350
|
+
- dashboard users
|
|
351
|
+
- multi-agent workflows
|
|
352
|
+
- team/task/message usage
|
|
353
|
+
- multiple concurrent sessions
|
|
354
|
+
- debugging project binding and config provenance
|
|
355
|
+
|
|
356
|
+
---
|
|
357
|
+
|
|
358
|
+
## 5. Agent Decision Tree
|
|
359
|
+
|
|
360
|
+
Use this routing logic when helping a user.
|
|
361
|
+
|
|
362
|
+
### If the user says:
|
|
363
|
+
|
|
364
|
+
- "I just want it working quickly"
|
|
365
|
+
- "I only need Cursor / Claude Code / Codex"
|
|
366
|
+
- "I don't care about dashboard"
|
|
367
|
+
|
|
368
|
+
Choose:
|
|
369
|
+
|
|
370
|
+
- `memorix serve`
|
|
371
|
+
- simple stdio MCP config
|
|
372
|
+
|
|
373
|
+
### If the user says:
|
|
374
|
+
|
|
375
|
+
- "I want dashboard"
|
|
376
|
+
- "I want HTTP MCP"
|
|
377
|
+
- "I want multiple agents / IDEs at once"
|
|
378
|
+
- "I want shared HTTP MCP or a live dashboard endpoint"
|
|
379
|
+
|
|
380
|
+
Choose:
|
|
381
|
+
|
|
382
|
+
- `memorix background start`
|
|
383
|
+
- explicit `memorix_session_start(projectRoot=...)`
|
|
384
|
+
|
|
385
|
+
### If the user asks for IDE integration files
|
|
386
|
+
|
|
387
|
+
Use:
|
|
388
|
+
|
|
389
|
+
```bash
|
|
390
|
+
memorix integrate --agent <agent>
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
This is explicit, opt-in generation.
|
|
394
|
+
|
|
395
|
+
### If the user asks for hooks
|
|
396
|
+
|
|
397
|
+
Use:
|
|
398
|
+
|
|
399
|
+
```bash
|
|
400
|
+
memorix hooks install --agent <agent>
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
This is also explicit and opt-in.
|
|
404
|
+
|
|
405
|
+
Do not assume the user wants every supported IDE directory generated.
|
|
406
|
+
|
|
407
|
+
---
|
|
408
|
+
|
|
409
|
+
## 6. Generated Dot Directories: What They Mean
|
|
410
|
+
|
|
411
|
+
Memorix now favors **explicit, per-agent installation**.
|
|
412
|
+
|
|
413
|
+
That means:
|
|
414
|
+
|
|
415
|
+
- it does **not** need to spray every supported `.xxx` directory into every repo
|
|
416
|
+
- the user or agent can select only the integrations they actually need
|
|
417
|
+
|
|
418
|
+
Important:
|
|
419
|
+
|
|
420
|
+
- many `.cursor`, `.windsurf`, `.claude`, `.gemini`, `.opencode`, etc. directories are not arbitrary clutter
|
|
421
|
+
- they are often part of the target IDE's own discovery protocol
|
|
422
|
+
- do **not** promise that all of them can be physically merged into one folder without breaking host detection
|
|
423
|
+
|
|
424
|
+
What you can say safely:
|
|
425
|
+
|
|
426
|
+
- Memorix supports **on-demand generation**
|
|
427
|
+
- it does **not** require generating every integration at once
|
|
428
|
+
- different hosts still expect their own directory or config path
|
|
429
|
+
|
|
430
|
+
---
|
|
431
|
+
|
|
432
|
+
## 7. Hooks vs Integrations
|
|
433
|
+
|
|
434
|
+
Do not confuse these.
|
|
435
|
+
|
|
436
|
+
### `memorix integrate`
|
|
437
|
+
|
|
438
|
+
Purpose:
|
|
439
|
+
|
|
440
|
+
- generate IDE/agent integration files
|
|
441
|
+
- write MCP config, rules, settings, or plugin files for a specific target
|
|
442
|
+
|
|
443
|
+
Typical use:
|
|
444
|
+
|
|
445
|
+
```bash
|
|
446
|
+
memorix integrate --agent cursor
|
|
447
|
+
memorix integrate --agent opencode
|
|
448
|
+
memorix integrate --agent gemini-cli
|
|
449
|
+
```
|
|
450
|
+
|
|
451
|
+
### `memorix hooks install`
|
|
452
|
+
|
|
453
|
+
Purpose:
|
|
454
|
+
|
|
455
|
+
- install auto-capture hooks for supported agents
|
|
456
|
+
|
|
457
|
+
Typical use:
|
|
458
|
+
|
|
459
|
+
```bash
|
|
460
|
+
memorix hooks install --agent cursor
|
|
461
|
+
memorix hooks install --agent opencode
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
### `memorix git-hook`
|
|
465
|
+
|
|
466
|
+
Purpose:
|
|
467
|
+
|
|
468
|
+
- install a post-commit hook in the current Git repo
|
|
469
|
+
- automatically ingest commits as Git Memory
|
|
470
|
+
|
|
471
|
+
Typical use:
|
|
472
|
+
|
|
473
|
+
```bash
|
|
474
|
+
memorix git-hook --force
|
|
475
|
+
```
|
|
476
|
+
|
|
477
|
+
---
|
|
478
|
+
|
|
479
|
+
## 8. What an Agent Should Do at Session Start
|
|
480
|
+
|
|
481
|
+
In HTTP control-plane mode:
|
|
482
|
+
|
|
483
|
+
1. Call `memorix_session_start`
|
|
484
|
+
2. Pass:
|
|
485
|
+
- `agent` — display name (e.g. `"cursor-frontend"`)
|
|
486
|
+
- `agentType` — optional agent type for Agent Team role mapping (e.g. `"windsurf"`, `"cursor"`, `"claude-code"`, `"codex"`, `"gemini-cli"`)
|
|
487
|
+
- `projectRoot` = absolute workspace path
|
|
488
|
+
3. By default this only starts a lightweight session. It does **not** auto-register a team identity.
|
|
489
|
+
4. If the user wants autonomous Agent Team features, either:
|
|
490
|
+
- call `memorix_session_start` with `joinTeam: true`
|
|
491
|
+
- or call `team_manage(join)` explicitly
|
|
492
|
+
5. If project binding fails, stop using project-scoped tools until the path is corrected
|
|
493
|
+
6. Then use:
|
|
494
|
+
- `memorix_search`
|
|
495
|
+
- `memorix_detail`
|
|
496
|
+
- `memorix_timeline`
|
|
497
|
+
as needed
|
|
498
|
+
|
|
499
|
+
In stdio / project-bound mode:
|
|
500
|
+
|
|
501
|
+
- `projectRoot` is optional if the process is already launched from the correct workspace
|
|
502
|
+
- keep this path lightweight unless the user explicitly asks for team coordination
|
|
503
|
+
|
|
504
|
+
Important boundary:
|
|
505
|
+
|
|
506
|
+
- `team_manage(join)` does not make separate Cursor, Windsurf, Codex, or TUI conversation windows magically talk to each other.
|
|
507
|
+
- For real autonomous multi-agent implementation loops, use `memorix orchestrate`; it launches CLI agents, coordinates work through tasks/context, and runs verification/fix/review gates.
|
|
508
|
+
|
|
509
|
+
---
|
|
510
|
+
|
|
511
|
+
## 9. Recommended Command Set for Agents
|
|
512
|
+
|
|
513
|
+
### Core runtime
|
|
514
|
+
|
|
515
|
+
```bash
|
|
516
|
+
memorix serve
|
|
517
|
+
memorix background start
|
|
518
|
+
memorix serve-http --port 3211
|
|
519
|
+
memorix doctor
|
|
520
|
+
memorix status
|
|
521
|
+
```
|
|
522
|
+
|
|
523
|
+
### Project setup
|
|
524
|
+
|
|
525
|
+
```bash
|
|
526
|
+
memorix init
|
|
527
|
+
memorix integrate --agent <agent>
|
|
528
|
+
memorix hooks install --agent <agent>
|
|
529
|
+
memorix git-hook --force
|
|
530
|
+
```
|
|
531
|
+
|
|
532
|
+
### Memory operations
|
|
533
|
+
|
|
534
|
+
Use MCP tools:
|
|
535
|
+
|
|
536
|
+
- `memorix_store`
|
|
537
|
+
- `memorix_search`
|
|
538
|
+
- `memorix_detail`
|
|
539
|
+
- `memorix_timeline`
|
|
540
|
+
- `memorix_resolve`
|
|
541
|
+
- `memorix_deduplicate`
|
|
542
|
+
- `memorix_store_reasoning`
|
|
543
|
+
|
|
544
|
+
---
|
|
545
|
+
|
|
546
|
+
## 10. Installation and Troubleshooting Checklist
|
|
547
|
+
|
|
548
|
+
If Memorix "doesn't work", check these in order.
|
|
549
|
+
|
|
550
|
+
### 1. Is the workspace a Git repo?
|
|
551
|
+
|
|
552
|
+
If not, run:
|
|
553
|
+
|
|
554
|
+
```bash
|
|
555
|
+
git init
|
|
556
|
+
```
|
|
557
|
+
|
|
558
|
+
### 2. Is the runtime mode correct?
|
|
559
|
+
|
|
560
|
+
- stdio MCP client -> `memorix serve`
|
|
561
|
+
- HTTP/dashboard/control-plane use case -> `memorix background start` by default, or `memorix serve-http --port 3211` when foreground control is required
|
|
562
|
+
|
|
563
|
+
### 3. Is the background control plane actually running?
|
|
564
|
+
|
|
565
|
+
If the MCP client reports `ECONNREFUSED` on `localhost:3211`:
|
|
566
|
+
|
|
567
|
+
```bash
|
|
568
|
+
memorix background status
|
|
569
|
+
```
|
|
570
|
+
|
|
571
|
+
If it shows "Not running" or "dead":
|
|
572
|
+
|
|
573
|
+
```bash
|
|
574
|
+
memorix background ensure
|
|
575
|
+
```
|
|
576
|
+
|
|
577
|
+
If the client is connected but starts failing after roughly 30 minutes of no Memorix tool use, check for stale HTTP session expiry rather than treating it as project binding failure. Restart the control plane with a longer idle timeout:
|
|
578
|
+
|
|
579
|
+
```powershell
|
|
580
|
+
$env:MEMORIX_SESSION_TIMEOUT_MS = "86400000"
|
|
581
|
+
memorix background restart
|
|
582
|
+
```
|
|
583
|
+
|
|
584
|
+
Common causes of the background dying:
|
|
585
|
+
- System reboot or user logout (background is not a system service)
|
|
586
|
+
- Unhandled error in the control plane process (now logged to `~/.memorix/background.log`)
|
|
587
|
+
- Terminal that started it was closed before the process fully detached (rare on Node.js v20+)
|
|
588
|
+
|
|
589
|
+
The heartbeat file `~/.memorix/background.heartbeat` is updated every 30 seconds while the control plane is alive. If `status` reports a dead process with a recent heartbeat, the control plane crashed — check the log file.
|
|
590
|
+
|
|
591
|
+
### 4. Is the MCP config pointing to the right command?
|
|
592
|
+
|
|
593
|
+
On Windows, some hosts behave better with `memorix.cmd` than bare `memorix`.
|
|
594
|
+
|
|
595
|
+
**serverUrl vs command mode:**
|
|
596
|
+
- `serverUrl` (HTTP) requires the background to already be running — it cannot auto-start
|
|
597
|
+
- `command` (stdio) launches `memorix serve` on demand — no background needed; use `memorix dashboard` for a standalone read-mostly dashboard and CLI/team tools for autonomous agent workflows
|
|
598
|
+
|
|
599
|
+
If using `serverUrl` and the background keeps disappearing, consider switching to stdio mode as a fallback.
|
|
600
|
+
|
|
601
|
+
### 5. In HTTP mode, did the session bind with `projectRoot`?
|
|
602
|
+
|
|
603
|
+
If not, the agent may drift into the wrong project bucket or fail closed.
|
|
604
|
+
|
|
605
|
+
### 6. Did the user install the integration they actually need?
|
|
606
|
+
|
|
607
|
+
Use:
|
|
608
|
+
|
|
609
|
+
```bash
|
|
610
|
+
memorix integrate --agent <agent>
|
|
611
|
+
memorix hooks install --agent <agent>
|
|
612
|
+
```
|
|
613
|
+
|
|
614
|
+
### 7. Is the generated plugin/hook stale?
|
|
615
|
+
|
|
616
|
+
OpenCode in particular now supports stale-install detection through:
|
|
617
|
+
|
|
618
|
+
```bash
|
|
619
|
+
memorix hooks status
|
|
620
|
+
```
|
|
621
|
+
|
|
622
|
+
If outdated, re-run:
|
|
623
|
+
|
|
624
|
+
```bash
|
|
625
|
+
memorix hooks install --agent opencode
|
|
626
|
+
```
|
|
627
|
+
|
|
628
|
+
### 8. Are LLM and embedding secrets configured?
|
|
629
|
+
|
|
630
|
+
Check:
|
|
631
|
+
|
|
632
|
+
- project `.env`
|
|
633
|
+
- user `~/.memorix/.env`
|
|
634
|
+
- shell-injected env vars
|
|
635
|
+
|
|
636
|
+
Use:
|
|
637
|
+
|
|
638
|
+
```bash
|
|
639
|
+
memorix doctor
|
|
640
|
+
```
|
|
641
|
+
|
|
642
|
+
to inspect active runtime status.
|
|
643
|
+
|
|
644
|
+
---
|
|
645
|
+
|
|
646
|
+
## 11. What Not to Do
|
|
647
|
+
|
|
648
|
+
Do not:
|
|
649
|
+
|
|
650
|
+
- treat `projectRoot` as the final project identity
|
|
651
|
+
- assume non-Git folders will behave like stable projects
|
|
652
|
+
- mix up stdio and HTTP guidance in the same answer
|
|
653
|
+
- promise that all `.xxx` integration directories can be physically merged
|
|
654
|
+
- tell users "auto-update is implemented" unless you mean the real wired runtime feature
|
|
655
|
+
- rely on stale generated plugin files when diagnosing current behavior
|
|
656
|
+
- assume `serverUrl` HTTP mode will auto-start the background control plane — it cannot
|
|
657
|
+
- tell users "just restart the IDE" when the fix is `memorix background ensure`
|
|
658
|
+
- promise the background control plane survives reboots without OS-level startup config
|
|
659
|
+
|
|
660
|
+
---
|
|
661
|
+
|
|
662
|
+
## 12. When This Document Should Be Read First
|
|
663
|
+
|
|
664
|
+
If a user asks any of these:
|
|
665
|
+
|
|
666
|
+
- "Install Memorix for me"
|
|
667
|
+
- "Set up Memorix in Cursor / Claude Code / Codex / Windsurf / OpenCode / Gemini CLI"
|
|
668
|
+
- "Why isn't Memorix binding to my project?"
|
|
669
|
+
- "Why does it fail in this workspace?"
|
|
670
|
+
- "How should I use serve vs serve-http?"
|
|
671
|
+
- "What files will this create?"
|
|
672
|
+
- "Why does my MCP client show ECONNREFUSED / connection refused?"
|
|
673
|
+
- "Why did the background control plane disappear?"
|
|
674
|
+
|
|
675
|
+
read this document first, then act.
|
|
676
|
+
|
|
677
|
+
This playbook is the canonical AI-facing operator guide for installation, project binding, integration, hooks, troubleshooting, and safe usage.
|
|
678
|
+
## Docker Note
|
|
679
|
+
|
|
680
|
+
When Memorix runs in Docker, treat it as an **HTTP control-plane deployment**, not a stdio MCP process.
|
|
681
|
+
|
|
682
|
+
- Connect IDEs and agents to `http://host:3211/mcp`
|
|
683
|
+
- Use `memorix_session_start(projectRoot=...)` with a path that is visible **inside** the container
|
|
684
|
+
- If the repo is not mounted into the container, project-scoped Git/config semantics will fail closed
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# AI Context Note
|
|
2
|
+
|
|
3
|
+
This file used to hold AI-oriented project context.
|
|
4
|
+
|
|
5
|
+
That responsibility now lives in two cleaner places:
|
|
6
|
+
|
|
7
|
+
- [AGENT_OPERATOR_PLAYBOOK.md](AGENT_OPERATOR_PLAYBOOK.md) for installation, runtime selection, Git/project binding, integration, hooks, and troubleshooting
|
|
8
|
+
- [../llms-full.txt](../llms-full.txt) for the broader AI-facing project overview
|
|
9
|
+
|
|
10
|
+
If you are a coding agent helping a user operate Memorix, read the playbook first.
|
|
11
|
+
|
|
12
|
+
Why this file now exists only as a pointer:
|
|
13
|
+
|
|
14
|
+
- the old AI context document had become redundant
|
|
15
|
+
- the operator playbook is now the canonical execution guide
|
|
16
|
+
- the `llms` documents are the better place for model-facing project summaries
|
|
17
|
+
|
|
18
|
+
Do not treat this file as the primary source of operating instructions.
|