memorix 1.8.4 → 1.8.6

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.
Files changed (88) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/CLAUDE.md +3 -0
  3. package/README.md +8 -6
  4. package/README.zh-CN.md +5 -3
  5. package/assets/star-history-dark.svg +5 -5
  6. package/assets/star-history-light.svg +5 -5
  7. package/assets/star-history.json +35 -5
  8. package/dist/cli/index.js +1848 -754
  9. package/dist/dashboard/static/app.js +29 -885
  10. package/dist/dashboard/static/index.html +1 -5
  11. package/dist/dashboard/static/style.css +36 -503
  12. package/dist/index.d.ts +4 -4
  13. package/dist/index.js +286 -79
  14. package/dist/memcode/index.js +28035 -169
  15. package/dist/memcode-runtime/CHANGELOG.md +52 -0
  16. package/dist/sdk.js +103 -21
  17. package/dist/types.d.ts +1 -1
  18. package/docs/1.8.0-RELEASE-CANDIDATE-SPEC.md +22 -16
  19. package/docs/AGENT_OPERATOR_PLAYBOOK.md +2 -2
  20. package/docs/API_REFERENCE.md +10 -8
  21. package/docs/DASHBOARD.md +23 -0
  22. package/docs/DEVELOPMENT.md +2 -2
  23. package/docs/DOCKER.md +6 -3
  24. package/docs/INTEGRATIONS.md +2 -1
  25. package/docs/MODULES.md +46 -20
  26. package/docs/PERFORMANCE.md +1 -1
  27. package/docs/README.md +8 -7
  28. package/docs/SETUP.md +4 -3
  29. package/package.json +11 -11
  30. package/plugins/antigravity/memorix/plugin.json +1 -1
  31. package/plugins/antigravity/memorix/rules/memorix.md +5 -0
  32. package/plugins/claude/memorix/.claude-plugin/plugin.json +1 -1
  33. package/plugins/claude/memorix/skills/memorix-memory/SKILL.md +3 -0
  34. package/plugins/claude/memorix/skills/memorix-mini-skills/SKILL.md +2 -0
  35. package/plugins/claude/memorix/skills/memorix-orchestrate/SKILL.md +2 -0
  36. package/plugins/codebuddy/memorix/.codebuddy-plugin/plugin.json +1 -1
  37. package/plugins/codebuddy/memorix/skills/memorix-memory/SKILL.md +3 -0
  38. package/plugins/codebuddy/memorix/skills/memorix-mini-skills/SKILL.md +2 -0
  39. package/plugins/codebuddy/memorix/skills/memorix-orchestrate/SKILL.md +2 -0
  40. package/plugins/codex/memorix/.codex-plugin/plugin.json +1 -1
  41. package/plugins/codex/memorix/skills/memorix-memory/SKILL.md +3 -0
  42. package/plugins/codex/memorix/skills/memorix-mini-skills/SKILL.md +2 -0
  43. package/plugins/codex/memorix/skills/memorix-orchestrate/SKILL.md +2 -0
  44. package/plugins/copilot/memorix/plugin.json +1 -1
  45. package/plugins/copilot/memorix/skills/memorix-memory/SKILL.md +3 -0
  46. package/plugins/copilot/memorix/skills/memorix-mini-skills/SKILL.md +2 -0
  47. package/plugins/copilot/memorix/skills/memorix-orchestrate/SKILL.md +2 -0
  48. package/plugins/cursor/memorix/skills/memorix-memory/SKILL.md +3 -0
  49. package/plugins/cursor/memorix/skills/memorix-mini-skills/SKILL.md +2 -0
  50. package/plugins/cursor/memorix/skills/memorix-orchestrate/SKILL.md +2 -0
  51. package/plugins/gemini/memorix/GEMINI.md +5 -0
  52. package/plugins/gemini/memorix/gemini-extension.json +1 -1
  53. package/plugins/hermes/memorix/plugin.yaml +7 -1
  54. package/plugins/omp/memorix/package.json +1 -1
  55. package/plugins/openclaw/memorix/.codex-plugin/plugin.json +1 -1
  56. package/plugins/pi/memorix/package.json +1 -1
  57. package/plugins/pi/memorix/skills/memorix-memory/SKILL.md +3 -0
  58. package/plugins/pi/memorix/skills/memorix-mini-skills/SKILL.md +2 -0
  59. package/plugins/pi/memorix/skills/memorix-orchestrate/SKILL.md +2 -0
  60. package/server.json +2 -2
  61. package/src/cli/command-guide.ts +52 -1
  62. package/src/cli/commands/agent-integrations.ts +1 -0
  63. package/src/cli/commands/background.ts +166 -6
  64. package/src/cli/commands/hooks-install.ts +9 -2
  65. package/src/cli/commands/hooks-preview.ts +5 -0
  66. package/src/cli/commands/integrate.ts +2 -0
  67. package/src/cli/commands/serve-http.ts +73 -80
  68. package/src/cli/commands/serve.ts +95 -93
  69. package/src/cli/commands/setup.ts +11 -1
  70. package/src/cli/commands/uninstall.ts +24 -2
  71. package/src/cli/index.ts +1 -1
  72. package/src/codegraph/task-lens.ts +72 -7
  73. package/src/dashboard/static/index.html +1 -5
  74. package/src/dashboard/static/style.css +36 -503
  75. package/src/hooks/installers/index.ts +58 -0
  76. package/src/hooks/official-skills.ts +13 -6
  77. package/src/hooks/types.ts +2 -0
  78. package/src/integrations/registry.ts +9 -0
  79. package/src/memory/graph.ts +2 -2
  80. package/src/server/mcp-diagnostics.ts +9 -7
  81. package/src/server/modern-mcp-bridge.ts +108 -0
  82. package/src/server/stdio-startup-gate.ts +41 -2
  83. package/src/server/tool-profile.ts +7 -6
  84. package/src/server.ts +1 -1
  85. package/src/store/orama-store.ts +2 -2
  86. package/src/types.ts +1 -1
  87. package/src/wiki/types.ts +2 -2
  88. package/src/workspace/mcp-adapters/workbuddy.ts +71 -0
