memorix 1.2.0 → 1.2.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.
Files changed (212) hide show
  1. package/CHANGELOG.md +30 -1
  2. package/README.md +18 -4
  3. package/README.zh-CN.md +18 -4
  4. package/TEAM.md +86 -86
  5. package/dist/cli/index.js +15919 -14055
  6. package/dist/cli/index.js.map +1 -1
  7. package/dist/index.js +1997 -1021
  8. package/dist/index.js.map +1 -1
  9. package/dist/maintenance-runner.d.ts +1 -1
  10. package/dist/maintenance-runner.js +8481 -8005
  11. package/dist/maintenance-runner.js.map +1 -1
  12. package/dist/memcode-runtime/CHANGELOG.md +30 -1
  13. package/dist/sdk.d.ts +7 -2
  14. package/dist/sdk.js +2022 -1024
  15. package/dist/sdk.js.map +1 -1
  16. package/dist/types.d.ts +49 -1
  17. package/dist/types.js.map +1 -1
  18. package/docs/1.2.2-MEMORY-CONTROL-PLANE.md +434 -0
  19. package/docs/AGENT_OPERATOR_PLAYBOOK.md +4 -0
  20. package/docs/API_REFERENCE.md +27 -5
  21. package/docs/DESIGN_DECISIONS.md +357 -357
  22. package/docs/DEVELOPMENT.md +4 -0
  23. package/docs/README.md +1 -1
  24. package/docs/SETUP.md +7 -1
  25. package/docs/dev-log/progress.txt +91 -11
  26. package/docs/knowledge/workflows/memorix-release.md +57 -0
  27. package/package.json +1 -1
  28. package/plugins/codex/memorix/.codex-plugin/plugin.json +1 -1
  29. package/src/audit/index.ts +156 -156
  30. package/src/cli/command-guide.ts +192 -0
  31. package/src/cli/commands/audit-list.ts +89 -89
  32. package/src/cli/commands/audit.ts +9 -4
  33. package/src/cli/commands/background.ts +659 -659
  34. package/src/cli/commands/cleanup.ts +5 -1
  35. package/src/cli/commands/codegraph.ts +17 -8
  36. package/src/cli/commands/context.ts +3 -2
  37. package/src/cli/commands/doctor.ts +4 -2
  38. package/src/cli/commands/explain.ts +9 -3
  39. package/src/cli/commands/formation.ts +48 -48
  40. package/src/cli/commands/git-hook-install.ts +111 -111
  41. package/src/cli/commands/handoff.ts +75 -61
  42. package/src/cli/commands/hooks-status.ts +63 -63
  43. package/src/cli/commands/identity.ts +116 -0
  44. package/src/cli/commands/ingest-commit.ts +153 -153
  45. package/src/cli/commands/ingest-image.ts +71 -69
  46. package/src/cli/commands/ingest-log.ts +180 -180
  47. package/src/cli/commands/ingest.ts +44 -44
  48. package/src/cli/commands/integrate-shared.ts +15 -15
  49. package/src/cli/commands/knowledge.ts +40 -0
  50. package/src/cli/commands/lock.ts +93 -92
  51. package/src/cli/commands/memory.ts +58 -21
  52. package/src/cli/commands/message.ts +123 -118
  53. package/src/cli/commands/operator-shared.ts +98 -3
  54. package/src/cli/commands/poll.ts +74 -64
  55. package/src/cli/commands/purge-all-memory.ts +85 -85
  56. package/src/cli/commands/purge-project-memory.ts +83 -83
  57. package/src/cli/commands/reasoning.ts +135 -121
  58. package/src/cli/commands/retention.ts +9 -4
  59. package/src/cli/commands/serve-http.ts +22 -43
  60. package/src/cli/commands/serve-shared.ts +118 -118
  61. package/src/cli/commands/session.ts +29 -3
  62. package/src/cli/commands/setup.ts +9 -3
  63. package/src/cli/commands/skills.ts +124 -119
  64. package/src/cli/commands/status.ts +4 -3
  65. package/src/cli/commands/task.ts +193 -184
  66. package/src/cli/commands/team.ts +14 -10
  67. package/src/cli/commands/transfer.ts +108 -55
  68. package/src/cli/commands/uninstall-project-artifacts.ts +85 -85
  69. package/src/cli/identity.ts +89 -0
  70. package/src/cli/index.ts +96 -19
  71. package/src/cli/invocation.ts +115 -0
  72. package/src/cli/tui/ChatView.tsx +234 -234
  73. package/src/cli/tui/CommandBar.tsx +312 -312
  74. package/src/cli/tui/ContextRail.tsx +118 -118
  75. package/src/cli/tui/HeaderBar.tsx +72 -72
  76. package/src/cli/tui/LogoBanner.tsx +51 -51
  77. package/src/cli/tui/Sidebar.tsx +179 -179
  78. package/src/cli/tui/chat-service.ts +41 -18
  79. package/src/cli/tui/data.ts +23 -44
  80. package/src/cli/tui/index.ts +41 -41
  81. package/src/cli/tui/markdown-render.tsx +371 -371
  82. package/src/cli/tui/operator-context.ts +60 -0
  83. package/src/cli/tui/use-mouse.ts +157 -157
  84. package/src/cli/tui/useNavigation.ts +56 -56
  85. package/src/cli/tui/views/MemoryView.tsx +10 -8
  86. package/src/cli/update-checker.ts +211 -211
  87. package/src/cli/version.ts +7 -7
  88. package/src/cli/workbench.ts +1 -1
  89. package/src/codegraph/auto-context.ts +34 -17
  90. package/src/codegraph/context-pack.ts +1 -0
  91. package/src/codegraph/current-facts.ts +19 -1
  92. package/src/codegraph/project-context.ts +2 -0
  93. package/src/codegraph/task-lens.ts +49 -5
  94. package/src/compact/engine.ts +26 -10
  95. package/src/compact/index-format.ts +25 -2
  96. package/src/compact/token-budget.ts +74 -74
  97. package/src/dashboard/project-classification.ts +64 -64
  98. package/src/dashboard/server.ts +58 -52
  99. package/src/embedding/fastembed-provider.ts +142 -142
  100. package/src/embedding/transformers-provider.ts +111 -111
  101. package/src/git/extractor.ts +209 -209
  102. package/src/git/hooks-path.ts +85 -85
  103. package/src/hooks/admission.ts +117 -0
  104. package/src/hooks/handler.ts +98 -91
  105. package/src/hooks/pattern-detector.ts +173 -173
  106. package/src/hooks/significance-filter.ts +250 -250
  107. package/src/knowledge/claims.ts +51 -1
  108. package/src/knowledge/context-assembly.ts +97 -0
  109. package/src/knowledge/types.ts +1 -0
  110. package/src/knowledge/workflows.ts +34 -3
  111. package/src/knowledge/workset.ts +179 -10
  112. package/src/llm/memory-manager.ts +328 -328
  113. package/src/llm/provider.ts +885 -885
  114. package/src/llm/quality.ts +248 -248
  115. package/src/memory/admission.ts +57 -0
  116. package/src/memory/attribution-guard.ts +249 -249
  117. package/src/memory/auto-relations.ts +21 -0
  118. package/src/memory/consolidation.ts +13 -2
  119. package/src/memory/disclosure-policy.ts +140 -135
  120. package/src/memory/entity-extractor.ts +197 -197
  121. package/src/memory/export-import.ts +11 -3
  122. package/src/memory/formation/evaluate.ts +217 -217
  123. package/src/memory/formation/extract.ts +361 -361
  124. package/src/memory/formation/index.ts +417 -417
  125. package/src/memory/formation/resolve.ts +344 -344
  126. package/src/memory/formation/types.ts +315 -315
  127. package/src/memory/freshness.ts +122 -122
  128. package/src/memory/graph-context.ts +8 -2
  129. package/src/memory/graph-scope.ts +46 -0
  130. package/src/memory/graph.ts +197 -197
  131. package/src/memory/observations.ts +162 -4
  132. package/src/memory/quality-audit.ts +2 -0
  133. package/src/memory/refs.ts +94 -94
  134. package/src/memory/retention.ts +22 -2
  135. package/src/memory/secret-filter.ts +79 -79
  136. package/src/memory/session.ts +5 -2
  137. package/src/memory/visibility.ts +80 -0
  138. package/src/multimodal/image-loader.ts +143 -143
  139. package/src/orchestrate/adapters/claude-stream.ts +192 -192
  140. package/src/orchestrate/adapters/claude.ts +111 -111
  141. package/src/orchestrate/adapters/codex-stream.ts +134 -134
  142. package/src/orchestrate/adapters/codex.ts +41 -41
  143. package/src/orchestrate/adapters/gemini-stream.ts +166 -166
  144. package/src/orchestrate/adapters/gemini.ts +42 -42
  145. package/src/orchestrate/adapters/index.ts +73 -73
  146. package/src/orchestrate/adapters/opencode-stream.ts +143 -143
  147. package/src/orchestrate/adapters/opencode.ts +47 -47
  148. package/src/orchestrate/adapters/spawn-helper.ts +286 -286
  149. package/src/orchestrate/adapters/types.ts +77 -77
  150. package/src/orchestrate/capability-router.ts +284 -284
  151. package/src/orchestrate/context-compact.ts +188 -188
  152. package/src/orchestrate/cost-tracker.ts +219 -219
  153. package/src/orchestrate/error-recovery.ts +191 -191
  154. package/src/orchestrate/evidence.ts +140 -140
  155. package/src/orchestrate/ledger.ts +110 -110
  156. package/src/orchestrate/memorix-bridge.ts +378 -340
  157. package/src/orchestrate/output-budget.ts +80 -80
  158. package/src/orchestrate/permission.ts +152 -152
  159. package/src/orchestrate/pipeline-trace.ts +131 -131
  160. package/src/orchestrate/prompt-builder.ts +155 -155
  161. package/src/orchestrate/ring-buffer.ts +37 -37
  162. package/src/orchestrate/task-graph.ts +389 -389
  163. package/src/orchestrate/verify-gate.ts +33 -10
  164. package/src/orchestrate/worktree.ts +232 -232
  165. package/src/project/aliases.ts +374 -374
  166. package/src/project/detector.ts +268 -268
  167. package/src/rules/adapters/claude-code.ts +99 -99
  168. package/src/rules/adapters/codex.ts +97 -97
  169. package/src/rules/adapters/copilot.ts +124 -124
  170. package/src/rules/adapters/cursor.ts +114 -114
  171. package/src/rules/adapters/kiro.ts +126 -126
  172. package/src/rules/adapters/trae.ts +56 -56
  173. package/src/rules/adapters/windsurf.ts +83 -83
  174. package/src/rules/syncer.ts +235 -235
  175. package/src/runtime/control-plane-maintenance.ts +1 -0
  176. package/src/runtime/isolated-maintenance.ts +1 -0
  177. package/src/runtime/lifecycle.ts +18 -0
  178. package/src/runtime/maintenance-jobs.ts +1 -0
  179. package/src/runtime/maintenance-runner.ts +2 -0
  180. package/src/runtime/project-maintenance.ts +89 -0
  181. package/src/sdk.ts +334 -304
  182. package/src/search/intent-detector.ts +289 -289
  183. package/src/search/query-expansion.ts +52 -52
  184. package/src/server/formation-timeout.ts +27 -27
  185. package/src/server.ts +334 -93
  186. package/src/skills/mini-skills.ts +386 -386
  187. package/src/store/chat-store.ts +119 -119
  188. package/src/store/graph-store.ts +249 -249
  189. package/src/store/mini-skill-store.ts +349 -349
  190. package/src/store/orama-store.ts +61 -6
  191. package/src/store/persistence-json.ts +212 -212
  192. package/src/store/persistence.ts +291 -291
  193. package/src/store/project-affinity.ts +195 -195
  194. package/src/store/sqlite-db.ts +23 -1
  195. package/src/store/sqlite-store.ts +12 -2
  196. package/src/team/event-bus.ts +76 -76
  197. package/src/team/file-locks.ts +173 -173
  198. package/src/team/handoff.ts +168 -161
  199. package/src/team/messages.ts +203 -203
  200. package/src/team/poll.ts +132 -132
  201. package/src/team/tasks.ts +211 -211
  202. package/src/types.ts +51 -0
  203. package/src/wiki/generator.ts +2 -0
  204. package/src/workspace/mcp-adapters/codex.ts +191 -191
  205. package/src/workspace/mcp-adapters/copilot.ts +105 -105
  206. package/src/workspace/mcp-adapters/cursor.ts +53 -53
  207. package/src/workspace/mcp-adapters/kiro.ts +64 -64
  208. package/src/workspace/mcp-adapters/opencode.ts +123 -123
  209. package/src/workspace/mcp-adapters/trae.ts +134 -134
  210. package/src/workspace/mcp-adapters/windsurf.ts +91 -91
  211. package/src/workspace/sanitizer.ts +60 -60
  212. package/src/workspace/workflow-sync.ts +131 -131
