memorix
Memory server
First committed by AVIDS2
Published in AVIDS2/memorix. Publisher page
926 GitHub stars
What it is
Local-first shared memory layer for AI coding agents across MCP clients, Git history, reasoning context, and project sessions.
Summary from the brain’s metadata
Local-first shared memory layer for AI coding agents across MCP clients, Git history, reasoning context, and project sessions. One project memory system for Claude Code, Codex, CodeBuddy Code, Cursor, Windsurf, Copilot, Gemini CLI, OpenCode, Grok Build, OpenClaw, Hermes Agent, Oh-my-Pi, Pi, Kiro, Antigravity, Trae, DeepSeek Harness, WorkBuddy, and any MCP-capable agent.
How it works
Memory model: Hybrid
AutoGineer overview, from the brain’s own files
Memory model: Hybrid. Folders: .github (agent config, 3 files); .windsurf (agent config, 2 files); assets (attachments, 32 files); docs (docs, 65 files); examples (examples, 4 files); packages (source code, 836 files); scripts (scripts, 18 files); src (source code, 382 files). The agent writes CLAUDE.md.
| Folder | Role | Files |
|---|---|---|
| .github | agent-config | 3 |
| .windsurf | agent-config | 2 |
| assets | attachments | 32 |
| docs | docs | 65 |
| examples | examples | 4 |
| packages | source-code | 836 |
| scripts | scripts | 18 |
| src | source-code | 382 |
| tests | tests | 376 |
| .codegraph | folder | 1 |
| .opencode | folder | 1 |
| .trae | folder | 1 |
| articles | folder | 5 |
| plugins | folder | 64 |
| stubs | folder | 1 |
The agent writes
- CLAUDE.md evidence: README.md
Requirements
Apps: Docker
Runtimes: Node.js >=22.18.0, Bun
Databases: LanceDB, PostgreSQL, SQLite
API keys (by name): ANTHROPIC_API_KEY, API_ROUTE_API_KEY, ATLASCLOUD_API_KEY, CHEAPER_INFERENCE_API_KEY, GROQ_API_KEY, MEMORIX_API_KEY, MEMORIX_EMBEDDING_API_KEY, MEMORIX_HTTP_AUTH_TOKEN, MEMORIX_LLM_API_KEY, MEMORIX_RERANK_API_KEY, MINIMAX_API_KEY, MINIMAX_CN_API_KEY, OPENAI_API_KEY, OPENROUTER_API_KEY, REQUESTY_API_KEY, RUNCRATE_API_KEY
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Google Antigravity, Kiro, OpenCode, Amp, Roo Code, Cline, JetBrains Junie, Devin (ex-Windsurf)
Set it up
This brain runs code automatically: 20 hooks (claude-code, codex). Review plugins/claude/memorix/hooks/hooks.json, plugins/codebuddy/memorix/hooks/hooks.json, plugins/codex/memorix/hooks/hooks.json, plugins/copilot/memorix/hooks/hooks.json before opening the folder in Claude Code. No step below turns a hook on for you.
plugins/claude/memorix/hooks/hooks.json:memorix hookplugins/claude/memorix/hooks/hooks.json:memorix hookplugins/claude/memorix/hooks/hooks.json:memorix hookplugins/claude/memorix/hooks/hooks.json:memorix hookplugins/claude/memorix/hooks/hooks.json:memorix hookplugins/codebuddy/memorix/hooks/hooks.json:memorix hook --agent codebuddyplugins/codebuddy/memorix/hooks/hooks.json:memorix hook --agent codebuddyplugins/codebuddy/memorix/hooks/hooks.json:memorix hook --agent codebuddyplugins/codebuddy/memorix/hooks/hooks.json:memorix hook --agent codebuddyplugins/codebuddy/memorix/hooks/hooks.json:memorix hook --agent codebuddyplugins/codex/memorix/hooks/hooks.json:memorix hook --agent codexplugins/codex/memorix/hooks/hooks.json:memorix hook --agent codexplugins/codex/memorix/hooks/hooks.json:memorix hook --agent codexplugins/codex/memorix/hooks/hooks.json:memorix hook --agent codexplugins/codex/memorix/hooks/hooks.json:memorix hook --agent codexplugins/copilot/memorix/hooks/hooks.json:memorix hook --agent copilotplugins/copilot/memorix/hooks/hooks.json:memorix hook --agent copilotplugins/copilot/memorix/hooks/hooks.json:memorix hook --agent copilotplugins/copilot/memorix/hooks/hooks.json:memorix hook --agent copilotplugins/copilot/memorix/hooks/hooks.json:memorix hook --agent copilot
- Not scanned by AutoGineerAutoGineer could not scan everything it runs. https://www.npmjs.com/package/memorix
First committed by AVIDS2. Published in AVIDS2/memorix. Licence: Apache License 2.0.
Usage
AutoGineer’s guidance for this type of brain
Add the server to your AI tool’s MCP configuration (see Set it up); your agent then stores and recalls memories through its tools.
Documentation by AVIDS2
<p align="center"> <img src="https://raw.githubusercontent.com/AVIDS2/memorix/main/assets/readme-hero.svg" alt="Memorix" width="720"> </p>
<h1 align="center">Memorix</h1>
<p align="center"> <strong>Local-first shared memory layer for AI coding agents.</strong><br> One project memory system for Claude Code, Codex, CodeBuddy Code, Cursor, Windsurf, Copilot, Gemini CLI, OpenCode, Grok Build, OpenClaw, Hermes Agent, Oh-my-Pi, Pi, Kiro, Antigravity, Trae, DeepSeek Harness, WorkBuddy, and any MCP-capable agent. </p>
<p align="center"> <a href="https://www.npmjs.com/package/memorix"><img src="https://img.shields.io/npm/v/memorix.svg?style=for-the-badge&logo=npm&color=cb3837" alt="npm"></a> <a href="https://www.npmjs.com/package/memorix"><img src="https://img.shields.io/npm/dm/memorix.svg?style=for-the-badge&logo=npm&label=monthly%20downloads&color=7c3aed" alt="monthly downloads"></a> <a href="https://github.com/AVIDS2/memorix/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/AVIDS2/memorix/ci.yml?style=for-the-badge&label=CI&logo=github" alt="CI"></a> <a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache%202.0-2563eb?style=for-the-badge" alt="license"></a> <a href="https://github.com/AVIDS2/memorix"><img src="https://img.shields.io/github/stars/AVIDS2/memorix?style=for-the-badge&logo=github&color=facc15" alt="stars"></a> </p>
<p align="center"> <a href="https://registry.modelcontextprotocol.io/?q=io.github.AVIDS2%2Fmemorix">Listed in the official MCP Registry</a> <br> <a href="https://mcptoplist.com/server/io.github.AVIDS2%2Fmemorix"><img src="https://mcptoplist.com/badge/io.github.AVIDS2%2Fmemorix.svg" alt="View Memorix on MCP Toplist"></a> </p>
<p align="center"> <strong>Shared Project Memory</strong> | <strong>MCP</strong> | <strong>Git Memory</strong> | <strong>Reasoning Memory</strong> | <strong>Plugins</strong> | <strong>Orchestration</strong> </p>
<p align="center"> <a href="https://mem.rglens.com">Website</a> | <a href="README.zh-CN.md">Chinese</a> | <a href="#install">Install</a> | <a href="#capabilities">Capabilities</a> | <a href="#works-with-your-agent">Agents</a> | <a href="#quick-start">Quick Start</a> | <a href="#memory-model">Memory Model</a> | <a href="#memcode-bundled-terminal-agent">memcode</a> | <a href="ACTIVE_WORK.md">Active Work</a> | <a href="#docs">Docs</a> </p>
Maintainer status and the current public work boundary live in ACTIVE_WORK.md. It is the repository's single living work tracker.
<h2 id="what-memorix-is"><picture><source media="(prefers-color-scheme: dark)" srcset="assets/tags/light/section-overview.svg"><img src="assets/tags/section-overview.svg" alt="Memorix" height="32" /></picture></h2>
Memorix gives the AI coding agents you already use a shared, searchable project memory that survives new chats, IDE switches, terminal sessions, and handoffs. The memory lives under the Git project, not inside one chat window or one tool.
Use Claude Code today, Codex tomorrow, and Cursor in the afternoon. The agent can change; the project memory stays the same.
Use Memorix when you keep re-explaining the same project to a new agent session: the last session already figured something out, another IDE cannot see it, or a design decision is buried in a chat you cannot find anymore.
| Problem | What Memorix adds |
|---|---|
| The next session forgets what the last session learned | Project-scoped memory, session summaries, timelines, and detail retrieval |
| Different agents know different things | One local memory pool available through MCP, hooks, CLI, SDK, and the bundled terminal agent |
| Git records what changed, but agents cannot recall it well | Git Memory turns commits into searchable engineering facts |
| Architecture decisions disappear into old chats | Reasoning Memory stores why choices were made, with alternatives and trade-offs |
| Static rule files drift | Gotchas, fixes, and project skills evolve from real work |
| Parallel agent work gets messy | memorix orchestrate coordinates task context, handoffs, locks, verification, and review loops |
Memorix is local-first. SQLite is the canonical store. Small projects use the in-process Orama path; larger projects use a persistent SQLite FTS5 candidate index and, when available, an optional local LanceDB semantic shadow index. Both indexes are rebuildable and are never a limit on how many durable memories you can keep. LLM-backed formation and embedding remain optional.
Capabilities
Memorix is more than a memory store. It also installs agent integrations, keeps useful work events, turns commits into project facts, exposes a local control plane, and can coordinate multi-agent work when a task needs it.
| Capability | What it does | Entry point |
|---|---|---|
| Memory Autopilot | A bounded task Workset with start files, current memory, source-backed knowledge, workflow starts, cautions, and verification. Compact JSON receipts keep fallback CLI use bounded too. | memorix context "..." --brief-json, memorix resume "..." --brief-json, memorix_project_context |
| Observation Memory | Searchable facts, fixes, gotchas, session summaries, and implementation notes scoped to the current Git project | memorix memory, MCP memory tools |
| Curated Long-term Memory | Deliberately reviewed episodic, semantic, and procedural memory with source evidence. Only an explicitly portable user item can cross local projects | memorix memory long-term |
| Code State and Code Memory | Versioned local code snapshots, source-backed TypeScript/JavaScript symbols and relations, file/symbol links, and freshness checks. Other languages keep the honest Lite fallback; an already-indexed local CodeGraph or SCIP result can add a bounded external outline without taking over the local index. | memorix codegraph status|refresh|init|sync, automatic context refresh |
| Git Memory | Commit-derived engineering facts that answer what changed, where, and why it matters | memorix ingest commit, git hook |
| Reasoning Memory | Design rationale, alternatives, trade-offs, and risks that should survive beyond one chat | memorix reasoning, memory formation |
| Knowledge Workspace | Review-gated source-backed claims, Markdown pages, and canonical project workflows; proposals never overwrite reviewed pages silently | memorix knowledge, memorix knowledge workflow |
| Agent setup | One setup path for MCP, rules, hooks, skills, plugins, bundles, or extensions depending on the agent | memorix setup --agent <agent> |
| Agent doctor | Checks whether agent MCP config and guidance are current, then repairs Memorix-owned entries when needed | memorix doctor agents, memorix repair agents |
| Hooks and skills | Optional capture from supported agents, plus reusable project skills promoted from durable knowledge | memorix hooks, memorix skills |
| Dashboard and HTTP | A local web UI and shared MCP endpoint for browsing memory, project state, teams, diagnostics, and preview-first cleanup, consolidation, deduplication, and retention actions | memorix dashboard, memorix background start |
| Orchestration and team work | Task planning, worker handoffs, file locks, messages, verification gates, and review loops | memorix orchestrate, memorix team, memorix lock |
| memcode | A bundled terminal coding agent that already reads and writes the same project memory | memorix, memcode |
| CLI and SDK | Scriptable access for automation, imports/exports, diagnostics, and custom integrations | memorix ..., createMemoryClient() |
| Optional multi-device sync | Privacy-filtered observation events with local SQLite kept canonical; default project scope, optional --scope user for every local project; GitHub JSONL, filesystem, S3, or Postgres relay | memorix sync store status|push|pull |
<h2 id="works-with-your-agent"><picture><source media="(prefers-color-scheme: dark)" srcset="assets/tags/light/section-agents.svg"><img src="assets/tags/section-agents.svg" alt="Works with every agent" height="32" /></picture></h2>
Memorix connects through the interfaces each agent already supports: plugin packages, MCP, project rules, hooks, skills, or the bundled terminal agent. memorix setup chooses the right setup for each agent and keeps stdio MCP as the default transport.
<table> <tr> <td align="center" width="12.5%"> <a href="https://claude.com/product/claude-code"><img src="https://github.com/anthropics.png?size=120" alt="Claude Code" width="48" height="48"></a><br> <strong>Claude Code</strong><br> <sub>official plugin + MCP + hooks + skills</sub> </td> <td align="center" width="12.5%"> <a href="https://github.com/openai/codex"><img src="https://github.com/openai.png?size=120" alt="Codex CLI" width="48" height="48"></a><br> <strong>Codex CLI</strong><br> <sub>official plugin + MCP + AGENTS.md</sub> </td> <td align="center" width="12.5%"> <a href="https://github.com/features/copilot"><img src="https://github.githubassets.com/images/modules/site/copilot/copilot.png" alt="GitHub Copilot CLI" width="48" height="48"></a><br> <strong>GitHub Copilot CLI</strong><br> <sub>plugin + MCP + hooks + skills</sub> </td> <td align="center" width="12.5%"> <a href="https://cursor.com"><picture><source media="(prefers-color-scheme: dark)" srcset="https://svgl.app/library/cursor_dark.svg"><img src="https://svgl.app/library/cursor_light.svg" alt="Cursor" width="48" height="48"></picture></a><br> <strong>Cursor</strong><br> <sub>MCP + rules + skills</sub> </td> <td align="center" width="12.5%"> <a href="https://windsurf.com"><picture><source media="(prefers-color-scheme: dark)" srcset="https://svgl.app/library/windsurf-dark.svg"><img src="https://svgl.app/library/windsurf-light.svg" alt="Windsurf" width="48" height="48"></picture></a><br> <strong>Windsurf</strong><br> <sub>MCP + rules + hooks</sub> </td> <td align="center" width="12.5%"> <a href="https://github.com/google-gemini/gemini-cli"><img src="https://github.com/google-gemini.png?size=120" alt="Gemini CLI" width="48" height="48"></a><br> <strong>Gemini CLI</strong><br> <sub>extension + MCP + hooks + skills</sub> </td> </tr> <tr> <td align="center" width="12.5%"> <a href="https://github.com/opencode-ai/opencode"><picture><source media="(prefers-color-scheme: dark)" srcset="https://svgl.app/library/opencode-dark.svg"><img src="https://svgl.app/library/opencode.svg" alt="OpenCode" width="48" height="48"></picture></a><br> <strong>OpenCode</strong><br> <sub>local plugin + MCP + skills + AGENTS.md</sub> </td> <td align="center" width="12.5%"> <a href="https://pi.dev"><img src="https://pi.dev/favicon.svg" alt="pi coding agent" width="48" height="48"></a><br> <strong>pi coding agent</strong><br> <sub>package + extension + skill</sub> </td> <td align="center" width="12.5%"> <a href="https://kiro.dev"><img src="https://kiro.dev/icon.svg" alt="Kiro" width="48" height="48"></a><br> <strong>Kiro</strong><br> <sub>MCP + steering + hooks</sub> </td> <td align="center" width="12.5%"> <a href="https://antigravity.google"><img src="https://antigravity.google/assets/image/antigravity-logo.png" alt="Antigravity" width="48" height="48"></a><br> <strong>Antigravity</strong><br> <sub>plugin + MCP + hooks + skills</sub> </td> <td align="center" width="12.5%"> <a href="https://www.trae.ai"><img src="https://github.com/Trae-AI.png?size=120" alt="Trae" width="48" height="48"></a><br> <strong>Trae</strong><br> <sub>MCP + project rules</sub> </td> <td align="center" width="12.5%"> <img src="https://raw.githubusercontent.com/AVIDS2/memorix/main/assets/logo.png" alt="memcode" width="48" height="48"><br> <strong>memcode</strong><br> <sub>bundled terminal agent</sub> </td> </tr> <tr> <td align="center" width="12.5%"> <a href="https://docs.openclaw.ai"><img src="https://raw.githubusercontent.com/openclaw/openclaw/main/ui/public/favicon.svg" alt="OpenClaw" width="48" height="48"></a><br> <strong>OpenClaw</strong><br> <sub>bundle + MCP + hooks + skills</sub> </td> <td align="center" width="12.5%"> <a href="https://hermes-agent.nousresearch.com"><img src="https://hermes-agent.nousresearch.com/icon.png" alt="Hermes Agent" width="48" height="48"></a><br> <strong>Hermes Agent</strong><br> <sub>plugin + MCP + hooks + skills</sub> </td> <td align="center" width="12.5%"> <a href="https://omp.sh"><img src="https://omp.sh/favicon.png" alt="Oh-my-Pi" width="48" height="48"></a><br> <strong>Oh-my-Pi</strong><br> <sub>package + MCP + hooks + skills</sub> </td> <td align="center" width="12.5%"> <a href="https://github.com/deepseek-ai/deepseek-harness"><img src="https://github.com/deepseek-ai.png?size=120" alt="DeepSeek Harness" width="48" height="48"></a><br> <strong>DeepSeek Harness</strong><br> <sub>MCP patch + AGENTS.md + skills</sub> </td> <td align="center" width="12.5%"> <a href="https://modelcontextprotocol.io"><img src="https://github.com/modelcontextprotocol.png?size=120" alt="Any MCP Client" width="48" height="48"></a><br> <strong>Any MCP Client</strong><br> <sub>stdio or HTTP MCP</sub> </td> <td align="center" width="12.5%"> <a href="https://github.com/xai-org/grok-build"><picture><source media="(prefers-color-scheme: dark)" srcset="https://media.x.ai/v1/website/spacexai-symbol-white-transparent-0c31957f.png"><img src="https://media.x.ai/v1/website/spacexai-symbol-black-transparent-6435cf42.png" alt="Grok Build" width="48" height="48"></picture></a><br> <strong>Grok Build</strong><br> <sub>native hooks + AGENTS.md</sub> </td> </tr> </table>
<p align="center"> <sub>Works with agents that speak MCP, expose hooks/rules, or support plugin/package entries. One local-first memory layer shared across all of them.</sub> </p>
Integration surfaces:
| Surface | What it does | Memorix entry |
|---|---|---|
| Setup command | Installs the recommended one-time user-level Memorix integration | memorix setup --agent <agent> --global |
| MCP | Gives an agent compact Memorix tools for project context, search, detail retrieval, storage, and resolution | bundled in setup packages or memorix serve |
| Usage guidance | Teaches an agent when and how to use Memorix without forcing memory lookup on every prompt | bundled or generated by memorix setup |
| Hooks | Optional capture of prompts, tool events, file edits, session lifecycle events, and native compaction checkpoints where the agent exposes them | bundled or generated by memorix setup |
| Plugin or bundle package | Installs plugin, compatible-bundle, or package files where the agent supports them | Claude Code, Codex, CodeBuddy Code, GitHub Copilot CLI, Antigravity, OpenClaw, Hermes Agent, Oh-my-Pi, Pi |
| Extension | Installs extension files where the agent supports them | Gemini CLI |
| Local plugin | Installs local plugin files where the agent loads them directly | OpenCode |
| MCP/rules config | Writes MCP, rules, steering, guidance, or hook config for IDEs and agents that expose those surfaces | Cursor, Windsurf, Kiro, Trae, DeepSeek Harness, WorkBuddy |
| Skills | Turns durable project knowledge into reusable task guidance | memorix skills and memorix_promote |
| memcode | Opens the bundled terminal agent that already uses Memorix memory | memorix or memcode |
See Integration Surfaces for the current support matrix and what each generated file means.
Use the same setup command without --global only when you intentionally want repo-local guidance, rules, or hooks in the current Git project.
CLI, MCP, and HTTP are different entry points:
memorixCLI is the direct command surface for setup, memory search/store, Git Memory, import/export, dashboard, orchestration, diagnostics, and automation.memorix serveis the stdio MCP bridge used by IDEs and coding agents. Its default tool profile ismicro, so agents see only the compact core tool set.memorix background start/memorix serve-httprun the HTTP service for a shared endpoint, dashboard, VPS Docker deployment, or multiple clients.
Multi-device store sync is opt-in and separate from HTTP sharing. It never
uploads the live SQLite database or WAL files. By default it only relays
qualified project-visible observations for the current Git project; personal,
agent-targeted, candidate, and ephemeral records stay local. Pass --scope user
to include every local project. Set MEMORIX_SYNC_PROVIDER and inspect
memorix sync store status --json before the first push.
<h2 id="install"><picture><source media="(prefers-color-scheme: dark)" srcset="assets/tags/light/section-install.svg"><img src="assets/tags/section-install.svg" alt="Install" height="32" /></picture></h2>
Requirements:
Node.js
>=22.18.0Git, because project identity is derived from the real Git root
Install and initialize:
npm install -g memorix
memorix init --global # optional defaults
memorix setup --agent claude --global # or codex, copilot, cursor, pi, gemini-cli, opencode,
# codebuddy, windsurf, kiro, antigravity, trae, openclaw, hermes, ompmemorix init is optional. It creates or updates TOML configuration:
~/.memorix/config.tomlfor global defaults<git-root>/memorix.tomlfor optional project overrides
Legacy memorix.yml, .env, and ~/.memorix/config.json are still read for compatibility, but new setup flows use TOML.
If you want repo-local guidance or hooks for a specific repository, run the same setup command from inside that repo without --global. Codex is the exception: its supported path is the user-level plugin install, so Memorix leaves project .codex configuration alone.
<h2 id="quick-start"><picture><source media="(prefers-color-scheme: dark)" srcset="assets/tags/light/section-quick-start.svg"><img src="assets/tags/section-quick-start.svg" alt="Quick Start" height="32" /></picture></h2>
Connect an existing agent
Use the setup command first. The global form is the normal one-time install:
memorix setup --agent claude --global
memorix setup --agent codex --global
memorix setup --agent copilot --global
memorix setup --agent cursor --global
memorix setup --agent pi --global
memorix setup --agent gemini-cli --global
memorix setup --agent opencode --global
memorix setup --agent windsurf --global
memorix setup --agent kiro --global
memorix setup --agent antigravity --global
memorix setup --agent trae --global
memorix setup --agent openclaw --global
memorix setup --agent hermes --global
memorix setup --agent codebuddy --global
memorix setup --agent omp --global
memorix setup --agent dsh --global
memorix setup --agent workbuddy --global
memorix setup --agent grok --globalWhat it installs depends on the target agent, but the goal is the same: make Memorix available wherever you open that agent without asking you to wire every repo by hand.
Claude Code: installs the Memorix plugin package, adds
CLAUDE.mdguidance, and enables hook capture when you do not pass--noHooks.Codex: installs one user-level Memorix plugin with bundled stdio MCP, skills, and lifecycle hooks. It does not write project-local
.codexconfig or change your model, approval, or sandbox settings. When Codex asks, review the plugin hook definition once with/hooks;--noHooksskips automatic capture.GitHub Copilot CLI: installs the Copilot plugin package and official Memorix skills.
Pi: installs the Pi extension/skills package and native MCP config (Pi 1.0+):
~/.pi/agent/mcp.jsonwith--global, or.pi/mcp.jsonfor project setup.Cursor: writes Cursor MCP/rules/config entries in the chosen scope.
Gemini CLI: installs the extension package,
GEMINI.mdcontext, hooks, and skills. Antigravity CLI has an official Gemini CLI migration path, but Gemini CLI remains an active standalone target.OpenCode: installs the local plugin file,
opencode.json, skills, andAGENTS.mdguidance.Windsurf, Kiro, Trae: write the MCP/rules/hooks files the target supports.
Antigravity: installs the official plugin package with
plugin.json,mcp_config.json,hooks.json, rules, and skills under~/.gemini/config/plugins/memorixor.agents/plugins/memorix.OpenClaw: installs an OpenClaw-compatible bundle with
.mcp.json, official skills, and an OpenClawHOOK.md/handler.tshook pack.Hermes Agent: installs into Hermes home (
%LOCALAPPDATA%\hermeson native Windows,~/.hermeselsewhere, orHERMES_HOME), enables the plugin inconfig.yaml, registers plugin hooks, slash/CLI commands, skills, and writes MCP config.CodeBuddy Code: installs a user-scope local marketplace plugin under
~/.codebuddy/memorix-localwith MCP, skills, and hooks. It does not change existing CodeBuddy model, permission, or settings files; CodeBuddy keeps third-party hook approval in its own/hooksflow.Oh-my-Pi: installs an
omp.extensionspackage with extension hook events, amemorixcommand, official skills, and writes MCP config.DeepSeek Harness: writes a Memorix
@deepseek-ai/dsh-mcp-clientrow into$DSH_HOME/cordis.patch.yml(default~/.dsh/cordis.patch.yml), appends guidance to the harnessAGENTS.md, and installs official skills under$DSH_HOME/skills. The row follows DSH's own shipped Memorix reference, so tools appear asmcp__memorix__*.WorkBuddy: writes a Memorix MCP server row into
~/.workbuddy/mcp.json(or<project>/.workbuddy/mcp.jsonfor project installs) and appends guidance toAGENTS.md. Tools appear asmcp__memorix__*; there is no hooks surface.Grok Build: installs native lifecycle hooks under
~/.grok/hooks/memorix.jsonand guidance in~/.grok/AGENTS.md. MCP stays host-owned by default; pass--mcp httpto write[mcp_servers.memorix]withurl = "http://localhost:3211/mcp". Project-local hooks require Grok/hooks-trust, while global hooks are trusted. SetGROK_HOMEto use a custom Grok home.
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.
If you intentionally want repo-local guidance or hooks, run the same command inside that repository without --global.
If your agent only needs a manual MCP entry, use stdio:
{
"mcpServers": {
"memorix": {
"command": "memorix",
"args": ["serve"]
}
}
}For an npm-based MCP client or registry tester, use the complete command
npx -y memorix serve. The serve argument matters: memorix without
arguments opens the bundled memcode terminal agent when run by a human, while
MCP clients should start the stdio server explicitly.
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.
HTTP is not required for normal setup. Use it only when you intentionally want a shared background service, dashboard, VPS Docker deployment, or multiple clients using the same endpoint. Local development uses the Node service directly and does not require Docker:
memorix background startThen point the client at:
http://localhost:3211/mcpIn HTTP mode, agents should bind the active repo explicitly with memorix_session_start(projectRoot=...) when the client can provide the workspace path. Git remains the final source of truth for project identity.
Uninstall
Preview what will be removed:
memorix uninstall --dry-runStop the background service and remove hooks:
memorix uninstall --background --hooksFull cleanup:
memorix uninstall --yes --background --hooks --purge-data
npm uninstall -g memorixmemorix uninstall reports MCP config entries for manual cleanup instead of silently editing every MCP file it finds.
Work from the CLI
memorix --cwd /path/to/repo resume "continue release blocker"
memorix checkpoint list
memorix memory search --query "release blocker"
memorix memory --help
# Optional: activate one local agent identity for personal/team records and coordination.
memorix identity join --agent-type codex --name codex-main
memorix memory store --text "private investigation note" --visibility personal
memorix task create --description "verify the release package"
# Deliberate durable memory: create a candidate, then review it before it can enter a Workset.
memorix memory long-term add --kind procedural --scope user --portability portable --title "Release verification preference" --text "Run focused tests and a packed-package smoke before publishing." --applicability "When publishing an npm package."
memorix memory long-term qualify --id <id> --reason "The user explicitly confirmed this preference."
memorix memory long-term approve --id <id> --reason "Reviewed for future local projects."
memorix transfer export --format json --out ./.memorix-export.json
memorix transfer import --file ./.memorix-export.json
memorix reasoning search --query "why sqlite"
memorix git-hook --force
memorix ingest log --count 20
memorix workbenchThe 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.
Manage controlled media
Media is opt-in. An explicit local import is copied into Memorix's local data directory, hashed, and kept outside the Git worktree. It becomes normal memory only when you attach it. Memorix never captures every screenshot or tool output. An asset may be up to the configured media limit (100 MiB by default). Automatic vision analysis is deliberately capped at 20 MiB; a larger image is still kept and can be attached, but Memorix records a clear text fallback instead of sending an oversized payload to a model provider.
memorix media import --path ./architecture.png --json
memorix media attach --asset <asset-id> --title "Architecture diagram" --json
memorix media list --kind image --json
memorix media show --asset <asset-id> --json
memorix media remove --asset <asset-id> --force --json
# Controlled derivations: explicit, bounded, and attachable to memory.
memorix media derive-pdf --asset <asset-id> --attach --json
memorix media derive-audio --asset <asset-id> --attach --json
# Legacy image analysis now uses the same controlled asset lifecycle.
memorix ingest image --path ./architecture.png --jsonMiniMax image generation is a deliberate CLI operation. Video generation returns a durable job immediately; inspect or cancel that job rather than waiting in an agent request.
# Configure MINIMAX_API_KEY in your user environment or .env, never in Git.
memorix media generate image --prompt "A clean system architecture diagram" --json
# Image-to-image with a reference image (MiniMax image-01 / image-01-live):
memorix media generate image --prompt "Keep the subject, change the background" --image ./reference.png --json
memorix media generate video --prompt "A short product walkthrough" --json
memorix media status --job <media-job-id> --json
memorix media cancel --job <media-job-id> --jsonmemorix_media is the compact MCP companion in every profile, including
micro. It supports import, attach, list, show, PDF/audio derivations,
generation, and job status. MCP image and video generation are disabled by
default because they may incur provider costs.
Set MEMORIX_MCP_MEDIA_GENERATION=1 only after you deliberately want an agent
to request billed MiniMax output. The normal OpenRouter text embedding lane is
still text-only; media vectors are created only by a provider that explicitly
declares support for that modality. Text descriptions and attachments remain a
useful ordinary retrieval fallback.
Use the bundled terminal agent
memorix
# or
memcodeThis opens memcode, a terminal coding agent that uses the same Memorix project memory as your MCP-connected agents.
<h2 id="memory-model"><picture><source media="(prefers-color-scheme: dark)" srcset="assets/tags/light/section-memory-model.svg"><img src="assets/tags/section-memory-model.svg" alt="Memory Model" height="32" /></picture></h2>
| Layer | Stores | Best for |
|---|---|---|
| Observation Memory | facts, gotchas, fixes, implementation notes | "How does this work?" |
| Reasoning Memory | rationale, alternatives, constraints, risks | "Why did we choose this?" |
| Git Memory | commit-derived engineering facts | "What changed and where?" |
| Code Memory | files, symbols, import edges, and memory-to-code freshness | "Which current code should I inspect first?" |
| Curated Long-term Memory | reviewed episodic events, stable facts, or reusable procedures with evidence | "What should this agent still know or do later?" |
| Compact Continuity | recent host-native compact summaries or lifecycle markers | "What survived the last context compaction?" |
Search is project-scoped by default. scope="global" searches across projects. The search boosts Git Memory for "what changed" questions and reasoning records for "why" questions.
Long-term memory is deliberately not an automatic dump of every note. A source observation, Claim, workflow, session, and code snapshot keep their existing roles. An agent may ask memorix_store to create an additional long-term record; an explicit request auto-qualifies and enters task briefs as a durable anchor, while hook-captured or Git-derived candidates stay pending until qualified. Approval stays an explicit operator review. Use memorix memory long-term approve|archive|supersede to record the evidence-backed lifecycle. Only a manually created or user-confirmed user + portable item may be considered in another local project; project code, Git facts, tests, workflows, sessions, and observations cannot be promoted into portable user memory.
memorix context "..." is the default Memory Autopilot entry. It builds a compact task-lensed brief for agents: bugfix tasks lean toward tests and repros, release tasks lean toward package/changelog/build checks, onboarding tasks lean toward docs and entry points, and stale or unrelated memories stay in warning lanes instead of flooding the prompt. Use --fallback --brief-json when MCP is unavailable and a CLI fallback needs the same bounded brief plus a receipt of what was selected or omitted; --json remains the detailed diagnostic form. A normal new task does not receive an old-session dump. For an explicit continuation, memorix resume "..." adds only the latest useful session summary, up to three readable durable anchors, and at most one recent source-labelled host compact checkpoint. A durable anchor carries a durable:<id> reference, so an agent can expand the full reviewed record through memorix_detail only when needed. Keyword matches stay primary; when no reviewed durable item matches and an embedding provider is configured, Memorix makes one 1.8-second, no-retry semantic fallback for paraphrases or cross-language tasks. A slow or unavailable provider simply leaves the normal keyword-only Workset intact. A checkpoint is lifecycle evidence, not durable memory or a transcript backup. Agents should read the suggested files before trusting stored memory.
<h2 id="runtime-modes"><picture><source media="(prefers-color-scheme: dark)" srcset="assets/tags/light/section-runtime.svg"><img src="assets/tags/section-runtime.svg" alt="Runtime Modes" height="32" /></picture></h2>
| You want | Run |
|---|---|
| Install an agent integration package | memorix setup --agent <agent> --global |
| Check or repair an agent integration | memorix doctor agents --agent <agent>, memorix repair agents --agent <agent> |
| Manually expose stdio MCP | memorix serve |
| Run shared HTTP MCP plus dashboard | memorix background start |
| Debug HTTP MCP in the foreground | memorix serve-http --port 3211 |
| Inspect or manage memory directly | memorix memory, memorix reasoning, memorix session, memorix ingest, memorix media |
| Manage reviewed long-term memory | `memorix memory long-term list |
| Retire memories from retrieval | memorix purge (current project), memorix purge --all --yes (everything) |
| Inspect native compaction continuity | `memorix checkpoint list |
| Use the interactive terminal memory control plane | memorix workbench |
| Use the bundled terminal agent | memorix or memcode |
| Run orchestrated subagent work | memorix orchestrate --goal "..." |
memorix serve defaults to --mode micro (9 tools) to keep MCP tool schemas small for agents. memorix setup writes --mode lite (21 tools) into the installed MCP config so the normal memory, continuity, and session surface is reachable. Use --mode team (29 tools) for coordination tools, or --mode full (48 tools) for advanced and compatibility tools such as checkpoint inspection.
Shortcuts and aliases: memorix search / remember / recent are direct query shortcuts, bg/bs start the background service, hook runs the hook launcher, and memorix config get|path|migrate inspects or migrates config files.
memorix orchestrate uses the current checkout for single-worker runs. When running multiple workers, it creates task worktrees under .worktrees/ and merges successful task branches back. Use --isolated to force worktree isolation for one worker, --no-worktree to disable it, --allow-dirty to run with uncommitted changes, and --no-auto-merge to preserve task worktrees for manual review.
<h2 id="memcode-bundled-terminal-agent"><picture><source media="(prefers-color-scheme: dark)" srcset="assets/tags/light/section-memcode.svg"><img src="assets/tags/section-memcode.svg" alt="memcode" height="32" /></picture></h2>
memcode is the terminal coding agent bundled with Memorix. It can read, edit, run commands, resume sessions, switch models, and use /memory commands — all backed by the same project memory as your MCP-connected agents.
Use it when you want a terminal agent with memory already wired in.
one Git project -> one shared Memorix memory poolSee docs/MEMCODE.md for the memcode-specific guide.
<h2 id="configuration"><picture><source media="(prefers-color-scheme: dark)" srcset="assets/tags/light/section-configuration.svg"><img src="assets/tags/section-configuration.svg" alt="Configuration" height="32" /></picture></h2>
Minimal ~/.memorix/config.toml:
[agent]
provider = "openai"
model = "gpt-4o"
api_key = "..."
[memory.llm]
provider = "openai"
model = "gpt-4o-mini"
api_key = "..."
[embedding]
provider = "auto"
[memory]
inject = "minimal"
formation = "active"Use [memory.llm] and [embedding] for Memorix memory quality and retrieval. Use [agent] for the model memcode talks to while coding. Keep credentials in global config or environment variables, and do not commit secrets.
For the optional Atlas Cloud memory preset, run memorix init and choose Atlas
Cloud, or set provider = "atlascloud" in [memory.llm]. It uses the
OpenAI-compatible https://api.atlascloud.ai/v1 endpoint and reads
ATLASCLOUD_API_KEY or the explicit MEMORIX_LLM_API_KEY.
For OpenRouter embeddings, use provider = "api", base_url = "https://openrouter.ai/api/v1", and model = "qwen/qwen3-embedding-8b". Memorix accepts OPENROUTER_API_KEY for that embedding endpoint; MEMORIX_EMBEDDING_API_KEY remains the explicit override.
For Requesty, choose Requesty in memorix init or set provider = "requesty" in [memory.llm] (endpoint https://router.requesty.ai/v1, key from REQUESTY_API_KEY or MEMORIX_LLM_API_KEY). Requesty embeddings use provider = "api", base_url = "https://router.requesty.ai/v1", and model = "openai/text-embedding-3-small" with REQUESTY_API_KEY.
For API Route, choose API Route in memorix init or set provider = "apiroute" in [memory.llm]. The preset uses https://global.api-route.com/v1 and deepseek-v4.1-flash, with your own API_ROUTE_API_KEY or MEMORIX_LLM_API_KEY. It is opt-in memory LLM processing; embeddings and memcode's model registry are configured separately. See configuration.
For Cheaper Inference, choose Cheaper Inference in memorix init or set provider = "cheaperinference" in [memory.llm]. The preset uses https://api.cheaperinference.com/v1 and gpt-5.4-mini, with your own CHEAPER_INFERENCE_API_KEY or MEMORIX_LLM_API_KEY. It is opt-in memory LLM processing; embeddings and memcode's model registry are configured separately. See configuration.
For Runcrate, choose Runcrate in memorix init or set provider = "runcrate" in [memory.llm]. The preset uses https://api.runcrate.ai/v1 and the open-weight deepseek-ai/DeepSeek-V4.1-Flash, with your own RUNCRATE_API_KEY or MEMORIX_LLM_API_KEY. It is opt-in memory LLM processing; embeddings and memcode's model registry are configured separately. See configuration.
For controlled MiniMax media generation, set MINIMAX_API_KEY (global) or
MINIMAX_CN_API_KEY (China region) in your environment or .env. The media
library never stores that key, a signed output URL, or base64 payloads. CLI
generation is explicit; MCP generation additionally requires
MEMORIX_MCP_MEDIA_GENERATION=1.
<h2 id="docker"><picture><source media="(prefers-color-scheme: dark)" srcset="assets/tags/light/section-docker.svg"><img src="assets/tags/section-docker.svg" alt="Docker" height="32" /></picture></h2>
Docker is a VPS/hosted HTTP deployment option, not a requirement for local development or stdio MCP:
docker compose up --build -dThen open:
dashboard:
http://localhost:3211MCP:
http://localhost:3211/mcphealth:
http://localhost:3211/health
The container must be able to access the repository path passed as projectRoot for project-scoped Git and config behavior.
<h2 id="sdk"><picture><source media="(prefers-color-scheme: dark)" srcset="assets/tags/light/section-sdk.svg"><img src="assets/tags/section-sdk.svg" alt="SDK" height="32" /></picture></h2>
Use Memorix directly from TypeScript:
import { createMemoryClient } from 'memorix/sdk';
const client = await createMemoryClient({ projectRoot: '/path/to/repo' });
await client.store({
entityName: 'auth-module',
type: 'decision',
title: 'Use JWT for API auth',
narrative: 'Chose JWT because the API is stateless and used by multiple clients.',
});
const results = await client.search({ query: 'auth decision' });
await client.close();<h2 id="docs"><picture><source media="(prefers-color-scheme: dark)" srcset="assets/tags/light/section-docs.svg"><img src="assets/tags/section-docs.svg" alt="Docs" height="32" /></picture></h2>
| Start here | Use when |
|---|---|
| Docs Map | You want the shortest route to the right guide |
| Setup Guide | Installing, using memorix setup, choosing stdio vs HTTP |
| Integration Surfaces | Plugin packages, MCP, project rules, hooks, and skills support |
| Configuration | TOML config, model lanes, compatibility files |
| API Reference | MCP tools and CLI commands |
| Git Memory | Commit ingestion and searchable engineering truth |
| Docker | Containerized HTTP service |
| memcode | Using the bundled terminal agent |
| Agent Playbook | AI-facing execution guide for install, binding, hooks, and troubleshooting |
| Development | Contributing, testing, release checks |
| Changelog | What changed in each release |
LLM-friendly summaries: llms.txt and llms-full.txt.
<h2 id="development"><picture><source media="(prefers-color-scheme: dark)" srcset="assets/tags/light/section-development.svg"><img src="assets/tags/section-development.svg" alt="Development" height="32" /></picture></h2>
git clone https://github.com/AVIDS2/memorix.git
cd memorix
npm install
npm run lint
npm test
npm run buildCommunity
Desktop and shell integrations built on Memorix:
omarchy-memorix — a native Omarchy shell bar widget: pool stats, live global search, per-project breakdown, recent memories, and a workbench launcher. Read-only over
~/.memorix/data; no daemons, no telemetry.
Built something on top of Memorix? Open a PR to list it here.
<h2 id="acknowledgements"><picture><source media="(prefers-color-scheme: dark)" srcset="assets/tags/light/section-acknowledgements.svg"><img src="assets/tags/section-acknowledgements.svg" alt="Acknowledgements" height="32" /></picture></h2>
Memorix draws from the MCP ecosystem and prior memory projects such as mcp-memory-service, MemCP, claude-mem, and Mem0. memcode is based on the Pi coding-agent codebase and adapts its terminal-agent model for the Memorix ecosystem.
<h2 id="license"><picture><source media="(prefers-color-scheme: dark)" srcset="assets/tags/light/section-license.svg"><img src="assets/tags/section-license.svg" alt="License" height="32" /></picture></h2>
<h2 id="star-history">Star History</h2>
<a href="https://github.com/AVIDS2/memorix/stargazers"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://mem.rglens.com/metrics/star-history-dark.svg"> <source media="(prefers-color-scheme: light)" srcset="https://mem.rglens.com/metrics/star-history-light.svg"> <img alt="Memorix Star History" src="https://mem.rglens.com/metrics/star-history-light.svg" width="100%"> </picture> </a>
<sub>Updated automatically from GitHub's privacy-safe star history API. No generated PRs.</sub>
CHANGELOG.md
Changelog
All notable changes to this project will be documented in this file.
Unreleased
Fixed
Fixed consolidation false positives for Korean and punctuation-only records; queued automatic cleanup jobs now honor
auto_cleanup = falseat execution time (#385).Observation writes now persist an idempotent CodeGraph/evidence projection job in the same SQLite transaction; successful foreground projections acknowledge it, while failures remain recoverable by maintenance.
Added common
DerivedViewadapters for SQLite FTS5 and Orama with explicit status, rebuild/refresh, compact, and close lifecycle methods.Added a CodeGraph
DerivedViewadapter for Lite refresh, status, SQLite compaction, and lifecycle shutdown.Release workflow now runs automatically for published GitHub Releases and requires npm visibility before MCP Registry publication.
Workset assembly now accepts only request-scoped derived-view receipts, preventing a concurrent search from leaking FTS/Orama state into context.
Changed
Search execution now returns a request-scoped receipt to compact search, index probes, and TUI chat, so concurrent requests cannot exchange diagnostics.
Observation inserts and topic-key updates commit canonical SQLite rows with vector, qualification, and claim-derivation jobs in one transaction.
A deduplicated maintenance job records writes received while it is running and schedules a follow-up pass, including after worker failure or lease loss.
Maintenance progress now has one kernel result contract; negative, fractional, non-finite, and inconsistent counts cannot be persisted as successful work.
SDK, TUI, compact search, and MCP retrieval now share the RetrievalFacade; feedback state is read from the active canonical store and reported separately from embedding fallback.
Topic-key updates publish their Orama projection only after the canonical transaction commits; failed updates or linked-record callbacks leave the prior searchable record intact.
Verification
The 20-case context task matrix and the 40,000-record local store gate pass on Windows/Node 22 with embeddings disabled. This is offline fixture evidence, not a claim about remote embedding quality.
[1.10.3] - 2026-11-05
Added
Pi 1.0+ native MCP setup through project or user
mcp.json, with stdio and HTTP transports alongside the existing extension and shared skills (#367).
Fixed
CodeGraph now retains two snapshots, sweeps stale derived symbols and edges, compacts SQLite after cleanup, and supports
codegraph.auto_refresh.Lazy large-corpus mode now initializes vector schema and backfills missing vectors from durable SQLite/Lance state (#374).
CJK-heavy search avoids fuzzy traversal over character and bigram tokens; project affinity is bounded to a tie-break so strong lexical matches stay on top (#373, #375).
Dashboard and TUI browser launches no longer interpolate URLs into shell commands; release workflows retain the existing tested action references.
Runcrate memory preset -- optional background memory LLM processing through an OpenAI-compatible endpoint for open-weight models, with an isolated
RUNCRATE_API_KEY, CLI/TUI setup and bilingual configuration guidance.
[1.10.2] - 2026-10-30
Fixed
LanceDB semantic-index writes are batched and periodically optimized, with
memorix repair indexavailable to compact older inflated indexes safely. Startup now checks persisted vector IDs before scheduling re-embedding or rewriting cached vectors.Derived-view receipts now report degraded embedding health and redact local paths and credentials from failure reasons.
Hermes now registers bundled skills by file path, matching the current plugin API (#366).
MCP search results and the session-start card are available in
structuredContentfor clients that do not display text blocks (#368).
[1.10.1] - 2026-10-23
Added
Cheaper Inference memory preset -- optional background memory LLM processing through an OpenAI-compatible endpoint, with an isolated
CHEAPER_INFERENCE_API_KEY, CLI/TUI setup and bilingual configuration guidance.Derived-view receipts -- context and search receipts now expose privacy-safe FTS, Orama, embedding, and CodeGraph freshness, generation, rebuild status, and bounded failure reasons.
[1.10.0] - 2026-10-23
Added
Measured context evaluation -- adds a reproducible 20-case runtime matrix covering continuity, retrieval, safety, runtime binding, and integration parity, with token, latency, RSS, fallback, degraded, and review-cost metrics.
Large-store release gates -- records and verifies 40k and 100k local capacity baselines across SDK, HTTP MCP, hooks, SQLite persistence, and SDK reopen paths.
Changed
Retrieval receipts -- compact search, MCP search, and CLI JSON search now expose request-level candidate, selected, omitted, token-budget, and fallback diagnostics while keeping query text, raw memory content, and local paths out of the receipt.
1.10 development contract -- documents memory ownership, runtime binding, adapter parity, and the measured context baseline as maintained acceptance surfaces.
[1.9.12] - 2026-10-17
Fixed
Release provenance gate -- the publish workflow now verifies npm registry signatures and fails closed when provenance publication cannot complete; it no longer retries with an unprovenance
--ignore-scriptspublish.Background update installs -- opt-in automatic updates disable npm lifecycle scripts during the global install.
[1.9.11] - 2026-10-16
Fixed
CJK full-text search -- the in-memory Orama index now keeps the default Latin tokenizer behavior while adding bounded character n-grams for Chinese, Japanese, and Korean text, so exact titles and short CJK queries work when embeddings are disabled.
Runtime supply-chain baseline -- refreshed the MCP SDK, Git adapter, HTTP client, URL/IP parsers, Hono, LanceDB, Sharp, and related lockfile resolutions; the production dependency audit is now clean.
Large-store alias migration -- startup project-ID normalization now uses a bounded SQLite update instead of requiring the full observation corpus in memory. The FTS5 triggers and storage generation stay current.
Alias-aware search visibility -- observations retained under a merged project alias are readable through the same alias-expanded search scope.
Hybrid search recovery -- an empty or stale derived semantic result now falls back to the durable lexical path instead of becoming a silent empty answer.
Search CLI parity --
memorix search "query"andmemorix search --query "query"now share the same argument contract.Pi hooks on Node 26 -- hook stdin is paused and unrefed without closing file descriptor 0, so subsequent synchronous Git detection remains safe when a host supplies hook input through a regular file.
Added
Qwen Code hooks --
memorix hooks install --agent qwenwrites the official.qwen/settings.jsonhook shape, preserves user settings, and installs project/globalQWEN.mdguidance. iFlow is not targeted because its official CLI service was retired in April 2026.API Route memory preset -- optional background memory LLM processing through an OpenAI-compatible endpoint, with an isolated
API_ROUTE_API_KEY, CLI/TUI setup and bilingual configuration guidance.
[1.9.10] - 2026-10-08
Fixed
OpenCode 1.x regression -- generated plugins now include the v1
serverfield alongside the v2setupcontract, so OpenCode 1.x can load the legacy named export. Lifecycle, file, command, message, and compaction events are also forwarded through the v1 genericeventhook, with a longer Windows hook timeout to reduce stale Bun timer failures.
[1.9.9] - 2026-10-02
Added
Requesty memory preset --
memorix initand the configuration TUI can select Requesty for optional background memory LLM work through its OpenAI-compatible endpoint, with provider-specific key isolation.REQUESTY_API_KEYis also accepted for Requesty embedding endpoints.
[1.9.8] - 2026-10-02
Fixed
OpenCode v2 plugin compatibility -- generated plugins retain the v1 named export while also exposing the v2 default
id/setupcontract, including event subscriptions, tool hooks, cleanup, and host session IDs.
[1.9.7] - 2026-09-28
Fixed
SQLite FTS5 startup resilience -- transient
SQLITE_BUSYcontention during lexical-index initialization is retried before FTS5 is marked unavailable.Large-store search fallback -- runtime embedding failure, provider disappearance, and vector-dimension mismatch now all fall back to the durable SQLite lexical index instead of returning a silent empty result.
Release metadata -- synchronized the npm, MCP Registry, and packaged integration metadata for the 1.9.7 patch release.
[1.9.6] - 2026-09-22
Added
Task continuity ledger -- adds a project-scoped append-only ledger for requirements, decisions, verification, risks, and outcomes. The bounded Project Context can include a ledger by
taskId; no automatic promotion or LLM summarization is performed.Continuity outcome projection -- adds deterministic validated, at-risk, in-progress, and unverified states plus replay coverage. Diagnostic scores are exposed in receipts only and do not silently reorder memories.
Infrastructure lifecycle closeout -- bounds HTTP sessions and SQLite handles, reuses project business runtimes behind fresh modern MCP protocol shells, records event-loop/resource health, and adds a deterministic memory quality gate.
Atlas Cloud memory preset --
memorix initand the configuration TUI can select Atlas Cloud for optional background memory LLM work through its OpenAI-compatible endpoint, with provider-specific key isolation.
Fixed
Configuration scope isolation -- explicit home/project resolution now applies consistently to TOML, YAML, legacy JSON, and
.envloading, so long-lived processes and tests cannot reuse another configuration scope.OrcaRouter documentation -- documents the existing OpenAI-compatible gateway path with fixed-model and fallback guidance; no vendor-specific provider branch is required.
Capacity closeout -- TeamStore queries, maintenance history, embedding caches, HTTP project caches, and large-store behavior are bounded and regression-covered.
Stable coordination queue order -- available tasks now dispatch FIFO with a SQLite rowid tie-breaker, preventing cross-platform adapter-routing flakes when task timestamps collide.
Continuity correctness -- verification obligations can move between statuses by stable ID, retries are idempotent, open risks are visible in the outcome state, and the 200-event cap is enforced transactionally.
Replay-safe orchestration evidence -- tool effects are recorded with redacted fingerprints, risk tiers, replay policy, and unknown-after-crash status without persisting raw tool arguments or output.
[1.9.5] - 2026-09-20
Added
Setup HTTP MCP --
memorix setup --mcp httphonors Grok (writes a[mcp_servers.memorix]URL in Grokconfig.toml) and rewrites installed plugin/extension bundled MCP manifests frommemorix servetohttp://localhost:3211/mcp. Default Grok MCP stays host-owned. Docs include generic systemd user unit and LaunchAgent KeepAlive examples formemorix serve-http.User-global store sync --
memorix sync store push|pull|status --scope userreplicates every local project's eligible observations through the existing opt-in relay. Default--scope projectis unchanged. Privacy filters still drop personal, agent-targeted, candidate, and ephemeral rows. The live SQLite file is never copied.
Fixed
HTTP control-plane safety -- JSON request bodies are bounded, non-loopback binds require an explicit Bearer token or unsafe opt-in, listen failures are reported synchronously, background startup removes unverified state, and shutdown waits for HTTP and SQLite resources to close.
Project-scoped graph storage -- graph entities and relations now carry a project key, legacy JSONL migration recovers ownership from observation references, and Dashboard/MCP graph access no longer crosses projects.
Migration and lifecycle reliability -- legacy observation/subdirectory migrations use locks and atomic writes, malformed observation JSON fails closed, stale file locks cannot evict a live writer, stateless MCP bindings expire and are cleaned up, and SDK clients share resources safely.
User-scope sync correctness -- imported observation IDs are remapped on collision, tombstones validate their source project, and user namespaces must be explicit per-user values.
Release contract -- publish workflow validates tag/version/commit identity, waits for npm visibility before MCP Registry publication, and keeps prepublish checks non-mutating.
[1.9.4] - 2026-09-18
Added
MiniMax first-frame video input -- image-to-video generation now accepts a public HTTPS first-frame image URL through the CLI and MCP surfaces, preserves it in durable media jobs, and submits it with the provider's
first_frameimage role.
Fixed
First-frame URL safety -- rejects non-HTTPS URLs and embedded credentials before a media request is submitted or persisted.
Changed
Grok Build documentation -- the README comparison now uses the official Grok Build logo assets.
[1.9.3] - 2026-09-14
Fixed
SQLite storage reliability -- transient cross-process locks no longer turn a process into a permanently empty read-only store. Observations, sessions, and mini-skills share the same initialization and retry contract; persistent runtime failures remain visible.
Storage diagnostics --
memorix doctorreports the active backend, distinguishes unavailable storage from an empty project, and returns a failing exit status for storage failures.
[1.9.2] - 2026-09-11
Fixed
Non-interactive MCP startup -- running the package without arguments through piped stdio now starts the MCP server, while a real terminal keeps opening the bundled memcode agent. This makes generic npm MCP launchers and registry handshake checks use the correct protocol entry point.
Maintenance initialization -- dashboard Consolidate uses its request-scoped observation store, and CLI deduplication initializes the project memory LLM before checking availability.
[1.9.1] - 2026-09-08
Changed
Large-scale retrieval -- SQLite FTS5 is now the persistent lexical candidate index. It stays synchronized on insert, update, delete, and can be rebuilt from the durable observations table.
Disk-backed semantic retrieval -- the optional local LanceDB shadow index stores only vector IDs and metadata, uses HNSW with scalar quantization once the corpus is large enough, and fuses bounded semantic candidates with FTS5 results. Search falls back to Orama when the optional native package is not available.
Lazy large-corpus startup -- projects above the Orama hydration threshold keep SQLite as the source of truth and do not load the complete observation corpus into the interactive agent process. Detail, export, and maintenance paths can still load the data they explicitly need.
Large-store acceptance -- adds regression coverage and verified gates for 1k, 10k, 40k, and 100k records without reducing the durable memory corpus.
Post-threshold vector writes -- newly generated vectors still reach the persistent semantic index after the in-memory Orama corpus is released.
Fixed
Stale lexical index on upsert -- replace-style SQLite writes could leave old terms in an external-content FTS index. Observation upserts now preserve trigger-visible row updates so old terms are removed.
Optional native dependency bundling -- LanceDB is resolved at runtime so unsupported platforms or installations without its native binary continue to build and use the FTS5/Orama fallback.
[1.9.0] - 2026-09-07
Added
Opt-in multi-device sync -- adds a project-scoped observation event contract with privacy filtering, local outbox retry, conflict evidence, device-clone protection, bounded relay pulls, and filesystem/GitHub/S3/ Postgres transport boundaries. It is disabled by default and keeps local SQLite as the canonical store.
Sync hardening -- retracts records that become private or agent-targeted, keeps imported observations and sync state atomic, rejects immutable-key collisions, verifies every pulled content hash, and uses stable continuation cursors so large pulls do not skip events.
Resource hardening -- coalesces deferred vector workers across hook processes, respects retry cooldowns, drains due vector jobs through one recoverable worker, removes the redundant full-document detail cache, and batches startup vector hydration to reduce CPU/RAM peaks without imposing a small corpus limit.
[1.8.9] - 2026-09-06
Added
Grok Build integration -- adds native lifecycle hook capture for session, prompt, tool, compaction, and stop events, plus Grok-specific
AGENTS.mdguidance. Thanks to @RaviTharuma for the original integration.
Changed
Host-owned Grok MCP --
memorix setup --agent grok --globaluses Grok's hook and rules surfaces without writing Grok'sconfig.tomlor MCP entries.Agent documentation -- the English and Chinese README matrices and setup guides now list Grok Build and its trust model.
Fixed
Safe Grok hook updates -- preserves unrelated user hooks, removes only Memorix-owned entries, supports
GROK_HOME, and reports project hook trust accurately without claiming that Memorix can approve it.
[1.8.8] - 2026-09-03
Changed
Public product website metadata -- package, MCP Registry, Agent plugin, installer, README, and GitHub repository links now point to the live Memorix website at
https://mem.rglens.com. This patch does not change the runtime behavior of the memory layer.
[1.8.7] - 2026-09-02
Added
CodeGraph semantic foundation -- adds a TypeScript Compiler API provider for source-backed TypeScript, TSX, and JavaScript symbols, imports/exports, references, calls, inheritance, and test relations. Unsupported languages keep the bounded Lite structural fallback.
Unified CodeGraph evidence -- persists fact provenance, parser errors, semantic coverage, affected import dependents, and bounded task context so agents can tell verified relations from heuristic hints.
SCIP boundary and Dashboard health -- accepts bounded
scip print --jsonoutlines through the validated external-provider boundary and exposes read-only CodeGraph coverage in CLI doctor, HTTP, and the Dashboard without installing or taking over external indexes.Reproducible scale probe -- adds an opt-in generated fixture benchmark for measuring public CLI refresh and status latency under an explicit E: temporary directory.
Fixed
Incremental semantic refresh -- re-indexes local import dependents when a changed file can alter their resolved relations, replaces each semantic slice atomically, and records a visible partial/failed state instead of claiming a ready graph after compiler failure.
Code context precision -- unrelated symbols no longer enter semantic task context merely because they are functions, and freshness counts no longer duplicate file and symbol references for one memory.
Modern HTTP project binding -- the stateless
server/discoverpath now offers a reusable Memorix project-handle extension after verifying the Git root; legacyinitializesessions remain unchanged.Published runtime boundary -- TypeScript is a production dependency and remains external to the bundle so the semantic provider works after npm installation without inflating the runtime artifact.
[1.8.6] - 2026-09-01
Added
WorkBuddy integration (#204) -- adds project and user-level MCP setup, project
AGENTS.mdguidance, safe no-op behavior for WorkBuddy's absent hooks surface, and uninstall discovery. Thanks to @wjxn13 for the original implementation and follow-up fixes; the contributor commits remain in the merge history.
Fixed
Continuation intent (#266) -- a bare
继续,continue, orresumeno longer triggers an expensive prior-work brief, while short substantive requests such as继续修复,resume bug, and继续 APIstill receive continuity context. Explicit handoff vocabulary remains supported. Thanks to @Tom-Ma-Ming for the original fix and regression cases.Star History assets -- refreshed the self-hosted chart data and light / dark SVG assets.
[1.8.5] - 2026-08-30
Fixed
Modern MCP transport --
memorix serveand the HTTP control plane now use the official MCP v2 server path for 2026-07-28 discovery, request metadata, result envelopes, response metadata, stateless requests, and the subscriptions listen surface while forwarding business tools through the existing Memorix implementation.Background start race (#259) -- background startup now holds an exclusive, heartbeating lock across the check/spawn/readiness window. Lock contention fails closed with a retry message instead of starting an unlocked duplicate control plane; stale dead-owner locks are recoverable.
Windows and EOF behavior -- stdio discovery remains compatible before and after readiness, roots-based project switching and deferred maintenance are preserved, and stdin EOF closes the official transport cleanly.
Local build reliability -- the large runtime, CLI, and memcode bundles build sequentially, reducing Windows memory pressure without changing published entry points. Slow CLI uninstall tests now use asynchronous, hidden child processes so the full test run exits cleanly.
Time-stable graph evaluation -- graph-context fixtures pin their reference date so retention policy changes do not make the test depend on the calendar.
MCP Compatibility Boundary
Modern Tasks are explicitly unsupported because Memorix does not expose a durable task store for MCP task semantics.
List responses expose a private zero-TTL protocol hint; Memorix does not claim a reusable server-side list cache.
The external
@hasmcp/mcp-spec-testrunner currently fails on this Windows host before reaching the target because it imports drive-letter paths as ESM URLs. Production verification therefore includes official v2 direct tests, real stdio/HTTP smoke, and the legacy compatibility path; this external runner result is not reported as a pass.
[1.8.4] - 2026-08-27
Fixed
Stateless HTTP MCP requests (#255) -- clients such as Claude Code that send the current protocol header on every request can list and call tools without echoing a custom project handle. Durable handles are still created on
initializeand remain available when a client opts into them.MCP protocol self-description (#257) -- discovery and HTTP response headers now advertise the legacy revisions implemented by the pinned SDK, instead of claiming complete support for the newer 2026 revision.
MCP stdio smoke contract -- the release smoke script now checks the truthful advertised revision set after the compatibility fix.
MCP Compatibility
The 1.8.4 line supports legacy stateful MCP, versionless stdio tool calls, pre-initialize discovery, and the narrow stateless HTTP compatibility path. It does not claim full 2026 result metadata, Tasks, subscriptions, or list caching support.
[1.8.3] - 2026-08-25
Fixed
Stdio MCP startup gate --
memorix servenow reads and bounds newline-delimited JSON-RPC input before project initialization completes. Earlyserver/discoverrequests receive the complete discovery result, while initialize, notifications, responses, and versionless tool requests replay through the pinned SDK transport in input order without duplicate handling.
MCP Compatibility
Stable cold-start discovery -- real stdio CLI startup now supports pre-initialize discovery within the startup window and preserves legacy initialize plus versionless
tools/list/tools/callbehavior. Tasks, subscriptions, list-response caching, and modern non-discovery result metadata remain unsupported or partial.
[1.8.2] - 2026-08-25
Fixed
Dashboard deduplication initialization (#248) -- standalone and HTTP maintenance previews now idempotently resolve the selected project's memory LLM from TOML and
.env, clear stale cross-project configuration, and keep credentials out of responses.CodeGraph capability fallback (#250) -- a failed or invalid
contextprobe now tries the officialexploreCLI with bounded, shell-free spawning. Only validated paths, symbols, and relationships can select the external provider; separate context/explore diagnostics explain Lite fallback.
MCP Compatibility
Discovery adapter (#249) -- the stdio server registers a real low-level
server/discoverhandler that returns the required 2026-07-28DiscoverResultbeforeinitialize. Legacy 2025 initialize and versionlesstools/list/tools/callremain supported through the SDK's legacy envelopes. Tasks, subscriptions, and list-response caching remain unsupported and are not advertised.
[1.8.1] - 2026-08-24
Changed
Truthful coordination status -- the persistent SQLite
TeamStoreis the sole coordination truth for agents, tasks, messages, locks, handoffs, and poll state. The Dashboard exposes read-onlyCoordination StatusandTask Statusviews, and/api/teamreports expliciterrorordegradedstatus instead of presenting a failed coordination read as a healthy empty result.
[1.8.0] - 2026-08-23
Added
Persisted Evidence Cards -- observation provenance is stored in SQLite with project ownership, source reference, locator, captured hash, files, verification state, freshness, and audit events. Cards are available through
memorix_evidence,memorix evidence, and the Dashboard Evidence Console.Auditable memory feedback -- verification, use, correction, source-change, conflict, strengthen, weaken, and revoke events materialize a bounded retrieval/retention weight without deleting the original source record.
Stateless MCP project handles -- 2026-07-28-style requests can use an explicit
Mcp-Project-Handlethat survives service restart, while legacy stateful Streamable HTTP remains supported.One-shot CLI fallback budget -- repeated MCP-unavailable probing for the same project/task is deduplicated and fail-closed after one bounded context request.
Evidence Console -- Dashboard includes a responsive, project-scoped evidence view with source, locator, freshness, verification, and audit count.
Changed
HTTP TeamStore resolution is project-data-directory scoped, preventing A/B coordination state from crossing when sessions bind different projects.
The 1.8.0 documentation records the shipped compatibility adapter, explicit non-goals, fallback semantics, and the Antigravity/Gemini setup matrix.
Fixed
Preserve the 1.7 micro MCP profile's nine-tool budget by keeping Evidence and Feedback in lite/team/full profiles.
Keep legacy relevance unchanged until a memory receives explicit feedback.
Keep SQLite-backed HTTP helpers lazy so mocked and lightweight MCP startup paths do not open the database during module evaluation.
[1.7.3] - 2026-08-22
Added
Optional HTTP rerank -- Thorough search with at least 3 candidates can reorder top hits through a configurable Cohere-compatible
POST {base_url}/rerankendpoint ({model, query, documents}). Works with any compatible/rerankAPI. Configure[rerank]orMEMORIX_RERANK_*; base URL inherits the memory LLM lane when unset. Bearer inherits only when the effective rerank URL is that same trusted endpoint; a different host requiresMEMORIX_RERANK_API_KEY/rerank.api_key. The model id is user-configured. When HTTP rerank is configured, a miss or timeout keeps the original order (no LLM fallback). LLM rerank remains available when HTTP rerank is off.
Fixed
OpenAI-compatible provider base URLs -- preserve explicit versioned paths such as Volcano Ark's
/api/v3for ordinary chat, tool calling, streaming, and vision requests instead of appending an incorrect/v1segment.HTTP rerank honors
MEMORIX_RERANK_TIMEOUT_MSon the inner fetch (default 30s) instead of aborting at 5s.HTTP rerank no longer inherits or transmits the memory LLM credential when
rerank.base_urlpoints at a different endpoint. If a Memory LLM key is present, that foreign host is not called untilMEMORIX_RERANK_API_KEY/rerank.api_keyis set.Codegraph CLI tests close git/sqlite sandboxes with retries so Windows
afterEachcannot hang past vitest's 10s hookTimeout.
[1.7.2] - 2026-08-19
Changed
Faster large-store cold retrieval -- startup hydration now inserts persisted observations into Orama in bounded batches. This avoids rebuilding index balance once per row while continuing to yield to HTTP health traffic.
Fail-closed large-store evidence -- the reproducible 40,000-record gate now exercises and times HTTP readiness, MCP initialize/bind/context/search/ store, hook capture, and SDK reopen behavior with hard request and release budgets instead of checking persistence alone.
Isolated index tests -- startup hydration tests explicitly disable the embedding lane and restore the caller environment instead of reading an operator's provider configuration or local vector cache.
Current public guidance -- README and canonical development/status docs now describe preview-first Dashboard maintenance and the 1.7 product line.
[1.7.1] - 2026-08-19
Fixed
Contained graph text -- long graph node names, summaries, and relation targets now wrap inside the Dashboard tooltip and inspector instead of overflowing their containers.
Centered maintenance preview -- the Cleanup preview dialog is centered on desktop and narrow screens, including after the Dashboard global reset styles are applied.
[1.7.0] - 2026-08-18
Added
Preview-first Dashboard maintenance -- the Observations page now offers project-scoped Cleanup, Consolidate, and Deduplicate previews, while the Retention page can preview and archive canonical retention candidates. Every mutation shows its candidate set before confirmation.
Shared maintenance execution -- Dashboard, CLI, and MCP use the same cleanup and deduplication planners/executors instead of maintaining separate mutation logic.
Changed
Fail-closed maintenance actions -- execution requires a signed, project-bound preview and rejects stale candidate sets with a refreshable conflict instead of applying a partial plan.
Conservative cleanup noise detection -- normal engineering terms such as compatibility, handoff, sandbox, and version are no longer treated as noise; only explicit fixture markers and tool receipts are opt-in archive candidates.
Dashboard documentation -- added the canonical Dashboard maintenance, scope, and safety contract to the public documentation map.
[1.6.3] - 2026-08-18
Fixed
Safe home-directory boundaries -- project binding and SQLite now share the same effective
HOME/USERPROFILEresolution on Windows, so an agent launched from a user directory is rejected consistently and cannot create a decoy~/memorix.db. Contributed by @RaviTharuma in #230, with a maintainer compatibility follow-up for Windows environment resolution.Fast first session on large stores --
memorix_session_startuses a bounded newest-first slice while the remaining hydration work continues in the background, keeping first contact responsive on large projects.
[1.6.2] - 2026-08-18
Changed
Responsive large-store control plane -- HTTP health and MCP initialize no longer wait for full observation or embedding-cache hydration. Hook writes persist directly without loading the full corpus, one-shot CLI paths avoid cached-vector attachment, and ordinary embedding-disabled writes stay off the provider/configuration hot path. Contributed by @RaviTharuma in #214.
Bounded and crash-safe embedding cache -- JSONL cache loading is bounded by a 256 MiB raw-vector payload budget, legacy JSON migration publishes via temporary-file rename, concurrent loads are single-flighted, and sidecar metadata avoids rescanning a large cache on every save.
Fixed
SDK lifecycle and persistence parity --
MemoryClient.close()releases its SQLite handle on Windows, reopening the same directory reloads a fresh store snapshot, and SDK clients use the same flat data directory as CLI, hooks, and HTTP MCP instead of the retired per-project directory layout.Correct background entrypoint --
memorix background startlaunches the built HTTP CLI entrypoint rather than the stdio library entry.
[1.6.1] - 2026-08-17
Fixed
Bounded hook lifecycle on every desktop platform --
memorix hooknow reads stdin with an idle bound, performs embedding writes in the deferred lane, and has a hard process deadline. The hook-specific V8 heap is 512 MiB instead of the control plane's 4 GiB. This prevents hung hook processes and associated CPU or memory pressure on macOS, Windows, and Linux. The Windows CLI heap restart also hides its child console window.Recoverable HTTP MCP sessions -- HTTP MCP sessions now default to a 12-hour idle window. An expired or unknown session receives a fast
404with a reinitialize hint instead of looking like a silent client hang. SetMEMORIX_SESSION_TIMEOUT_MS=0only when the host owns lifecycle cleanup.Truthful embedding diagnostics -- the HTTP control plane exposes its real runtime embedding state.
memorix doctorreads that state instead of reporting a fresh local probe as ready while the running service is degraded by authorization, billing, timeout, or upstream failure.Accurate doctor JSON health -- a live PID with an unreachable HTTP control plane now reports
healthy: falserather than a false positive.
Changed
macOS release coverage -- normal CI now runs the full build and test suite on
macos-latestin addition to Ubuntu and Windows.
[1.6.0] - 2026-08-17
Added
Bounded context receipts --
memorix context|resume --brief-json,memorix codegraph context-pack --brief-json, and MCP project-contextformat: "receipt"return only the agent-ready brief, selection receipt, CodeGraph quality, and optional Agent loadout. The detailed--jsonand MCPformat: "json"forms remain available for diagnostics.Task-scoped Agent loadouts --
--agent <target>selects only compatible project workflows and reports their required context and workflow tools. This is guidance, not a replacement for the host agent's authorization.Explicit external CodeGraph lifecycle --
memorix codegraph init|syncmanages an already installed local CodeGraph index. It never invokes CodeGraph's agent installer or writes Agent configuration.
Changed
Honest CodeGraph status -- Status now distinguishes the persistent Lite Code State index from the provider actually usable for the current task. A stale external graph falls back to Lite instead of being presented as fresh.
Bounded fallback guidance -- Newly generated Agent rules teach
--brief-jsonfor the one CLI fallback;--jsonis reserved for deliberate detailed diagnostics.
[1.5.1] - 2026-08-16
Fixed
Bounded formation cancellation -- Formation deadlines now abort the LLM and vector-search work they started, including response-body reads and retry waits. A provider that ignores cancellation still cannot hold the caller past its deadline.
Embedding error classification -- Only an explicit HTTP 400 batch-shape error may trigger batch splitting. Authentication, billing, quota, and upstream errors fail once instead of multiplying latency through recursive retries.
[1.5.0] - 2026-08-14
Added
Stability stress suite -- Five deterministic, offline stress exams now run in the normal test suite: a 2,000-observation corpus (planted needles, ranked determinism, project isolation), 60-way parallel writes plus 20-way same-topic upserts, session churn across projects with parallel starts, 300-record long-term maintenance exactness, and repeated CLI invocations. Live embedding stress exams are env-gated (
MEMORIX_RUN_LIVE_EMBEDDING_TESTS=1) and never run in CI.Provider-aware embedding default -- When the embedding base URL points at OpenRouter and no model is configured, the default is now
qwen/qwen3-embedding-8b(4096 dimensions) instead of the OpenAI-only default. An explicitly configured model always wins.
Changed
Verified OpenRouter embedding lane -- The
apiembedding provider was exercised live againstqwen/qwen3-embedding-8bon OpenRouter: a 100-text batch, cache round-trip, and provider-singleton stability all pass. Docs cover the env-var form and borrowingOPENROUTER_API_KEY.Multimodal vision option documented -- Image analysis can run on the LLM lane through an OpenAI-compatible vision endpoint, including OpenRouter models such as
qwen/qwen3-vl-8b-instruct.
[1.4.6] - 2026-08-14
Added
Memory-native brief block -- Every task brief opens with a "You and this workspace" block: the user profile (personal
user-profileobservations), the latest ended session summary, and recent durable long-term memories, all inside the existing token budget. Older callers and fixtures without the block are unaffected.Long-term memory self-maintenance (rule leg, no LLM required) -- Explicit long-term requests (MCP
longTerm: true, CLI add/promote) auto-qualify on the spot instead of waiting for a manual review; hook-captured and Git-derived candidates keep the review path. Stale qualified/approved records auto-archive after 30 days without activity, and a newer record auto-supersedes same-title records in the same scope and kind. Maintenance runs in the existing durable lane at session start, after each explicit promotion, then on a daily heartbeat. Approval stays an explicit operator action.memorix purge-- Retires the current project's memories from retrieval (--allfor every project,--yesrequired outside a terminal). Observations and long-term records are archived, never hard-deleted, so the audit trail survives.Eval coverage -- New deterministic, offline exams pin the always-on brief, long-term maintenance, profile parity, purge safety, git ingest policy, media schema honesty, and server config defaults.
Changed
Installed tool profile matches taught tools --
memorix setupand every plugin template now runmemorix serve --mode lite, so the tools taught in generated guidance (sessions, timeline, reasoning, retention) actually exist. Repo guidance marks the full-only tools (promote,rules_sync,workspace_sync) withMEMORIX_MODE=full.Honest media schema -- With the generation/transcription gates closed,
memorix_mediano longer advertisesgenerate-image,generate-video, orderive-audio(or their parameters); agents see only what the operator enabled.Config that does something --
[server].portand[server].dashboardPortare now real startup defaults forserve-httpanddashboard;git.ingest_on_commitactually gates post-commit ingestion andgit.max_diff_sizecaps captured diff content. The never-consumedmcpServerskey was removed frommemorix.yml(unknown keys are ignored), and[team]/[hooks]are documented as parsed-but-reserved.
Fixed
Guidance hygiene -- Generated agent guidance now teaches store-the-underivable, dual-channel feedback, verify-before-use, the ignore contract, user-profile capture, and session-end summaries.
Session search dedup --
memorix_searchdemotes rows already shown in the same session (duplicate rate 25% → 19% in the replay exam, hits and token budget unchanged).Dead code removal -- Removed the superseded slash-REPL, the legacy in-memory team layer, retired TUI components, and duplicate commands (about 4,600 net lines), each verified unreferenced before deletion.
[1.4.5] - 2026-08-14
Added
DeepSeek Harness integration --
memorix setup --agent dshinstalls Memorix into DeepSeek's official harness: a@deepseek-ai/dsh-mcp-clientrow in$DSH_HOME/cordis.patch.yml(tools appear asmcp__memorix__*), AGENTS.md guidance at the harness and project levels, and official skills under$DSH_HOME/skillsor.dsh/skills. Existing user patch rows are preserved and installs are idempotent. DSH has no hook surface, so none is written.doctor,repair,uninstall, andsetup --listcover the new target, and MCP checks for user-level-only adapters now run under an explicit global scope (fixing the same latent skip for Trae). Native validation composed the generated patch with the real@deepseek-ai/[email protected]launcher.
[1.4.4] - 2026-08-14
Added
MiniMax image-to-image --
memorix media generate image --image <path>sends a reference image through MiniMax's documentedsubject_referenceAPI for the image-01/image-01-live models. The gatedmemorix_mediaMCP tool accepts an optional base64 reference image with the same 20 MiB visual limit and MIME validation. The existing MCP generation billing gate is unchanged. Contributed by @octo-patch in #178.
Fixed
CLI argument crash on long text --
memorix memory store --textcould fail withError: named?.trim is not a functionwhen a repeated flag or a Windows PowerShell 5.1 argument split delivered the value as an array. CLI argument coercion now joins repeated free-text arguments and takes the last value for scalar and enum flags, with regression tests. Reported by @skywalker-35 in #194.
[1.4.3] - 2026-08-10
Added
Controlled document and audio derivations -- Explicit CLI jobs can now derive searchable text from managed PDFs and from supported audio transcription providers. The original asset remains local and provenance, provider credentials, retries, cancellation, and provider cost reporting are bounded rather than inferred.
Evidence-bounded graph context -- Retrieval can add direct, one-hop entity and commit evidence to an existing workset, while using the same freshness, trust, visibility, and token-budget governor as normal project knowledge. It does not perform unbounded graph traversal.
CodeBuddy integration --
memorix setup --agent codebuddyinstalls an official-format local marketplace plugin with MCP, skills, and lifecycle hooks, without changing CodeBuddy model, permission, or user settings.
Fixed
YAML dependency security -- Replaced the unmaintained
gray-matter/js-yaml3 parsing chain with the maintainedyamlparser for Memorix configuration, rules, workflows, and knowledge-page front matter. Memcode's HTTP client and the MCP SDK's patched transitive network dependencies are pinned to their fixed releases.Optional local Transformers install -- Memorix no longer installs
@huggingface/transformersby default because its current upstream release still brings a high-severitysharp/libvips advisory. The local Transformers embedding provider remains available through an explicit user install.Star History release verification -- Generated chart pull requests now explicitly dispatch the normal CI workflow. This avoids relying on the GitHub
GITHUB_TOKENbehavior that otherwise suppresses a follow-uppull_requestworkflow.Plugin release metadata -- CodeBuddy now participates in the same version-manifest synchronization as the other versioned integration plugins.
[1.4.2] - 2026-08-06
Added
Evidence-governed memory -- A deterministic governor now decides whether project knowledge should be included, compacted, deferred, or excluded based on source backing, freshness, conflicts, quality, scope, and token budget.
Outcome-aware memory -- Workflow verification results are recorded as append-only outcome signals so failed evidence is less likely to be reused as trusted project knowledge.
CodeGraph evolution views -- Lite CodeGraph now keeps hash-only snapshot manifests, reports exact file-level diffs, and exposes bounded one-hop impact slices through the CLI. Continuation worksets include code evolution and stale-memory binding counts.
Fixed
Star History automation -- The chart workflow now updates a dedicated branch and opens or refreshes a pull request instead of trying to push directly to protected
main, which caused every scheduled refresh to fail.
[1.4.1] - 2026-08-03
Added
MiniMax M3 video input -- The bundled
@memorix/aiprovider layer now advertises and routes MiniMax M3 video content through MiniMax's Anthropic-compatible API. Base64 video is covered by focused request-shape tests, and image-only models still receive a clear text fallback instead of an invalid video block. Contributed by @octo-patch in #153.
Changed
Maintained product roadmap -- Replaced the stale version-by-version roadmap with current product boundaries, operating constraints, and public directions. Release facts now live in this changelog and active maintainer work lives in
ACTIVE_WORK.md. Contributed by @FBISiri in #140.
Fixed
Deterministic provider tests --
@memorix/aiunit tests no longer discover local API keys or Pi OAuth credentials and unexpectedly call paid, changing provider endpoints. Routine tests are offline by default; deliberate live validation requiresMEMORIX_AI_LIVE_TESTS=1plus the required credentials.Stable model metadata assertion -- Removed a test-only assumption that OpenRouter will permanently list
moonshotai/kimi-k2.6:free; the bundled catalog snapshot no longer contains that route, while coverage remains for the supported Kimi K2.6 compatibility metadata.
[1.4.0] - 2026-08-02
Changed
Stable multimodal release -- Promoted the controlled media lifecycle, explicit MiniMax image/video generation, and honest multimodal embedding foundation introduced in 1.3.3 to the stable line after the 1.3.4 Windows, MCP binding, cancellation, cleanup, configuration-migration, and fresh-package hardening work.
Verified
Release evidence -- Full local regression, fresh npm-package MCP smoke, GitHub Actions on Windows and Ubuntu, Docker control-plane startup, native SQLite compatibility, npm provenance publication, and official MCP Registry publication all passed before this release.
Release boundary -- “Stable” means no known release blocker after those gates. It does not claim that any software is mathematically free of future defects.
[1.3.4] - 2026-08-02
Fixed
Fail-closed project binding -- Stdio and HTTP MCP servers no longer restore or keep writing a remembered project root. A launch without a reliable workspace now waits for an explicit root, MCP Roots, or
memorix_session_start, preventing cross-project memory access.Portable MCP Roots -- File URI roots now remain POSIX paths on Linux/macOS and convert correctly on Windows, including drive-letter paths and UNC roots.
Atomic media attachments -- A media retrieval observation and its asset link now commit in one SQLite transaction. If linking fails, no dangling observation survives. Completed video downloads also persist their local asset before a retryable attachment step.
Authoritative video cancellation -- A cancellation that lands while a video worker is downloading or finishing can no longer be overwritten back to
completed; MCP can cancel an existing job even when new MCP media generation is disabled.Recoverable media cleanup -- Files Windows cannot immediately release are visibly staged for retry, and media cleanup reports reclaimed or still-pending staged bytes instead of silently implying deletion succeeded.
Non-destructive Codex migration -- Legacy Codex hook cleanup now preserves customized hook files instead of deleting a file merely because its commands begin with
memorix hook.One stdio runtime -- Direct
node dist/index.jsinvocation now delegates tomemorix serve; importing the package no longer starts an MCP server as a side effect.
Changed
Bounded default MCP surface -- The
microprofile exposes nine tools: agent-ready context, retrieval, one explicit session recovery path, and one controlled media operation. Advanced tools remain opt-in through higher profiles.
[1.3.3] - 2026-08-02
Added
Controlled media assets -- Added a local content-addressed asset library for explicit images, audio, video, and PDFs. Assets live outside the Git worktree, keep validated MIME/hash/size provenance, support explicit attachment to normal memory, and have link-aware quota cleanup.
MiniMax media generation -- Added explicit MiniMax image generation and durable MiniMax-H3 video jobs. Video tasks survive process restarts, expose status/cancellation, and import completed output only after bounded safe download validation.
Honest multimodal embedding foundation -- Added typed media embedding inputs, profile/modality compatibility checks, and separate media-vector storage. Text-only embedding providers now return a capability fallback instead of inventing a visual vector.
One MCP media operation -- Added
memorix_mediafor agent-facing import, attachment, inspection, and job status while retaining CLI as the complete management surface.
Changed
Legacy image ingestion joins the asset lifecycle --
memorix ingest imageand the full-profile compatibility tool now keep a verified controlled image asset alongside the text retrieval projection instead of discarding the binary.MCP binding boundary -- Project binding is now a transport-neutral request context. Legacy HTTP session IDs only route transport requests; explicit project roots cannot be overwritten by Roots discovery, including a workspace that contains a nested Git project.
Fixed
Atomic media removal -- Asset removal stages a file in a controlled recovery directory, then atomically detaches links, removes derivations/vectors, and marks the asset deleted. A database failure restores the file instead of silently losing it.
No ambient paid generation -- MCP image/video generation is disabled until
MEMORIX_MCP_MEDIA_GENERATION=1is explicitly set. CLI generation remains deliberate and auditable.Bounded image analysis -- Legacy base64 image ingestion validates canonical input before decoding, caps visual analysis at 20 MiB, and sanitizes provider-derived descriptions and diagnostics before persistence.
Test data isolation -- Tool-profile integration tests now always use temporary Memorix data directories instead of a developer's real local memory database.
Smaller install artifact -- Excluded runtime-unneeded distribution sourcemaps from the npm package while retaining compiled code, source, documentation, and memcode runtime assets.
[1.3.2] - 2026-08-02
Fixed
Windows background lifecycle -- Background Control Plane startup now uses a hidden, independent Windows launcher that returns the real Node PID immediately, writes managed state before readiness checks, and avoids both console flashes and host-reclaimed child processes.
Safe stale-process handling -- Background start, stop, and ensure no longer kill a live PID merely because old local state is unhealthy. A forced stop happens only after the health endpoint proves the PID belongs to the registered Memorix service.
Truthful setup preview --
memorix setup --dry-run, including--global, now performs no file, plugin, hook, MCP, or agent-setting changes. This is covered for Codex user-level paths.CLI failure boundaries --
background,serve-http, anddashboardnow reject malformed or out-of-range ports before starting a service; background log line limits are bounded, and these expected input errors are concise rather than internal stack traces.Recoverable orchestration work -- Failed or timed-out orchestration worktrees retain uncommitted work for inspection rather than being force-removed; Git helper calls use argument arrays and bounded inputs.
Dependency hardening -- Refreshed the MCP SDK and transitive package overrides; production dependency audit is clean.
[1.3.1] - 2026-07-31
Fixed
Windows CLI window flicker -- Memorix now hides Windows child-process windows across normal CLI work: startup restart, Git/project probes, hook runners, setup checks, background controls, orchestration, and memcode utility commands no longer flash a console for each invocation.
Recoverable vector backfill -- One-shot vector backfill no longer launches as a detached Windows process. The durable queue still preserves and retries the work, while
unref()lets the foreground CLI return without a visible extra console.
[1.3.0] - 2026-07-30
Added
Curated long-term memory -- Added source-bound episodic, semantic, and procedural memory records with explicit
candidate -> qualified -> approved -> archived/supersededlifecycle states, evidence references, audit events, and task-aware delivery.Deliberate local portability -- A user may explicitly create a
user + portablememory for reuse across projects on the same local installation. Project and team facts remain project-bound, and source-derived evidence can never be made portable.Long-term memory CLI -- Added
memorix memory long-term list|show|add|promote|qualify|approve|archive|supersedefor reviewable lifecycle management without requiring an MCP connection.
Changed
Bounded Worksets -- Task context can now select up to three relevant qualified or approved long-term records, with source and lifecycle status preserved in the context receipt. Candidates, archived records, and superseded records are never injected.
Low-noise agent guidance -- Generated rules and shipped plugin skills tell agents to create long-term candidates only for stable facts, reusable procedures, or completed episodes; approval remains an explicit operator action.
Bounded semantic recall -- Keyword matching remains the deterministic first path. A configured embedding provider gets one 1.8-second, no-retry fallback only when no reviewed long-term item matched, so a slow remote service cannot turn context delivery into a long foreground wait.
Fixed
Long-term CLI discoverability --
memorix memoryhelp now documents the existing--title,--tags, and--applicabilityfields for curated long-term records.
[1.2.10] - 2026-07-28
Added
Official MCP Registry publication path -- Ships the checked
server.jsonmanifest and a GitHub OIDC publication step that runs after npm succeeds. This release is the first package version eligible for official Registry registration.
Fixed
Codex plugin ownership --
memorix setup --agent codex --globalnow uses Codex's personal marketplace plugin path and never creates project-local.codexconfiguration as a fallback. Custom user MCP configuration stays untouched; legacy Memorix files are migrated only after Codex confirms the plugin is enabled.Glama-compatible Docker build -- Docker now installs every workspace dependency set before compiling. CI builds and starts the HTTP control-plane image, so a future container regression is caught on the pull request instead of by an external registry scan.
[1.2.9] - 2026-07-28
Fixed
One retention truth across the product -- Dashboard, HTTP control-plane, and background cleanup now use the same canonical retention projection. Permanent, active, stale, and archive-ready memory states no longer disagree across surfaces.
More useful session continuation -- Resume and handoff-shaped requests prioritize the prior task, what changed, and remaining work without treating ordinary verification or compatibility language as disposable noise. Delivery stays bounded rather than replaying a transcript.
Responsive CLI writes with remote embeddings --
memorix memory storenow persists the memory and queues durable vector work before starting a detached backfill worker. A slow embedding API no longer keeps a one-shot CLI command open; lexical recall remains available while vector search catches up.
[1.2.8] - 2026-07-27
Fixed
Recoverable vector backfill -- Temporary embedding or index failures no longer exhaust a shared background job. Memorix keeps one diagnosable retry with bounded backoff, batches provider requests, and lets a later healthy MCP session resume the same recovery work instead of accumulating permanent failures.
Accurate vector status outside MCP -- The standalone dashboard and HTTP control plane no longer present an unhydrated in-memory index as a healthy
0 / 0result. They now explicitly say that vector status belongs to the active MCP session when they cannot observe it.Codex plugin ownership -- Agent Doctor recognizes the enabled Codex plugin as the owner of
memorix serve, reports first-use hook approval as a host consent step instead of a broken install, and avoids suggesting a redundant config repair.Safe Codex migration --
memorix setup --agent codex --globalremoves only the known old source-path Memorix MCP entry after the official plugin installation succeeds. Custom user-managed MCP entries remain untouched.
[1.2.7] - 2026-07-27
Added
Native compaction continuity -- Memorix records host-native compaction lifecycle checkpoints separately from durable memory. Pi and Oh-my-Pi preserve the native summary fields their extension API exposes; Codex and Claude Code keep an honest lifecycle marker when their hook payload exposes no summary.
One-time host recovery -- Codex receives one bounded checkpoint through its documented
SessionStartcompact path. Claude Code receives the same bounded checkpoint through its documented nextUserPromptSubmitcontext path. Neither path replays a transcript or repeats delivery.Claude handoff routing -- Claude Code now receives a compact official
UserPromptSubmithint for handoff and continuation requests, directing one Memory Autopilot call before broad file or Git exploration without injecting a broad brief into unrelated prompts.Cross-agent continuation evidence -- Explicit
memorix resume/ task continuation Worksets can include one recent, source-labelled compact checkpoint from the same Git project. It remains historical lifecycle evidence, not promoted knowledge.Checkpoint CLI and advanced MCP inspection -- Added
memorix checkpoint list|show|context|archive; the matchingmemorix_compaction_checkpointMCP action is available only in thefullprofile.
Fixed
Repeated compact lifecycle safety -- Retried pre-compact and post-compact hook delivery is idempotent. Multiple real compactions in one long host session retain separate checkpoints when the host exposes a new preflight marker or native compaction event ID.
[1.2.6] - 2026-07-27
Added
Truthful Memcode command discovery -- The interactive command list and editor autocomplete now derive from the same executable Pi-compatible command registry. Memorix-native
/memoryactions, including nested completion after/memory, are available without advertising dead commands.Deterministic memory resolution --
/memory delete <id>now resolves the selected project-memory entry instead of only showing a candidate list.Pi-compatible shell session context -- Model-initiated Memcode bash calls now receive current
PI_SESSION_ID,PI_SESSION_FILE,PI_PROVIDER,PI_MODEL, andPI_REASONING_LEVELmetadata. Extensions can explicitly disable this exposure.Maintainer Pi-upstream audit -- Added a pinned upstream manifest,
npm run audit:pi-upstream, and a documented review policy. The read-only audit detects GitHub compare truncation and falls back to a full official Git-tree comparison.
Fixed
No misleading terminal actions -- Removed stale, non-dispatched TUI entries and unreachable
/gitactions, including the former implicit stage-all commit path.Memcode release identity -- Version-check and user-agent internals now identify the published Memorix/Memcode package rather than incorrectly calling it a Pi release; bundled
memcode --versionnow reports the installed Memorix release instead of an internal workspace version.Task-flag parity --
memorix context --task "..."now works without a redundant positional task argument.Plugin release metadata -- All shipped versioned plugin manifests now match the published Memorix release, including Claude Code, Codex, Copilot, Gemini CLI, OpenClaw, Oh-my-Pi, and Pi.
Complete Node SQLite fallback -- The supported Node built-in SQLite fallback now matches the transaction variants and permissive named-parameter behavior Memorix uses with
better-sqlite3. Team task claims, Knowledge Workspace review, and other row-object writes no longer fail when the optional native binding is unavailable.
[1.2.5] - 2026-07-27
Added
Explicit retrieval profiles -- Search now accepts
fast,balanced(default), orthoroughthrough the CLI, MCP, and SDK. Fast is fully local, balanced keeps optional LLM work out of everyday retrieval, and thorough explicitly opts into configured LLM query refinement.Reproducible retrieval evidence -- Added
npm run benchmark:retrievalfor a clearly-labelled hot in-process SDK lexical benchmark with p50/p95/p99 output. It does not present CLI startup, MCP transport, remote embedding, or LLM latency as the same metric.
Changed
Lighter read-only CLI path -- Memory search, detail, timeline, recent, graph context, and help no longer create session bookkeeping or maintenance-target metadata. Identity and visibility checks remain unchanged.
Fixed
Completed searches no longer retain timeout watchdogs -- Embedding, rerank, MCP search, and maintenance timeout paths share a helper that clears the timer when work settles. This removes the avoidable CLI exit delay caused by an already-completed optional rerank.
OpenRouter lane isolation -- An embedding-only
OPENROUTER_API_KEYno longer silently enables the memory LLM lane. It remains valid for a memory LLM only when that lane explicitly selects an OpenRouter provider or base URL.
[1.2.4] - 2026-07-26
Added
One-call continuation for CLI-only agents -- Added
memorix resume "<task>", a direct terminal entry that returns the same bounded Memory Autopilot Workset as Project Context without requiring MCP discovery or command probing.
Changed
Continuation is a delivery choice, not a separate memory silo -- Project Context now recognizes continuation language independently of its task lens. It adds only the latest meaningful session summary and up to three readable durable anchors, with source records in the existing context receipt. Ordinary new tasks remain free of old-session dumps.
Stable agent fallback guidance -- Generated skills and rules now direct an agent with unavailable MCP to make exactly one task-aware CLI call:
memorix resumefor prior work ormemorix contextfor a new task. Continuation requests must take that brief before local file/Git archaeology, and an absent.memorixdirectory is not treated as proof that no durable memory exists. This prevents broad command enumeration, repeated search loops, and false cold-start conclusions.
Fixed
Claude continuation delivery -- Claude Code now receives an explicit continuation's bounded prior-work Workset through its official
UserPromptSubmit.additionalContextresponse, rather than relying on an advisory rule or a SessionStart message the host does not place in model context.memory.inject = "silent"still disables automatic injection.Fresh-install SQLite resilience -- When the optional
better-sqlite3native binary is missing on a supported Node 22 runtime, Memorix now opens the same localmemorix.dbthrough Node's built-in SQLite instead of losing session and durable-memory reads across CLI or hook processes. No data migration or configuration change is required.Standard TOML literal strings -- Project and global configuration now accepts single-quoted TOML strings, including
#characters inside the literal value.MCP continuation summary parity --
memorix_project_contextnow includes the same bounded prior-session and durable-memory evidence informat: "summary"as it does in the default prompt format, so agents that request a compact summary do not lose a valid handoff.Actionable continuation anchors -- Bounded continuation text no longer cuts a technical flag or symbol halfway through. The shared guidance also avoids redundant Context Pack/search/detail calls after a complete Autopilot brief, keeping the default agent path compact.
Autopilot duplicate retrieval -- A completed MCP Project Context now holds a short-lived delivery boundary. Follow-up search/detail calls do not re-send memories already represented in that brief unless the user explicitly asks to inspect the underlying record.
Read-only memory mutation -- A task that asks for read-only work or says not to modify files now rejects automatic
memorix_storewrites. An agent must have an explicit user request before it can override that boundary.Prior-work privacy parity -- Continuation retrieval applies the same project, team, and personal-memory visibility reader as session context, including canonical project aliases. A different identity cannot receive another agent's personal durable memory through the new delivery path.
Rule-surface drift -- The shared automatic-memory rule file now carries the same one-call CLI fallback contract as setup-generated agent guidance.
[1.2.3] - 2026-07-25
Fixed
Session context now respects observation visibility -- Automatic session handoff and manual session-context reads in the CLI, MCP server, and Workbench apply the caller's project, team, and personal-memory reader. A new identity cannot receive another agent's personal observations through session startup.
Identity before handoff -- CLI and MCP coordination sessions establish their explicit identity before assembling prior context, so an owner's own personal records remain available while a newly joined agent fails closed.
Graph-side disclosure guard -- Agent-facing session handoff no longer derives graph-neighbor hints from graph relations that do not yet carry observation visibility metadata.
[1.2.2] - 2026-07-25
Added
Direct CLI control plane -- Added a consistent terminal surface for memory, context, Code State, knowledge, coordination, audit, and transfer work.
--cwdselects the Git project from any shell,memorix workbenchexplicitly opens the interactive terminal UI, and every action group now has task-oriented help.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.Automation-friendly transfer -- Memory exports can write directly to a file, and imports accept
--fileor--stdinas well as existing inline JSON.
Changed
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.
CLI ergonomics -- Root
search,remember, andrecentaliases now use the canonical memory commands; kebab-case flags are accepted alongside the existing camelCase forms.
Fixed
Private evidence cannot become public indirectly -- Personal and team observations are rejected when promoting shared skills or generating project skills.
TUI visibility mismatch -- The interactive terminal UI no longer falls back to an unbound reader after an explicit local identity has been activated.
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.
[1.2.1] - 2026-07-19
Added
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 reviewor the advancedmemorix_knowledgeMCP action before they enter knowledge compilation.Versioned Memorix release workflow -- Added
docs/knowledge/workflows/memorix-release.md, a canonical release playbook with verification gates and an explicit maintainer approval boundary.
Fixed
Claude setup respects
--noHooks-- Project setup now keeps generatedCLAUDE.mdguidance without also creating Claude lifecycle-hook configuration when hook capture was explicitly disabled.Claude Code manual MCP readiness -- Manual setup examples now include Claude Code's
alwaysLoad: trueentry and point to Doctor/Repair for detecting and restoring the eager-load contract.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”.Graph surface consistency -- Explicit
relatedEntitiesnow persist as graph edges, and MCP graph tools, standalone Dashboard, HTTP control plane, and exports share one project-scoping rule.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.
Git fact consistency -- Project Context, Context Pack, and CodeGraph CLI now report
Git: unavailablefor an invalid or unreadable repository instead of presenting it as a clean worktree.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.
[1.2.0] - 2026-07-18
Added
Versioned Code State -- Added local code snapshots, source epochs, completeness metadata, and memory-to-code freshness so project memory can be requalified when the checkout changes.
Claim ledger and reviewable knowledge workspace -- Added source-backed claims with confidence/conflict lifecycle, plus local or explicitly versioned Markdown workspaces that compile proposals before a reviewed page can change.
Canonical project workflows -- Added import, selection, preview, safe adapter application, and run receipts for project workflows without treating an agent-specific instruction file as the source of truth.
Bounded task Worksets -- Memory Autopilot and Context Pack now select task-relevant current facts, evidence, knowledge/workflow starts, cautions, and verification instead of adding a generic historical-memory dump.
Advanced Knowledge Workspace MCP tool -- Added
memorix_knowledgeas one action-based management surface for workspace, proposal, and workflow operations in the explicitteamandfullMCP profiles.Optional local semantic CodeGraph provider -- A healthy pre-indexed local CodeGraph can add a validated, bounded semantic outline to a task Workset. The built-in Lite provider remains available with explicit capability limits.
Changed
Durable knowledge lifecycle -- Code State refresh, claim derivation/requalification, knowledge compile/lint, and workflow indexing run through resumable maintenance jobs rather than turning interactive requests into a corpus-wide foreground scan.
Provider quality is visible -- CodeGraph status, Doctor, and Project Context JSON report whether the task used Lite structural evidence or a validated external semantic outline.
Fixed
Incomplete scan truthfulness -- Unreadable files and deferred removals now remain visible in snapshot completeness instead of being silently treated as a complete code view.
External CodeGraph safety boundary -- Memorix only accepts local output for the exact healthy project root, rejects stale/malformed/oversized/path-escaping data, runs without a shell, and never persists raw external source output.
Node 26 SQLite runtime -- Upgraded the optional
better-sqlite3path to a release that supports Node 26, and added a Node 26 CI smoke that opens an in-memory database. Fixes #130; reported by @RaviTharuma.
[1.1.13] - 2026-07-17
Added
Codex installation proof --
memorix doctor agents --agent codex --scope globalnow checks the local plugin bundle, Personal marketplace entry, five declared and trusted lifecycle hooks, and the installed/enabled state reported bycodex plugin list.
Fixed
Codex plugin version drift -- Global setup now stamps the copied Codex plugin manifest with the installed Memorix version, so Codex no longer reports the old template version after an upgrade. The source template is covered by a release regression test as well.
Workspace package publish trap --
@memorix/ai,@memorix/agent-core,@memorix/tui, and@memorix/memcodeare now explicitly internal workspaces. The rootmemorixpackage ships their bundled runtime, and the release workflow publishes only that supported public package.
[1.1.12] - 2026-07-17
Added
Codex lifecycle hook capture -- The Memorix Codex plugin now bundles the documented
SessionStart,UserPromptSubmit,PostToolUse,PreCompact, andStophook events, with a Windows-safecommandWindowscommand override.
Fixed
Codex hook normalization and injection -- Codex lifecycle payloads now preserve their event names,
SessionStartreturns Codex-nativehookSpecificOutput.additionalContext, and capture-only events stay quiet instead of filling the agent context with save-status messages.OpenCode hooks on Windows -- The generated plugin resolves the installed npm
memorix.cmdshim while setup runs and uses that stable path inside OpenCode, instead of relying on OpenCode's inheritedPATH. Hook delivery stays quiet unlessMEMORIX_HOOK_DEBUG=1is explicitly set. Fixes #125.Setup scope isolation -- Project-level setup no longer installs Claude, Codex, or Copilot plugin bundles in the user home. Use
--globalfor user-level plugins, skills, and lifecycle hooks.TUI embedding startup -- TUI health, chat, and quick-search paths now use the same lexical-ready startup flow as MCP instead of making a remote dimension probe during the first screen or search.
Semantic recall after restart -- API-backed embeddings now restore compatible vectors from the local cache during index hydration, without placing remote embedding calls on the MCP startup path. Redundant namespace-scoped cache metadata survives a lost dimensions cache; cache misses enter the existing bounded background recovery lane, and the first successful vector upgrades a cache-less lexical index in the same process. Based on the diagnosis in #126 by @Tom-Ma-Ming.
Concurrent index startup -- Cache-only startup and ordinary database callers now share one Orama initialization, so a later vector-schema attempt cannot replace an already hydrated lexical index. Resets also discard obsolete in-flight instances.
Lazy API vector-cache I/O -- A cache-only start with no trusted dimension metadata now skips parsing the potentially large API vector cache entirely; the cache is loaded only after compatible local metadata or a normal embedding initialization establishes its dimensions.
[1.1.11] - 2026-07-16
Added
Durable runtime maintenance -- Added a SQLite-backed maintenance ledger for vector recovery, retention, consolidation, and Code Memory refresh. Jobs use dedupe keys, leases, heartbeats, retry backoff, resumable cursors, and operator-visible state.
Isolated maintenance runner -- Retention, consolidation, and Code Memory scans now run through a compiled child-process runner instead of sharing an MCP request/event loop. Vector recovery stays with the owning process because its Orama index is process-local.
Code Memory scan safeguards -- CodeGraph Lite now skips common dependency/build directories and source files larger than 2 MiB by default. Configure the limit with
[codegraph].max_file_bytesor YAMLcodegraph.maxFileBytes.Maintenance diagnostics -- Dashboard APIs and System Status now show queued/running/failed maintenance state without mixing projects.
Changed
First-turn MCP readiness --
memorix_project_context,memorix_context_pack,memorix_graph_context, andmemorix_codegraph_statusnow read the current project's SQLite state directly before full Orama hydration. Search, writes, and sessions retain their full-runtime boundary.Bounded memory lifecycle -- Automatic retention and consolidation process one project page at a time and resume through durable cursors, avoiding corpus-sized work in an interactive request.
Incremental Code Memory -- Changed files are reparsed, unchanged files keep their metadata, and removed/oversized files are removed from the graph without replacing the entire project graph.
Mobile dashboard navigation -- The desktop sidebar becomes a compact mobile navigation layout so dashboard content remains readable on narrow screens.
Fixed
Cross-process refresh model -- Removed the obsolete JSON-file polling watcher. SQLite generation checks are now the sole authoritative mechanism for cross-process observation freshness.
Maintenance history and diagnostics -- Completed maintenance records expire after a retention window; persisted failure messages redact credential values.
Maintenance enqueue atomicity -- History pruning now runs inside the enqueue transaction, so a failed enqueue cannot discard completed diagnostic history.
Dashboard project scope -- Knowledge, graph, retention, observation, and export reads use project-scoped SQLite queries instead of loading and filtering the full flat memory store.
Behavior configuration alignment -- TOML/YAML memory behavior settings now drive runtime injection, formation, auto-cleanup, and sync advisory behavior; legacy
config.jsonis a fallback rather than a separate source of truth.Container runtime privilege -- The official HTTP control-plane image is explicitly verified to run as the non-root
nodeuser.
[1.1.10] - 2026-07-13
Fixed
Large-project Memory Autopilot timeouts --
memorix_project_contextnow reuses one CodeGraph snapshot per request and performs first-use code-ref backfill in memory with one batched write instead of per-memory database scans and transactions. Prose-only and ambiguous symbol mentions no longer create large volumes of noisy code references, keeping first-use context generation responsive with thousands of active memories.Ruby CodeGraph symbol fidelity -- Ruby namespaces and punctuated method names such as
Foo::Bar,save!,valid?, andname=now remain intact through Lite indexing and memory-to-code binding.
[1.1.9] - 2026-07-12
Added
Configurable CodeGraph excludes -- Added
[codegraph].exclude_patterns/ YAMLcodegraph.excludePatternssupport so CodeGraph, Project Context suggested reads, context packs, diagnostics, and related CLI flows can skip project-specific generated or vendor paths while keeping the built-in defaults.
Fixed
Config inspection aliases --
memorix config getnow accepts TOML-style snake_case dotted keys such ascodegraph.exclude_patternswhen reading resolved camelCase config values.Orama search index consistency -- Search access tracking now preserves internally stored vector-backed documents, public/detail cache results continue to strip embeddings, and hydration reconciles persisted observations by exact composite ID instead of skipping observation hydration when a shared index already contains mini-skills.
[1.1.8] - 2026-07-08
Added
Agent integration doctor and repair -- Added
memorix doctor agentsandmemorix repair agentsto inspect and repair Memorix-owned agent integration files. The doctor flags stale MCP command paths, missing ClaudealwaysLoad, missingmemorixMCP entries, and outdated Memory Autopilot guidance without printing environment secrets.
Changed
Memory Autopilot adoption -- Setup-generated agent guidance now makes
memorix_project_contextthe default first step for non-trivial coding work before progress files, dev logs, broad file reads, or git archaeology.
Fixed
Claude Code local MCP repair --
memorix doctor agentsandmemorix repair agentsnow inspect and repair Claude Code 2.x project-private local MCP entries in~/.claude.json, replacing stale worktree commands withmemorix serveandalwaysLoad: true.Cleaner CodeGraph Memory briefs -- CodeGraph Lite and Memory Autopilot now ignore
.tmp, nested.worktrees, and.claude/worktreesdirectories, so suggested reads point at the real project instead of local caches or agent scratch worktrees.All-scope doctor noise -- Agent doctor now treats one healthy local, project, or global scope as sufficient in all-scope mode, while still flagging genuinely stale or repairable configs.
[1.1.7] - 2026-07-07
Added
Task-lensed Memory Autopilot --
memorix context --task ...and MCPmemorix_project_contextnow infer a task lens (bugfix,feature,release,onboarding,refactor,docs,test, orgeneral) and shape Start here files, reliable memories, cautions, and verification hints for that task.
Changed
Brief noise control -- Release/onboarding/docs-shaped briefs now keep unrelated stale or suspect memory details out of the main prompt while preserving counts and warnings, so agents see less old-context noise.
Agent guidance -- Generated rules and official skills now tell agents to pass the user's actual task into
memorix_project_contextor the CLI fallback, making natural-language continuation the default product path.
[1.1.6] - 2026-07-06
Changed
Release-safe model catalogs --
npm run buildandprepublishOnlyno longer refresh live model catalogs. Model catalog refresh is now an explicit maintenance action vianpm run update-models, so publishing uses the generated catalog already committed to the repository.
Fixed
Live catalog shrink guard -- Model catalog generators now refuse to overwrite the checked-in catalog when a live API returns an unexpectedly small result set, unless
MEMORIX_ALLOW_MODEL_CATALOG_SHRINK=1is set intentionally.Project-scoped diagnostics --
memorix doctornow reports observation totals for the current project instead of mixing in unrelated flat-store project records.Claude Code handoff guidance -- Project and plugin instructions now point fresh Claude Code sessions at
memorix_project_context, prefer official MCP tool discovery before shell fallback, setalwaysLoad: truefor the small Claude plugin MCP surface, and use the repository-wide dev log instead of stale package-specific memcode notes.Setup-installed rules refresh -- Re-running setup now refreshes the Memorix-owned block in shared
CLAUDE.md/AGENTS.md/GEMINI.mdfiles while preserving user-authored content, so upgraded guidance actually reaches existing installs.
[1.1.5] - 2026-07-02
Added
Memory Autopilot brief --
memorix contextandmemorix_project_contextnow present a compact agent-ready brief with Start here files, reliable code-bound memories, stale/suspect cautions, verification hints, and usage guidance.Unbound memory tier --
memorix_context_packnow includes task-relevant memories that do not yet have current code refs as lower-trust unbound context instead of silently dropping them.
Changed
Context ranking policy -- Context packs now separate reliable current memories from stale warnings and unbound leads, so agents can use memory as an action map rather than a raw text dump.
Agent guidance loop -- Generated rules and official Memorix skills now teach agents to get project context, inspect suggested files, store durable outcomes, and resolve stale/completed memories.
Fixed
Agent tool allowlist auditability -- Agent-core now has explicit turn allowlist lookup and regression coverage proving a tool absent from the active turn context cannot execute.
Session selector search safety -- memcode session search no longer executes user-provided
re:input as a regular expression; regex-shaped input is treated as literal search text.Autopilot current-truth grounding --
memorix contextandmemorix_project_contextnow put live package, changelog, Git branch/commit, and stale progress-note warnings before memory hints so agents do not mistake old dev-log files for the current project state.Default install audit surface -- The published package no longer installs
fastembedby default because its current releases still pull vulnerabletarversions for downstream consumers. The FastEmbed provider remains available when users installfastembedexplicitly.YAML parser advisory -- Updated the pinned
js-yaml3.x line to the patched 3.15 release while keeping compatibility with existing gray-matter workflow parsing.
[1.1.4] - 2026-07-01
Changed
Contributor attribution -- Added post-release credit metadata for the 1.1.3 fixes accepted from #105 and #98 so GitHub can associate the accepted work with the contributing accounts.
Fixed
Stdio MCP startup latency --
memorix servenow registers MCP tools before loading the full project memory runtime, then warms the runtime in the background. This keepsinitialize/tools/listfast for IDEs and registries even when the local memory corpus is large, while real tool calls still wait for project runtime readiness before executing.
[1.1.3] - 2026-06-29
Added
CodeGraph Memory MVP -- Added a SQLite-backed code structure plane with project-scoped files, symbols, import edges, and observation-to-code references. This lets Memorix store structured code facts beside text observations instead of treating memory as text-only context.
CodeGraph Lite provider -- Added a built-in TypeScript/JavaScript indexer for file hashes, basic symbol extraction, and import edges, with no new runtime dependency. Richer external CodeGraph providers can be added later against the same store and context-pack contract.
Freshness-aware context packs -- Added code-ref freshness evaluation and context pack rendering so agents can distinguish current code-bound memories from suspect or stale ones, then inspect suggested files/symbols.
CodeGraph operator surface -- Added
memorix codegraph refresh,memorix codegraph status, andmemorix codegraph context-pack, plus MCP toolsmemorix_codegraph_statusandmemorix_context_pack.
Changed
Memory writes attach to code refs -- New observations now best-effort bind to indexed files and symbols after they are stored, without blocking ordinary memory writes if CodeGraph Memory is unavailable.
Documentation updated for multi-dimensional memory -- API docs and design notes now document CodeGraph Memory as the first context-fabric layer beyond pure text memory.
OpenRouter embedding key support -- The embedding lane now accepts
OPENROUTER_API_KEYwhen[embedding].base_urlpoints to OpenRouter, while keepingMEMORIX_EMBEDDING_API_KEYas the explicit highest-priority embedding key.
Fixed
Session project binding --
memorix_session_start({ projectRoot })no longer hijacks an already-bound parent repo to the first nested git repository under that path. Based on #98 by @Tom-Ma-Ming.
[1.1.2] - 2026-06-27
Fixed
Removed unowned product-domain defaults -- Removed hardcoded unowned product-domain references from memcode defaults, tests, and generated help text. Version checks now use the official npm registry endpoint, changelog links point to GitHub releases, OpenRouter attribution uses the GitHub repository URL, and
/sharefalls back to the GitHub gist URL unless the user explicitly setsMEMCODE_SHARE_VIEWER_URL.Disabled default install report endpoint -- memcode no longer sends install/update pings to any default product-domain endpoint. A report endpoint is used only when
MEMCODE_INSTALL_REPORT_URLis explicitly configured by the user.
[1.1.1] - 2026-06-26
Added
OpenClaw compatible bundle -- Added
memorix setup --agent openclawsupport for an OpenClaw-compatible bundle with bundled.mcp.json, official skills, and an OpenClawHOOK.md/handler.tshook pack, plus workspace MCP sync support for OpenClaw's~/.openclaw/openclaw.jsonmcp.serversformat.Hermes Agent plugin -- Added
memorix setup --agent hermessupport for a Hermes plugin under~/.hermes/plugins/memorix, plugin enablement in~/.hermes/config.yaml, plugin hooks, a slash command, a CLI command, official skills, andmcp_serversMCP config.Oh-my-Pi package -- Added
memorix setup --agent ompsupport for anomp.extensionspackage with extension hook events, amemorixcommand, official skills, and Oh-my-Pi.omp/mcp.json/~/.omp/agent/mcp.jsonMCP config.
Changed
Gemini CLI and Antigravity positioning -- Documented Google's current Gemini CLI to Antigravity CLI transition while keeping
gemini-cliandantigravityas separate Memorix targets because their supported install/config lanes are still distinct.OpenClaw/Hermes/Oh-my-Pi setup lanes -- These targets now use their official package/plugin/bundle extension points instead of being treated as MCP-only fallback clients.
Fixed
MCP config merging -- Setup now deep-merges nested
mcp.serversJSON configs and preserves existing Hermes YAML keys when adding the Memorix server.Workspace tool schemas --
memorix_workspace_syncnow acceptsgemini-cli,openclaw,hermes, andomptargets;memorix_rules_syncnow exposes the existing Gemini CLI rules adapter.Hook fallback guard -- Direct
memorix hooks install --agent openclaw|hermes|ompno longer writes fallback hook files and instead points users to the package-owned setup lane.
[1.1.0] - 2026-06-21
Added -- Official Agent Integration Packages
One-command setup -- Added
memorix setupas the main installer for Claude Code, Codex, GitHub Copilot CLI, Cursor, Windsurf, Gemini CLI, OpenCode, Pi, Kiro, Antigravity, Trae, and generic MCP clients.Official plugin/package templates -- Added first-party integration packages under
plugins/for Claude Code, Codex, GitHub Copilot CLI, Gemini CLI, Pi, and Cursor package assets. Setup installs each host through its closest native entry point instead of asking users to assemble MCP, rules, skills, and hooks by hand.Official Memorix skills -- Added seven practical agent skills: memory search/store, reasoning memory, sessions and handoff, Git Memory, mini-skills, orchestration, and troubleshooting. The skills prefer MCP tools when available and document CLI fallbacks for operator use.
Integration matrix docs -- Added
docs/INTEGRATIONS.mdand updated README/setup docs to explain plugin packages, MCP, project guidance, hooks, skills, memcode, and when HTTP MCP is actually useful.
Changed
CLI as the operator surface -- The
memorixCLI now documents and exposes the operator path for setup, memory, reasoning, sessions, Git Memory, transfer, retention, dashboard, orchestration, sync, ingest, skills, and diagnostics. MCP remains the agent-tool entry point.Stdio MCP stays the default -- Normal agent setup uses
memorix serve. HTTP MCP is documented as an advanced control-plane path for dashboard, Docker, shared endpoint, or multiple clients.Agent Team wording tightened -- User-facing docs now frame orchestration as subagent/task coordination through
memorix orchestrate, not a separate “agents team” product.memcode enters the 1.1 line -- The bundled first-party memagent remains available through
memorix,memorix memcode, andmemcode, with shared Memorix project memory and updated setup/docs.
Fixed
Release packaging coverage -- npm package contents now include official plugin templates, skills, hooks, and integration docs so published installs can generate the same setup files tested in the repository.
Claude marketplace version drift -- The generated Claude local marketplace now uses the current CLI package version instead of a hard-coded release number.
Session CLI fallback --
memorix session startsupports--projectRoot, matching the official sessions/troubleshooting skill guidance for CLI fallback use.Windows publish workflow alignment -- GitHub npm publish workflow now uses Node.js 22, matching the package engine floor.
Verification
Targeted setup, hook, skill, CLI, and operator-surface tests passed during release preparation.
npm run lint,npm run build, and npm pack inspection were used to verify TypeScript, bundled CLI output, and published package contents.
[1.0.11] - 2026-06-13
Added -- memcode Native Agent Release Candidate
Bundled memcode entry path --
memorixwith no subcommand andmemorix memcodenow launch the native memcode coding agent path, backed by the Pi-derived agent runtime under the Memorix package namespace.Native Memorix runtime awareness -- memcode now exposes first-party runtime status through
memorix_statusand/memory status, including canonical project identity, shared aliases, project memory counts, source/value distribution, embedding/vector status, search mode, memory LLM lane, retention summary, native hook state, and last injected memory refs.Native hook bridge -- memcode feeds its own prompt, tool, and assistant lifecycle events into the Memorix hook pipeline by default instead of behaving like an external MCP-only integration.
Memory startup and command surface -- restored the normal agent conversation surface with full slash-command discovery, startup diagnostics, startup card, memory commands, and native
/memory hooksinspection.
Changed
Shared project memory remains the default -- memcode uses the same canonical project memory pool as Claude Code, Codex, and other Memorix-connected agents. memcode-specific behavior is represented with metadata rather than a separate memory bucket.
API key lanes are isolated -- memory LLM, embedding, and agent calls now use separate configuration lanes so users can mix providers without accidental cross-lane key reuse.
TUI interaction model stabilized -- mouse text selection, wheel scroll, prompt history, activity status, and input rendering were aligned with normal coding-agent TUI expectations.
Runtime floor aligned with memcode -- the package now declares Node.js
>=22.19.0, matching the bundled native coding-agent stack.
Fixed
Embedding fallback noise -- invalid or unavailable embedding providers now fall back to BM25 with concise diagnostics instead of repeatedly deforming the TUI or spamming runtime output.
Runtime config loading -- YAML loading works in ESM contexts without relying on an unbound CommonJS
require.Publish blocker -- removed the stale Pi shrinkwrap path from memcode packaging so
@memorix/memcodeno longer locks installs to@earendil-works/pi-*packages or calls a missing shrinkwrap generator.
[1.0.10] - 2026-06-08
Added -- Low-Intrusion Handoff Diagnostics
Privacy-safe handoff receipts (#95) -- Added
memorix receipt --jsonfor cross-agent memory debugging. Receipts expose project identity hashes, write/search counts, recent observation ID hashes, and privacy boundaries without raw chat, raw memory text, raw search queries, tool payloads, or local file paths.Doctor receipt mode -- Added
memorix doctor --receiptso support/debugging can include the same receipt summary alongside normal health diagnostics.Cross-agent memory boundary docs -- Documented the operational boundary: MCP connection success does not mean a memory was written, and shared memory means stored memories are searchable across clients in the same Git project, not that chat transcripts are mirrored.
TUI Agent LLM config scope -- Added
agent/MEMORIX_AGENT_LLM_*configuration for TUI/chat agent calls. Memory formation, compression, rerank, and embedding remain on their existingllm/embeddingconfiguration paths. Ifagentis unset, TUI chat falls back tollmfor backward compatibility.
Changed
Generated agent rules are less intrusive -- Rules now prefer
memorix_searchwhen useful and treatmemorix_session_startas optional, reserved for handoff, long-running work, session recovery, team coordination, or HTTP project binding.Agent Team wording tightened -- Public docs now frame Agent Team as optional autonomous-agent/subagent coordination state rather than an IDE-window chat room. Existing
team_*APIs and CLI namespaces are unchanged.
Fixed
Release publish blocker --
tests/integration/release-blockers.test.tsnow reserves an ephemeral local TCP port for the realmemorix serve-httpsmoke test instead of assuming port19879is free. This removes a CI-onlyEADDRINUSEfailure that blocked the npm publish workflow.Standalone dashboard embedding config (#46 follow-up) --
memorix dashboardnow loads project.env/ project YAML before dashboard status routes initialize embedding provider state, matchingstatus,doctor, and TUI behavior.
Documentation
Added a small moving-between-machines note covering
memorix transfer export/importwithout changing the Memorix package name or primary README structure.
[1.0.9] - 2026-05-19
Added -- Knowledge Base / LLM Wiki Foundation
First-class Knowledge Base layer -- Added a readable project knowledge layer generated from durable memory, git-backed facts, mini-skills, and project evidence. The Knowledge Base is a shared human-and-AI surface, not a replacement for raw observations and not a TUI-only feature.
Knowledge graph projection -- Added a semantic graph projection over the same eligible knowledge inputs, preserving source refs for navigation and traceability.
Dashboard Knowledge foundation -- Dashboard surfaces can consume the same generated knowledge contract as the TUI, keeping Knowledge Base and graph semantics aligned.
Added -- TUI Knowledge Workbench
Tabbed terminal workbench -- Reworked the TUI around
Home,Knowledge,Memory,Workbench, andGraphtabs.Knowledge browsing -- Added a Knowledge tab for generated wiki sections, item summaries, entities, and source refs.
Memory browsing -- Added a Memory tab for recent/search/detail flows with ref-focused navigation from Knowledge.
Workbench session center -- Added explicit session status, explicit bind/end actions, context source summary, and chat. Entering the tab does not auto-start a session.
Graph text browser -- Added a terminal-native Knowledge Graph tab with summary stats, cluster browsing, node detail, light filtering, and Graph -> Knowledge jumps.
Cross-surface ref navigation -- Added Knowledge -> Memory, Memory -> Knowledge, and Graph -> Knowledge navigation paths based on stable refs where available.
Changed
Knowledge architecture clarified -- Documented the memory layer as the primary input to the knowledge layer, while project evidence such as docs, source structure, and git facts act as secondary inputs.
TUI scope tightened -- The TUI now behaves as a knowledge-native workbench, not a placeholder coding-agent harness. No fake Run Task / Review controls are exposed.
Session semantics preserved --
session_startremains explicit and lightweight. Agent Team join remains opt-in.
Fixed
Formation duplicate detection (#94) -- Fixed Formation resolve comparing raw Orama/BM25 ranking scores against normalized similarity thresholds. Noisy log-dump memories with high backend scores no longer discard unrelated valid memories as duplicates.
TUI chat input lock -- Fixed a regression where after a free-text chat response the bottom input bar became unresponsive because the chat overlay disabled the CommandBar. Chat overlay now keeps input active so users can continue the conversation.
TUI read-only overlay input lock -- Fixed read-only overlays such as
/doctordisabling the CommandBar. Users can now keep typing commands or questions while diagnostics and other non-action views are open.TUI shortcut/input conflicts -- Fixed CommandBar conflicts with view shortcuts such as Graph
f/k, Memoryk, and Knowledgemwhile still allowing normal first-character input.Graph TypeScript build issue -- Fixed a type-only re-export under
verbatimModuleSyntax.
Known Limitations
The Knowledge Base and Knowledge Graph are read-only generated projections in 1.0.9.
1.0.9 does not include a desktop app, realtime agent messaging layer, GraphRAG system, graph editing, or full coding-agent harness.
Stats
Verified TUI subset: 95 passing tests across
interaction,workbench, andgraphsuites.Release gates run during cleanup:
npm run lint,npm run build, and fullnpm test.
[1.0.8] - 2026-04-19
Added -- Operator CLI Surface
Namespaced operator commands -- Added human-oriented CLI namespaces for
session,memory,reasoning,retention,formation,audit,transfer,skills,team,task,message,lock,handoff,poll,sync, andingestso Memorix-native operations no longer require raw MCP tool calls.Lightweight session start + explicit collaboration join --
memorix session startnow opens project-bound memory sessions without auto-registering a team identity. Operators can opt into collaboration with--joinTeam, or join later viamemorix team join, while still getting default role mapping fromagentTypewhen they do join.CLI-first project ops -- Terminal operators can now inspect memory detail/timeline, store and search reasoning traces, run retention and formation checks, audit attribution, export/import memory snapshots, inspect/generate skills, run explicit rules/workspace sync flows, and ingest images without leaving the shell.
Added -- Programmatic SDK
memorix/sdksubpath export --createMemoryClient()factory returns a self-containedMemoryClientwithstore,search,get,getAll,count,resolve, andclosemethods. No MCP transport or CLI needed — initialize from a Git project root, read/write observations directly.createMemorixServerre-export -- Embed the full MCP server into your own Node.js process and connect it to any transport.detectProjectre-export -- Standalone Git-based project detection.Three subpath exports --
memorix/sdk(runtime API + types),memorix/types(type-only),memorix(MCP stdio entry).
Added -- Official Docker Deployment
Official HTTP control-plane container path --
Dockerfilenow builds a realserve-httpruntime image instead of defaulting to stdio MCP.Compose example -- added
compose.yamlwith port3211, persistent data volume, and/healthhealthcheck.Docker docs -- added
docs/DOCKER.mdand linked Docker deployment from README / setup docs.Runtime truth -- documentation now explicitly states that Docker support is for the HTTP control plane and that project-scoped Git/config behavior requires the container to see the bound repo path.
Visual Semantic Layering (dashboard follow-up)
Team mental model tightened before release: docs and dashboard copy now say "explicit collaborators" instead of implying a persistent IDE-window roster.
memorix team statusnow defaults to active collaborators only; inactive/historical identities remain available with--allfor audits without flooding the normal operator view.Team page headline is now active-only;
recent/historicalshown as secondary subtitle only.Team agents list gets four filter tabs: Active (default) / Recent / Historical / All. Historical rows no longer flood the view; they sit behind an explicit "Show historical (N)" toggle.
Each agent row carries an explicit tier badge (Active/Recent/Historical) instead of a single "offline" sea of red.
Historical agent rows are de-emphasized (reduced opacity, muted colors) so they don't dominate the main view.
Identity page headline shows real project count + real alias groups only. Temporary/placeholder IDs moved into a collapsed "Historical / temporary project IDs" section.
Identity "Dirty IDs" card now splits current-project dirty (primary) from historical dirty (secondary) so a single placeholder no longer looks like an active problem.
Project switcher groups items into Current / Real projects / Temporary / Placeholder, with temporary and placeholder folded behind a "Show temporary" toggle. Each group has a visible count so users can tell a real project list apart from the historical test/smoke scratch pile.
All new labels wired through the i18n system (English + Simplified Chinese).
Team Page Cleanup (1.0.7 final)
Team page semantics: clearly presented as a project collaboration space, not an organization backend or staffing admin tool. Scope labels: "Project Collaboration" / "All Projects".
Explicit collaboration join:
memorix_session_startis lightweight by default and no longer auto-registers a team identity. Collaboration is now opt-in viajoinTeam: trueorteam_manage(join), and default role mapping fromagentTypeapplies only when joining."Continue This Project" resume area: shows open tasks, available-to-claim tasks, open handoffs, unread messages, active locks, and active agent count at the top of the Team page. Provides a clear "pick up where you left off" entry point.
Unified statistics: stat cards clearly labeled — Active Agents (with session count + historical total), Locked Files, Tasks (by status), Messages (unread count). No conflicting or ambiguous labels.
Added -- Multi-Agent Orchestrator (Phase 7)
memorix orchestrate-- Autonomous pipeline: plan → parallel execution → verify gates → fix loops → review → merge. 4 agent adapters (Claude, Codex, Gemini, OpenCode), capability routing with quotas, worktree isolation, evidence collection, stranded task detection, agent fallback on repeated failures.CLI flags:
--agents claude:2,codex:1,--goal,--parallel,--compile-command,--test-command,--max-fix,--budget,--routing,--memory-capture,--no-evidence,--global-timeout
Added -- SQLite Canonical Store (Phase 2)
Observations, mini-skills, sessions, archives all in SQLite. Shared DB handle, freshness-safe retrieval, in-place archiving.
Added -- Team Identity (Phase 4)
Team store with agent registration, heartbeat, task board, handoff artifacts, stale detection. Prompt identity contract, sticky attribution prevention.
Fixed
HTTP stale-session poisoning (#82) —
serve-httpno longer has only a hardcoded 30-minute idle GC. AddedMEMORIX_SESSION_TIMEOUT_MSso long-running HTTP MCP clients such as Codex can keep sessions alive for longer work blocks without getting stuck on staleMcp-Session-Idfailures.TUI responsive layout — sidebar width now scales with terminal width (28% ratio, 26-40 range) instead of fixed 34 columns; content area uses
flexGrowto fill remaining space; maximized terminal windows now show expanded UI instead of locked small-window layoutTUI search score display — replaced absurd raw-percentage display (e.g. "927%") with relative relevance dots (●●●○○) normalized against top result
TUI /resume numeric index —
/resume 2now selects thread #2 from the list (1-based), in addition to/resume <threadId>by IDTUI CJK text wrapping — Ink's
wrap="wrap"doesn't understand double-width CJK characters, causing garbled text; replaced with CJK-aware manual line splitting in chat output and ContextRail sizing so mixed CJK content renders predictablyTUI layout DRY — sidebar/content width calculation extracted to shared
computeLayoutWidths()in theme.ts; App.tsx and ChatView.tsx now use the same function, preventing driftTUI CommandBar overlay — palette no longer pushes input bar down; rendered as overlay in App.tsx; mouse SGR mode centrally managed to avoid conflicts between palette clicks and chat scrolling
TUI chat freeze under assistant output — removed assistant Markdown rendering from the workbench chat path and render chat bodies as plain text with CJK-aware wrapping; this avoids heavy reparsing/rerender spikes that could freeze the TUI when the assistant started answering after tool calls
#4 Parallel multi-agent — fully implemented via orchestrator
#52 observations.json perf — migrated to SQLite
#56 LLM rerank timeout — configurable via
MEMORIX_RERANK_TIMEOUT_MS#75 Cursor stdio binding — deferred-binding mode instead of exit
Gemini JSON parse — brace-counting extractor handles trailing text
Evidence for failed tasks — both fix-exhausted and normal failure paths now write evidence
Agent fallback — failed agents excluded from retry routing
P1: uninstall hooks — shared context files (AGENTS.md/GEMINI.md) now block-level removal instead of deleting entire file
P1: budget abort — current settled dispatch now fails task (was left stuck in_progress)
P1: streaming completion — waits for stdout/stderr close before resolving (was missing final JSONL lines)
P1: Claude adapter headless hang — added
--bareflag to skip hooks/LSP/keychain/interactive ops, plus--mcp-configto restore Memorix MCP tool access in bare modeP1: planner JSON materialization — use accumulated text from message stream instead of ring buffer
tailOutput(avoids truncation when planner does many tool calls before outputting plan)P1: reviewer hanging —
--mcp-configenablesmemorix_handoff/team_taskMCP tool calls that reviewer needs for completion pathP1: structured planner double-create —
plannerType: 'plan'tasks now forbidden from callingteam_task create(must output JSON only; coordinator materializes). Prevents duplicate engineer/reviewer tasks in goal-mode pipelinesP2: budget validation — CLI and coordinator reject NaN/negative/zero budget values
P2: streaming buffer — bounded at 1024 messages with drop-oldest policy
P2: install audit — recordFile called even when Memorix block already exists (audit self-heal on reinstall)
P2: install audit — new shared file creation also records audit entry
P2: uninstall return — rules-only agents (codex/gemini-cli) return true when audit cleanup succeeds
#80 OpenCode hooks — plugin now uses individual event-name keys (
session.created,file.edited,command.executed, etc.) instead of invalid catch-alleventhandler that OpenCode never called. Replaced fragilecat | memorix hookpipe withBun.spawnstdin pipe for reliable cross-platform invocation. Added diagnostic logging on failure. Hooks status now distinguishes verified (config-based) from unverified (plugin-based) agents.OpenCode plugin v5 — replaced
Bun.spawnwithchild_process.spawnSyncfor cross-runtime compatibility (OpenCode may fall back to Node.js on Windows where Bun segfaults). Fixedfile.editedfield extraction (input.pathbeforeinput.file). Added exit code and stderr diagnostic logging. Added 10s timeout to prevent hangs.Copilot Windows runtime —
powershellfield omitted from hook config whenpwsh(PowerShell v7+) is not installed, preventingspawn pwsh.exe ENOENTerrors. Copilot falls back tobashfield (Git Bash). Install command warns ifpwshis missing on Windows and suggestswinget install Microsoft.PowerShell.Copilot global hooks —
getGlobalConfigPath('copilot')was falling through to the Claude case and returning~/.claude/settings.json, which is completely wrong. Per official GitHub docs, Copilot only supports project-level hooks at.github/hooks/*.json— there is no global hooks path. Fixed by returning empty string for global path, adding guards in install/uninstall to reject--globalfor Copilot, and updating hooks status to skip the global check.Hook handler diagnostics —
runHook()store path andhandleSessionStart()now log errors to stderr instead of silently swallowing, making end-to-end pipeline failures visible for debugging.
Added -- 1.0.7 Closeout
Routing explainability —
buildRoutingDecision()/buildIdleReasons()helpers trace adapter selection reasons (default_preference, cli_override, quota_fallback, excluded_failed, last_resort) in pipeline trace, evidence, and summaryStructured role extraction —
extractRole()prioritizesmetadata.roleover[Role: ...]text parsing; canonical source is structured metadataBalanced scheduling —
--scheduling balancedpolicy with round-robin tiebreaker among equally-preferred adapters;best-fitremains defaultIdle agent visibility — pipeline summary includes
idleAgentswith reasons for non-participationPipeline summary extensions —
routingDecisionsandidleAgentsfields inPipelineSummaryfor full explainability#62+#74 dashboard loadDotenv
#70 doctor health check
#69 background start non-TTY hang
#66 dashboard delete/cleanup/export
#79 Codex roots/list protocol compatibility
#18 dot-directory merge + hooks install migration
Removed -- Dead Code (Stabilization)
src/store/json-store.ts—JsonBackendclass deleted; no runtime or test references. SQLite is sole canonical backend,DegradedBackendis read-only fallback.appendArchivedObservations/loadArchivedObservations— dead code removed frompersistence-json.tsandpersistence.tsre-exports. Archives live in SQLitestatus='archived'rows.'json'fromgetBackendName()return type — union narrowed to'sqlite' | 'degraded'acrossObservationStoreinterface,SqliteBackend,DegradedBackend.
Changed -- Stale Naming Cleanup
All
JsonBackendreferences in comments and test names replaced withDegradedBackend.observations.ts:71"For JsonBackend" → "For DegradedBackend".obs-store.ts:91"JsonBackend: no-op" → "DegradedBackend: no-op".sqlite-store.test.ts:389test name "falls back to JsonBackend" → "falls back to DegradedBackend", assertion['sqlite', 'json']→['sqlite', 'degraded'].
Fixed -- Dashboard Semantics Closure
Mode/Port semantics —
DashboardStatenow includesmode('standalone' | 'control-plane') andport./api/projectreturnsmode,port, andmcpEndpoint. Dashboard UI shows mode banner with i18n support.Team API contract —
/api/teamin control-plane mode now normalizes SQLite snake_case rows to camelCase, matching the frontend contract. AddedlistAllAgents,listAllLocks,listAllTaskstoTeamStorefor global scope.Team page crash-proof —
loadTeam()safely normalizes missing/null fields (a.id,tk.deps,l.lockedBy). No moreCannot read properties of undefinederrors.Project switcher sync — Switching project in the dashboard now calls
/api/set-current-projectto sync backend state.i18n coverage — All remaining hardcoded English strings in Team page (time ago, lock TTL, agent time labels, session count) now use
t()with Chinese translations.CLI help alignment —
memorix dashboardandmemorix serve-httpJSDoc now document mode semantics (Standalone=3210, Control Plane=3211). Startup logs show mode label.
Changed -- Test Suite Stabilization
E2e demo tests (
tests/e2e/) excluded from defaultvitest run— these test CLI-agent demo artifacts, not Memorix product code. Available vianpm run test:e2e.Live LLM quality tests excluded from default suite — require
MEMORIX_RUN_LIVE_LLM_TESTS=1. Rules-only fallback test preserved intests/memory/formation-rules-fallback.test.ts. Available vianpm run test:llm-live.Coordinator merge-conflict test made deterministic — synchronous conflict file writes in
spawn()instead of asyncsetTimeoutrace. Removed{ retry: 3 }.Default test suite: 156 files, 2064 tests, 0 failed.
Added -- Hooks Test Coverage
Audit ledger lost/corrupted → re-install recovers audit entry (codex).
Non-shared-rules agent install/uninstall (claude) verifying config file creation and cleanup.
[1.0.6] - 2026-04-05
Added -- Memory Provenance and Layered Retrieval
Provenance foundation -- Observations now carry
sourceDetail(explicit/hook/git-ingest) andvalueCategory(core/contextual/ephemeral). All ten write-path call sites annotated. Backward-compatible: old data without new fields parses cleanly.Layered disclosure (L1/L2/L3) --
memorix_session_startnow separates routing hints (L1), working context (L2), and deep evidence (L3). Session injection scores observations by source and value category so hook noise stays out of working context.Evidence retrieval --
memorix_detailandmemorix_timelinenow surface provenance cues (source badge, evidence basis) so operators can trace why a memory exists and what supports it.Verification-aware evidence -- Detail and timeline outputs distinguish direct, summarized, derived, and repository-backed evidence without requiring a full citation framework.
Citation-lite -- Evidence-bearing surfaces emit lightweight citation hints (
[source: git],[verified: repo-backed]) to support "why surfaced" and "what supports this" queries.Retrieval tuning -- Source-aware boost treats
git-ingestas first-class git evidence for intent-aware ranking. Lightweight provenance tiebreaking for ambiguous retrieval results. L1 routing surfaces active entities as next-hop search guidance.Graph routing hints -- Knowledge graph neighborhood is used for lightweight retrieval enrichment and entity-affinity scoring without a full graph rewrite.
Added -- Task-Line Scoping, Secret Safety, and Attribution Hardening
Task-line scoping -- Search and session context now bias toward the current entity/task-line/subdomain, reducing cross-workstream contamination within a single project bucket.
Secret safety -- Store-time detection blocks obvious credentials, passwords, and tokens from entering durable memory. Retrieval-time redaction acts as a second safety net for already-stored sensitive data.
Project attribution hardening -- Write-path consistency checks reduce wrong-bucket writes.
memorix_audit_projectscans for misattributed observations and reports them with confidence levels.Ambiguous-target attribution fix -- Observations stored during ambiguous project context are now flagged rather than silently written to the wrong bucket.
Added -- Retention, Cleanup, and Operator Remediation
Retention calibration -- Source-aware retention multipliers (hook 0.5x, git-ingest 1.5x) and value-category multipliers (ephemeral 0.5x, core 2.0x) with a 7-day minimum floor. Immunity refined: only
criticalimportance andcorevalueCategory grant permanent immunity;high-importance types keep long retention but can now decay.Retention explainability --
memorix_retention action="stale"shows a full table with per-observation retention explanation (importance, multipliers, effective days, zone, immunity reason).Cleanup remediation loop --
memorix_retention(stale/report),memorix_audit_project, andmemorix_resolvenow form a coherent operator loop. Each output includes structuredSuggested IDs: [...]blocks and explicit next-step guidance.memorix_resolvelinks back to retention report for closed-loop cleanup.
Added -- OpenCode Plugin Improvements
post_compactevent -- Newpost_compacthook event type. OpenCode'ssession.compactedevent correctly maps topost_compact(was incorrectly mapped topre_compact). Plugin event handler triggersrunHookside-effect on compaction completion.Structured compaction prompt -- OpenCode compaction prompt rewritten as a structured continuation format requesting current task, key decisions, active files, blockers, next steps, active entities, and memorix context. No longer promises automatic
memorix_store/memorix_session_startinvocation during compaction.
Fixed
#45 OpenCode compaction -- Compaction prompt no longer makes misleading tool-call promises.
session.compactedevent now fires a real side-effect viarunHook. Normalizer mapping corrected topost_compact.#46 Dotenv load order --
loadDotenv()now runs beforegetEmbeddingProvider()instatus,doctor, and TUI entry points, fixing "No API key" errors when.envcredentials were present.#48 Ingest log dedup --
memorix ingest lognow deduplicates by commit hash, matching the behavior ofingest commitand TUI batch ingest. Repeated runs skip already-ingested commits.
Stats
Tests: 1439 passed | 2 skipped (102 files)
Phases landed: 11 (provenance -> layered disclosure -> evidence -> verification -> citation-lite -> retrieval tuning -> graph routing -> task-line/secret -> attribution -> retention -> cleanup ergonomics)
[1.0.5] - 2026-03-24
Added
TUI workbench matured into a product-grade terminal UI - Added an Ink-native
/configureflow, interactive sidebar navigation, unified keyboard model, better no-project empty state, compact responsive layouts, and broader TUI interaction coverage.Gemini CLI as a first-class integration target - Added a dedicated Gemini CLI target across TUI integrate flows, workspace adapters, rules sync, hook normalization, and MCP config generation.
Release-blocker regression suite - Added real embedded
serve-httproute tests for CORS and/api/config, plus cold-start CLI search regression coverage against persisted observations.Silent auto-update wiring - Wired the existing updater into real runtime entry points so TUI and HTTP control-plane starts can background-check and silently install newer npm releases without blocking startup.
Changed
Control plane stability and scope semantics - Hardened HTTP project binding, dashboard API behavior, project-scoped health/search diagnostics, and release-readiness around multi-project sessions.
Product positioning and integration messaging - Updated README, AI-facing docs, and agent/rules entry docs to foreground Memorix as an open-source cross-agent memory layer compatible with ten major coding IDEs and MCP hosts.
Search and retrieval transparency - Search mode reporting is now project-scoped end-to-end, including TUI, embedded stats, and MCP search responses.
Session handoff semantics -
memorix_session_startnow separatesRecent Handoff,Key Project Memories, andRecent Session Historyso recency-first handoff context is no longer mixed with long-term importance-ranked memories.
Fixed
Embedded dashboard security and config isolation - Fixed localhost-only CORS behavior for embedded dashboard JSON APIs and closed the
/api/config?project=...startup-project YAML leak.Cross-project retrieval correctness - Fixed
memorix_detailbare numeric IDs to remain project-safe instead of opening observations from another project.Concurrent memory write consistency - Fixed
topicKeyupsert races by rechecking authoritative disk state under the file lock before deciding whether to create or update.CLI cold-start search regression - Fixed
memorix searchso persisted observations are hydrated into the Orama index on a fresh process before searching.Embedding provider resilience - Fixed API embedding batch-limit handling with provider-aware chunking, automatic split-and-retry on oversized batches, and retry handling for transient 429/5xx errors.
OpenCode stale plugin detection - Added generated-version markers and hook-status detection so outdated OpenCode plugin installs are surfaced and can be reinstalled before they corrupt the TUI experience.
Documentation encoding regressions - Restored clean UTF-8 copy for Chinese README content and agent/rules entry docs so release docs match the current product shape.
Known Limitations
Gemini CLI / Antigravity shared
.gemini/*ecosystem - This follows the official Gemini ecosystem design. Integrations are independent at the target/adapter level, but hook runtime identity can still behave as "last installer wins" because both share the same official hook config surface.
Stats
Tests: 1099/1101 passing (
82files,2skipped)Runtime surfaces covered before release: stdio MCP, HTTP control plane, dashboard, TUI workbench, silent auto-update, Gemini CLI integration, git-hook ingest, and cold-start CLI search
[1.0.4] -- 2026-03-17
Added
Git Memory pipeline --
git commitcan now flow directly into Memorix viamemorix git-hook,memorix git-hook-uninstall, andmemorix ingest commit --auto. Stored observations now carrysourceandcommitHash, and Git memories can be filtered explicitly withsource: "git".Reasoning Memory tools -- Added
memorix_store_reasoningandmemorix_search_reasoningso design rationale, alternatives, constraints, and risks can be stored and searched as a first-class memory layer.Source-aware retrieval and cross-linking -- Search now boosts Git, reasoning, and problem-solution memories differently based on query intent. Git memories and reasoning memories can cross-reference each other via related commits and shared entities.
Structured config model -- Added project/user
memorix.yml, project/user.envloading,memorix init, and configuration provenance diagnostics inmemorix status.Dashboard control plane upgrades -- Added Git Memory, Config Provenance, and Identity Health views, plus richer stats and a stabilized graph layout for the HTTP dashboard.
Changed
Documentation consolidation -- Reworked README, README.zh-CN, setup, architecture, API reference, configuration, Git Memory, and development guides so they match the current product model: local-first platform,
memorix.yml + .env, Git Memory, HTTP dashboard, and the four-layer architecture.Project detection model -- Project identity now centers on real Git roots, MCP roots support, system-directory fallback handling, and runtime project switching instead of older placeholder-style fallback identities.
Dashboard usage model --
memorix background startis now the primary long-lived HTTP control-plane entrypoint when you want HTTP transport, collaboration features, and dashboard access in one place.memorix serve-http --port 3211remains the foreground/debug variant.
Fixed
Project identity drift -- Fixed Codex/Windsurf startup issues that produced
local/System32, IDE-installation-directory identities, or other incorrect local project bindings.Worktree-safe Git hooks -- Hook installation, uninstall, auto-install checks, and status reporting now resolve hooks directories correctly for both normal repos and Git worktrees.
Runtime config correctness -- Fixed project-level
memorix.ymlnot reaching runtime getters,.envvalues leaking across project switches, and legacyconfig.jsonnot showing up correctly in provenance diagnostics.Git Memory quality -- Added noise filtering, preserved release/version milestone commits, and implemented
memorix ingest commit --forceas an escape hatch for manual ingestion.Cross-project detail retrieval -- Global search results can now be opened reliably with project-aware refs instead of colliding on observation IDs from different projects.
Skill generation noise --
memorix_skills generatenow filters low-signal command-history observations likegit,gh,npm, andnpxso generated skills stay project-relevant.OpenCode static plugin noise -- Merged the first external PR to silence
console.logspam in the static OpenCode plugin without reintroducing session lifecycle side effects.CI/publish flow -- Restored CI green after type/test regressions and changed npm publishing workflow to manual trigger instead of automatic release publishing.
Stats
Tests: 879/879 passing across 68 files
Runtime modes: stdio MCP (
memorix serve), HTTP MCP + dashboard (memorix background startby default, ormemorix serve-http --port 3211in the foreground), and standalone dashboard remain supported
[1.0.3] -- 2026-03-14
Added
Memory Formation Pipeline -- Three-stage pipeline (Extract -> Resolve -> Evaluate) runs in shadow mode on every
memorix_storecall and hooks trigger. Collects quality metrics without affecting storage decisions.Extract: Automatic fact extraction from narratives, title normalization, entity resolution against Knowledge Graph, observation type verification.
Resolve: 4 resolution actions (new/merge/evolve/discard) based on similarity scoring, word overlap, and contradiction detection.
Evaluate: Multi-factor knowledge value assessment (type weight, fact density, specificity, causal reasoning, noise detection). Categorizes memories as core/contextual/ephemeral.
memorix_formation_metricstool -- New MCP tool to query aggregated Formation Pipeline metrics (value scores, resolution actions, extraction rates, processing times).getEntityNames()method onKnowledgeGraphManagerfor Formation Pipeline entity resolution.
Stats
Default MCP Tools: 23 (+1:
memorix_formation_metrics)Tests: 803/803 passing across 60 files (+50 new Formation Pipeline tests)
Hooks safety: handler.ts +21 lines (shadow call only), zero modification to existing hook logic
[1.0.2] -- 2026-03-14
Fixed
MCP Server version mismatch -- Server now reports the correct version from
package.json(was hardcoded0.1.0). Injected at build time via tsupdefine.CI Node.js matrix -- Removed Node 18 from CI matrix to match
engines: >=20inpackage.json.Orama reindex idempotency --
reindexObservations()now resets the Orama DB before rebuilding, eliminating "document already exists" errors in multi-session scenarios.E2E tests no longer touch real user data -- Mini-skills E2E tests now use a temporary directory with synthetic observations instead of reading/writing
~/.memorix/data/.
[1.0.1] -- 2026-03-14
Fixed
OpenCode stdout pollution -- Removed all
console.log/console.errorfrom the generated OpenCode plugin template. Hooks now run fully silent. (fixes #15)OpenCode session_id missing --
normalizeOpenCode()now readssession_idfrom the payload instead of hardcoding empty string. Plugin template generates and injects a stable session ID per plugin lifetime. (fixes #14)Auto-install hooks scope -- Hooks are now only auto-installed for IDEs whose project-level config directory already exists (e.g.,
.cursor/,.windsurf/), preventing unwanted IDE directories from appearing in projects opened with a different IDE.
Added
MEMORIX_DATA_DIRenvironment variable -- Override the default data directory (~/.memorix/data/) by settingMEMORIX_DATA_DIR. Applied consistently across persistence, alias registry, and embedding cache.
[1.0.0] -- 2026-03-09
🎉 First Stable Release
Memorix reaches v1.0.0 -- all major features complete. Future versions will iterate based on AI/agent ecosystem evolution.
Added
Multi-Agent Team Collaboration -- 4 team tools (
team_manage,team_file_lock,team_task,team_message) for cross-IDE agent coordination. File-based persistence viateam-state.json. Verified: Windsurf <-> Antigravity bidirectional communication.Auto-Cleanup on Startup -- Background retention archiving and intelligent deduplication run automatically in
deferredInit. With LLM configured: semantic dedup via any OpenAI-compatible model. Without LLM: Jaccard similarity consolidation. Zero manual maintenance required.memorix_transfertool -- Mergedmemorix_export+memorix_importinto a single tool withaction: "export" | "import".TEAM.md -- Multi-agent coordination protocol documentation.
Changed
Tool consolidation: 41 -> 22 default tools (-46%)
Team tools: 13 individual -> 4 merged (action parameter pattern)
Knowledge Graph tools: 9 -> conditional via
~/.memorix/settings.json({ "knowledgeGraph": true })Export+Import: 2 -> 1 (
memorix_transfer)
Dashboard Team Panel -- Redesigned with Iconify icons, Material Design 3 style. Agent cards, task lists, message panel, file lock panel.
README updated for v1.0.0 stable (EN + 中文).
Fixed
Windows EPERM file lock race condition -- Treat EPERM same as EEXIST in file-lock.ts.
PowerShell BOM in config.json --
Set-Content -Encoding UTF8adds BOM in PS 5.x, breakingJSON.parse. Always use Node.js for config file writes.
Production Hardening
Cross-session shared team state
Inbox capped at 200 messages with auto-eviction
Session timeout GC (30min idle -> auto-close)
Send to inactive agent rejected
Agent leave releases file locks + clears inbox
Orphaned task rescue when assignee inactive
Input validation: agent name max 100, message max 10KB
Stats
Default MCP Tools: 22 (+9 optional KG)
Tests: 753/753 passing across 56 files
IDE Support: 10 agents (Cursor, Windsurf, Claude Code, Codex, Copilot, Kiro, Antigravity, OpenCode, Trae, Gemini CLI)
[0.12.0] -- 2026-03-08
Added
Intent-Aware Recall -- Search understands query intent ("why X?" prioritizes decisions/trade-offs, "how to X?" prioritizes how-it-works).
MCP Deadlock Fix -- Resolved stdio transport deadlock under high concurrency.
Dashboard Dark Theme Fix -- Proper dark mode support across all panels.
Build Race Condition Fix -- Fixed tsup parallel build race condition.
[0.11.0] -- 2026-03-07
Added
Mini-Skills (
memorix_promote) -- Promote observations to permanent skills that auto-inject at session start. Never decay, project-scoped.LLM Quality Engine -- Compact-on-write (duplicate detection at write time), narrative compression (~27% token reduction), search reranking (60% queries improved).
memorix_deduplicatetool -- LLM-powered semantic deduplication with dry-run support.memorix_resolvetool -- Mark completed tasks and fixed bugs as resolved to prevent context pollution.
Fixed
Retention decay fix -- Reclassified
what-changed/discoveryto low retention (30d instead of 90d).
Stats
Tests: 641 -> 674 passing
[0.10.6] -- 2026-03-06
Fixed
Minor stability improvements.
[0.10.5] -- 2026-03-05
Fixed
🔴 Critical: Antigravity MCP connection failure -- CLI banner (starting with 🧠 emoji, UTF-8
F0 9F A7 A0) was written tostdoutviaconsole.login the non-interactive branch. Whencittydispatches toservesubcommand, it calls parentrun()first, polluting the MCP JSON-RPC stream. Go'sencoding/jsonin Antigravity failed on the first byte0xF0withinvalid character 'ð'. Fix:console.log->console.errorfor all CLI banner output.🔴 Critical: Claude Code Stop hook schema validation failure --
hookSpecificOutputwas returned for all hook events, but Claude Code only supports it forPreToolUse,UserPromptSubmit, andPostToolUse. Events likeSessionStart,Stop, andPreCompactwithhookSpecificOutputtriggeredJSON validation failed: Invalid input. Fix: only includehookSpecificOutputfor the 3 supported event types.Claude Code hook_event_name not read -- Handler read
payload.hookEventName(camelCase) but Claude Code sendshook_event_name(snake_case), causinghookEventNameto always be empty andhookSpecificOutputto be{}.Windows hook stdin piping broken --
cmd /c memorix hookwrapper broke stdin piping for hook event JSON. Changed tomemorix.cmd hookwhich directly invokes the CMD shim and properly forwards stdin.CLI emoji removed -- All emoji in CLI output replaced with plain text markers (
[OK],[FAIL],[WARN],[SKIP],[DRY RUN]) for enterprise-grade compatibility and to prevent future UTF-8 encoding issues.
[0.9.25] -- 2026-02-28
Fixed
Windsurf "no tools returned" -- Transport-first architecture caused Windsurf to query
tools/listbefore tools were registered. Normal path now registers tools first, then connects transport. Roots path (invalid cwd) still connects first to querylistRoots.Windsurf rules not activated -- Generated
.windsurf/rules/memorix.mdlacked YAML frontmatter (trigger: always_on). Windsurf ignored the file without it. Also addedalwaysApply: truefrontmatter for Cursor.mdcfiles.Windsurf hook
post_commandcontent too short -- Normalizer didn't extractcommandOutputfrom Windsurfpost_commandevents, causing content to be <30 chars and filtered out.Hook hot-reload broken on Windows --
fs.watch()lost track ofobservations.jsonafteratomicWriteFile(which usesrename()). Switched tofs.watchFilewith 2s polling for reliable cross-platform hot-reload. Hook-written memories are now searchable within ~4 seconds.
[0.9.18] -- 2026-02-26
Fixed
Self-referential command noise -- Bash commands that inspect memorix's own data (e.g.
node -e "...observations.json...",cat ~/.memorix/...) were being stored as observations, creating a feedback loop. Now filtered alongsidememorix_internaltools.
[0.9.17] -- 2026-02-26
Fixed
Session activity noise -- Empty
session_endevents were unconditionally stored, generating ~8.5% of all observations as useless"Session activity (discovery)"entries. Now requires content ≥ 50 chars, matching the quality-first philosophy of 0.9.16.
[0.9.16] -- 2026-02-26
Architecture
Classify -> Policy -> Store pipeline -- Replaced the monolithic
switch/casehandler (527 lines) with a clean declarative pipeline (432 lines). Inspired by claude-mem's store-first philosophy and mcp-memory-service's configurable scoring.Tool Taxonomy --
classifyTool()categorizes tools intofile_modify | file_read | command | search | memorix_internal | unknown. Each category has a declarativeStoragePolicy(store mode, minLength, defaultType).Pattern detection = classification only -- Pattern detection now only determines observation type (decision, error, etc.), not whether to store. Storage decisions are made by policy.
Unified
TYPE_EMOJI-- Single exported constant, eliminating 3 duplicated copies across handler and session_start.
Fixed
🔴 Critical: Bash commands with
cdprefix silently dropped -- Claude Code sends Bash commands ascd /project && npm test 2>&1. The noise filter/^cd\b/matched thecdprefix and silently discarded the entire command. This causednpm test,npm install express,node -e "...", and all other project-scoped commands to never be stored. Fix:extractRealCommand()stripscd path &&prefix before noise checking, socd /path && npm testis correctly evaluated asnpm test.Cooldown key too broad -- Old key
post_tool:Bashmeant ALL Bash commands shared one 30-second cooldown. New key usesevent:filePath|command|toolName, sonpm testandnpm installhave independent cooldowns.Store-first for commands -- Command-category tools now use
store: 'always'policy with minLength 30 (down from 50-200), capturing more meaningful development activity.
[0.9.15] -- 2026-02-26
Fixed
Feedback visibility -- Hook auto-stores were silent. Now returns
systemMessageto the agent after each save, e.g.🟢 Memorix saved: Updated auth.ts [what-changed]. Gives Codex-like visibility into what memorix is recording.File-modifying tools always store -- Write/Edit/MultiEdit tool events were rejected when content lacked pattern keywords (e.g., writing utility functions with no "error"/"fix" keywords). Now file-modifying tools always store if content > 100 chars, classified as
what-changedby default.PreCompact low-quality spam -- PreCompact events stored empty/minimal observations with no meaningful content. Now requires
MIN_STORE_LENGTH(100 chars) to store.Normalizer prompt extraction --
normalizeClaudeonly extractedpromptforuser_promptevents. Now extracts for all events (PreCompact, etc.), preserving context that would otherwise be lost.
[0.9.14] -- 2026-02-26
Fixed
🔴 Critical: Hooks never auto-store during development -- Two root causes:
extractContent()had a fatalparts.length === 0guard that skipped richtoolInputdata (file content, edit diffs, commands) whenevertoolResultwas present. Since all agents send shorttoolResultlike"File written successfully"(28 chars), the content was always < 100 chars and got rejected byMIN_STORE_LENGTH.Bash/shell tool events (npm install, npm test, git commands) also got rejected because their content (~90 chars) fell below the generic
post_toolthreshold of 200 chars, even though commands are inherently meaningful.
Fix: Always extract
toolInputfields alongsidetoolResult. Bash tools now use a dedicated low-threshold path (50 chars) with noise command filtering, matching thepost_commandlogic.
Added
12 Claude Code E2E tests -- Validates the full hook pipeline (stdin JSON -> normalize -> handleHookEvent -> observation) for Write, Edit, Bash, UserPromptSubmit, SessionStart, Stop, PreCompact, and edge cases (noise filtering, memorix recursion skip, short prompts).
[0.9.12] -- 2026-02-25
Fixed
Copilot hooks format completely wrong -- Was reusing Claude Code's
generateClaudeConfig()(PascalCase events,commandfield). Copilot requiresversion: 1,bash/powershellfields,timeoutSec, and camelCase event names (sessionStart,userPromptSubmitted,preToolUse,postToolUse,sessionEnd,errorOccurred). Now uses dedicatedgenerateCopilotConfig(). Source: GitHub Docs.Codex fake hooks.json removed -- Codex has no hooks system (only
notifyin config.toml foragent-turn-complete). Was generating a non-existent.codex/hooks.json. Now only installs rules (AGENTS.md). Source: OpenAI Codex Config Reference.Kiro hook file extension wrong -- Was
.hook.md, should be.kiro.hook. Now generates 3 hook files:memorix-agent-stop.kiro.hook(session memory),memorix-prompt-submit.kiro.hook(context loading),memorix-file-save.kiro.hook(file change tracking). Source: Kiro Docs.Kiro only had 1 event -- Was only
file_saved. Now coversagent_stop,prompt_submit, andfile_saveevents.
Added
Antigravity/Gemini CLI hook installer -- New
generateGeminiConfig()for.gemini/settings.json. PascalCase events (SessionStart,AfterTool,AfterAgent,PreCompress), timeout in milliseconds (10000ms). Source: Gemini CLI Docs.Copilot normalizer -- Dedicated
normalizeCopilot()function withinferCopilotEvent()for payload-based event detection (Copilot sends typed payloads without explicit event names).Gemini CLI normalizer -- Dedicated
normalizeGemini()function with event mapping for all 11 Gemini CLI events (BeforeAgent,AfterAgent,BeforeTool,AfterTool,PreCompress, etc.).Gemini CLI event mappings -- Full EVENT_MAP entries for Gemini CLI PascalCase events -> normalized events.
Copilot event mappings -- EVENT_MAP entries for Copilot-specific camelCase events (
userPromptSubmitted,preToolUse,postToolUse,errorOccurred).
[0.9.11] -- 2026-02-25
Fixed
CLI crashes with
Dynamic require of "fs" is not supported-- When bundling CJS dependencies (likegray-matter) into ESM output vianoExternal, esbuild's CJS-to-ESM wrapper couldn't resolve Node.js built-in modules. AddedcreateRequirebanner to provide a realrequirefunction before esbuild's wrapper runs, fixingrequire('fs')and other built-in module calls.
[0.9.10] -- 2026-02-25
Fixed
CLI crashes with
ERR_MODULE_NOT_FOUNDon global install --@orama/orama,gpt-tokenizer,gray-matterand other dependencies were not bundled into the CLI output. tsup treateddependenciesas external by default. AddednoExternalto force-bundle all deps into CLI (275KB -> 2.59MB), makingmemorix hookwork reliably when installed globally vianpm install -g.Cursor agent detection corrected -- Real Cursor payload confirmed to include
hook_event_name+conversation_id(not justworkspace_roots). Detection now usesconversation_idorcursor_versionas primary discriminator vs Claude Code (which sendssession_idwithoutconversation_id).extractEventNamereadshook_event_namefirst, falls back to payload inference.
[0.9.9] -- 2026-02-25
Fixed
Cursor hooks config format invalid -- Generated config was missing required
versionfield and used objects instead of arrays for hook scripts. Cursor requires{ version: 1, hooks: { eventName: [{ command: "..." }] } }format. AddedsessionStart,beforeShellExecution,afterMCPExecution,preCompactevents.Cursor agent detection failed -- Cursor does NOT send
hook_event_namelike Claude Code. Detection now uses Cursor-specific fields (workspace_roots,is_background_agent,composer_mode). Event type inferred from payload structure (e.g.,old_content/new_content->afterFileEdit).Cursor
session_idfield not read -- Normalizer expectedconversation_idbut Cursor sendssession_id. Now reads both with fallback.
[0.9.8] -- 2026-02-25
Fixed
Claude Code hooks installed to wrong file -- Hooks were written to
.github/hooks/memorix.jsonbut Claude Code reads from.claude/settings.local.json(project-level) or~/.claude/settings.json(global). Now correctly writes to.claude/settings.local.jsonfor project-level installation.Hooks merge overwrites existing settings -- Shallow spread
{...existing, ...generated}would overwrite the entirehookskey, destroying user's other hook configurations. Now deep-merges thehooksobject so existing hooks from other tools are preserved.
[0.9.7] -- 2026-02-25
Fixed
Claude Code hooks never triggering auto-memory -- Claude Code sends
hook_event_name(snake_case) but the normalizer expectedhookEventName(camelCase). This caused every event (SessionStart, UserPromptSubmit, PostToolUse, PreCompact, Stop) to be misidentified aspost_tool, breaking event routing, prompt extraction, memory injection, and session tracking. Also fixedsession_id->sessionIdandtool_response->toolResultfield mappings.Empty content extraction from Claude Code tool events --
extractContent()now unpackstoolInputfields (Bash commands, Write file content, etc.) when no other content is available. Previously tool events produced empty or near-empty content strings.User prompts silently dropped --
MIN_STORE_LENGTH=100was too high for typical user prompts. AddedMIN_PROMPT_LENGTH=20specifically foruser_promptevents.Post-tool events too aggressively filtered -- Tool events with substantial content (>200 chars) are now stored even without keyword pattern matches.
[0.9.6] -- 2026-02-25
Fixed
Cross-IDE project identity fragmentation -- Data was stored in per-project subdirectories (
~/.memorix/data/<projectId>/), but different IDEs often detected different projectIds for the same repo (e.g.placeholder/repovslocal/repovslocal/Kiro). This caused observations to silently split across directories, making cross-IDE relay unreliable. Now all data is stored in a single flat directory (~/.memorix/data/). projectId is metadata only, not used for directory partitioning. Existing per-project subdirectories are automatically merged on first startup (IDs remapped, graphs deduplicated, subdirs backed up to.migrated-subdirs/).scope: 'project'parameter now works -- Previously accepted but ignored. Now properly filters search results by the current project's ID via Orama where-clause.
[0.9.5] -- 2026-02-25
Fixed
Claude Code hooks
matcherformat --matchermust be a string (tool name pattern like"Bash","Edit|Write"), not an object. For hooks that should fire on ALL events,matcheris now omitted entirely instead of using{}. Fixesmatcher: Expected string, but received objectvalidation error on Claude Code startup.
[0.9.4] -- 2026-02-25
Fixed
Codex/all-IDE
tools/list -> Method not found-- Critical bug wherelocal/<dirname>projects (any directory without a git remote) wrongly entered the MCP roots resolution flow. This flow connects the server before registering tools, so the MCPinitializehandshake declared notoolscapability, causing all subsequenttools/listcalls to fail with "Method not found". Now only truly invalid projects (home dir, system dirs) enter the roots flow;local/projects go through the normal path (register tools first, then connect).
[0.9.3] -- 2026-02-25
Fixed
memorix_timeline"not found" bug -- Timeline was using unreliable Orama empty-term search. Now uses in-memory observations (same fix pattern asmemorix_detail).memorix_retention"no observations found" bug -- Same root cause as timeline. Now uses in-memory observations for reliable document retrieval.memorix_searchcross-IDE projectId mismatch -- Removed redundant projectId filter from search. Data isolation is already handled at the directory level. Different IDEs resolving different projectIds for the same directory no longer causes empty search results.Claude Code hooks format -- Updated
generateClaudeConfigto use the new{matcher: {}, hooks: [...]}structure required by Claude Code 2025+. Fixes "Expected array, but received undefined" error onmemorix hooks install --agent claude --global.EPERM
process.cwd()crash -- All CLI commands (serve,hooks install/uninstall/status) now safely handleprocess.cwd()failures (e.g., deleted CWD on macOS) with fallback to home directory.
[0.9.2] -- 2026-02-25
Fixed
Empty directory support -- Memorix now starts successfully in any directory, even without
.gitorpackage.json. No more__invalid__project errors for brand new folders. Only truly dangerous directories (home dir, drive root, system dirs) are rejected.findPackageRootsafety -- Walking up from temp/nested directories no longer accidentally selects the home directory as project root.
Changed
README rewrite -- Complete rewrite of Quick Start section for both EN and 中文 READMEs:
Two-step install (global install + MCP config) instead of error-prone
npxPer-agent config examples (Claude Code, Cursor, Windsurf, etc.)
Troubleshooting table for common errors
AI-friendly: agents reading the README will now configure correctly on first try
[0.9.1] -- 2026-02-25
Fixed
Defensive parameter coercion -- All 24 MCP tools now gracefully handle string-encoded arrays and numbers (e.g.,
"[16]"->[16],"20"->20). Fixes compatibility with Claude Code CLI's known serialization bug (#5504, #26027) and non-Anthropic models (GLM, etc.) that may produce incorrectly typed tool call arguments. Codex, Windsurf, and Cursor were already unaffected.
[0.9.0] -- 2026-02-24
Added
Memory Consolidation (
memorix_consolidate) -- Find and merge similar observations to reduce memory bloat. Uses Jaccard text similarity to cluster observations by entity+type, then merges them preserving all facts, files, and concepts. Supportspreview(dry run) andexecutemodes with configurable similarity threshold.Temporal Queries --
memorix_searchnow supportssinceanduntilparameters for date range filtering. Example: "What auth decisions did we make last week?"Explainable Recall -- Search results now include a
Matchedcolumn showing which fields matched the query (title, entity, concept, narrative, fact, file, or fuzzy). Helps understand why each result was found.Export/Import -- Two new tools for team collaboration:
memorix_export-- Export project observations and sessions as JSON (importable) or Markdown (human-readable for PRs/docs)memorix_import-- Import from JSON export, re-assigns IDs, skips duplicate topicKeys
Dashboard Sessions Panel -- New "Sessions" tab in the web dashboard with timeline view, active/completed counts, agent info, and session summaries. Bilingual (EN/中文).
Auto sessionId --
memorix_storenow automatically associates the current active session's ID with stored observations.16 new tests -- 8 consolidation + 8 export/import (484 total).
Stats
MCP Tools: 20 -> 24 (memorix_consolidate, memorix_export, memorix_import + dashboard sessions API)
Tests: 484/484 passing
[0.8.0] -- 2026-02-24
Added
Session Lifecycle Management -- 3 new MCP tools for cross-session context continuity:
memorix_session_start-- Start a coding session, auto-inject context from previous sessions (summaries + key observations). Previous active sessions are auto-closed.memorix_session_end-- End a session with structured summary (Goal/Discoveries/Accomplished/Files format). Summary is injected into the next session.memorix_session_context-- Manually retrieve session history and context (useful after compaction recovery).
Topic Key Upsert --
memorix_storenow accepts an optionaltopicKeyparameter. When an observation with the sametopicKey + projectIdalready exists, it is updated in-place instead of creating a duplicate.revisionCountincrements on each upsert. Prevents data bloat for evolving decisions, architecture docs, etc.memorix_suggest_topic_keytool -- Suggests stable topic keys from type + title using family heuristics (architecture/*,bug/*,decision/*,config/*,discovery/*,pattern/*). Supports CJK characters.Session persistence --
sessions.jsonwith atomic writes and file locking for cross-process safety.Observation fields --
topicKey,revisionCount,updatedAt,sessionIdadded toObservationinterface.30 new tests -- 16 session lifecycle tests + 14 topic key upsert tests (468 total).
Improved
storeObservationAPI -- Now returns{ observation, upserted }instead of justObservation, enabling callers to distinguish new vs updated observations.
Inspired by
Engram -- Session lifecycle design, topic_key upsert pattern, structured session summaries.
[0.7.11] -- 2026-02-24
Added
File locking & atomic writes (
withFileLock,atomicWriteFile) -- Cross-process safe writes forobservations.json,graph.jsonl, andcounter.json. Uses.memorix.lockdirectory lock with stale detection (10s timeout) and write-to-temp-then-rename for crash safety.Retention auto-archive --
memorix_retentiontool now supportsaction="archive"to move expired observations toobservations.archived.json. Reversible -- archived memories can be restored manually.Chinese entity extraction -- Entity extractor now recognizes Chinese identifiers in brackets (
「认证模块」,【数据库连接】) and backticks, plus Chinese causal language patterns (因为/所以/由于/导致/决定/采用).Graph-memory bidirectional sync -- Dashboard DELETE now cleans up corresponding
[#id]references from knowledge graph entities. Prevents orphaned data.
Improved
Search accuracy -- Added fuzzy tolerance, field boosting (title > entityName > concepts > narrative), lowered similarity threshold to 0.5, tuned hybrid weights (text 0.6, vector 0.4).
Auto-relations performance -- Entity lookups now use O(1) index (
Map) instead of O(n)find()on every observation store.KnowledgeGraphManagermaintains aentityIndexrebuilt on create/delete mutations.Re-read-before-write --
storeObservationre-readsobservations.jsoninside the lock before writing, merging concurrent changes instead of overwriting.
[0.7.10] -- 2026-02-24
Added
Chinese README (
README.zh-CN.md) -- Full bilingual documentation with language switcher at the top of both README files.Antigravity config guide -- Collapsible note in README Quick Start and updated
docs/SETUP.mdAntigravity section explaining theMEMORIX_PROJECT_ROOTrequirement, why it's needed (cwd + MCP roots both unavailable), and how to configure it.Project detection priority documentation -- Clear detection chain (
--cwd->MEMORIX_PROJECT_ROOT->INIT_CWD->process.cwd()-> MCP roots -> error) in README, SETUP.md, and troubleshooting section.
[0.7.9] -- 2026-02-24
Fixed
Dashboard auto-switch when project changes -- When the dashboard is already running (started from project A) and
memorix_dashboardis called from project B, the dashboard server's current project is now updated via a/api/set-current-projectPOST request before opening the browser. Previously, the dashboard always showed the project it was initially started with; now it correctly switches to the calling project. Existing browser tabs will also show the correct project on the next page load/refresh.
Added
MCP roots protocol support -- When the IDE's
cwdis not a valid project (e.g., Antigravity sets cwd toG:\Antigravity), Memorix now automatically tries the MCProots/listprotocol to get the IDE's actual workspace path. This means standard MCP configs (npx memorix@latest serve) can work without--cwdin IDEs that support MCP roots. Falls back gracefully if the client doesn't support roots. Priority chain:--cwd>MEMORIX_PROJECT_ROOT>INIT_CWD>process.cwd()> MCP roots > error.
[0.7.8] -- 2026-02-24
Fixed
Graceful error on invalid project detection -- When
detectProject()returns__invalid__(e.g., IDE sets cwd to its own install directory likeG:\Antigravity), the server now prints a clear, actionable error message with fix instructions (--cwdorMEMORIX_PROJECT_ROOT) instead of crashing with an opaque stack trace.Dashboard process liveness check --
memorix_dashboardnow verifies the port is actually listening before returning "already running". If the dashboard process was killed externally (e.g.,taskkill), it automatically restarts instead of opening a browser to a dead server.
Added
MEMORIX_PROJECT_ROOTenvironment variable -- New way to specify the project directory for IDEs that don't setcwdto the project path (e.g., Antigravity usesG:\Antigravityas cwd). Priority:--cwd>MEMORIX_PROJECT_ROOT>INIT_CWD>process.cwd(). Example MCP config:"env": { "MEMORIX_PROJECT_ROOT": "e:/your/project" }.
[0.7.7] -- 2026-02-24
Fixed
Wrong project detection in Antigravity/global MCP configs -- Removed dangerous
scriptDirfallback inserve.tsthat caused the MCP server to detect the memorix development repo (or other wrong projects) instead of the user's actual project. Whenprocess.cwd()was not a git repo, the old code fell back to the memorix script's own directory, which could resolve to a completely unrelated project. Now relies solely ondetectProject()which has proper fallback logic.Dashboard always showing wrong project -- When re-opening the dashboard (already running on port 3210), it now passes the current project as a
?project=URL parameter. The frontend reads this parameter and auto-selects the correct project in the switcher, so opening dashboard from different IDEs/projects shows the right data.
[0.7.6] -- 2026-02-24
Added
llms.txt+llms-full.txt-- Machine-readable project documentation for AI crawlers (2026 llms.txt standard). Helps Gemini, GPT, Claude, and other AI systems discover and understand Memorix automatically.FAQ semantic anchors in README -- 7 Q&A entries matching common AI search queries ("How do I keep context when switching IDEs?", "Is there an MCP server for persistent AI coding memory?", etc.)
Changed
GitHub repo description -- Shortened to ~150 chars for optimal og:title/og:description generation
GitHub topics -- 20 GEO-optimized tags including
cursor-mcp,windsurf-mcp,claude-code-memory,cross-ide-sync,context-persistence,agent-memorypackage.json keywords -- Replaced generic tags with IDE-specific MCP entity-linking keywords
package.json description -- Shortened to under 160 chars for better meta tag generation
MCP tool descriptions -- Enhanced
memorix_store,memorix_search,memorix_workspace_sync,memorix_skillswith cross-IDE context so AI search engines understand what problems they solve
[0.7.5] -- 2026-02-22
Changed
README rewrite -- Completely restructured to focus on real-world scenarios, use cases, and features. Added 5 walkthrough scenarios, comparison table with alternatives, "Works with" badges for all 7 agents. Moved detailed config to sub-README.
New
docs/SETUP.md-- Dedicated setup guide with agent-specific config, vector search setup, data storage, and troubleshooting
[0.7.4] -- 2026-02-22
Fixed
Hyphenated concepts not searchable -- Concepts like
project-detectionandbug-fixare now normalized toproject detectionandbug fixin the search index so Orama's tokenizer can split them into individual searchable terms. Original observation data is preserved unchanged.
[0.7.3] -- 2026-02-22
Fixed
Windows: git remote detection fails due to "dubious ownership" -- Added
safe.directory=*flag to all git commands so MCP subprocess can read git info regardless of directory ownership settings. If git CLI still fails, falls back to directly parsing.git/configfile. This fixes projects incorrectly gettinglocal/<dirname>instead ofowner/repoas their project ID.
[0.7.2] -- 2026-02-22
Fixed
memorix_workspace_syncrejectskiroas target -- AddedkirotoAGENT_TARGETSenum (adapter was already implemented but missing from the tool's input schema)memorix_rules_syncmissingkirotarget -- AddedkirotoRULE_SOURCESenum so Kiro steering rules can be generated as a sync targetVS Code Copilot README config -- Separated
.vscode/mcp.json(workspace) andsettings.json(global) formats which have different JSON structures
[0.7.1] -- 2026-02-22
Fixed
Dashboard checkbox checkmark not visible -- Added
position: relative/absoluteto.obs-checkbox::afterso the ✓ renders correctly in batch select modeEmbedding provider status flickers to "fulltext only" -- Replaced
initializedboolean flag with a shared Promise lock; concurrent callers now wait for the same initialization instead of seeingprovider = nullmid-loadmemorix_dashboardMCP tool reliability -- Replaced fixed 800ms wait with TCP port polling (up to 5s) so the tool only returns after the HTTP server is actually listeningDashboard embedding status always shows "fulltext only" -- Fixed root cause: dashboard is an independent process,
isEmbeddingEnabled()from orama-store always returns false there; now usesprovider !== nulldirectly
[0.7.0] -- 2026-02-21
Added
Memory-Driven Skills Engine (
memorix_skillsMCP tool):list-- Discover allSKILL.mdfiles across 7 agent directoriesgenerate-- Auto-generate project-specific skills from observation patterns (gotchas, decisions, how-it-works)inject-- Return full skill content directly to agent contextIntelligent scoring: requires skill-worthy observation types, not just volume
Write to any target agent with
write: true, target: "<agent>"
Transformers.js Embedding Provider:
Pure JavaScript fallback (
@huggingface/transformers) -- no native deps requiredProvider chain:
fastembed->transformers.js-> fulltext-onlyQuantized model (
q8) for small footprint
Dashboard Enhancements:
Canvas donut chart for observation type distribution
Embedding provider status card (enabled/provider/dimensions)
Search result highlighting with
<mark>tags
17 new tests for Skills Engine (list, generate, inject, write, scoring, dedup)
Changed
Scoring algorithm requires at least 1 skill-worthy type (gotcha/decision/how-it-works/problem-solution/trade-off) -- pure discovery/what-changed entities won't generate skills
Volume bonus reduced from 2xobs to 1xobs (capped at 5) to favor quality over quantity
Type diversity bonus increased from 2 to 3 points per unique skill-worthy type
Fixed
422 tests passing (up from 405), 34 test files, zero regressions
[0.5.0] -- 2026-02-15
Added
Antigravity Adapter: Full support for Antigravity/Gemini IDE (MCP config + rules)
Copilot Adapter: VS Code Copilot MCP config adapter + rules format adapter
Comprehensive Documentation: 7 developer docs in
docs/(Architecture, Modules, API Reference, Design Decisions, Development Guide, Known Issues & Roadmap, AI Context)8 new npm keywords: antigravity, mcp-tool, memory-layer, ai-memory, progressive-disclosure, orama, vector-search, bm25
prepublishOnlynow runsnpm testin addition to build
Changed
README completely rewritten with clearer structure, npx zero-install setup, 6 agent configs, comparison table, Progressive Disclosure example, and architecture diagram
descriptionfield expanded for better npm search rankingfilesarray cleaned up (removed unusedexamplesdirectory)
Fixed
274 tests passing (up from 219), zero regressions
[0.1.0] -- 2026-02-14
Core
Knowledge Graph: Entity-Relation-Observation model (MCP Official compatible)
3-Layer Progressive Disclosure: compact search -> timeline -> detail
9 observation types with icon classification
Full-text search via Orama (BM25)
Per-project isolation via Git remote detection
14 MCP tools (9 official + 5 Memorix extensions)
Cross-Agent Sync
Rules Parser: 4 format adapters (Cursor, Claude Code, Codex, Windsurf)
Rules Syncer: scan -> deduplicate -> conflict detection -> cross-format generation
Workspace Sync: MCP config migration + workflow sync + apply with backup/rollback
Intelligence (Competitor-Inspired)
Access tracking: accessCount + lastAccessedAt (from mcp-memory-service)
Token budget: maxTokens search trimming (from MemCP)
Memory decay: exponential decay + retention lifecycle + immunity (from mcp-memory-service + MemCP)
Entity extraction: regex-based file/module/URL/CamelCase extraction (from MemCP)
Auto-enrichment: memorix_store auto-extracts and enriches concepts/files
Causal detection: "because/due to/caused by" pattern detection
Auto-relations: implicit Knowledge Graph relation creation (causes/fixes/modifies)
Retention status: memorix_retention MCP tool
Vector Search
Embedding provider abstraction layer (extensible)
fastembed integration (optional, local ONNX, 384-dim bge-small)
Orama hybrid search mode (BM25 + vector)
Graceful degradation: no fastembed -> fulltext only
Embedding cache (5000 entries LRU)
Agent Instructions
CLAUDE.md: Claude Code usage instructions + lifecycle hooks
Example configs for Cursor, Windsurf, Codex
512 files · 453 not served here
- .codegraph/.gitignore (not served here)
- .dockerignore (not served here)
- .env.example (not served here)
- .gitattributes (not served here)
- .github/hooks/memorix.json (not served here)
- .github/workflows/ci.yml (not served here)
- .github/workflows/publish.yml (not served here)
- .gitignore (not served here)
- .gitmodules (not served here)
- .npmignore (not served here)
- .opencode/plugins/memorix.js (not served here)
- .trae/rules/project_rules.md (not served here)
- .windsurf/workflows/deploy.md (not served here)
- .windsurf/workflows/pr-review.md (not served here)
- ACTIVE_WORK.md
- ATTRIBUTION.md
- AUTOGINEER-RUNS.md
- CHANGELOG.md
- CLAUDE.md
- Dockerfile (not served here)
- GEMINI.md
- LICENSE
- README.md
- README.zh-CN.md
- TEAM.md
- articles/dev-to-en.md (not served here)
- articles/product-hunt-en.md (not served here)
- articles/reddit-en.md (not served here)
- articles/show-hn-en.md (not served here)
- articles/xiaohongshu-zh.md (not served here)
- assets/logo.png (not served here)
- assets/readme-hero.svg (not served here)
- assets/readme-logo-bridge.png (not served here)
- assets/readme-tui-workbench.png (not served here)
- assets/tags/light/section-acknowledgements.svg (not served here)
- assets/tags/light/section-agents.svg (not served here)
- assets/tags/light/section-configuration.svg (not served here)
- assets/tags/light/section-development.svg (not served here)
- assets/tags/light/section-docker.svg (not served here)
- assets/tags/light/section-docs.svg (not served here)
- assets/tags/light/section-install.svg (not served here)
- assets/tags/light/section-license.svg (not served here)
- assets/tags/light/section-memcode.svg (not served here)
- assets/tags/light/section-memory-model.svg (not served here)
- assets/tags/light/section-overview.svg (not served here)
- assets/tags/light/section-quick-start.svg (not served here)
- assets/tags/light/section-runtime.svg (not served here)
- assets/tags/light/section-sdk.svg (not served here)
- assets/tags/section-acknowledgements.svg (not served here)
- assets/tags/section-agents.svg (not served here)
- assets/tags/section-configuration.svg (not served here)
- assets/tags/section-development.svg (not served here)
- assets/tags/section-docker.svg (not served here)
- assets/tags/section-docs.svg (not served here)
- assets/tags/section-install.svg (not served here)
- assets/tags/section-license.svg (not served here)
- assets/tags/section-memcode.svg (not served here)
- assets/tags/section-memory-model.svg (not served here)
- assets/tags/section-overview.svg (not served here)
- assets/tags/section-quick-start.svg (not served here)
- assets/tags/section-runtime.svg (not served here)
- assets/tags/section-sdk.svg (not served here)
- bun.lock (not served here)
- compose.yaml (not served here)
- docs/1.2.0-CLAIM-LEDGER.md
- docs/1.2.0-CODE-STATE.md
- docs/1.2.0-DEVELOPMENT-CHARTER.md
- docs/1.2.0-DYNAMIC-LIFECYCLE.md
- docs/1.2.0-EVALUATION-HARNESS.md
- docs/1.2.0-IMPLEMENTATION-PLAN.md
- docs/1.2.0-KNOWLEDGE-WORKFLOW-RESEARCH.md
- docs/1.2.0-KNOWLEDGE-WORKSPACE.md
- docs/1.2.0-PRODUCT-STORY.md
- docs/1.2.0-PROVIDER-QUALITY.md
- docs/1.2.0-WORKFLOW-INHERITANCE.md
- docs/1.2.0-WORKSET-RETRIEVAL.md
- docs/1.2.2-MEMORY-CONTROL-PLANE.md
- docs/1.2.4-PERSISTENT-MEMORY-DELIVERY.md
- docs/1.2.5-RETRIEVAL-PERFORMANCE.md
- docs/1.2.7-CONTEXT-CONTINUITY.md
- docs/1.3-MEMORY-ARCHITECTURE.md
- docs/1.3.3-MULTIMODAL-MEDIA-AND-MCP-COMPAT.md
- docs/1.4.2-EVIDENCE-GOVERNED-MEMORY-SPEC.md
- docs/1.4.3-CONTROLLED-AUDIO-TRANSCRIPTS.md
- docs/1.4.3-CONTROLLED-PDF-DERIVATIONS.md
- docs/1.4.3-GRAPH-EVIDENCE-EXPANSION.md
- docs/1.4.5-AGENT-AUTO-MEMORY-RESEARCH.md
- docs/1.8.0-RELEASE-CANDIDATE-SPEC.md
- docs/1.8.7-CODEGRAPH.md
- docs/AGENT_OPERATOR_PLAYBOOK.md
- docs/AI_CONTEXT.md
- docs/API_REFERENCE.md
- docs/ARCHITECTURE.md
- docs/CLOUD_SYNC_AND_MULTI_AGENT_RESEARCH.md
- docs/CONFIGURATION.md
- docs/DASHBOARD.md
- docs/DESIGN_DECISIONS.md
- docs/DEVELOPMENT.md
- docs/DOCKER.md
- docs/GIT_MEMORY.md
- docs/INTEGRATIONS.md
- docs/KNOWN_ISSUES_AND_ROADMAP.md
- docs/MEMCODE.md
- docs/MEMORY_FORMATION_PIPELINE.md
- docs/MODULES.md
- docs/MULTI-DEVICE-SYNC-RESEARCH.md
- docs/PERFORMANCE.md
- docs/PI_UPSTREAM.md
- docs/README.md
- docs/ROADMAP-1.9.12-2.0.md
- docs/SETUP.md
- docs/hooks-architecture.md
- docs/knowledge/workflows/memorix-release.md (not served here)
- docs/memcode/DESIGN.md (not served here)
- docs/memcode/HANDOFF.md (not served here)
- docs/superpowers/plans/2026-06-12-memcode-native-hooks-plan.md (not served here)
- docs/superpowers/plans/2026-06-14-unified-toml-config-plan.md (not served here)
- docs/superpowers/plans/2026-06-29-agent-autopilot-entrypoints.md (not served here)
- docs/superpowers/plans/2026-06-29-auto-context-layer.md (not served here)
- docs/superpowers/plans/2026-06-29-codegraph-memory-mvp.md (not served here)
- docs/superpowers/plans/2026-07-02-memory-autopilot-1.1.5.md (not served here)
- docs/superpowers/plans/2026-07-07-task-lensed-memory-brief.md (not served here)
- docs/superpowers/specs/2026-06-12-memcode-native-hooks-design.md (not served here)
- docs/superpowers/specs/2026-06-14-unified-toml-config-design.md (not served here)
- docs/superpowers/specs/2026-06-29-auto-context-layer-design.md (not served here)
- docs/superpowers/specs/2026-06-29-codegraph-memory-context-fabric-design.md (not served here)
- docs/superpowers/specs/2026-07-02-memory-autopilot-1.1.5-design.md (not served here)
- docs/superpowers/specs/2026-07-07-task-lensed-memory-brief-design.md (not served here)
- docs/superpowers/specs/2026-07-14-runtime-integrity-1.1.11-design.md (not served here)
- examples/CLAUDE.md (not served here)
- examples/claude-desktop-config.json (not served here)
- examples/cursor-mcp.json (not served here)
- examples/windsurf-mcp.json (not served here)
- llms-full.txt (not served here)
- llms.txt (not served here)
- memorix.example.yml (not served here)
- package-lock.json (not served here)
- package.json (not served here)
- packages/agent-core/README.md (not served here)
- packages/agent-core/docs/agent-harness.md (not served here)
- packages/agent-core/docs/durable-harness.md (not served here)
- packages/agent-core/docs/hooks.md (not served here)
- packages/agent-core/docs/observability.md (not served here)
- packages/agent-core/package.json (not served here)
- packages/agent-core/src/agent-loop.ts (not served here)
- packages/agent-core/src/agent.ts (not served here)
- packages/agent-core/src/harness/agent-harness.ts (not served here)
- packages/agent-core/src/harness/compaction/branch-summarization.ts (not served here)
- packages/agent-core/src/harness/compaction/compaction.ts (not served here)
- packages/agent-core/src/harness/compaction/utils.ts (not served here)
- packages/agent-core/src/harness/env/nodejs.ts (not served here)
- packages/agent-core/src/harness/messages.ts (not served here)
- packages/agent-core/src/harness/prompt-templates.ts (not served here)
- packages/agent-core/src/harness/session/jsonl-repo.ts (not served here)
- packages/agent-core/src/harness/session/jsonl-storage.ts (not served here)
- packages/agent-core/src/harness/session/memory-repo.ts (not served here)
- packages/agent-core/src/harness/session/memory-storage.ts (not served here)
- packages/agent-core/src/harness/session/repo-utils.ts (not served here)
- packages/agent-core/src/harness/session/session.ts (not served here)
- packages/agent-core/src/harness/session/uuid.ts (not served here)
- packages/agent-core/src/harness/skills.ts (not served here)
- packages/agent-core/src/harness/system-prompt.ts (not served here)
- packages/agent-core/src/harness/types.ts (not served here)
- packages/agent-core/src/harness/utils/shell-output.ts (not served here)
- packages/agent-core/src/harness/utils/truncate.ts (not served here)
- packages/agent-core/src/index.ts (not served here)
- packages/agent-core/src/node.ts (not served here)
- packages/agent-core/src/proxy.ts (not served here)
- packages/agent-core/src/types.ts (not served here)
- packages/agent-core/test/agent-loop.test.ts (not served here)
- packages/agent-core/test/agent.test.ts (not served here)
- packages/agent-core/test/e2e.test.ts (not served here)
- packages/agent-core/test/harness/agent-harness-stream.test.ts (not served here)
- packages/agent-core/test/harness/agent-harness.test.ts (not served here)
- packages/agent-core/test/harness/compaction.test.ts (not served here)
- packages/agent-core/test/harness/nodejs-env.test.ts (not served here)
- packages/agent-core/test/harness/prompt-templates.test.ts (not served here)
- packages/agent-core/test/harness/repo.test.ts (not served here)
- packages/agent-core/test/harness/resource-formatting.test.ts (not served here)
- packages/agent-core/test/harness/session-test-utils.ts (not served here)
- packages/agent-core/test/harness/session-uuid.test.ts (not served here)
- packages/agent-core/test/harness/session.test.ts (not served here)
- packages/agent-core/test/harness/skills.test.ts (not served here)
- packages/agent-core/test/harness/storage.test.ts (not served here)
- packages/agent-core/test/harness/system-prompt.test.ts (not served here)
- packages/agent-core/test/harness/truncate.test.ts (not served here)
- packages/agent-core/test/utils/calculate.ts (not served here)
- packages/agent-core/test/utils/get-current-time.ts (not served here)
- packages/agent-core/tsconfig.build.json (not served here)
- packages/agent-core/tsconfig.json (not served here)
- packages/agent-core/vitest.config.ts (not served here)
- packages/agent-core/vitest.harness.config.ts (not served here)
- packages/ai/README.md (not served here)
- packages/ai/bedrock-provider.d.ts (not served here)
- packages/ai/bedrock-provider.js (not served here)
- packages/ai/package.json (not served here)
- packages/ai/scripts/generate-image-models.ts (not served here)
- packages/ai/scripts/generate-models.ts (not served here)
- packages/ai/scripts/generate-test-image.ts (not served here)
- packages/ai/src/api-registry.ts (not served here)
- packages/ai/src/bedrock-provider.ts (not served here)
- packages/ai/src/cli.ts (not served here)
- packages/ai/src/env-api-keys.ts (not served here)
- packages/ai/src/image-models.generated.ts (not served here)
- packages/ai/src/image-models.ts (not served here)
- packages/ai/src/images-api-registry.ts (not served here)
- packages/ai/src/images.ts (not served here)
- packages/ai/src/index.ts (not served here)
- packages/ai/src/minimax-models.ts (not served here)
- packages/ai/src/models.generated.ts (not served here)
- packages/ai/src/models.ts (not served here)
- packages/ai/src/oauth.ts (not served here)
- packages/ai/src/providers/amazon-bedrock.ts (not served here)
- packages/ai/src/providers/anthropic.ts (not served here)
- packages/ai/src/providers/azure-openai-responses.ts (not served here)
- packages/ai/src/providers/cloudflare.ts (not served here)
- packages/ai/src/providers/faux.ts (not served here)
- packages/ai/src/providers/github-copilot-headers.ts (not served here)
- packages/ai/src/providers/google-shared.ts (not served here)
- packages/ai/src/providers/google-vertex.ts (not served here)
- packages/ai/src/providers/google.ts (not served here)
- packages/ai/src/providers/images/minimax.ts (not served here)
- packages/ai/src/providers/images/openrouter.ts (not served here)
- packages/ai/src/providers/images/register-builtins.ts (not served here)
- packages/ai/src/providers/mistral.ts (not served here)
- packages/ai/src/providers/openai-codex-responses.ts (not served here)
- packages/ai/src/providers/openai-completions.ts (not served here)
- packages/ai/src/providers/openai-prompt-cache.ts (not served here)
- packages/ai/src/providers/openai-responses-shared.ts (not served here)
- packages/ai/src/providers/openai-responses.ts (not served here)
- packages/ai/src/providers/register-builtins.ts (not served here)
- packages/ai/src/providers/simple-options.ts (not served here)
- packages/ai/src/providers/transform-messages.ts (not served here)
- packages/ai/src/session-resources.ts (not served here)
- packages/ai/src/stream.ts (not served here)
- packages/ai/src/types.ts (not served here)
- packages/ai/src/utils/abort-signals.ts (not served here)
- packages/ai/src/utils/diagnostics.ts (not served here)
- packages/ai/src/utils/event-stream.ts (not served here)
- packages/ai/src/utils/hash.ts (not served here)
- packages/ai/src/utils/headers.ts (not served here)
- packages/ai/src/utils/json-parse.ts (not served here)
- packages/ai/src/utils/node-http-proxy.ts (not served here)
- packages/ai/src/utils/oauth/anthropic.ts (not served here)
- packages/ai/src/utils/oauth/device-code.ts (not served here)
- packages/ai/src/utils/oauth/github-copilot.ts (not served here)
- packages/ai/src/utils/oauth/index.ts (not served here)
- packages/ai/src/utils/oauth/oauth-page.ts (not served here)
- packages/ai/src/utils/oauth/openai-codex.ts (not served here)
- packages/ai/src/utils/oauth/pkce.ts (not served here)
- packages/ai/src/utils/oauth/types.ts (not served here)
- packages/ai/src/utils/overflow.ts (not served here)
- packages/ai/src/utils/sanitize-unicode.ts (not served here)
- packages/ai/src/utils/typebox-helpers.ts (not served here)
- packages/ai/src/utils/validation.ts (not served here)
- packages/ai/test/abort.test.ts (not served here)
- packages/ai/test/anthropic-adaptive-thinking-models.test.ts (not served here)
- packages/ai/test/anthropic-eager-tool-input-compat.test.ts (not served here)
- packages/ai/test/anthropic-eager-tool-input-e2e.test.ts (not served here)
- packages/ai/test/anthropic-empty-thinking-signature-compat.test.ts (not served here)
- packages/ai/test/anthropic-force-adaptive-thinking.test.ts (not served here)
- packages/ai/test/anthropic-long-cache-retention-e2e.test.ts (not served here)
- packages/ai/test/anthropic-oauth.test.ts (not served here)
- packages/ai/test/anthropic-opus-4-8-smoke.test.ts (not served here)
- packages/ai/test/anthropic-sse-parsing.test.ts (not served here)
- packages/ai/test/anthropic-temperature-compat.test.ts (not served here)
- packages/ai/test/anthropic-thinking-disable.test.ts (not served here)
- packages/ai/test/anthropic-tool-name-normalization.test.ts (not served here)
- packages/ai/test/azure-openai-base-url.test.ts (not served here)
- packages/ai/test/azure-utils.ts (not served here)
- packages/ai/test/bedrock-convert-messages.test.ts (not served here)
- packages/ai/test/bedrock-custom-headers.test.ts (not served here)
- packages/ai/test/bedrock-endpoint-resolution.test.ts (not served here)
- packages/ai/test/bedrock-models.test.ts (not served here)
- packages/ai/test/bedrock-thinking-payload.test.ts (not served here)
- packages/ai/test/bedrock-utils.ts (not served here)
- packages/ai/test/cache-retention.test.ts (not served here)
- packages/ai/test/cloudflare-utils.ts (not served here)
- packages/ai/test/codex-websocket-cached-probe.ts (not served here)
- packages/ai/test/context-overflow.test.ts (not served here)
- packages/ai/test/cross-provider-handoff.test.ts (not served here)
- packages/ai/test/data/red-circle.png (not served here)
- packages/ai/test/empty.test.ts (not served here)
- packages/ai/test/env-api-keys.test.ts (not served here)
- packages/ai/test/faux-provider.test.ts (not served here)
- packages/ai/test/fireworks-models.test.ts (not served here)
- packages/ai/test/generate-models-fallback.test.ts (not served here)
- packages/ai/test/github-copilot-anthropic.test.ts (not served here)
- packages/ai/test/github-copilot-oauth.test.ts (not served here)
- packages/ai/test/google-shared-convert-tools.test.ts (not served here)
- packages/ai/test/google-shared-gemini3-unsigned-tool-call.test.ts (not served here)
- packages/ai/test/google-shared-image-tool-result-routing.test.ts (not served here)
- packages/ai/test/google-thinking-disable.test.ts (not served here)
- packages/ai/test/google-thinking-signature.test.ts (not served here)
- packages/ai/test/google-vertex-api-key-resolution.test.ts (not served here)
- packages/ai/test/image-tool-result.test.ts (not served here)
- packages/ai/test/images.test.ts (not served here)
- packages/ai/test/interleaved-thinking.test.ts (not served here)
- packages/ai/test/lazy-module-load.test.ts (not served here)
- packages/ai/test/live-test-gate.test.ts (not served here)
- packages/ai/test/live-test-gate.ts (not served here)
- packages/ai/test/minimax-flash.test.ts (not served here)
- packages/ai/test/minimax-images.test.ts (not served here)
- packages/ai/test/minimax-models.test.ts (not served here)
- packages/ai/test/minimax-video-input.test.ts (not served here)
- packages/ai/test/mistral-reasoning-mode.test.ts (not served here)
- packages/ai/test/mistral-tool-schema.test.ts (not served here)
- packages/ai/test/node-http-proxy.test.ts (not served here)
- packages/ai/test/oauth-device-code.test.ts (not served here)
- packages/ai/test/oauth.ts (not served here)
- packages/ai/test/openai-codex-cache-affinity-e2e.test.ts (not served here)
- packages/ai/test/openai-codex-oauth.test.ts (not served here)
- packages/ai/test/openai-codex-stream.test.ts (not served here)
- packages/ai/test/openai-completions-cache-control-format.test.ts (not served here)
- packages/ai/test/openai-completions-empty-tools.test.ts (not served here)
- packages/ai/test/openai-completions-prompt-cache.test.ts (not served here)
- packages/ai/test/openai-completions-response-model.test.ts (not served here)
- packages/ai/test/openai-completions-retry.test.ts (not served here)
- packages/ai/test/openai-completions-thinking-as-text.test.ts (not served here)
- packages/ai/test/openai-completions-tool-choice.test.ts (not served here)
- packages/ai/test/openai-completions-tool-result-images.test.ts (not served here)
- packages/ai/test/openai-responses-cache-affinity-e2e.test.ts (not served here)
- packages/ai/test/openai-responses-copilot-provider.test.ts (not served here)
- packages/ai/test/openai-responses-foreign-toolcall-id.test.ts (not served here)
- packages/ai/test/openai-responses-message-id.test.ts (not served here)
- packages/ai/test/openai-responses-partial-json-cleanup.test.ts (not served here)
- packages/ai/test/openai-responses-reasoning-replay-e2e.test.ts (not served here)
- packages/ai/test/openai-responses-tool-result-images.test.ts (not served here)
- packages/ai/test/openrouter-cache-write-repro.test.ts (not served here)
- packages/ai/test/openrouter-images.test.ts (not served here)
- packages/ai/test/overflow.test.ts (not served here)
- packages/ai/test/responseid.test.ts (not served here)
- packages/ai/test/setup.ts (not served here)
- packages/ai/test/stream.test.ts (not served here)
- packages/ai/test/supports-xhigh.test.ts (not served here)
- packages/ai/test/together-models.test.ts (not served here)
- packages/ai/test/tokens.test.ts (not served here)
- packages/ai/test/tool-call-id-normalization.test.ts (not served here)
- packages/ai/test/tool-call-without-result.test.ts (not served here)
- packages/ai/test/total-tokens.test.ts (not served here)
- packages/ai/test/transform-messages-copilot-openai-to-anthropic.test.ts (not served here)
- packages/ai/test/unicode-surrogate.test.ts (not served here)
- packages/ai/test/validation.test.ts (not served here)
- packages/ai/test/xhigh.test.ts (not served here)
- packages/ai/test/xiaomi-models.test.ts (not served here)
- packages/ai/test/xiaomi-token-plan-ams-anthropic-empty-signature-smoke.test.ts (not served here)
- packages/ai/test/zen.test.ts (not served here)
- packages/ai/tsconfig.build.json (not served here)
- packages/ai/tsconfig.json (not served here)
- packages/ai/vitest.config.ts (not served here)
- packages/memcode/.gitignore (not served here)
- packages/memcode/README.md (not served here)
- packages/memcode/docs/compaction.md (not served here)
- packages/memcode/docs/containerization.md (not served here)
- packages/memcode/docs/custom-provider.md (not served here)
- packages/memcode/docs/development.md (not served here)
- packages/memcode/docs/docs.json (not served here)
- packages/memcode/docs/extensions.md (not served here)
- packages/memcode/docs/images/doom-extension.png (not served here)
- packages/memcode/docs/images/interactive-mode.png (not served here)
- packages/memcode/docs/images/tree-view.png (not served here)
- packages/memcode/docs/index.md (not served here)
- packages/memcode/docs/json.md (not served here)
- packages/memcode/docs/keybindings.md (not served here)
- packages/memcode/docs/models.md (not served here)
- packages/memcode/docs/packages.md (not served here)
- packages/memcode/docs/prompt-templates.md (not served here)
- packages/memcode/docs/providers.md (not served here)
- packages/memcode/docs/quickstart.md (not served here)
- packages/memcode/docs/rpc.md (not served here)
- packages/memcode/docs/sdk.md (not served here)
- packages/memcode/docs/security.md (not served here)
- packages/memcode/docs/session-format.md (not served here)
- packages/memcode/docs/sessions.md (not served here)
- packages/memcode/docs/settings.md (not served here)
- packages/memcode/docs/shell-aliases.md (not served here)
- packages/memcode/docs/skills.md (not served here)
- packages/memcode/docs/terminal-setup.md (not served here)
- packages/memcode/docs/termux.md (not served here)
- packages/memcode/docs/themes.md (not served here)
- packages/memcode/docs/tmux.md (not served here)
- packages/memcode/docs/tui.md (not served here)
- packages/memcode/docs/usage.md (not served here)
- packages/memcode/docs/windows.md (not served here)
- packages/memcode/examples/README.md (not served here)
- packages/memcode/examples/extensions/README.md (not served here)
- packages/memcode/examples/extensions/auto-commit-on-exit.ts (not served here)
- packages/memcode/examples/extensions/bash-spawn-hook.ts (not served here)
- packages/memcode/examples/extensions/bookmark.ts (not served here)
- packages/memcode/examples/extensions/border-status-editor.ts (not served here)
- packages/memcode/examples/extensions/built-in-tool-renderer.ts (not served here)
- packages/memcode/examples/extensions/claude-rules.ts (not served here)
- packages/memcode/examples/extensions/commands.ts (not served here)
- packages/memcode/examples/extensions/confirm-destructive.ts (not served here)
- packages/memcode/examples/extensions/custom-compaction.ts (not served here)
- packages/memcode/examples/extensions/custom-footer.ts (not served here)
- packages/memcode/examples/extensions/custom-header.ts (not served here)
- packages/memcode/examples/extensions/custom-provider-anthropic/.gitignore (not served here)
- packages/memcode/examples/extensions/custom-provider-anthropic/index.ts (not served here)
- packages/memcode/examples/extensions/custom-provider-anthropic/package-lock.json (not served here)
- packages/memcode/examples/extensions/custom-provider-anthropic/package.json (not served here)
- packages/memcode/examples/extensions/custom-provider-gitlab-duo/.gitignore (not served here)
- packages/memcode/examples/extensions/custom-provider-gitlab-duo/index.ts (not served here)
- packages/memcode/examples/extensions/custom-provider-gitlab-duo/package.json (not served here)
- packages/memcode/examples/extensions/custom-provider-gitlab-duo/test.ts (not served here)
- packages/memcode/examples/extensions/dirty-repo-guard.ts (not served here)
- packages/memcode/examples/extensions/doom-overlay/.gitignore (not served here)
- packages/memcode/examples/extensions/doom-overlay/README.md (not served here)
- packages/memcode/examples/extensions/doom-overlay/doom-component.ts (not served here)
- packages/memcode/examples/extensions/doom-overlay/doom-engine.ts (not served here)
- packages/memcode/examples/extensions/doom-overlay/doom-keys.ts (not served here)
- packages/memcode/examples/extensions/doom-overlay/doom/build.sh (not served here)
- packages/memcode/examples/extensions/doom-overlay/doom/build/doom.js (not served here)
- packages/memcode/examples/extensions/doom-overlay/doom/build/doom.wasm (not served here)
- packages/memcode/examples/extensions/doom-overlay/doom/doomgeneric_pi.c (not served here)
- packages/memcode/examples/extensions/doom-overlay/index.ts (not served here)
- packages/memcode/examples/extensions/doom-overlay/wad-finder.ts (not served here)
- packages/memcode/examples/extensions/dynamic-resources/SKILL.md (not served here)
- packages/memcode/examples/extensions/dynamic-resources/dynamic.json (not served here)
- packages/memcode/examples/extensions/dynamic-resources/dynamic.md (not served here)
- packages/memcode/examples/extensions/dynamic-resources/index.ts (not served here)
- packages/memcode/examples/extensions/dynamic-tools.ts (not served here)
- packages/memcode/examples/extensions/event-bus.ts (not served here)
- packages/memcode/examples/extensions/file-trigger.ts (not served here)
- packages/memcode/examples/extensions/git-checkpoint.ts (not served here)
- packages/memcode/examples/extensions/git-merge-and-resolve.ts (not served here)
- packages/memcode/examples/extensions/github-issue-autocomplete.ts (not served here)
- packages/memcode/examples/extensions/gondolin/.gitignore (not served here)
- packages/memcode/examples/extensions/gondolin/index.ts (not served here)
- packages/memcode/examples/extensions/gondolin/package-lock.json (not served here)
- packages/memcode/examples/extensions/gondolin/package.json (not served here)
- packages/memcode/examples/extensions/handoff.ts (not served here)
- packages/memcode/examples/extensions/hello.ts (not served here)
- packages/memcode/examples/extensions/hidden-thinking-label.ts (not served here)
- packages/memcode/examples/extensions/inline-bash.ts (not served here)
- packages/memcode/examples/extensions/input-transform-streaming.ts (not served here)
- packages/memcode/examples/extensions/input-transform.ts (not served here)
- packages/memcode/examples/extensions/interactive-shell.ts (not served here)
- packages/memcode/examples/extensions/mac-system-theme.ts (not served here)
- packages/memcode/examples/extensions/message-renderer.ts (not served here)
- packages/memcode/examples/extensions/minimal-mode.ts (not served here)
- packages/memcode/examples/extensions/modal-editor.ts (not served here)
- packages/memcode/examples/extensions/model-status.ts (not served here)
- packages/memcode/examples/extensions/notify.ts (not served here)
- packages/memcode/examples/extensions/overlay-qa-tests.ts (not served here)
- packages/memcode/examples/extensions/overlay-test.ts (not served here)
- packages/memcode/examples/extensions/permission-gate.ts (not served here)
- packages/memcode/examples/extensions/pirate.ts (not served here)
- packages/memcode/examples/extensions/plan-mode/README.md (not served here)
- packages/memcode/examples/extensions/plan-mode/index.ts (not served here)
- packages/memcode/examples/extensions/plan-mode/utils.ts (not served here)
- packages/memcode/examples/extensions/preset.ts (not served here)
- packages/memcode/examples/extensions/project-trust.ts (not served here)
- packages/memcode/examples/extensions/prompt-customizer.ts (not served here)
- packages/memcode/examples/extensions/protected-paths.ts (not served here)
- packages/memcode/examples/extensions/provider-payload.ts (not served here)
- packages/memcode/examples/extensions/qna.ts (not served here)
- packages/memcode/examples/extensions/question.ts (not served here)
- packages/memcode/examples/extensions/questionnaire.ts (not served here)
- packages/memcode/examples/extensions/rainbow-editor.ts (not served here)
- packages/memcode/examples/extensions/reload-runtime.ts (not served here)
- packages/memcode/examples/extensions/rpc-demo.ts (not served here)
- packages/memcode/examples/extensions/sandbox/.gitignore (not served here)
- packages/memcode/examples/extensions/sandbox/index.ts (not served here)
- packages/memcode/examples/extensions/sandbox/package-lock.json (not served here)
- packages/memcode/examples/extensions/sandbox/package.json (not served here)
- packages/memcode/examples/extensions/send-user-message.ts (not served here)
- packages/memcode/examples/extensions/session-name.ts (not served here)
- packages/memcode/examples/extensions/shutdown-command.ts (not served here)
- packages/memcode/examples/extensions/snake.ts (not served here)
- packages/memcode/examples/extensions/space-invaders.ts (not served here)
- packages/memcode/examples/extensions/ssh.ts (not served here)
- packages/memcode/examples/extensions/status-line.ts (not served here)
- packages/memcode/examples/extensions/structured-output.ts (not served here)
- packages/memcode/examples/extensions/subagent/README.md (not served here)
- packages/memcode/examples/extensions/subagent/agents.ts (not served here)
- packages/memcode/examples/extensions/subagent/agents/planner.md (not served here)
- packages/memcode/examples/extensions/subagent/agents/reviewer.md (not served here)
- packages/memcode/examples/extensions/subagent/agents/scout.md (not served here)
- packages/memcode/examples/extensions/subagent/agents/worker.md (not served here)
- packages/memcode/examples/extensions/subagent/index.ts (not served here)
- packages/memcode/examples/extensions/subagent/prompts/implement-and-review.md (not served here)
- packages/memcode/examples/extensions/subagent/prompts/implement.md (not served here)
- packages/memcode/examples/extensions/subagent/prompts/scout-and-plan.md (not served here)
- packages/memcode/examples/extensions/summarize.ts (not served here)
- packages/memcode/examples/extensions/system-prompt-header.ts (not served here)
- packages/memcode/examples/extensions/tic-tac-toe.ts (not served here)
- packages/memcode/examples/extensions/timed-confirm.ts (not served here)
- packages/memcode/examples/extensions/titlebar-spinner.ts (not served here)
- packages/memcode/examples/extensions/todo.ts (not served here)
- packages/memcode/examples/extensions/tool-override.ts (not served here)
- packages/memcode/examples/extensions/tools.ts (not served here)
- packages/memcode/examples/extensions/trigger-compact.ts (not served here)
- packages/memcode/examples/extensions/truncated-tool.ts (not served here)
- packages/memcode/examples/extensions/widget-placement.ts (not served here)
- packages/memcode/examples/extensions/with-deps/.gitignore (not served here)
- packages/memcode/examples/extensions/with-deps/index.ts (not served here)
- packages/memcode/examples/extensions/with-deps/package-lock.json (not served here)
- packages/memcode/examples/extensions/with-deps/package.json (not served here)
- packages/memcode/examples/extensions/working-indicator.ts (not served here)
- packages/memcode/examples/extensions/working-message-test.ts (not served here)
- packages/memcode/examples/rpc-extension-ui.ts (not served here)
- packages/memcode/examples/sdk/01-minimal.ts (not served here)
- packages/memcode/examples/sdk/02-custom-model.ts (not served here)
- packages/memcode/examples/sdk/03-custom-prompt.ts (not served here)
- packages/memcode/examples/sdk/04-skills.ts (not served here)
- packages/memcode/examples/sdk/05-tools.ts (not served here)
- packages/memcode/examples/sdk/06-extensions.ts (not served here)
- packages/memcode/examples/sdk/07-context-files.ts (not served here)
- packages/memcode/examples/sdk/08-prompt-templates.ts (not served here)
- packages/memcode/examples/sdk/09-api-keys-and-oauth.ts (not served here)
- server.json
Advantages
- Local-first: the memory stays in files or a database on your own machine (a rule-derived fact from the brain’s files, evidence: README.md)
- Works with 14 MCP clients (a rule-derived fact from the brain’s files, evidence: README.md)
- Open licence (Apache-2.0) (a rule-derived fact from the brain’s files)
Limitations
- Needs an API key (ANTHROPIC_API_KEY, API_ROUTE_API_KEY, ATLASCLOUD_API_KEY) (a rule-derived fact from the brain’s files, evidence: README.md)
- Needs a database (LanceDB, PostgreSQL, SQLite) (a rule-derived fact from the brain’s files, evidence: README.md)
- Runs code automatically: review what it runs before you open it (a rule-derived fact from the brain’s files)
- No ZIP download: install it from its source (a rule-derived fact from the brain’s files)
Security
Risk level: Low risk
This brain runs
Agent instructions that run or fetch something (23)
CLAUDE.md:CLI fallback: only after MCP is confirmed unavailable, run `memorix context --task "<current task>"` from the shell instead of skipping memory or hand-writing tool callsplugins/claude/memorix/SKILL.md:Run `memorix context --task "<task>" --fallback --brief-json` only after MCP is unavailable, disabled, or not discoverable, and pass the user's real task text.plugins/claude/memorix/skills/memorix-git-memory/SKILL.md:| Situation | Prefer | CLI fallback | |---|---|---| | Search what changed | `memorix_search` with a change-focused query | `memorix memory search --query "what changed <topic>"` | | Inspect a git-backed memory | `memorix_detail` | `memorix memory detail --id <id>` | | Ingest current co …[+257 chars]plugins/claude/memorix/skills/memorix-memory/SKILL.md:Run `memorix context --task "<task>" --fallback --brief-json` from the shell only after MCP is unavailable, disabled, or not discoverable, and pass the user's real task text.plugins/claude/memorix/skills/memorix-orchestrate/SKILL.md:| Situation | Prefer | CLI fallback | |---|---|---| | Run managed subagent execution | CLI | `memorix orchestrate --goal "<goal>" --agents claude:1,codex:1` | | Register coordination identity | `team_manage` action `join` | `memorix team join --agentType <agent>` | | Create or inspect …[+385 chars]plugins/claude/memorix/skills/memorix-troubleshooting/SKILL.md:| Symptom | Check | CLI fallback | |---|---|---| | MCP tools missing | host MCP config and restart | `memorix setup --agent <agent>` | | Unsure project is bound | project status | `memorix status` and `git status` | | HTTP MCP stale or unbound | background health and explicit session bi …[+33 chars]plugins/codebuddy/memorix/skills/memorix-git-memory/SKILL.md:| Situation | Prefer | CLI fallback | |---|---|---| | Search what changed | `memorix_search` with a change-focused query | `memorix memory search --query "what changed <topic>"` | | Inspect a git-backed memory | `memorix_detail` | `memorix memory detail --id <id>` | | Ingest current co …[+257 chars]plugins/codebuddy/memorix/skills/memorix-memory/SKILL.md:Run `memorix context --task "<task>" --fallback --brief-json` from the shell only after MCP is unavailable, disabled, or not discoverable, and pass the user's real task text.plugins/codebuddy/memorix/skills/memorix-orchestrate/SKILL.md:| Situation | Prefer | CLI fallback | |---|---|---| | Run managed subagent execution | CLI | `memorix orchestrate --goal "<goal>" --agents claude:1,codex:1` | | Register coordination identity | `team_manage` action `join` | `memorix team join --agentType <agent>` | | Create or inspect …[+385 chars]plugins/codebuddy/memorix/skills/memorix-troubleshooting/SKILL.md:| Symptom | Check | CLI fallback | |---|---|---| | MCP tools missing | host MCP config and restart | `memorix setup --agent <agent>` | | Unsure project is bound | project status | `memorix status` and `git status` | | HTTP MCP stale or unbound | background health and explicit session bi …[+33 chars]plugins/codex/memorix/skills/memorix-git-memory/SKILL.md:| Situation | Prefer | CLI fallback | |---|---|---| | Search what changed | `memorix_search` with a change-focused query | `memorix memory search --query "what changed <topic>"` | | Inspect a git-backed memory | `memorix_detail` | `memorix memory detail --id <id>` | | Ingest current co …[+257 chars]plugins/codex/memorix/skills/memorix-memory/SKILL.md:Run `memorix context --task "<task>" --fallback --brief-json` only after MCP is unavailable, disabled, or not discoverable, and pass the user's real task text.plugins/codex/memorix/skills/memorix-orchestrate/SKILL.md:| Situation | Prefer | CLI fallback | |---|---|---| | Run managed subagent execution | CLI | `memorix orchestrate --goal "<goal>" --agents claude:1,codex:1` | | Register coordination identity | `team_manage` action `join` | `memorix team join --agentType <agent>` | | Create or inspect …[+385 chars]plugins/codex/memorix/skills/memorix-troubleshooting/SKILL.md:| Symptom | Check | CLI fallback | |---|---|---| | MCP tools missing | host MCP config and restart | `memorix setup --agent <agent>` | | Unsure project is bound | project status | `memorix status` and `git status` | | HTTP MCP stale or unbound | background health and explicit session bi …[+33 chars]plugins/copilot/memorix/skills/memorix-git-memory/SKILL.md:| Situation | Prefer | CLI fallback | |---|---|---| | Search what changed | `memorix_search` with a change-focused query | `memorix memory search --query "what changed <topic>"` | | Inspect a git-backed memory | `memorix_detail` | `memorix memory detail --id <id>` | | Ingest current co …[+257 chars]plugins/copilot/memorix/skills/memorix-memory/SKILL.md:Run `memorix context --task "<task>" --fallback --brief-json` only after MCP is unavailable, disabled, or not discoverable, and pass the user's real task text.plugins/copilot/memorix/skills/memorix-orchestrate/SKILL.md:| Situation | Prefer | CLI fallback | |---|---|---| | Run managed subagent execution | CLI | `memorix orchestrate --goal "<goal>" --agents claude:1,codex:1` | | Register coordination identity | `team_manage` action `join` | `memorix team join --agentType <agent>` | | Create or inspect …[+385 chars]plugins/copilot/memorix/skills/memorix-troubleshooting/SKILL.md:| Symptom | Check | CLI fallback | |---|---|---| | MCP tools missing | host MCP config and restart | `memorix setup --agent <agent>` | | Unsure project is bound | project status | `memorix status` and `git status` | | HTTP MCP stale or unbound | background health and explicit session bi …[+33 chars]plugins/cursor/memorix/skills/memorix-git-memory/SKILL.md:| Situation | Prefer | CLI fallback | |---|---|---| | Search what changed | `memorix_search` with a change-focused query | `memorix memory search --query "what changed <topic>"` | | Inspect a git-backed memory | `memorix_detail` | `memorix memory detail --id <id>` | | Ingest current co …[+257 chars]plugins/cursor/memorix/skills/memorix-memory/SKILL.md:Run `memorix context --task "<task>" --fallback --brief-json` only after MCP is unavailable, disabled, or not discoverable, and pass the user's real task text.plugins/cursor/memorix/skills/memorix-orchestrate/SKILL.md:| Situation | Prefer | CLI fallback | |---|---|---| | Run managed subagent execution | CLI | `memorix orchestrate --goal "<goal>" --agents claude:1,codex:1` | | Register coordination identity | `team_manage` action `join` | `memorix team join --agentType <agent>` | | Create or inspect …[+385 chars]plugins/cursor/memorix/skills/memorix-troubleshooting/SKILL.md:| Symptom | Check | CLI fallback | |---|---|---| | MCP tools missing | host MCP config and restart | `memorix setup --agent <agent>` | | Unsure project is bound | project status | `memorix status` and `git status` | | HTTP MCP stale or unbound | background health and explicit session bi …[+33 chars]plugins/gemini/memorix/GEMINI.md:Run `memorix context --task "<task>" --fallback --brief-json` only after MCP is unavailable, disabled, or not discoverable, and pass the user's real task text.
MCP servers (7)
README.md(memorix):memorix serveplugins/claude/memorix/.mcp.json(memorix):memorix serve --mode liteplugins/codebuddy/memorix/.mcp.json(memorix):memorix serve --mode liteplugins/codex/memorix/.mcp.json(memorix):memorix serve --mode liteplugins/copilot/memorix/.mcp.json(memorix):memorix serve --mode liteplugins/gemini/memorix/gemini-extension.json(memorix):memorix serve --mode liteplugins/openclaw/memorix/.mcp.json(memorix):memorix serve --mode lite
Hooks (20)
plugins/claude/memorix/hooks/hooks.json(SessionStart):memorix hookplugins/claude/memorix/hooks/hooks.json(PostToolUse):memorix hookplugins/claude/memorix/hooks/hooks.json(UserPromptSubmit):memorix hookplugins/claude/memorix/hooks/hooks.json(PreCompact):memorix hookplugins/claude/memorix/hooks/hooks.json(Stop):memorix hookplugins/codebuddy/memorix/hooks/hooks.json(SessionStart):memorix hook --agent codebuddyplugins/codebuddy/memorix/hooks/hooks.json(UserPromptSubmit):memorix hook --agent codebuddyplugins/codebuddy/memorix/hooks/hooks.json(PostToolUse):memorix hook --agent codebuddyplugins/codebuddy/memorix/hooks/hooks.json(PreCompact):memorix hook --agent codebuddyplugins/codebuddy/memorix/hooks/hooks.json(Stop):memorix hook --agent codebuddyplugins/codex/memorix/hooks/hooks.json(SessionStart):memorix hook --agent codexplugins/codex/memorix/hooks/hooks.json(PostToolUse):memorix hook --agent codexplugins/codex/memorix/hooks/hooks.json(UserPromptSubmit):memorix hook --agent codexplugins/codex/memorix/hooks/hooks.json(PreCompact):memorix hook --agent codexplugins/codex/memorix/hooks/hooks.json(Stop):memorix hook --agent codexplugins/copilot/memorix/hooks/hooks.json(sessionStart):memorix hook --agent copilotplugins/copilot/memorix/hooks/hooks.json(sessionEnd):memorix hook --agent copilotplugins/copilot/memorix/hooks/hooks.json(userPromptSubmitted):memorix hook --agent copilotplugins/copilot/memorix/hooks/hooks.json(postToolUse):memorix hook --agent copilotplugins/copilot/memorix/hooks/hooks.json(preCompact):memorix hook --agent copilot
Binaries (5)
packages/memcode/examples/extensions/doom-overlay/doom/build/doom.wasm:ships native binariespackages/tui/native/darwin/prebuilds/darwin-arm64/darwin-modifiers.node:ships native binariespackages/tui/native/darwin/prebuilds/darwin-x64/darwin-modifiers.node:ships native binariespackages/tui/native/win32/prebuilds/win32-arm64/win32-console-mode.node:ships native binariespackages/tui/native/win32/prebuilds/win32-x64/win32-console-mode.node:ships native binaries
- Low risk: scripts-present (scripts/benchmark-retrieval.mjs)
- Low risk: scripts-present (scripts/large-store-gate.mjs)
Attribution and licence
- First committed by
AVIDS2
- Declared authors
- AVIDS2 (declared in package.json)
- Publisher
- Le_Ho (Community)
- Source
- AVIDS2/memorix · commit 6745280
- Licence
- Apache License 2.0 (files served here)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
- Contributors
- AVIDS2, noirgif, Tom-Ma-Ming, octo-patch, DennyHo0917
AutoGineer is not affiliated with or endorsed by AVIDS2.
Install from source
453 of its files are not served here, so there is no ZIP. AVIDS2/memorix at 6745280