package/docs/MODULES.md CHANGED
@@ -1,18 +1,35 @@
1
1
  # Memorix 模块详解
2
2
 
3
- > 最后更新: 2026-08-14 (v1.4.3)
4
- > 本文档详细记录每个模块的实现细节、关键算法和注意事项
3
+ > 最后更新: 2026-09-01(当前发布线 v1.8.6)
4
+ > 本文档记录当前模块边界、关键算法和兼容层,不把历史实现误写成运行时主路径。
5
5
 
6
- > 本文档中的早期 JSON/Orama 章节保留为历史模块说明。当前运行时的
7
- > SQLite 数据层和长期记忆生命周期以 `docs/ARCHITECTURE.md`、
8
- > `docs/1.3-MEMORY-ARCHITECTURE.md` 及对应源码为准。
6
+ > 当前真实主路径先看下面的模块总览,再看各模块的细节。早期 JSON/Orama
7
+ > 说明仍保留用于迁移和实现背景,但不代表 JSON 是运行时主存储。
8
+
9
+ ## 当前模块总览
10
+
11
+ | 模块 | 当前作用 | 是否主路径 |
12
+ | --- | --- | --- |
13
+ | `store/sqlite-db.ts`、`store/sqlite-store.ts` | 持久化观察、会话、图谱、知识、长期记忆、媒体和协作状态 | 是 |
14
+ | `store/orama-store.ts` | 从 SQLite 数据重建的全文/向量检索索引 | 是,索引层 |
15
+ | `memory/graph.ts` | MCP 兼容的实体/关系操作外观,底层写入 SQLite | 是 |
16
+ | `wiki/knowledge-graph.ts` | Dashboard 的证据化 Memory Map 投影,不是真实数据源 | 是,展示层 |
17
+ | `dashboard/static/` | 只保留 ECharts Memory Map 这一套图谱界面 | 是 |
18
+ | `dashboard/server.ts`、`cli/commands/serve-http.ts` | 独立 Dashboard 与 HTTP 控制面两个宿主;按各自绑定范围读取同一套业务模块 | 是,宿主层 |
19
+ | `store/persistence-json.ts`、`config/legacy-loader.ts` | 老版本数据和配置的迁移/兼容读取 | 兼容层 |
20
+
21
+ 本轮清扫移除了 Dashboard 旧的 Cytoscape/Dagre 图谱渲染器及其前端依赖。
22
+ 后端 `/api/graph` 和 MCP 图谱工具仍保留,因为外部脚本和客户端可能直接调用它们。
23
+ 两个 Dashboard 宿主也保留:standalone 用于本地只读浏览,HTTP 控制面负责带会话和
24
+ 项目绑定的服务。它们可以共享维护逻辑,但不能因为代码位置相似就把绑定边界合并。
9
25
 
10
26
  ---
11
27
 
12
- ## 1. Orama 搜索引擎 (`store/orama-store.ts`)
28
+ ## 1. Orama 搜索索引 (`store/orama-store.ts`)
13
29
 
14
30
  ### 概述