package/CHANGELOG.md CHANGED
@@ -2,7 +2,36 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
- ## [Unreleased]
5
+ ## [1.2.2] - 2026-07-25
6
+
7
+ ### Added
8
+ - **Direct CLI control plane** -- Added a consistent terminal surface for memory, context, Code State, knowledge, coordination, audit, and transfer work. `--cwd` selects the Git project from any shell, `memorix workbench` explicitly opens the interactive terminal UI, and every action group now has task-oriented help.
9
+ - **Explicit local CLI identity** -- Added `memorix identity status|join|use|clear`. A user can deliberately activate one project coordination identity for personal/team memory and task, message, lock, handoff, and poll commands without needing an MCP connection.
10
+ - **Automation-friendly transfer** -- Memory exports can write directly to a file, and imports accept `--file` or `--stdin` as well as existing inline JSON.
11
+
12
+ ### Changed
13
+ - **One visibility reader across terminal surfaces** -- CLI commands, Workbench search, recents, health, graph, knowledge, and chat now resolve the same project/actor reader. An unbound terminal remains project-scoped by default.
14
+ - **CLI ergonomics** -- Root `search`, `remember`, and `recent` aliases now use the canonical memory commands; kebab-case flags are accepted alongside the existing camelCase forms.
15
+
16
+ ### Fixed
17
+ - **Private evidence cannot become public indirectly** -- Personal and team observations are rejected when promoting shared skills or generating project skills.
18
+ - **TUI visibility mismatch** -- The interactive terminal UI no longer falls back to an unbound reader after an explicit local identity has been activated.
19
+ - **Transfer visibility bypass** -- CLI and MCP exports now include only observations readable by the current caller, rather than exporting personal/team records from the same project by default.
20
+
21
+ ## [1.2.1] - 2026-07-19
22
+
23
+ ### Added
24
+ - **Review-gated Knowledge claims** -- Explicit agent observations now become source-backed candidates first. They can be inspected and deliberately approved or rejected through `memorix knowledge claims` / `memorix knowledge review` or the advanced `memorix_knowledge` MCP action before they enter knowledge compilation.
25
+ - **Versioned Memorix release workflow** -- Added `docs/knowledge/workflows/memorix-release.md`, a canonical release playbook with verification gates and an explicit maintainer approval boundary.
26
+
27
+ ### Fixed
28
+ - **Claude setup respects `--noHooks`** -- Project setup now keeps generated `CLAUDE.md` guidance without also creating Claude lifecycle-hook configuration when hook capture was explicitly disabled.
29
+ - **Claude Code manual MCP readiness** -- Manual setup examples now include Claude Code's `alwaysLoad: true` entry and point to Doctor/Repair for detecting and restoring the eager-load contract.
30
+ - **Workflow import fidelity** -- Canonical Windsurf workflows preserve their source ID, title, agents, phases, and verification gates instead of being reduced to a generated `workflow:<hash>` entry. Release workflows no longer match a non-release task merely because it says “verify” or “test”.
31
+ - **Graph surface consistency** -- Explicit `relatedEntities` now persist as graph edges, and MCP graph tools, standalone Dashboard, HTTP control plane, and exports share one project-scoping rule.
32
+ - **Intent-aware task and workflow routing** -- A safety constraint such as “do not publish” no longer routes an incident or debugging task into a release lens or release workflow. Explicit release requests still retain release verification while publication is deferred for approval.
33
+ - **Git fact consistency** -- Project Context, Context Pack, and CodeGraph CLI now report `Git: unavailable` for an invalid or unreadable repository instead of presenting it as a clean worktree.
34
+ - **Windows verification-gate timeout** -- A timed-out orchestration gate now resolves promptly while its shell process tree is terminated in the background, instead of waiting indefinitely for a descendant process to close.
6
35
 
7
36
  ## [1.2.0] - 2026-07-18
8
37
 
package/README.md CHANGED
@@ -64,7 +64,7 @@ Memorix is more than a memory store. It also installs agent integrations, keeps
64
64
  | Code State and Code Memory | Versioned local code snapshots, file/symbol links, and freshness checks. The built-in Lite index is always honest about its limits; an already-indexed local CodeGraph can add a bounded semantic outline | `memorix codegraph`, automatic context refresh |
65
65
  | Git Memory | Commit-derived engineering facts that answer what changed, where, and why it matters | `memorix ingest commit`, git hook |
66
66
  | Reasoning Memory | Design rationale, alternatives, trade-offs, and risks that should survive beyond one chat | `memorix reasoning`, memory formation |
67
- | Knowledge Workspace | Reviewable Markdown pages and project playbooks compiled from source-backed claims; proposals never overwrite reviewed pages silently | `memorix knowledge`, `memorix knowledge workflow` |
67
+ | Knowledge Workspace | Review-gated source-backed claims, Markdown pages, and canonical project workflows; proposals never overwrite reviewed pages silently | `memorix knowledge`, `memorix knowledge workflow` |
68
68
  | Agent setup | One setup path for MCP, rules, hooks, skills, plugins, bundles, or extensions depending on the agent | `memorix setup --agent <agent>` |