15
- 基于 [Orama](https://github.com/orama/orama) 的全文/混合搜索引擎,344行。
31
+ 基于 [Orama](https://github.com/orama/orama) 的全文/混合搜索索引。它不是持久化主库;
32
+ 启动或数据变化后可从 SQLite 观察记录重建。
16
33
 
17
34
  ### Schema 设计
18
35
  ```typescript
@@ -51,14 +68,22 @@ const schema = {
51
68
 
52
69
  ### ⚠️ 注意事项
53
70
  - Orama 的 where 子句在 `term: '' + number filter` 时可能不可靠,因此 `compactDetail` 使用内存查找而非 Orama 查询
54
- - 数据库是内存中的,重启后需要通过 `reindexObservations()` 重建
71
+ - 索引是内存中的,重启后需要通过 `reindexObservations()` 从 SQLite 重建
55
72
  - `resetDb()` 用于热重载场景 — 先清空再重建
56
73
 
57
74
  ---
58
75
 
59
- ## 2. 持久化层 (`store/persistence.ts`)
76
+ ## 2. 持久化层 (`store/sqlite-db.ts`, `store/sqlite-store.ts`, `store/persistence.ts`)
77
+
78
+ ### 当前主路径
79
+
80
+ 运行时使用 `~/.memorix/data/memorix.db` 这一 SQLite 数据库。观察记录、图谱、知识
81
+ 工作区、长期记忆、媒体、会话和协作状态共享同一数据库连接与迁移机制;`projectId`
82
+ 用于数据隔离,不再通过多个 JSON 子目录拼接运行时状态。
83
+
84
+ ### 历史 JSON/JSONL 兼容格式
60
85
 
61
- ### 存储目录
86
+ 以下文件只用于旧版本迁移、显式导入导出或诊断,不是新写入的主路径。
62
87
  ```
63
88
  ~/.memorix/data/
64
89
  ├── observations.json # 所有 observation 的 JSON 数组
@@ -76,16 +101,16 @@ const schema = {
76
101
  {"name":"port-config","entityType":"config","observations":["默认端口 3001"]}
77
102
  ```
78
103
 
79
- ### 设计决策
80
- - **全局共享目录** (`~/.memorix/data/`): 让不同 Agent 看到同一份数据
81
- - **JSONL 而非单 JSON**: 与 MCP Official Memory Server 的格式兼容
82
- - **observations.json 用 JSON 而非 JSONL**: observation 结构更复杂,JSON 更方便整体读写
83
- - **ID 计数器单独文件**: 避免扫描所有 observation 来确定下一个 ID
104
+ ### 兼容设计
105
+ - **全局共享目录** (`~/.memorix/data/`): 让不同 Agent 看到同一份 SQLite 数据
106
+ - **JSONL**: 保留 MCP Official Memory Server 兼容和旧数据迁移能力
107
+ - **observations.json**: 保留旧 observation 导入和显式导出能力
108
+ - **SQLite 事务与文件锁**: 新写入由 SQLite 事务负责一致性,必要时仍使用文件锁保护跨进程操作
84
109
 
85
110
  ### ⚠️ 注意事项
86
- - v0.9.6 后所有数据存储在单一平坦目录 `~/.memorix/data/`,projectId 仅作为元数据
87
- - 有文件锁机制 (`store/file-lock.ts`) — 使用 `.memorix.lock` 目录锁 + 10s 超时检测
88
- - 热重载使用 `fs.watchFile` (polling) 监听 `observations.json` 变化
111
+ - `store/persistence-json.ts` 是兼容模块,不要把它当成新的写入 API
112
+ - `migrateSubdirsToFlat()` 只处理早期按项目分目录的数据
113
+ - `store/obs-store.ts` 在 SQLite 不可用时会进入只读降级模式,不应偷偷回写 `observations.json`
89
114
 
90
115
  ---
91
116
 
@@ -105,12 +130,13 @@ const schema = {
105
130
  | `readGraph` | 返回完整图谱 |
106
131
 
107
132
  ### 持久化时机
108
- - 每次 CRUD 操作后立即写入磁盘
109
- - `init()` 时从磁盘加载
133
+ - 每次 CRUD 操作后立即写入共享 SQLite 数据库
134
+ - `init()` 时从 SQLite 加载
110
135
 
111
136
  ### ⚠️ 注意事项
112
137
  - `createEntities` 对同名实体是幂等的 — 不会覆盖已有观察
113
138
  - 关系的 `from` 和 `to` 必须引用已存在的实体名
139
+ - JSONL 只属于兼容输入/输出;当前实体和关系由 SQLite `graph_entities`、`graph_relations` 表提供
114
140
 
115
141
  ---
116
142
 
@@ -57,7 +57,7 @@ On the release development machine used for this check, the healthy HTTP service
57
57
 
58
58
  ## What Can Be Heavier
59
59
 
60
- - `npm run build`, `npx vitest run`, and Docker image builds can use substantial CPU and disk while they run.
60
+ - `npm run build` and `npx vitest run` can use substantial CPU and disk while they run. Local verification uses the sequential Node/npm build and does not require Docker; Docker image builds are reserved for the VPS/hosted deployment path.
61
61
  - Docker image size mostly comes from Node, npm dependencies, build artifacts, and image layers. The container runtime should be judged separately from image size.
62
62
  - Dashboard browsing can add browser-side memory and CPU outside the Memorix Node process.
63
63
  - Large imports, Git log ingestion, workspace sync, and skill generation can temporarily increase CPU and disk I/O.
package/docs/README.md CHANGED
@@ -79,6 +79,7 @@ The public docs are organized by user intent:
79
79
  | System shape, data flows, memory layers | [ARCHITECTURE.md](ARCHITECTURE.md) |
80
80
  | Design decisions and rationale | [DESIGN_DECISIONS.md](DESIGN_DECISIONS.md) |
81
81
  | Module-by-module notes | [MODULES.md](MODULES.md) |
82
+ | Current implementation status and ecosystem watch | [ACTIVE_WORK.md](../ACTIVE_WORK.md) |
82
83
  | CodeGraph Memory / Context Fabric design | [2026-06-29-codegraph-memory-context-fabric-design.md](superpowers/specs/2026-06-29-codegraph-memory-context-fabric-design.md) |
83
84
  | Auto Context Layer design | [2026-06-29-auto-context-layer-design.md](superpowers/specs/2026-06-29-auto-context-layer-design.md) |
84
85
  | 1.2 product direction and user journey | [1.2 Product Story](1.2.0-PRODUCT-STORY.md) |
@@ -94,7 +95,7 @@ The public docs are organized by user intent:
94
95
  | 1.2 honest Lite and optional semantic CodeGraph provider contract | [1.2 Provider Quality](1.2.0-PROVIDER-QUALITY.md) |
95
96
  | 1.3 long-term memory model, source boundary, and lifecycle | [1.3 Memory Architecture](1.3-MEMORY-ARCHITECTURE.md) |
96
97
  | Active context-control work | [1.2.2 Memory Control Plane](1.2.2-MEMORY-CONTROL-PLANE.md) |
97
- | 1.8.4 MCP compatibility acceptance contract | [1.8.0 Release Specification](1.8.0-RELEASE-CANDIDATE-SPEC.md) |
98
+ | 1.8.6 MCP compatibility acceptance contract | [1.8.0 Release Specification](1.8.0-RELEASE-CANDIDATE-SPEC.md) |
98
99
  | Historical cloud sync and multi-agent research | [CLOUD_SYNC_AND_MULTI_AGENT_RESEARCH.md](CLOUD_SYNC_AND_MULTI_AGENT_RESEARCH.md) |
99
100
  | Known issues and old roadmap notes | [KNOWN_ISSUES_AND_ROADMAP.md](KNOWN_ISSUES_AND_ROADMAP.md) |
100
101
 
@@ -122,7 +123,7 @@ Historical/deep-reference documents may describe older designs. If they conflict
122
123
 
123
124
  ## Current Product Line
124
125
 
125
- The current product line is **1.8.4**. The authoritative acceptance contract is
126
+ The current product line is **1.8.6**. The authoritative acceptance contract is
126
127
  [1.8.0 Release Specification](1.8.0-RELEASE-CANDIDATE-SPEC.md).
127
128
  The current baseline has:
128
129
 
@@ -141,13 +142,13 @@ The current baseline has:
141
142
  - `~/.memorix/config.toml` and project `memorix.toml` are the user-facing configuration model
142
143
  - legacy `memorix.yml`, `.env`, and `config.json` files are still read for compatibility, but new setups should use TOML
143
144
 
144
- For MCP compatibility, 1.8.4 preserves legacy 2025-era initialize and
145
+ For MCP compatibility, 1.8.6 preserves legacy 2025-era initialize and
145
146
  stateful Streamable HTTP behavior. `memorix serve` starts a bounded stdio
146
147
  startup gate: pre-initialize 2026-07-28 `server/discover` is answered with a
147
148
  complete discovery result, and other early JSON-RPC messages replay in order
148
149
  through the pinned SDK transport. Versionless `tools/list` and `tools/call`
149
150
  continue through the SDK's legacy result envelopes. Modern result metadata is
150
- limited to the discovery response (`ttlMs: 0`, private cache scope); Tasks,
151
- subscriptions, and list-response caching are unsupported. Stateless HTTP
152
- project handles are a compatibility adapter, not a claim of complete 2026
153
- conformance.
151
+ returned for discovery, list, and call responses. The official subscriptions
152
+ listen surface is available. Durable Tasks remain explicitly unsupported, and
153
+ list responses carry a private zero-TTL hint instead of a reusable server-side
154
+ cache. Stateless HTTP project handles are supported on the modern path.
package/docs/SETUP.md CHANGED
@@ -24,7 +24,7 @@ Common runtime entry points:
24
24
  | `memorix serve-http --port 3211` | foreground HTTP MCP for debugging or supervised launches |
25
25
  | `memorix` / `memcode` | bundled terminal agent that uses the same Memorix memory pool |
26
26
 
27
- Most users should start with `memorix setup --agent <agent> --global`. Use raw `memorix serve` only when you are wiring an MCP client manually. Use HTTP when you intentionally want one shared background process, browser dashboard, Docker deployment, or multiple clients using the same MCP endpoint. Use the CLI for manual operation and automation. Use memcode when you want the bundled terminal agent.
27
+ Most users should start with `memorix setup --agent <agent> --global`. Use raw `memorix serve` only when you are wiring an MCP client manually. Use HTTP when you intentionally want one shared background process, browser dashboard, VPS Docker deployment, or multiple clients using the same MCP endpoint. Local development and verification run the Node service directly and do not require Docker. Use the CLI for manual operation and automation. Use memcode when you want the bundled terminal agent.
28
28
 
29
29
  For agent-specific plugin, rules, hooks, and skills support, see [INTEGRATIONS.md](INTEGRATIONS.md).
30
30
 
@@ -151,7 +151,7 @@ memorix serve
151
151
 
152
152
  Use this when your agent only needs a raw local stdio MCP process or you are debugging a manual config. The agent starts `memorix serve` and communicates with it over stdio.
153
153
 
154
- A bare `memorix serve` defaults to `--mode micro`, which exposes 9 high-signal tools so agent context is not crowded by rarely used schemas. Use `memorix serve --mode lite` for the extended solo memory surface, `--mode team` for coordination tools, or `--mode full` for advanced and MCP Memory compatibility tools.
154
+ A bare `memorix serve` defaults to `--mode micro`, which exposes 9 high-signal tools so agent context is not crowded by rarely used schemas. Use `memorix serve --mode lite` for the 20-tool solo memory surface, `--mode team` for the 28-tool coordination surface, or `--mode full` for all 47 advanced and MCP Memory compatibility tools.
155
155
 
156
156
  `memorix setup` writes `--mode lite` into the installed MCP config: the generated guidance teaches the extended surface (sessions, timeline, reasoning, retention), so the installed server must actually expose it. Override with `MEMORIX_MODE` if you prefer a different profile.
157
157
 
@@ -216,7 +216,7 @@ This starts a local background service:
216
216
  - MCP endpoint: `http://localhost:3211/mcp`
217
217
  - health: `http://localhost:3211/health`
218
218
 
219
- HTTP mode is for a shared process. It is useful when multiple clients should connect to one Memorix endpoint, when you want the browser dashboard, or when running Memorix through Docker. It is not needed for the normal one-agent stdio MCP setup.
219
+ HTTP mode is for a shared process. It is useful when multiple clients should connect to one Memorix endpoint, when you want the browser dashboard, or when running Memorix through Docker on a VPS/hosted machine. It is not needed for the normal one-agent stdio MCP setup.
220
220
 
221
221
  Companion commands:
222
222
 
@@ -683,6 +683,7 @@ Common MCP config locations:
683
683
  | Oh-my-Pi | `.omp/mcp.json` or `~/.omp/agent/mcp.json` |
684
684
  | Trae | `%APPDATA%/Trae/User/mcp.json` on Windows |
685
685
  | DeepSeek Harness | `$DSH_HOME/cordis.patch.yml` (default `~/.dsh/cordis.patch.yml`) |
686
+ | WorkBuddy | `~/.workbuddy/mcp.json` (user) or `<project>/.workbuddy/mcp.json` (project) |
686
687
 
687
688
  ---
688
689
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "memorix",
3
3
  "mcpName": "io.github.AVIDS2/memorix",
4
- "version": "1.8.4",
4
+ "version": "1.8.6",
5
5
  "description": "Local-first shared memory layer for AI coding agents across MCP clients, Git history, reasoning context, and project sessions.",
6
6
  "type": "module",
7
7
  "sideEffects": false,
@@ -57,12 +57,19 @@
57
57
  ],
58
58
  "scripts": {
59
59
  "build:workspaces": "npm --workspaces --if-present run build",
60
- "build": "npm run build:workspaces && node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsup",
60
+ "build:runtime": "tsup --config tsup.runtime.config.ts",
61
+ "build:cli": "tsup --config tsup.cli.config.ts",
62
+ "build:memcode": "tsup --config tsup.memcode.config.ts",
63
+ "build": "npm run build:workspaces && node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && npm run build:runtime && npm run build:cli && npm run build:memcode",
61
64
  "dev": "tsup --watch",
62
65
  "update-models": "npm --workspace @memorix/ai run update-models",
63
66
  "start": "node dist/index.js",
64
67
  "test": "vitest run --no-file-parallelism --maxWorkers=1 --minWorkers=1",
65
68
  "test:mcp-stdio-smoke": "node scripts/mcp-stdio-smoke.mjs",
69
+ "test:mcp-modern-stdio-smoke": "node scripts/mcp-modern-stdio-smoke.mjs",
70
+ "test:mcp-conformance-smoke": "node scripts/mcp-conformance-smoke.mjs",
71
+ "test:mcp-modern-smoke": "node scripts/mcp-modern-smoke.mjs",
72
+ "test:background-start-smoke": "node scripts/background-start-smoke.mjs",
66
73
  "test:watch": "vitest",
67
74
  "test:llm-live": "MEMORIX_RUN_LIVE_LLM_TESTS=1 vitest run tests/integration/formation-llm-quality.test.ts",
68
75
  "test:e2e": "vitest run tests/e2e/",
@@ -127,14 +134,11 @@
127
134
  },
128
135
  "dependencies": {
129
136
  "@clack/prompts": "^0.9.1",
137
+ "@modelcontextprotocol/node": "^2.0.0",
138
+ "@modelcontextprotocol/server": "^2.0.0",
130
139
  "@modelcontextprotocol/sdk": "^1.30.0",
131
140
  "@orama/orama": "^3.1.0",
132
- "@orama/plugin-data-persistence": "^3.1.0",
133
141
  "citty": "^0.1.6",
134
- "cytoscape": "^3.33.1",
135
- "cytoscape-dagre": "^2.5.0",
136
- "dagre": "^0.8.5",
137
- "diff": "^9.0.0",
138
142
  "dotenv": "^17.3.1",
139
143
  "gpt-tokenizer": "^2.8.0",
140
144
  "ink": "^6.8.0",
@@ -143,9 +147,6 @@
143
147
  "ink-scroll-view": "^0.3.6",
144
148
  "ink-spinner": "^5.0.0",
145
149
  "react": "19.2.7",
146
- "remark": "^15.0.1",
147
- "remark-stringify": "^11.0.0",
148
- "undici": "8.10.0",
149
150
  "unpdf": "^1.8.0",
150
151
  "yaml": "2.9.0",
151
152
  "zod": "^3.24.0"
@@ -174,7 +175,6 @@
174
175
  },
175
176
  "devDependencies": {
176
177
  "@types/better-sqlite3": "^7.6.0",
177
- "@types/diff": "^7.0.0",
178
178
  "@types/node": "^22.0.0",
179
179
  "@types/react": "19.2.7",
180
180
  "ink-testing-library": "^4.0.0",
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "name": "memorix",
3
- "version": "1.8.4"
3
+ "version": "1.8.6"
4
4
  }
@@ -9,9 +9,14 @@ Use Memorix when prior workspace context, decisions, fixes, or handoff state wou
9
9
  - Use `memorix_search` for focused lookup.
10
10
  - Use `memorix_detail` before relying on a specific memory.
11
11
  - Use `memorix_store` for durable workspace knowledge.
12
+ - Use `memorix_evidence` when you need to check a memory's source, freshness, or verification state.
13
+ - Use `memorix_feedback` when a memory helped, conflicted with current evidence, or was corrected.
14
+ - Use `memorix_media` for controlled local media import, inspection, and derivation; provider-backed generation remains explicitly gated.
12
15
  - Use `longTerm` on `memorix_store` only for a stable fact, reusable procedure, or completed episode that merits explicit review. It creates a candidate, not live context; keep the default project scope and do not use it for routine updates.
13
16
  - A `user` + `portable` durable memory in a task brief is intentionally reusable across projects. When it matches the task, use it as background even if it originated elsewhere; it is not a current-project fact. Expand it only when needed with `memorix_detail` and `typedRefs: ["durable:<id>"]`, stating the missing fact as `purpose`.
14
17
  - Use `memorix_store_reasoning` for the reason behind a technical decision.
15
18
  - Use `memorix_resolve` when completed or outdated memories should stop surfacing.
16
19
 
20
+ The standard plugin uses the `lite` MCP profile (20 tools). Coordination and advanced tools are opt-in through `--mode team` or `--mode full`; use the CLI fallback instead of repeatedly probing unavailable tools.
21
+
17
22
  Do not store secrets, credentials, raw private transcripts, or trivial one-off actions.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://anthropic.com/claude-code/plugin.schema.json",
3
3
  "name": "memorix",
4
- "version": "1.8.4",
4
+ "version": "1.8.6",
5
5
  "description": "Shared workspace memory for Claude Code and other AI coding agents.",
6
6
  "author": {
7
7
  "name": "AVIDS2",
@@ -16,6 +16,9 @@ Use Memorix as the shared memory layer for the active workspace when Memorix too
16
16
  | Specific past decision, bug, file, or change | `memorix_search` | `memorix memory search --query "<topic>"` |
17
17
  | Need the full source for a search hit | `memorix_detail` | `memorix memory detail --id <id>` |
18
18
  | Need the sequence around one memory | `memorix_timeline` | `memorix memory timeline --id <id>` |
19
+ | Check source and freshness for a memory | `memorix_evidence` | `memorix evidence list|get|events` |
20
+ | Record whether a memory helped, conflicted, or was corrected | `memorix_feedback` | `memorix feedback record|show|audit` |
21
+ | Inspect or import controlled media | `memorix_media` | `memorix media import|attach|list|show|status` |
19
22
  | Learned reusable project knowledge | `memorix_store` | `memorix memory store --type <type> --entity <name> --title "<title>" "<text>"` |
20
23
  | Stable source-backed fact or procedure needing long-term review | `memorix_store` with `longTerm` | `memorix memory long-term qualify|approve --id <id> --reason "..."` |
21
24
  | Task or bug is complete/outdated | `memorix_resolve` | `memorix memory resolve --ids <ids>` |
@@ -7,6 +7,8 @@ description: Use when durable project knowledge, gotchas, workflows, or repeated
7
7
 
8
8
  Promote memories into mini-skills only when they are reusable instructions, not just historical notes.
9
9
 
10
+ The standard setup uses the `lite` MCP profile. `memorix_skills` and `memorix_promote` are full-profile tools, so use the CLI fallback unless the current server was explicitly started with `MEMORIX_MODE=full` or `--mode full`. Do not probe hidden MCP tools repeatedly.
11
+
10
12
  ## Tool Router
11
13
 
12
14
  | Situation | Prefer | CLI fallback |
@@ -7,6 +7,8 @@ description: Use when a main agent needs Memorix to coordinate explicit subagent
7
7
 
8
8
  Use Memorix coordination for explicit subagent workflows with joined identities, tasks, handoffs, messages, file locks, and orchestrated workers.
9
9
 
10
+ The standard setup uses the `lite` MCP profile. Coordination MCP tools are exposed only by `team` or `full`; use the CLI fallback for ordinary installations, or explicitly start the server with `--mode team`. Do not probe unavailable team tools in a loop.
11
+
10
12
  ## Tool Router
11
13
 
12
14
  | Situation | Prefer | CLI fallback |
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "memorix",
3
- "version": "1.8.4",
3
+ "version": "1.8.6",
4
4
  "description": "Local-first project memory for CodeBuddy Code and other coding agents.",
5
5
  "author": {
6
6
  "name": "AVIDS2",
@@ -16,6 +16,9 @@ Use Memorix as the shared memory layer for the active workspace when Memorix too
16
16
  | Specific past decision, bug, file, or change | `memorix_search` | `memorix memory search --query "<topic>"` |
17
17
  | Need the full source for a search hit | `memorix_detail` | `memorix memory detail --id <id>` |
18
18
  | Need the sequence around one memory | `memorix_timeline` | `memorix memory timeline --id <id>` |
19
+ | Check source and freshness for a memory | `memorix_evidence` | `memorix evidence list|get|events` |
20
+ | Record whether a memory helped, conflicted, or was corrected | `memorix_feedback` | `memorix feedback record|show|audit` |
21
+ | Inspect or import controlled media | `memorix_media` | `memorix media import|attach|list|show|status` |
19
22
  | Learned reusable project knowledge | `memorix_store` | `memorix memory store --type <type> --entity <name> --title "<title>" "<text>"` |
20
23
  | Stable source-backed fact or procedure needing long-term review | `memorix_store` with `longTerm` | `memorix memory long-term qualify|approve --id <id> --reason "..."` |
21
24
  | Task or bug is complete/outdated | `memorix_resolve` | `memorix memory resolve --ids <ids>` |
@@ -7,6 +7,8 @@ description: Use when durable project knowledge, gotchas, workflows, or repeated
7
7
 
8
8
  Promote memories into mini-skills only when they are reusable instructions, not just historical notes.
9
9
 
10
+ The standard setup uses the `lite` MCP profile. `memorix_skills` and `memorix_promote` are full-profile tools, so use the CLI fallback unless the current server was explicitly started with `MEMORIX_MODE=full` or `--mode full`. Do not probe hidden MCP tools repeatedly.
11
+
10
12
  ## Tool Router
11
13
 
12
14
  | Situation | Prefer | CLI fallback |
@@ -7,6 +7,8 @@ description: Use when a main agent needs Memorix to coordinate explicit subagent
7
7
 
8
8
  Use Memorix coordination for explicit subagent workflows with joined identities, tasks, handoffs, messages, file locks, and orchestrated workers.
9
9
 
10
+ The standard setup uses the `lite` MCP profile. Coordination MCP tools are exposed only by `team` or `full`; use the CLI fallback for ordinary installations, or explicitly start the server with `--mode team`. Do not probe unavailable team tools in a loop.
11
+
10
12
  ## Tool Router
11
13
 
12
14
  | Situation | Prefer | CLI fallback |
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "memorix",
3
- "version": "1.8.4",
3
+ "version": "1.8.6",
4
4
  "description": "Shared workspace memory for Codex and other AI coding agents.",
5
5
  "author": {
6
6
  "name": "AVIDS2",
@@ -17,6 +17,9 @@ Use Memorix as the shared memory layer for the active workspace when Memorix too
17
17
  | Specific past decision, bug, file, or change | `memorix_search` | `memorix memory search --query "<topic>"` |
18
18
  | Need the full source for a search hit | `memorix_detail` | `memorix memory detail --id <id>` |
19
19
  | Need the sequence around one memory | `memorix_timeline` | `memorix memory timeline --id <id>` |
20
+ | Check source and freshness for a memory | `memorix_evidence` | `memorix evidence list|get|events` |
21
+ | Record whether a memory helped, conflicted, or was corrected | `memorix_feedback` | `memorix feedback record|show|audit` |
22
+ | Inspect or import controlled media | `memorix_media` | `memorix media import|attach|list|show|status` |
20
23
  | Learned reusable project knowledge | `memorix_store` | `memorix memory store --type <type> --entity <name> --title "<title>" "<text>"` |
21
24
  | Stable source-backed fact or procedure needing long-term review | `memorix_store` with `longTerm` | `memorix memory long-term qualify|approve --id <id> --reason "..."` |
22
25
  | Task or bug is complete/outdated | `memorix_resolve` | `memorix memory resolve --ids <ids>` |
@@ -7,6 +7,8 @@ description: Use when durable project knowledge, gotchas, workflows, or repeated
7
7
 
8
8
  Promote memories into mini-skills only when they are reusable instructions, not just historical notes.
9
9
 
10
+ The standard setup uses the `lite` MCP profile. `memorix_skills` and `memorix_promote` are full-profile tools, so use the CLI fallback unless the current server was explicitly started with `MEMORIX_MODE=full` or `--mode full`. Do not probe hidden MCP tools repeatedly.
11
+
10
12
  ## Tool Router
11
13
 
12
14
  | Situation | Prefer | CLI fallback |
@@ -7,6 +7,8 @@ description: Use when a main agent needs Memorix to coordinate explicit subagent
7
7
 
8
8
  Use Memorix coordination for explicit subagent workflows with joined identities, tasks, handoffs, messages, file locks, and orchestrated workers.
9
9
 
10
+ The standard setup uses the `lite` MCP profile. Coordination MCP tools are exposed only by `team` or `full`; use the CLI fallback for ordinary installations, or explicitly start the server with `--mode team`. Do not probe unavailable team tools in a loop.
11
+
10
12
  ## Tool Router
11
13
 
12
14
  | Situation | Prefer | CLI fallback |
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "memorix",
3
- "version": "1.8.4",
3
+ "version": "1.8.6",
4
4
  "description": "Shared local workspace memory for GitHub Copilot CLI and other AI coding agents.",
5
5
  "author": {
6
6
  "name": "AVIDS2",
@@ -17,6 +17,9 @@ Use Memorix as the shared memory layer for the active workspace when Memorix too
17
17
  | Specific past decision, bug, file, or change | `memorix_search` | `memorix memory search --query "<topic>"` |
18
18
  | Need the full source for a search hit | `memorix_detail` | `memorix memory detail --id <id>` |
19
19
  | Need the sequence around one memory | `memorix_timeline` | `memorix memory timeline --id <id>` |
20
+ | Check source and freshness for a memory | `memorix_evidence` | `memorix evidence list|get|events` |
21
+ | Record whether a memory helped, conflicted, or was corrected | `memorix_feedback` | `memorix feedback record|show|audit` |
22
+ | Inspect or import controlled media | `memorix_media` | `memorix media import|attach|list|show|status` |
20
23
  | Learned reusable project knowledge | `memorix_store` | `memorix memory store --type <type> --entity <name> --title "<title>" "<text>"` |
21
24
  | Stable source-backed fact or procedure needing long-term review | `memorix_store` with `longTerm` | `memorix memory long-term qualify|approve --id <id> --reason "..."` |
22
25
  | Task or bug is complete/outdated | `memorix_resolve` | `memorix memory resolve --ids <ids>` |
@@ -7,6 +7,8 @@ description: Use when durable project knowledge, gotchas, workflows, or repeated
7
7
 
8
8
  Promote memories into mini-skills only when they are reusable instructions, not just historical notes.
9
9
 
10
+ The standard setup uses the `lite` MCP profile. `memorix_skills` and `memorix_promote` are full-profile tools, so use the CLI fallback unless the current server was explicitly started with `MEMORIX_MODE=full` or `--mode full`. Do not probe hidden MCP tools repeatedly.
11
+
10
12
  ## Tool Router
11
13
 
12
14
  | Situation | Prefer | CLI fallback |
@@ -7,6 +7,8 @@ description: Use when a main agent needs Memorix to coordinate explicit subagent
7
7
 
8
8
  Use Memorix coordination for explicit subagent workflows with joined identities, tasks, handoffs, messages, file locks, and orchestrated workers.
9
9
 
10
+ The standard setup uses the `lite` MCP profile. Coordination MCP tools are exposed only by `team` or `full`; use the CLI fallback for ordinary installations, or explicitly start the server with `--mode team`. Do not probe unavailable team tools in a loop.
11
+
10
12
  ## Tool Router
11
13
 
12
14
  | Situation | Prefer | CLI fallback |
@@ -17,6 +17,9 @@ Use Memorix as the shared memory layer for the active workspace when Memorix too
17
17
  | Specific past decision, bug, file, or change | `memorix_search` | `memorix memory search --query "<topic>"` |
18
18
  | Need the full source for a search hit | `memorix_detail` | `memorix memory detail --id <id>` |
19
19
  | Need the sequence around one memory | `memorix_timeline` | `memorix memory timeline --id <id>` |
20
+ | Check source and freshness for a memory | `memorix_evidence` | `memorix evidence list|get|events` |
21
+ | Record whether a memory helped, conflicted, or was corrected | `memorix_feedback` | `memorix feedback record|show|audit` |
22
+ | Inspect or import controlled media | `memorix_media` | `memorix media import|attach|list|show|status` |
20
23
  | Learned reusable project knowledge | `memorix_store` | `memorix memory store --type <type> --entity <name> --title "<title>" "<text>"` |
21
24
  | Stable source-backed fact or procedure needing long-term review | `memorix_store` with `longTerm` | `memorix memory long-term qualify|approve --id <id> --reason "..."` |
22
25
  | Task or bug is complete/outdated | `memorix_resolve` | `memorix memory resolve --ids <ids>` |
@@ -7,6 +7,8 @@ description: Use when durable project knowledge, gotchas, workflows, or repeated
7
7
 
8
8
  Promote memories into mini-skills only when they are reusable instructions, not just historical notes.
9
9
 
10
+ The standard setup uses the `lite` MCP profile. `memorix_skills` and `memorix_promote` are full-profile tools, so use the CLI fallback unless the current server was explicitly started with `MEMORIX_MODE=full` or `--mode full`. Do not probe hidden MCP tools repeatedly.
11
+
10
12
  ## Tool Router
11
13
 
12
14
  | Situation | Prefer | CLI fallback |
@@ -7,6 +7,8 @@ description: Use when a main agent needs Memorix to coordinate explicit subagent
7
7
 
8
8
  Use Memorix coordination for explicit subagent workflows with joined identities, tasks, handoffs, messages, file locks, and orchestrated workers.
9
9
 
10
+ The standard setup uses the `lite` MCP profile. Coordination MCP tools are exposed only by `team` or `full`; use the CLI fallback for ordinary installations, or explicitly start the server with `--mode team`. Do not probe unavailable team tools in a loop.
11
+
10
12
  ## Tool Router
11
13
 
12
14
  | Situation | Prefer | CLI fallback |
@@ -11,9 +11,14 @@ Use Memorix when prior workspace context, decisions, fixes, or handoff state wou
11
11
  - Use `memorix_search` for focused lookup.
12
12
  - Use `memorix_detail` before relying on a specific memory.
13
13
  - Use `memorix_store` for durable workspace knowledge.
14
+ - Use `memorix_evidence` when you need to check a memory's source, freshness, or verification state.
15
+ - Use `memorix_feedback` when a memory helped, conflicted with current evidence, or was corrected.
16
+ - Use `memorix_media` for controlled local media import, inspection, and derivation; provider-backed generation remains explicitly gated.
14
17
  - Use `longTerm` on `memorix_store` only for a stable fact, reusable procedure, or completed episode that merits explicit review. It creates a candidate, not live context; keep the default project scope and do not use it for routine updates.
15
18
  - A `user` + `portable` durable memory in a task brief is intentionally reusable across projects. When it matches the task, use it as background even if it originated elsewhere; it is not a current-project fact. Expand it only when needed with `memorix_detail` and `typedRefs: ["durable:<id>"]`, stating the missing fact as `purpose`.
16
19
  - Use `memorix_store_reasoning` for the reason behind a technical decision.
17
20
  - Use `memorix_resolve` when completed or outdated memories should stop surfacing.
18
21
 
22
+ The standard extension uses the `lite` MCP profile (20 tools). Coordination and advanced tools are opt-in through `--mode team` or `--mode full`; use the CLI fallback instead of repeatedly probing unavailable tools.
23
+
19
24
  Do not store secrets, credentials, raw private transcripts, or trivial one-off actions.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "memorix",
3
- "version": "1.8.4",
3
+ "version": "1.8.6",
4
4
  "mcpServers": {
5
5
  "memorix": {
6
6
  "command": "memorix",
@@ -1,5 +1,5 @@
1
1
  name: memorix
2
- version: "1.8.4"
2
+ version: "1.8.6"
3
3
  description: Shared workspace memory bridge for Hermes Agent.
4
4
  author: AVIDS2
5
5
  license: Apache-2.0
@@ -15,3 +15,9 @@ provides_cli_commands:
15
15
  - memorix
16
16
  provides_skills:
17
17
  - memorix-memory
18
+ - memorix-reasoning
19
+ - memorix-sessions
20
+ - memorix-git-memory
21
+ - memorix-mini-skills
22
+ - memorix-orchestrate
23
+ - memorix-troubleshooting
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "memorix-omp-package",
3
- "version": "1.8.4",
3
+ "version": "1.8.6",
4
4
  "description": "Memorix shared workspace memory package for Oh-my-Pi.",
5
5
  "license": "Apache-2.0",
6
6
  "keywords": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "memorix",
3
- "version": "1.8.4",
3
+ "version": "1.8.6",
4
4
  "description": "Shared workspace memory for OpenClaw and other AI coding agents.",
5
5
  "author": {
6
6
  "name": "AVIDS2",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "memorix-pi-package",
3
- "version": "1.8.4",
3
+ "version": "1.8.6",
4
4
  "description": "Memorix shared workspace memory package for Pi coding agent.",
5
5
  "license": "Apache-2.0",
6
6
  "keywords": [
@@ -17,6 +17,9 @@ Use Memorix as the shared memory layer for the active workspace when Memorix too
17
17
  | Specific past decision, bug, file, or change | `memorix_search` | `memorix memory search --query "<topic>"` |
18
18
  | Need the full source for a search hit | `memorix_detail` | `memorix memory detail --id <id>` |
19
19
  | Need the sequence around one memory | `memorix_timeline` | `memorix memory timeline --id <id>` |
20
+ | Check source and freshness for a memory | `memorix_evidence` | `memorix evidence list|get|events` |
21
+ | Record whether a memory helped, conflicted, or was corrected | `memorix_feedback` | `memorix feedback record|show|audit` |
22
+ | Inspect or import controlled media | `memorix_media` | `memorix media import|attach|list|show|status` |
20
23
  | Learned reusable project knowledge | `memorix_store` | `memorix memory store --type <type> --entity <name> --title "<title>" "<text>"` |
21
24
  | Stable source-backed fact or procedure needing long-term review | `memorix_store` with `longTerm` | `memorix memory long-term qualify|approve --id <id> --reason "..."` |
22
25
  | Task or bug is complete/outdated | `memorix_resolve` | `memorix memory resolve --ids <ids>` |
@@ -7,6 +7,8 @@ description: Use when durable project knowledge, gotchas, workflows, or repeated
7
7
 
8
8
  Promote memories into mini-skills only when they are reusable instructions, not just historical notes.
9
9
 
10
+ The standard setup uses the `lite` MCP profile. `memorix_skills` and `memorix_promote` are full-profile tools, so use the CLI fallback unless the current server was explicitly started with `MEMORIX_MODE=full` or `--mode full`. Do not probe hidden MCP tools repeatedly.
11
+
10
12
  ## Tool Router
11
13
 
12
14
  | Situation | Prefer | CLI fallback |
@@ -7,6 +7,8 @@ description: Use when a main agent needs Memorix to coordinate explicit subagent
7
7
 
8
8
  Use Memorix coordination for explicit subagent workflows with joined identities, tasks, handoffs, messages, file locks, and orchestrated workers.
9
9
 
10
+ The standard setup uses the `lite` MCP profile. Coordination MCP tools are exposed only by `team` or `full`; use the CLI fallback for ordinary installations, or explicitly start the server with `--mode team`. Do not probe unavailable team tools in a loop.
11
+
10
12
  ## Tool Router
11
13
 
12
14
  | Situation | Prefer | CLI fallback |
package/server.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "url": "https://github.com/AVIDS2/memorix",
8
8
  "source": "github"
9
9
  },
10
- "version": "1.8.4",
10
+ "version": "1.8.6",
11
11
  "websiteUrl": "https://github.com/AVIDS2/memorix#readme",
12
12
  "icons": [
13
13
  {
@@ -22,7 +22,7 @@
22
22
  {
23
23
  "registryType": "npm",
24
24
  "identifier": "memorix",
25
- "version": "1.8.4",
25
+ "version": "1.8.6",
26
26
  "runtimeHint": "npx",
27
27
  "packageArguments": [
28
28
  {