69
69
  | Agent doctor | Checks whether agent MCP config and guidance are current, then repairs Memorix-owned entries when needed | `memorix doctor agents`, `memorix repair agents` |
70
70
  | Hooks and skills | Optional capture from supported agents, plus reusable project skills promoted from durable knowledge | `memorix hooks`, `memorix skills` |
@@ -258,7 +258,7 @@ What it installs depends on the target agent, but the goal is the same: make Mem
258
258
  - Hermes Agent: installs into Hermes home (`%LOCALAPPDATA%\hermes` on native Windows, `~/.hermes` elsewhere, or `HERMES_HOME`), enables the plugin in `config.yaml`, registers plugin hooks, slash/CLI commands, skills, and writes MCP config.
259
259
  - Oh-my-Pi: installs an `omp.extensions` package with extension hook events, a `memorix` command, official skills, and writes MCP config.
260
260
 
261
- Need a quieter install? Add `--noHooks` for targets where setup can control hook capture separately from the host's official package entry.
261
+ Need a quieter install? Add `--noHooks` for targets where setup can control hook capture separately from the host's official package entry. It keeps MCP and guidance, but skips Memorix hook capture.
262
262
 
263
263
  If you intentionally want repo-local guidance or hooks, run the same command inside that repository without `--global`.
264
264
 
@@ -275,6 +275,8 @@ If your agent only needs a manual MCP entry, use stdio:
275
275
  }
276
276
  ```
277
277
 
278
+ For a manually managed Claude Code entry, add `"alwaysLoad": true` inside the `memorix` server object. This lets Claude Code expose Memorix tools during print-mode startup; `memorix doctor agents --agent claude` can detect and repair a missing setting.
279
+
278
280
  HTTP is not required for normal setup. Use it only when you intentionally want a shared background service, dashboard, Docker, or multiple clients using the same endpoint:
279
281
 
280
282
  ```bash
@@ -315,14 +317,25 @@ npm uninstall -g memorix
315
317
  ### Work from the CLI
316
318
 
317
319
  ```bash
318
- memorix context --task "continue release blocker"
320
+ memorix --cwd /path/to/repo context --task "continue release blocker"
319
321
  memorix memory search --query "release blocker"
322
+ memorix memory --help
323
+
324
+ # Optional: activate one local agent identity for personal/team records and coordination.
325
+ memorix identity join --agent-type codex --name codex-main
326
+ memorix memory store --text "private investigation note" --visibility personal
327
+ memorix task create --description "verify the release package"
328
+
329
+ memorix transfer export --format json --out ./.memorix-export.json
330
+ memorix transfer import --file ./.memorix-export.json
320
331
  memorix reasoning search --query "why sqlite"
321
332
  memorix git-hook --force
322
333
  memorix ingest log --count 20
323
- memorix dashboard
334
+ memorix workbench
324
335
  ```
325
336
 
337
+ The CLI is direct and does not depend on an MCP session. It binds to the current Git project, or to the project supplied with `--cwd`. Without an active identity it reads, writes, and exports project-visible memory only. Use `memorix identity join` or `memorix identity use --agent-id <id>` only when you intentionally need personal/team memory or coordinated task actions; `memorix identity clear` returns the terminal to project scope. `--as <active-agent-id>` is the one-command alternative for scripts. Both camelCase and kebab-case flags are accepted.
338
+
326
339
  ### Use the bundled terminal agent
327
340
 
328
341
  ```bash
@@ -356,6 +369,7 @@ Search is project-scoped by default. `scope="global"` searches across projects.
356
369
  | Run shared HTTP MCP plus dashboard | `memorix background start` |
357
370
  | Debug HTTP MCP in the foreground | `memorix serve-http --port 3211` |
358
371
  | Inspect or manage memory directly | `memorix memory`, `memorix reasoning`, `memorix session`, `memorix ingest` |
372
+ | Use the interactive terminal memory control plane | `memorix workbench` |
359
373
  | Use the bundled terminal agent | `memorix` or `memcode` |
360
374
  | Run orchestrated subagent work | `memorix orchestrate --goal "..."` |
361
375
 
package/README.zh-CN.md CHANGED
@@ -64,7 +64,7 @@ Memorix 不只是一个记忆库。它还负责安装 Agent 接入、保留有
64
64
  | Code State 和 Code Memory | 可版本化的本地代码快照、文件 / symbol 关联和 freshness 检查。内置 Lite 会如实说明边界;已有本地索引的 CodeGraph 可额外给出有预算的语义关系 | `memorix codegraph`、自动 context refresh |
65
65
  | Git Memory | 从 commit 中提取工程事实,回答改了什么、在哪里改、为什么重要 | `memorix ingest commit`、git hook |
66
66
  | Reasoning Memory | 保存设计原因、备选方案、trade-off 和风险,不让决策只留在一次聊天里 | `memorix reasoning`、memory formation |
67
- | Knowledge Workspace | 基于来源证据的可审阅 Markdown 知识页和项目工作流;提案不会悄悄覆盖已审阅页面 | `memorix knowledge`、`memorix knowledge workflow` |
67
+ | Knowledge Workspace | 有审核门槛的来源证据 Claim、Markdown 知识页和规范化项目工作流;提案不会悄悄覆盖已审阅页面 | `memorix knowledge`、`memorix knowledge workflow` |
68
68
  | Agent setup | 按目标 Agent 写入 MCP、rules、hooks、skills、plugin、bundle 或 extension | `memorix setup --agent <agent>` |
69
69
  | Agent doctor | 检查 Agent 的 MCP 配置和规则是否是当前版本,并修复 Memorix 自己管理的条目 | `memorix doctor agents`、`memorix repair agents` |
70
70
  | Hooks 和 skills | 在支持的 Agent 中可选捕获工作事件,并把稳定知识提升成可复用项目技能 | `memorix hooks`、`memorix skills` |
@@ -258,7 +258,7 @@ memorix setup --agent omp --global
258
258
  - Hermes Agent:安装到 Hermes home(Windows native 默认为 `%LOCALAPPDATA%\hermes`,其他平台默认为 `~/.hermes`,也支持 `HERMES_HOME`),在 `config.yaml` 启用插件,注册 plugin hooks、slash/CLI commands、skills,并写入 MCP 配置。
259
259
  - Oh-my-Pi:安装 `omp.extensions` package,包含 extension hook 事件、`memorix` command、官方 skills,并写入 MCP 配置。
260
260
 
261
- 如果你想要更安静一点的安装,可以对那些 setup 能独立控制 hook capture 的 target 加 `--noHooks`。
261
+ 如果你想要更安静一点的安装,可以对那些 setup 能独立控制 hook capture 的 target 加 `--noHooks`。它会保留 MCP 和使用规范,只跳过 Memorix 的 hook 自动捕获。
262
262
 
263
263
  如果你明确想要项目级指导或 hooks,就在那个仓库目录里再跑一次不带 `--global` 的 `memorix setup --agent <agent>`。
264
264
 
@@ -275,6 +275,8 @@ memorix setup --agent omp --global
275
275
  }
276
276
  ```
277
277
 
278
+ 如果是手动维护 Claude Code 的 MCP 配置,需要在 `memorix` server 对象里加上 `"alwaysLoad": true`。这样 Claude Code 在 print-mode 启动时就会暴露 Memorix tools;`memorix doctor agents --agent claude` 可以检查并修复缺失的设置。
279
+
278
280
  普通安装不需要 HTTP。只有在你明确需要共享后台服务、Dashboard、Docker,或多个客户端共用一个端点时才使用:
279
281
 
280
282
  ```bash
@@ -315,14 +317,25 @@ npm uninstall -g memorix
315
317
  ### 从 CLI 管理记忆
316
318
 
317
319
  ```bash
318
- memorix context --task "continue release blocker"
320
+ memorix --cwd /path/to/repo context --task "继续处理发布阻塞问题"
319
321
  memorix memory search --query "release blocker"
322
+ memorix memory --help
323
+
324
+ # 可选:只在需要个人/团队记忆或协同时激活本地身份。
325
+ memorix identity join --agent-type codex --name codex-main
326
+ memorix memory store --text "个人排查笔记" --visibility personal
327
+ memorix task create --description "验证发布包"
328
+
329
+ memorix transfer export --format json --out ./.memorix-export.json
330
+ memorix transfer import --file ./.memorix-export.json
320
331
  memorix reasoning search --query "why sqlite"
321
332
  memorix git-hook --force
322
333
  memorix ingest log --count 20
323
- memorix dashboard
334
+ memorix workbench
324
335
  ```
325
336
 
337
+ CLI 是直接入口,不依赖 MCP 会话。它默认绑定当前 Git 项目,也可以用 `--cwd` 指定项目。没有激活身份时,只会读写和导出项目公开记忆;只有明确需要个人/团队记忆或协同任务时,才运行 `memorix identity join` 或 `memorix identity use --agent-id <id>`。`memorix identity clear` 会回到项目公开范围;脚本可用一次性的 `--as <active-agent-id>`。已有 camelCase 参数仍兼容,kebab-case 也可直接使用。
338
+
326
339
  ### 使用内置终端 Agent
327
340
 
328
341
  ```bash
@@ -356,6 +369,7 @@ memcode
356
369
  | 启动共享 HTTP MCP 和 Dashboard | `memorix background start` |
357
370
  | 前台调试 HTTP MCP | `memorix serve-http --port 3211` |
358
371
  | 直接检查或管理记忆 | `memorix memory`、`memorix reasoning`、`memorix session`、`memorix ingest` |
372
+ | 使用交互式终端记忆控制台 | `memorix workbench` |
359
373
  | 使用内置终端 Agent | `memorix` 或 `memcode` |
360
374
  | 运行编排式 subagent 工作 | `memorix orchestrate --goal "..."` |
361
375
 
package/TEAM.md CHANGED
@@ -1,18 +1,18 @@
1
- # Memorix Team Protocol
2
-
1
+ # Memorix Team Protocol
2
+
3
3
  Rules for project-scoped autonomous-agent coordination via Memorix team tools. The Team page is an **Agent Team status surface** — it shows explicitly joined autonomous agents, open tasks, locks, messages, handoffs, and what needs attention. It is NOT an organization backend, staffing admin tool, or automatic chat room between separate IDE windows.
4
4
 
5
5
  Only agents that are intentionally participating in team/task/message/lock workflows need this protocol. Memory-only sessions should stay lightweight and do not need a team identity.
6
6
 
7
7
  For real autonomous multi-agent development, prefer `memorix orchestrate`: it launches and supervises CLI agent workers through Memorix tasks, context, verification, and fix loops. The team tools support that workflow; they should not be interpreted as proof that unrelated IDE conversation windows can autonomously contact each other.
8
-
9
- There are 4 team tools, each with an `action` parameter:
10
-
11
- - `team_manage` — action: join / leave / status
12
- - `team_file_lock` — action: lock / unlock / status
13
- - `team_task` — action: create / claim / complete / list
14
- - `team_message` — action: send / broadcast / inbox
15
-
8
+
9
+ There are 4 team tools, each with an `action` parameter:
10
+
11
+ - `team_manage` — action: join / leave / status
12
+ - `team_file_lock` — action: lock / unlock / status
13
+ - `team_task` — action: create / claim / complete / list
14
+ - `team_message` — action: send / broadcast / inbox
15
+
16
16
  ## RULE 1: Start Lightweight, Join Team Explicitly
17
17
 
18
18
  At the **beginning of every memory session**, before project-scoped memory work:
@@ -25,82 +25,82 @@ At the **beginning of every memory session**, before project-scoped memory work:
25
25
  4. Store the returned **agent ID** only after an explicit join — you will need it for subsequent team operations.
26
26
  5. Call `memorix_poll` with your agent ID to see current autonomous agents, check available tasks, and read unread messages.
27
27
  6. If you need a custom role or capabilities, use explicit `team_manage(join)` so the role overrides the default mapping cleanly.
28
-
29
- ## RULE 2: Lock Before Edit
30
-
31
- Before modifying any file that another agent might also be working on:
32
-
33
- 1. Call `team_file_lock` with `action: "status"` and the file path to check if it is already locked.
34
- 2. If unlocked, call `team_file_lock` with `action: "lock"`, the file path, and your agent ID.
35
- 3. If locked by another agent, **do not edit that file**. Either:
36
- - Work on a different file.
37
- - Send a `request` message to the lock owner asking them to release it.
38
- - Wait and re-check later.
39
- 4. When you are done editing, call `team_file_lock` with `action: "unlock"` to release the lock.
40
-
41
- **Never edit a file locked by another agent.** Lock violations cause merge conflicts and data loss.
42
-
43
- Locks auto-expire after 10 minutes. If you hold a lock for extended work, re-lock periodically to refresh the TTL.
44
-
45
- ## RULE 3: Use Tasks for Work Coordination
46
-
47
- When the user assigns work that involves multiple agents or multiple steps:
48
-
49
- 1. Call `team_task` with `action: "create"` to break the work into discrete tasks with clear descriptions.
50
- 2. Use `deps` to declare dependencies between tasks (a task cannot be claimed until its dependencies are completed).
51
- 3. Call `team_task` with `action: "claim"` to assign a task to yourself before starting work on it.
52
- 4. Call `team_task` with `action: "complete"` and a `result` summary when the task is done.
53
- 5. Call `team_task` with `action: "list"` to see overall progress and find available work.
54
-
55
- Rules:
56
- - Only claim tasks whose dependencies are all completed.
57
- - Only one agent may claim a given task.
58
- - If you cannot complete a claimed task, leave the team so the task returns to pending and another agent can pick it up.
59
-
60
- ## RULE 4: Communication Protocol
61
-
62
- Use `team_message` with `action: "send"` for direct messages and `action: "broadcast"` for announcements. Message types and their intended use:
63
-
64
- | Type | Use |
65
- |------|-----|
66
- | `request` | Ask another agent to do something, release a lock, or provide information. |
67
- | `response` | Reply to a prior request. |
68
- | `info` | Share context: discoveries, status updates, warnings about tricky code. |
69
- | `announcement` | Broadcast to all agents: major state changes, deployment events, breaking changes. |
70
- | `contract` | Propose or agree on a division of work. Both agents should acknowledge. |
71
- | `error` | Report a blocking issue that requires another agent's attention. |
72
-
73
- Rules:
74
- - `action: "send"` requires the full UUID of the target agent. Get it from `team_manage` with `action: "status"`.
75
- - Check your inbox (`action: "inbox"`) at least once before starting new work and once before ending a session.
76
- - Keep message content under 10KB. Be concise and actionable.
77
-
78
- ## RULE 5: Leave on Session End
79
-
80
- When the session is ending:
81
-
82
- 1. Call `team_file_lock` with `action: "unlock"` for every file you have locked, or they will remain locked until TTL expiry (10 min).
83
- 2. If you have in-progress tasks you cannot finish, leave them — leaving releases your tasks back to pending.
84
- 3. Call `team_manage` with `action: "leave"` and your agent ID. This marks you inactive, releases all your locks, and clears your inbox.
85
-
86
- ## RULE 6: Conflict Prevention
87
-
88
- - **Check before acting.** Always check team status and file lock status before starting work to understand the current state.
89
- - **Communicate before diverging.** If you plan to refactor shared code, broadcast an `announcement` first so other agents can save their work.
90
- - **Respect lock ownership.** The lock holder has exclusive write access. No exceptions.
91
- - **Prefer small, scoped changes.** Large cross-cutting changes increase conflict risk. Coordinate via tasks and messages if a change touches files other agents are working on.
92
- - **Do not duplicate work.** Check the task list before creating new tasks. If a similar task exists, claim it instead of creating a duplicate.
93
-
94
- ## Summary of Required Calls
95
-
96
- | When | Tool Call |
97
- |------|-----------|
28
+
29
+ ## RULE 2: Lock Before Edit
30
+
31
+ Before modifying any file that another agent might also be working on:
32
+
33
+ 1. Call `team_file_lock` with `action: "status"` and the file path to check if it is already locked.
34
+ 2. If unlocked, call `team_file_lock` with `action: "lock"`, the file path, and your agent ID.
35
+ 3. If locked by another agent, **do not edit that file**. Either:
36
+ - Work on a different file.
37
+ - Send a `request` message to the lock owner asking them to release it.
38
+ - Wait and re-check later.
39
+ 4. When you are done editing, call `team_file_lock` with `action: "unlock"` to release the lock.
40
+
41
+ **Never edit a file locked by another agent.** Lock violations cause merge conflicts and data loss.
42
+
43
+ Locks auto-expire after 10 minutes. If you hold a lock for extended work, re-lock periodically to refresh the TTL.
44
+
45
+ ## RULE 3: Use Tasks for Work Coordination
46
+
47
+ When the user assigns work that involves multiple agents or multiple steps:
48
+
49
+ 1. Call `team_task` with `action: "create"` to break the work into discrete tasks with clear descriptions.
50
+ 2. Use `deps` to declare dependencies between tasks (a task cannot be claimed until its dependencies are completed).
51
+ 3. Call `team_task` with `action: "claim"` to assign a task to yourself before starting work on it.
52
+ 4. Call `team_task` with `action: "complete"` and a `result` summary when the task is done.
53
+ 5. Call `team_task` with `action: "list"` to see overall progress and find available work.
54
+
55
+ Rules:
56
+ - Only claim tasks whose dependencies are all completed.
57
+ - Only one agent may claim a given task.
58
+ - If you cannot complete a claimed task, leave the team so the task returns to pending and another agent can pick it up.
59
+
60
+ ## RULE 4: Communication Protocol
61
+
62
+ Use `team_message` with `action: "send"` for direct messages and `action: "broadcast"` for announcements. Message types and their intended use:
63
+
64
+ | Type | Use |
65
+ |------|-----|
66
+ | `request` | Ask another agent to do something, release a lock, or provide information. |
67
+ | `response` | Reply to a prior request. |
68
+ | `info` | Share context: discoveries, status updates, warnings about tricky code. |
69
+ | `announcement` | Broadcast to all agents: major state changes, deployment events, breaking changes. |
70
+ | `contract` | Propose or agree on a division of work. Both agents should acknowledge. |
71
+ | `error` | Report a blocking issue that requires another agent's attention. |
72
+
73
+ Rules:
74
+ - `action: "send"` requires the full UUID of the target agent. Get it from `team_manage` with `action: "status"`.
75
+ - Check your inbox (`action: "inbox"`) at least once before starting new work and once before ending a session.
76
+ - Keep message content under 10KB. Be concise and actionable.
77
+
78
+ ## RULE 5: Leave on Session End
79
+
80
+ When the session is ending:
81
+
82
+ 1. Call `team_file_lock` with `action: "unlock"` for every file you have locked, or they will remain locked until TTL expiry (10 min).
83
+ 2. If you have in-progress tasks you cannot finish, leave them — leaving releases your tasks back to pending.
84
+ 3. Call `team_manage` with `action: "leave"` and your agent ID. This marks you inactive, releases all your locks, and clears your inbox.
85
+
86
+ ## RULE 6: Conflict Prevention
87
+
88
+ - **Check before acting.** Always check team status and file lock status before starting work to understand the current state.
89
+ - **Communicate before diverging.** If you plan to refactor shared code, broadcast an `announcement` first so other agents can save their work.
90
+ - **Respect lock ownership.** The lock holder has exclusive write access. No exceptions.
91
+ - **Prefer small, scoped changes.** Large cross-cutting changes increase conflict risk. Coordinate via tasks and messages if a change touches files other agents are working on.
92
+ - **Do not duplicate work.** Check the task list before creating new tasks. If a similar task exists, claim it instead of creating a duplicate.
93
+
94
+ ## Summary of Required Calls
95
+
96
+ | When | Tool Call |
97
+ |------|-----------|
98
98
  | Session start | `memorix_session_start` (lightweight) |
99
99
  | Join Agent Team | `memorix_session_start(joinTeam=true)` or `team_manage(join)` |
100
100
  | After joining | `memorix_poll` (check status + inbox) |
101
- | Before editing a shared file | `team_file_lock(status)`, `team_file_lock(lock)` |
102
- | After editing | `team_file_lock(unlock)` |
103
- | Starting a unit of work | `team_task(claim)` or `team_task(create)` + `team_task(claim)` |
104
- | Finishing a unit of work | `team_task(complete)` |
105
- | Need to coordinate | `team_message(send)` or `team_message(broadcast)` |
106
- | Session end | `team_file_lock(unlock)` (all), `team_manage(leave)` |
101
+ | Before editing a shared file | `team_file_lock(status)`, `team_file_lock(lock)` |
102
+ | After editing | `team_file_lock(unlock)` |
103
+ | Starting a unit of work | `team_task(claim)` or `team_task(create)` + `team_task(claim)` |
104
+ | Finishing a unit of work | `team_task(complete)` |
105
+ | Need to coordinate | `team_message(send)` or `team_message(broadcast)` |
106
+ | Session end | `team_file_lock(unlock)` (all), `team_manage(leave)` |