superlocalmemory 4.1.20 → 4.1.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +106 -0
  3. package/README.md +210 -55
  4. package/package.json +1 -1
  5. package/plugin/.claude-plugin/plugin.json +1 -1
  6. package/plugin/CLAUDE.md +3 -3
  7. package/plugin/agents/slm-governance-advisor.md +1 -1
  8. package/plugin/agents/slm-loop-runner.md +1 -1
  9. package/plugin/agents/slm-memory-advisor.md +1 -1
  10. package/plugin/agents/slm-optimize-advisor.md +1 -1
  11. package/plugin/requirements.txt +1 -1
  12. package/plugin/skills/slm-cache/SKILL.md +1 -1
  13. package/plugin/skills/slm-compress/SKILL.md +1 -1
  14. package/plugin/skills/slm-governance/SKILL.md +1 -1
  15. package/plugin/skills/slm-graph/SKILL.md +1 -1
  16. package/plugin/skills/slm-loop/SKILL.md +1 -1
  17. package/plugin/skills/slm-mesh/SKILL.md +1 -1
  18. package/plugin/skills/slm-profile/SKILL.md +3 -3
  19. package/plugin/skills/slm-recall/SKILL.md +1 -1
  20. package/plugin/skills/slm-remember/SKILL.md +1 -1
  21. package/plugin/skills/slm-scope/SKILL.md +1 -1
  22. package/plugin/skills/slm-session/SKILL.md +1 -1
  23. package/plugin/skills/slm-status/SKILL.md +1 -1
  24. package/plugin-src/agents/slm-memory-advisor.md +1 -1
  25. package/plugin-src/agents/slm-optimize-advisor.md +1 -1
  26. package/plugin-src/rules/AGENTS.md +3 -3
  27. package/plugin-src/skills/slm-cache/SKILL.md +1 -1
  28. package/plugin-src/skills/slm-compress/SKILL.md +1 -1
  29. package/plugin-src/skills/slm-governance/SKILL.md +1 -1
  30. package/plugin-src/skills/slm-graph/SKILL.md +1 -1
  31. package/plugin-src/skills/slm-loop/SKILL.md +1 -1
  32. package/plugin-src/skills/slm-mesh/SKILL.md +1 -1
  33. package/plugin-src/skills/slm-profile/SKILL.md +3 -3
  34. package/plugin-src/skills/slm-recall/SKILL.md +1 -1
  35. package/plugin-src/skills/slm-remember/SKILL.md +1 -1
  36. package/plugin-src/skills/slm-scope/SKILL.md +1 -1
  37. package/plugin-src/skills/slm-session/SKILL.md +1 -1
  38. package/plugin-src/skills/slm-status/SKILL.md +1 -1
@@ -21,7 +21,7 @@
21
21
  "license": "AGPL-3.0-or-later",
22
22
  "name": "superlocalmemory",
23
23
  "source": "./plugin",
24
- "version": "4.1.20"
24
+ "version": "4.1.21"
25
25
  },
26
26
  {
27
27
  "author": {
@@ -39,7 +39,7 @@
39
39
  "license": "AGPL-3.0-or-later",
40
40
  "name": "superlocalmemory-codex",
41
41
  "source": "./codex-plugin",
42
- "version": "4.1.20"
42
+ "version": "4.1.21"
43
43
  }
44
44
  ]
45
45
  }
package/CHANGELOG.md CHANGED
@@ -5,6 +5,112 @@ All notable changes to SuperLocalMemory will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [4.1.21] — Recall that knows your project, and memories that stay findable
9
+
10
+ ### Added
11
+
12
+ - **Recall knows your project** (#150). Memories saved for the project you are
13
+ working in rank ahead of cross-project trivia; `project=` filters to one
14
+ project, and a filter that matched nothing says so instead of returning an
15
+ empty list. Recall trace explains the same order recall returns.
16
+ - **Saved views and summaries** (#113). Save a recall query as a named view and
17
+ re-run it from the CLI (`slm view`), MCP or the dashboard, with the same
18
+ answer from each. Daily, session and project summaries trace every line back
19
+ to the memories it came from.
20
+ - **`slm provider set custom`** (#112): point Mode B or Mode C at your own
21
+ OpenAI-compatible server (llama.cpp, vLLM, LM Studio) from the CLI, with or
22
+ without a key. Its connection test goes through the same no-redirect gate as
23
+ every other request.
24
+ - **Measure answer quality on your own memories.** Label your own questions and
25
+ see whether the right memory comes first, and set each answer check's
26
+ threshold from your own results instead of a default.
27
+
28
+ ### Changed
29
+
30
+ - **The same question returns the same memories every time.** Linking
31
+ memories through the people, projects and things they share used to stop at
32
+ a time limit, so a busy machine could return different memories for the same
33
+ question. It now does a fixed amount of work in a fixed order, and a
34
+ background fill of the entity index after the upgrade keeps it fast. Until
35
+ that fill finishes, a few minutes after the first start, recall uses the
36
+ exact scan, which can be slower on a busy machine.
37
+ - **Better first answers.** Memories a search actually found can no longer be
38
+ pushed out of the reranker's shortlist by loosely related neighbours, and
39
+ when the reranker clearly puts one memory first, recency and quality
40
+ adjustments can only break near-ties, not overturn it. On a large real
41
+ store: right memory first on 27 of 50 questions (was 23), and the right
42
+ memory in the top 3 on 17 of 97 held-out questions (was 11).
43
+ - A question that resembles none of your memories no longer gets graph matches
44
+ started from unrelated memories, so the result is the same with and without
45
+ the vector extension.
46
+ - **The semantic cache makes the same choice on every platform and every
47
+ run.** After a run of correct hits it serves a stored answer at similarity
48
+ 0.98 and above every time, where before it skipped it at random (up to 43% of
49
+ the time at 0.98).
50
+ - **Modes are named by what you get, not by a vendor** (#112), in setup, the
51
+ CLI and the dashboard.
52
+ - **Remote access works on the key's profile for every tool**, whatever profile
53
+ this computer is using.
54
+ - In Settings, ticking a Jev option while Laya is chosen asks whether to
55
+ switch; "Try it" shows where the time went; a memory kind below the shared
56
+ confidence threshold shows as unconfirmed.
57
+ - The dashboard's live events show saved, captured, corrected and deleted
58
+ memories from every surface, and its filter offers only events SLM sends.
59
+ - Every dashboard text meets readable contrast in light and dark themes.
60
+ - The README leads with the answer check (Laya on your Mac, Jev on Windows,
61
+ Linux and macOS), lists platform support plainly, and brings back the
62
+ architecture diagram and the walkthrough video.
63
+
64
+ ### Fixed
65
+
66
+ - **Background maintenance no longer moves memories you still use into the
67
+ archive**, where recall could not find them. On a large store most memories
68
+ had drifted there, and questions about them came back with the wrong answer
69
+ or none.
70
+ - A question about a version number ("what changed in 4.1.20") finds the memory
71
+ about that version.
72
+ - A new or changed link is used by the next recall instead of a cached answer.
73
+ - Erasure: unfinished deletions are re-checked and closed in every profile,
74
+ back off instead of retrying forever, heal entity erasures, and an unreadable
75
+ vector store never counts as erased (PR #149, thanks @bgausden). `slm ops`
76
+ and the Ops Health page say what each entry is and what to do.
77
+ - `slm ops resolve` rejects a bad operation ID cleanly instead of crashing
78
+ (#148); a broken daemon response is no longer reported as a bad ID.
79
+ - Re-verified the Mode B / Ollama, daemon-start and migration fixes reported in
80
+ #128 and #125.
81
+ - On a computer shared by several accounts, SLM never sends data to, starts
82
+ against, or adopts another account's daemon.
83
+ - Restore points, backups, remote secrets, the answer-check key and config are
84
+ readable only by you, including files older versions left open.
85
+ - Remote access closes a connection that stalls before TLS within 10 seconds.
86
+ - Shutting down while another program holds the memory database no longer
87
+ fails; a save waiting for it is kept for the next start.
88
+ - **Windows:** output to a pipe or file is UTF-8 and never crashes on a
89
+ character; the dashboard and SLM's files read and write UTF-8; process checks
90
+ never send Ctrl+C; profiles, restores, embedding migrations, backups and the
91
+ benchmark close their database files so they can finish; the code graph
92
+ records forward-slash paths; bounded-loops receipts import; the Answer Check
93
+ demo says plainly that it needs an Apple silicon Mac.
94
+ - **macOS:** no native matrix factorization on the recall and cache paths can
95
+ corrupt process memory.
96
+ - **Windows:** `slm serve stop` and the idle timeout shut the daemon down
97
+ cleanly instead of killing it, so it leaves no stale state behind; a model
98
+ download started by the daemon's self-repair stops when the daemon stops.
99
+ - The Summaries picker lists projects saved on your memories, not only the
100
+ folders an agent worked in.
101
+ - Each dashboard page opens at its first line instead of under the top bar.
102
+
103
+ ### Security
104
+
105
+ - Installs and upgrades get fsspec 2026.6.0 or later, which closes a remote
106
+ code execution advisory (GHSA-27vj-qcqg-25rc) in a package SLM uses
107
+ indirectly.
108
+ - `config.json` and the answer-check and feedback keys that an older release
109
+ left readable by other accounts are made private when SLM starts.
110
+
111
+ Thanks to @bgausden for the erasure fix in PR #149 and for #148 and #150, to
112
+ @tianjueak for #128, and to @unfall103-debug for #112, #113 and #125.
113
+
8
114
  ## [4.1.20] — Answers you can check, from any computer
9
115
 
10
116
  ### Added
package/README.md CHANGED
@@ -5,15 +5,28 @@
5
5
  </picture>
6
6
  </p>
7
7
 
8
- # SuperLocalMemory: local-first memory for AI agents
8
+ # SuperLocalMemory: governed, local-first memory for AI agents
9
9
 
10
- Claude Code, Codex, Cursor and other MCP clients lose what they learned when a session ends. SuperLocalMemory (SLM) gives them one long-term memory that lives on your machine, and it can tell you when it doesn't have the answer instead of guessing.
10
+ Claude Code, Codex, Cursor and other MCP clients forget what they learned when a session ends. SuperLocalMemory (SLM) gives them one long-term memory that lives on your machine: it learns from use, enforces who may read and erase what, coordinates many agents, and says "I don't have that" instead of guessing.
11
+
12
+ **Every recall is checked before your agent uses it.** A judge decides whether the memories found actually answer the question: **Laya** runs fully on your Mac, and **Jev** runs online on Windows, Linux and macOS. When they don't answer it, SLM says so instead of handing over a confident wrong answer: a hallucination guard for retrieval ([answer check](#answer-check-laya-and-jev)).
13
+
14
+ In Mode A, core remember and recall make no model-provider call. Anything that sends data out is a choice you make, and the docs say exactly what goes.
11
15
 
12
16
  [![PyPI](https://img.shields.io/pypi/v/superlocalmemory)](https://pypi.org/project/superlocalmemory/)
13
17
  [![npm](https://img.shields.io/npm/v/superlocalmemory)](https://www.npmjs.com/package/superlocalmemory)
18
+ [![PyPI downloads](https://img.shields.io/pepy/dt/superlocalmemory?label=PyPI%20downloads)](https://pepy.tech/project/superlocalmemory)
19
+ [![npm downloads](https://img.shields.io/npm/dt/superlocalmemory?label=npm%20downloads)](https://www.npmjs.com/package/superlocalmemory)
20
+ [![GitHub stars](https://img.shields.io/github/stars/qualixar/superlocalmemory?style=flat&logo=github)](https://github.com/qualixar/superlocalmemory/stargazers)
14
21
  [![Python 3.12+](https://img.shields.io/badge/python-3.12%2B-blue)](pyproject.toml)
15
22
  [![License: AGPL-3.0](https://img.shields.io/badge/license-AGPL--3.0-blue)](LICENSE)
16
- [![arXiv](https://img.shields.io/badge/arXiv-2608.08253-b31b1b)](https://arxiv.org/abs/2608.08253)
23
+ [![Answer check: Jev · Laya](https://img.shields.io/badge/answer_check-Jev_%C2%B7_Laya-f97316)](#answer-check-laya-and-jev)
24
+ [![arXiv V4](https://img.shields.io/badge/arXiv-2608.08253-b31b1b)](https://arxiv.org/abs/2608.08253)
25
+ [![arXiv V3.3](https://img.shields.io/badge/arXiv-2604.04514-b31b1b)](https://arxiv.org/abs/2604.04514)
26
+ [![arXiv V3](https://img.shields.io/badge/arXiv-2603.14588-b31b1b)](https://arxiv.org/abs/2603.14588)
27
+ [![arXiv V2](https://img.shields.io/badge/arXiv-2603.02240-b31b1b)](https://arxiv.org/abs/2603.02240)
28
+
29
+ **[Install](https://www.superlocalmemory.com/install)** · **[Product walkthrough](https://www.superlocalmemory.com/demo)** · **[Demo video](https://www.youtube.com/watch?v=PMWW_ypsL60)** · **[CLI proof](docs/QUICK_PROOF.md)** · **[Release notes](CHANGELOG.md)**
17
30
 
18
31
  ```bash
19
32
  npm install -g superlocalmemory # primary route (Node 18+, Python 3.12+); or: pipx install superlocalmemory
@@ -23,7 +36,7 @@ slm connect cursor # or claude-code, codex, windsurf, zed ... 12
23
36
 
24
37
  npm installs SLM into a package-owned virtual environment. The other primary route is pip in a Python virtual environment you activate: `python3 -m venv .venv`, activate it, then `python -m pip install superlocalmemory`. Repository clone: `./scripts/install.sh install` (macOS, Linux) or `.\scripts\install.ps1 -Action Install` (Windows); see [CONTRIBUTING.md](CONTRIBUTING.md).
25
38
 
26
- Runs on Apple Silicon macOS, 64-bit Windows and 64-bit Linux; Intel Mac and 32-bit Windows are not supported (the pinned `cryptography` has no build for them). No Docker, no required graph database, no API key.
39
+ Runs on Windows, Linux and macOS ([platforms](#platform-support)). No Docker, no required graph database, no API key.
27
40
 
28
41
  ## 30-second example
29
42
 
@@ -49,14 +62,47 @@ $ slm recall "which port does staging postgres use"
49
62
  1. [0.68] Staging DB moved to Postgres 17 on port 5434.
50
63
  ```
51
64
 
52
- Real output from a fresh Mode A install, trimmed. The id comes from `slm recall --json`. Scores are ranking signals, not probabilities. Right after a start, the embedding model is still loading: recall still answers from keyword and time channels and says `Incomplete search` until the model is ready.
65
+ Real output from a fresh Mode A install, trimmed. Scores rank; they are not probabilities. While the embedding model loads, recall says `Incomplete search`.
66
+
67
+ ### Watch the product walkthrough
68
+
69
+ [![Watch the SuperLocalMemory demo](https://img.youtube.com/vi/PMWW_ypsL60/hqdefault.jpg)](https://www.youtube.com/watch?v=PMWW_ypsL60)
70
+
71
+ Five minutes: install, setup, recall, cache and compression.
72
+
73
+ ### The dashboard, on real 4.1.21
74
+
75
+ Captured from a 4.1.21 install in Mode A, with Laya running on the Mac and a store of fictional project memories. Nothing is mocked: each verdict, score and timing is what SLM returned.
76
+
77
+ | Memories that answer the question | Memories that do not: "I don't have that" |
78
+ |---|---|
79
+ | ![Answer Check: Laya judges that the memories answer "When is Project Kestrel going live?" with confidence 0.85, in 1.4 s of the 3 s limit](docs/screenshots/dashboard-4.1.21/answer-check-answered.png) | ![Answer Check: for "How much did the Kestrel pilot cost?" Laya finds no memory that answers it and SLM says "I don't have that"](docs/screenshots/dashboard-4.1.21/answer-check-dont-have-that.png) |
80
+
81
+ | Recall Lab: why each memory was chosen | Every memory with its kind and project |
82
+ |---|---|
83
+ | ![Recall Lab: per-channel scores for "what did we decide about the database"](docs/screenshots/dashboard-4.1.21/recall-lab.png) | ![Memories table filtered by kind: decisions, rules, corrections, facts, with the project each belongs to](docs/screenshots/dashboard-4.1.21/memories-kinds-projects.png) |
84
+
85
+ ![Saved views: a saved question that runs the same search your agent uses and shows the memory each result came from](docs/screenshots/dashboard-4.1.21/saved-views.png)
86
+
87
+ ## Why SuperLocalMemory: the moats
88
+
89
+ A vector store answers "what is similar". AI agent memory must also answer: is this still true, who may see it, can it be erased with proof, and does the agent actually have the answer?
90
+
91
+ **1. Governed memory, not a vector store.** Roles per workspace, personal / shared / global scopes with default-deny cross-profile recall, GDPR erasure with HMAC-verifiable receipts, retention rules and a hash-chained audit log. The [V4 paper](https://arxiv.org/abs/2608.08253) measures what the governed write path costs. Code: `src/superlocalmemory/access/`, `compliance/`.
92
+
93
+ **2. A zero-LLM core built on published math.** Five retrieval channels, fusion and the learned ranker run without a language model; V3 scored 60.4% on LoCoMo with no LLM anywhere ([benchmarks](#benchmarks-v3)). Fisher-information scoring, sheaf contradiction detection and Langevin lifecycle dynamics added 12.7 points ([V3 paper](https://arxiv.org/abs/2603.14588)).
94
+
95
+ **3. It says "I don't have that."** The [answer check](docs/answer-check.md) decides whether the top results answer the question, on your Mac (Laya) or online (Jev), and recall reports `abstained` instead of a confident wrong answer.
96
+
97
+ **4. Memory that learns, and cannot quietly get worse.** A Thompson-sampling bandit tunes channel weights and a LightGBM ranker learns from reported outcomes. A retrained ranker is promoted only after a shadow A/B test on live recalls, and rolled back automatically if NDCG@10 drops 2% or more. Code: `learning/shadow_test.py`, `learning/model_rollback.py`.
98
+
99
+ **5. Memory with a sense of time.** Every fact records when it happened and when SLM learned it. Ask what was true last month (`--valid-at`) or what SLM knew before a date (`--known-as-of`). Unused memories fade and lose vector precision ([V3.3 paper](https://arxiv.org/abs/2604.04514)).
53
100
 
54
- ## Why SuperLocalMemory
101
+ **6. Many agents, one coordinated memory.** Every write records its agent, with Bayesian trust scores against poisoning ([V2 paper](https://arxiv.org/abs/2603.02240)). SLM-Mesh gives parallel sessions messages, locks and shared state.
55
102
 
56
- - **Local-first by default.** Memory lives in SQLite on your disk. In Mode A, core remember and recall make no model-provider call. Anything that sends data out is a choice you make, and the docs say exactly what goes.
57
- - **It says "I don't have that."** The optional [answer check](docs/answer-check.md) judges whether the top results actually answer the question, on your Mac or through Jev, and flags it when they don't.
58
- - **Memory with a sense of time.** Every fact records when it happened and when SLM learned it. Ask what was true last month (`--valid-at`), or what SLM knew before a date (`--known-as-of`). Replaced facts stop being served as current.
59
- - **One memory, every agent.** The same store serves Claude Code, Codex, Cursor, Windsurf, Hermes and any MCP client, so a decision saved in one tool is there in the next.
103
+ **7. "Done" means a gate passed.** Bounded loops repeat a task until an independent check (tests, a schema, a linter) passes, never on the agent's word, and store every lap as auditable memory.
104
+
105
+ **8. Context you don't pay for twice.** Exact cache and reversible compression work through MCP tools or a skill, with no proxy, so your full context window stays intact.
60
106
 
61
107
  SLM is part of Qualixar's AI Reliability Engineering work: agent memory that is observable, bounded and honest about what it doesn't know.
62
108
 
@@ -65,72 +111,135 @@ SLM is part of Qualixar's AI Reliability Engineering work: agent memory that is
65
111
  | Surface | What you get | Docs |
66
112
  |---|---|---|
67
113
  | Editor plugins | Claude Code, Codex, VS Code / Copilot, Antigravity, Hermes. Each ships 12 skills, 4 sub-agents and session hooks | [IDE setup](docs/ide-setup.md), [Hermes](docs/hermes.md) |
68
- | `slm connect <ide>` | Writes the MCP config for 12 IDEs: Antigravity, Claude Code, Claude Desktop, Codex, Continue, Cursor, Gemini CLI, JetBrains, OpenCode, VS Code / Copilot, Windsurf, Zed | [IDE setup](docs/ide-setup.md) |
69
- | MCP | stdio (`slm mcp`) or HTTP at `http://127.0.0.1:8765/mcp/`, with tool profiles from 8 to 101 tools | [MCP tools](docs/mcp-tools.md) |
114
+ | `slm connect <ide>` | Writes the MCP config for 12 IDEs, including Cursor, Windsurf, Zed, JetBrains, Gemini CLI and Claude Desktop | [IDE setup](docs/ide-setup.md) |
115
+ | MCP | stdio (`slm mcp`) or HTTP at `http://127.0.0.1:8765/mcp/`; profiles from 8 to 103 tools | [MCP tools](docs/mcp-tools.md) |
70
116
  | Framework adapters | LangGraph, LangChain, LlamaIndex, CrewAI, AutoGen, Semantic Kernel, Microsoft Agent Framework, Google ADK, OpenAI Agents | [Framework adapters](docs/framework-adapters.md) |
71
- | Python SDK and HTTP API | `MemoryEngine` in your own code; a local REST API behind the dashboard | [API reference](docs/api-reference.md) |
117
+ | Python SDK and HTTP API | `MemoryEngine` in your code; the local REST API | [API reference](docs/api-reference.md) |
72
118
  | Auto-capture hooks | `slm hooks install` for Claude Code, `--agent codex` for Codex | [Auto-memory](docs/auto-memory.md) |
73
- | Other computers | `slm remote`: HTTPS listener with named, revocable keys for agents on another machine | [Remote access](docs/distributed-deployment.md#remote-access-over-tls-4120) |
74
119
 
75
- On Claude Code, `slm connect claude-code` points you to the plugin: `claude plugin marketplace add qualixar/superlocalmemory`, then `claude plugin install superlocalmemory@qualixar`.
120
+ Claude Code memory in two commands: `claude plugin marketplace add qualixar/superlocalmemory`, then `claude plugin install superlocalmemory@qualixar`.
121
+
122
+ ## What developers use it for
123
+
124
+ - **Persistent memory for Claude Code, Codex and Cursor.** Decisions, conventions, fixes and project context carry across sessions and across tools; confirmed rules and decisions load at session start.
125
+ - **An MCP memory server for any agent.** stdio or HTTP, with adapters for LangGraph, LangChain, LlamaIndex, CrewAI, AutoGen, Semantic Kernel, Microsoft Agent Framework, Google ADK and the OpenAI Agents SDK.
126
+ - **Local-first RAG without a vector database service.** SQLite + sqlite-vec, hybrid search (BM25, embeddings, knowledge graph, temporal), reranking, no Docker and no cloud account.
127
+ - **A hallucination guard for retrieval.** The answer check, Jev or Laya, abstains when the retrieved memories don't answer the question, so your agent doesn't build on a wrong one.
128
+ - **Team and enterprise AI memory.** Roles, company mode with sign-in, scoped sharing, GDPR export and verified erasure, a hash-chained audit trail and an EU AI Act posture report.
129
+ - **Multi-agent memory and coordination.** One store shared by many agents with per-agent attribution, SLM-Mesh messages, locks and shared state, and bounded loops that finish only when an independent gate passes.
130
+ - **Lower token cost.** Exact caching and reversible compression of tool output and file reads keep long agent sessions inside the context window.
131
+ - **Memory for local LLMs.** Mode B runs extraction on Ollama, llama.cpp, vLLM, LM Studio or any OpenAI-compatible server on your machine.
132
+ - **A searchable work log.** Bi-temporal "what was true then" queries, daily, session and project summaries, and saved views, each answer pointing back to its memory ids.
133
+
134
+ ## Architecture
135
+
136
+ ![SuperLocalMemory 4.1.21 architecture: modes, eight-layer pipeline, governance, Scale Engine, SLM-Mesh, bounded loops](docs/assets/slm-4.1.21-architecture.svg)
137
+
138
+ *SQLite + sqlite-vec are canonical; CozoDB and LanceDB are parity-gated projections; SLM-Mesh coordinates trusted peers rather than replicating a distributed database; connectors are opt-in.* [Architecture docs](docs/ARCHITECTURE.md).
76
139
 
77
140
  ## Everything SLM does
78
141
 
142
+ ### Memory and recall
143
+
79
144
  | Capability | What you get | Docs |
80
145
  |---|---|---|
81
- | Hybrid recall | Semantic, keyword (BM25), temporal, associative (Hopfield) and spreading-activation channels, fused and reranked. `slm trace` shows each channel's score | [Recall](docs/recall.md) |
82
- | Answer check | A second step that says whether the results answer the question. Laya on your Mac or Jev online, one at a time; a dashboard tab with history and the "I don't have that" rate | [Answer check](docs/answer-check.md) |
146
+ | Hybrid recall | Semantic, keyword (BM25), temporal, associative (Hopfield) and spreading-activation channels, fused by reciprocal rank and reranked. `slm trace` shows each channel's score | [Recall](docs/recall.md) |
83
147
  | Memory kinds | Nine kinds: fact, event, status, opinion, rule, decision, how-to, plan, correction. "What did we decide" favours decisions | [Memory kinds](docs/memory-kinds.md) |
84
148
  | Standing rules | Confirmed rules (up to 10) and decisions (up to 5) load into every new agent session | [Memory kinds](docs/memory-kinds.md#standing-rules-at-session-start) |
85
149
  | Replace and correct | `--replaces <id>` retires an old fact, kept and undoable. Edits go through reviewed corrections with rollback | [Corrections](docs/reviewed-corrections.md) |
86
150
  | Time travel | `--as-of`, `--known-as-of`, `--valid-at`, and `--window 7d` or a date range | [Recall](docs/recall.md#time-travel) |
87
151
  | Recall filters | `--project`, `--saved-by`, `--about`, `--kind`; applied before the answer check | [Recall](docs/recall.md#narrowing-a-recall) |
88
- | Summaries | `slm summary session`, `day` or `project` | [Recall](docs/recall.md#summaries) |
152
+ | Project-aware recall | New in 4.1.21: memories from your current project rank first, hiding nothing. `--project` narrows and says when nothing matched | [Recall](docs/recall.md) |
153
+ | Summaries and saved views | New in 4.1.21: `slm summary session`, `day` or `project`, each citing its memory ids; `slm view create "Work log" "what did I ship" --window 7d`, then `slm view run` | [Summaries](docs/recall.md#summaries), [Views](docs/recall.md#saved-views) |
89
154
  | Knowledge graph | Entities, aliases, scenes and timelines; Entity Explorer in the dashboard | [Architecture](docs/ARCHITECTURE.md) |
90
- | Code graph | Build a graph of a repo, then ask for blast radius, review context and code search by meaning | [MCP tools](docs/mcp-tools.md) |
91
- | Learning | Ranking adapts to what you use; learned patterns become soft prompts; opt-in skill evolution | [Skill evolution](docs/skill-evolution.md) |
92
- | Cache and compress | Exact cache and safe compression through a proxy (`slm wrap claude`), MCP tools or a skill; `slm optimize savings` | [Optimize](docs/optimize-overview.md) |
93
- | Multi-agent and mesh | Each memory records which agent saved it. SLM-Mesh gives sessions and machines messages, locks and shared state | [Multi-machine](docs/multi-machine.md) |
94
- | Profiles and scopes | Isolated workspaces. Memories are personal by default; shared and global are opt-in | [Profiles](docs/profiles.md), [Scopes](docs/shared-memory.md) |
95
- | Bounded loops | `slm loop`: repeat a task until an independent check passes, with every lap stored as memory | [CLI reference](docs/cli-reference.md#bounded-loops-v380) |
96
- | Modes and providers | A: local. B: local Ollama. C: a cloud provider. Any OpenAI-compatible embedder, including multilingual models | [Configuration](docs/configuration.md) |
97
- | Backup and restore | Cloud backup to GitHub or Google Drive, encrypted before upload. Restore points before each store update, and a safe path back to the previous version | [Cloud backup](docs/cloud-backup.md), [Restore points](docs/restore-points.md) |
155
+ | Code graph | Index a repo, then ask for blast radius, callers, review context and code search by meaning | [MCP tools](docs/mcp-tools.md) |
156
+ | Modes and providers | A: no model calls. B: a model on this machine (Ollama by default, or another local OpenAI-compatible server). C: your own endpoint or a cloud provider. Multilingual embedders work | [Configuration](docs/configuration.md) |
157
+
158
+ Recalled text is untrusted evidence: before it reaches a prompt, secrets are redacted, forged boundary markers neutralised and provenance attached, a defence against prompt injection through memory.
159
+
160
+ ### Learning in memory
161
+
162
+ - **Adaptive ranking.** A contextual Thompson-sampling bandit picks channel weights per query type; a LightGBM learning-to-rank model trains on `report_outcome` and `report_feedback`. The same question on an unchanged store gets the same ranking.
163
+ - **Guarded promotion.** A candidate ranker runs in shadow and is promoted only on a measured win; a later NDCG@10 drop of 2% or more restores the previous model automatically.
164
+ - **Soft prompts.** Consolidation mines behavioural patterns and turns stable ones into soft prompts for new sessions.
165
+ - **Forgetting.** An Ebbinghaus retention cycle and a Langevin lifecycle move neglected memories toward archive and pull used ones back.
166
+ - **Skill evolution (opt-in).** Measures agent skills, proposes revisions and keeps lineage, under a budget and blind verification. [Skill evolution](docs/skill-evolution.md)
167
+
168
+ ### Governance
169
+
170
+ | Control | What it does | Docs |
171
+ |---|---|---|
172
+ | Roles | Admin, member and viewer per workspace. A role in one workspace grants nothing in another | [Teams](docs/rbac-teams.md) |
173
+ | Company mode | Every read and write is attributed to a signed-in person; turn on with "Require login" | [Company mode](docs/company-mode.md) |
174
+ | Profiles and scopes | Isolated workspaces. Memories are `personal` by default; `shared` and `global` are opt-in | [Profiles](docs/profiles.md), [Scopes](docs/shared-memory.md) |
175
+ | GDPR | `slm gdpr export` (Art. 15/20), `slm gdpr erase` (Art. 17) across every store, `slm gdpr verify` checks the erasure receipt | [Compliance](docs/compliance.md) |
176
+ | Retention and audit | Per-profile retention rules; a hash-chained audit trail of stores, recalls, changes and erasures; ABAC policy checks | [Compliance](docs/compliance.md) |
177
+ | EU AI Act posture | A per-mode technical report (data locality, generative AI use). Risk class stays "undetermined"; no legal verdict | [Compliance](docs/compliance.md) |
178
+ | Write gate | Install token, API keys and remote keys decide who may write | [Auth write gate](docs/auth-write-gate.md) |
98
179
  | Evidence export | Checksummed JSONL bundles: `slm evidence export`, `verify`, `import` | [CLI reference](docs/cli-reference.md#data-and-evidence) |
99
- | Teams and governance | Admin, member and viewer roles; sign-in; `slm gdpr export`, `erase` and `verify`; retention rules; hash-chained audit log | [Teams](docs/rbac-teams.md), [Compliance](docs/compliance.md) |
100
- | Dashboard | `slm dashboard`: 16 panes, including Answer Check, Brain, Knowledge Graph, Memories, Health, Governance, Optimize, Mesh Peers and Cloud Backup | [Dashboard](docs/DASHBOARD-COVERAGE.md) |
101
- | Operations | `slm doctor`, `status`, `health`, `restart`, `ops`; stuck operations listed and resolved | [Troubleshooting](docs/troubleshooting.md) |
102
- | Scale Engine | Optional CozoDB and LanceDB copies, promoted only after they match SQLite | [Scale Engine](docs/scale-engine.md) |
180
+ | Backup and restore | Cloud backup to GitHub or Google Drive, encrypted before upload. A restore point before each store update | [Cloud backup](docs/cloud-backup.md), [Restore points](docs/restore-points.md) |
181
+
182
+ Engineering controls that support a compliance program, not a certification.
183
+
184
+ ### Multi-agent: SLM-Mesh and bounded loops
185
+
186
+ **Shared memory with attribution.** Claude Code, Codex, Cursor and Hermes share one store; each memory records its agent (`SLM_AGENT_ID`) and the dashboard shows per-agent activity.
187
+
188
+ **SLM-Mesh** coordinates sessions on one machine, or several machines with a shared secret: `mesh_peers`, `mesh_send`, `mesh_inbox`, `mesh_state`, `mesh_lock`, `mesh_events`, `mesh_status`, `mesh_summary`. Messages route across machines; locks and state are per machine. [Multi-machine](docs/multi-machine.md)
189
+
190
+ **Bounded loops** end only when an independent gate passes (tests, a linter, a schema, a recall condition), never because the agent says it is done. Runs end DONE, HALT, PAUSE, KILLED or ERROR, with each lap stored under `loop:<name>`. Run `slm loop demo`, the `slm_loop_*` MCP tools or `/slm-loop`; the separate Bounded Loops product can store its finished runs here as read-only evidence. [CLI reference](docs/cli-reference.md#bounded-loops-v380), [Bounded Loops bridge](docs/bounded-loops-bridge.md)
191
+
192
+ ### Answer check: Laya and Jev
193
+
194
+ Answer check adds a second step after ranking; choose one in **Settings → Answer check**:
195
+
196
+ - **Laya, on this Mac:** a small on-device model (about 1.1 GB) for Apple Silicon Macs. Nothing leaves the machine.
197
+ - **Jev, online, on any computer:** Windows, Linux or macOS, through TypeSafe or OpenRouter with your own key and an explicit consent box. Sends the question and the top 3 memories.
198
+ - **Off.**
199
+
200
+ Only one runs at a time and the online option never turns itself on. Results are never hidden: recall marks them `abstained` and your agent decides. A repeat question gets the same verdict. The **Answer Check** tab shows verdicts, timing against the 3-second recall ceiling and the "I don't have that" rate; it never stores questions or memory text. [Answer check](docs/answer-check.md)
201
+
202
+ ### Context optimisation: cache and compression
203
+
204
+ | Feature | What it does |
205
+ |---|---|
206
+ | Exact cache | `slm_cache_get` / `slm_cache_set` keep tool output and file reads with a TTL; a hit skips the repeat call |
207
+ | Compression | `slm_compress` shrinks large output; safe mode keeps JSON and code intact. A reversible result returns an id, and `slm_retrieve` restores the exact original |
208
+ | Three surfaces | Works through a proxy (`slm wrap claude`), MCP tools or a skill. Only the proxy caches the main conversation turn |
209
+ | Savings | `slm optimize savings --since 7` reports tokens and cost saved |
210
+ | Memory compression | Vector precision follows retention: fading memories are quantized to fewer bits, and consolidation folds clusters of faded memories into one gist |
211
+
212
+ All of it fails open. [Optimize](docs/optimize-overview.md), [Proxy setup](docs/proxy-setup.md)
213
+
214
+ ### Remote access and teams
215
+
216
+ `slm remote` serves memory to other computers over TLS only. Each client gets a named key bound to one profile, read-only or read-write, revocable at once. Remote callers authenticate to read and never see this computer's paths or account. [Remote access](docs/distributed-deployment.md#remote-access-over-tls-4120), [Deployment tiers](docs/deployment-tiers.md)
217
+
218
+ ### Scale and operations
219
+
220
+ - **[Scale Engine](docs/scale-engine.md):** SQLite stays canonical. Optional CozoDB graph and LanceDB vector copies go through prepare, verify, promote and rollback, and serve recall only once they match SQLite.
221
+ - **[Dashboard](docs/DASHBOARD-COVERAGE.md):** `slm dashboard`, 16 panes including Answer Check, Brain, Knowledge Graph, Governance, Optimize and Mesh Peers.
222
+ - **Durable writes:** each save moves raw → queryable → enriching → complete with a receipt; a failed step keeps the raw evidence and retries. Saves under heavy load are queued, never refused.
223
+ - **[Operations](docs/troubleshooting.md):** `slm doctor`, `status`, `health`, `restart`, `ops`; stuck operations are listed and resolved.
103
224
 
104
225
  ## MCP memory server: tool profiles
105
226
 
106
- Pick how many tools your agent sees with `SLM_MCP_PROFILE`. Counts come from the server itself.
227
+ Pick how many tools your agent sees with `SLM_MCP_PROFILE`.
107
228
 
108
229
  | Profile | Tools | For |
109
230
  |---|---:|---|
110
231
  | `core` | 18 | Remember, recall, sessions, optimize, correction review |
111
232
  | `code` | 38 | Core plus code graph, memory kinds, Brain evidence, profile switching, bounded loops |
112
233
  | `mesh` | 8 | SLM-Mesh coordination only |
113
- | `full` (and unset) | 54 | Memory, kinds, Brain, optimize, skill evolution, mesh, loops |
114
- | `power` | 66 | Full plus administration, lifecycle and diagnostics |
115
- | `whole` | 101 | Every registered tool |
234
+ | `full` (and unset) | 56 | Memory, kinds, Brain, optimize, skill evolution, mesh, loops, views and summaries |
235
+ | `power` | 68 | Full plus administration, lifecycle and diagnostics |
236
+ | `whole` | 103 | Every registered tool |
116
237
 
117
238
  ```json
118
239
  { "mcpServers": { "superlocalmemory": { "type": "http", "url": "http://127.0.0.1:8765/mcp/" } } }
119
240
  ```
120
241
 
121
- For stdio clients use `{"command": "slm", "args": ["mcp"]}`. An unknown profile name stops startup and lists the valid ones.
122
-
123
- ## Answer Check: memory that says "I don't have that"
124
-
125
- Relevance and "does this answer it" are different questions. The closest memory on file can still be the wrong answer, and an agent that treats it as the answer makes things up with confidence.
126
-
127
- Answer check adds a second step after ranking. It reads the top results and decides whether they answer the question. Choose one, in **Settings → Answer check** in the dashboard:
128
-
129
- - **On this Mac (Laya):** a small model, about 1.1 GB, on Apple Silicon. Nothing leaves the machine.
130
- - **Online with Jev:** TypeSafe or OpenRouter, with your own key and an explicit consent box. Sends the question and the top 3 memories.
131
- - **Off.**
132
-
133
- Only one runs at a time, and nothing turns the online option on by itself. Each option shows whether it is ready, has a **Test** button, and is applied live with one **Save**. Results are never hidden: recall returns them with `abstained` and `abstention_reason` set, and your agent decides what to do. The same question gets the same verdict on a repeat. The **Answer Check** tab shows each verdict, its timing against the 3-second recall ceiling, and how often it said "I don't have that" over 24 hours, 7 days or 30 days. The history keeps outcomes and timings, never your questions or memory text.
242
+ For stdio clients use `{"command": "slm", "args": ["mcp"]}`.
134
243
 
135
244
  ## Privacy and security
136
245
 
@@ -144,9 +253,7 @@ What leaves your machine, and when:
144
253
  | Encrypted backup files | You connect GitHub or Google Drive backup. Files are encrypted before upload |
145
254
  | Mesh messages | You configure SLM-Mesh peers |
146
255
 
147
- Model downloads (embedding model, Laya) fetch files but send no memory content. Credentials found in memory text are redacted on every outbound path, and a provider's key goes only to that provider.
148
-
149
- Since 4.1.20, other computers must authenticate to read memory, not only to write it. SLM ignores forwarded-for headers unless you name a trusted proxy, so a proxy can't make a remote caller look local. SLM's own outbound requests never follow redirects, and the remote listener never answers with one, so a key is never sent through a redirect. Remote callers never see this computer's paths, account or environment outside the memories themselves. Remote agents connect through `slm remote`: TLS only, one named key per client, each key bound to one profile (its holder reads that profile's memories in full and nothing else), read-only keys available, and `slm remote keys revoke <name>` takes effect on the next request. See [Remote access](docs/distributed-deployment.md#remote-access-over-tls-4120), [Security policy](SECURITY.md) and [encryption at rest](docs/SECURITY-encryption-at-rest.md).
256
+ Model downloads send no memory content. Credentials in memory text are redacted on every outbound path. Outbound requests never follow redirects, and forwarded-for headers count only from a proxy you name. See [Security policy](SECURITY.md) and [encryption at rest](docs/SECURITY-encryption-at-rest.md).
150
257
 
151
258
  ## Benchmarks (V3)
152
259
 
@@ -162,30 +269,78 @@ Method, category breakdown and ablations: [docs/benchmarks.md](docs/benchmarks.m
162
269
 
163
270
  ## Research
164
271
 
165
- SLM's design is described in the V4 paper, [SuperLocalMemory 4.0: The Governed Memory Operating System for AI Agents](https://arxiv.org/abs/2608.08253) (DOI [10.5281/zenodo.21853302](https://doi.org/10.5281/zenodo.21853302)). Earlier preprints: [information-geometric foundations, V3](https://arxiv.org/abs/2603.14588), [the Living Brain, V3.3](https://arxiv.org/abs/2604.04514), and [trust and behavioural foundations, V2](https://arxiv.org/abs/2603.02240). Cite it with [CITATION.cff](CITATION.cff) or GitHub's "Cite this repository" button:
272
+ Four arXiv preprints by Varun Pratap Bhardwaj describe SLM, newest first:
273
+
274
+ 1. **V4 (2026):** [SuperLocalMemory 4.0: The Governed Memory Operating System for AI Agents](https://arxiv.org/abs/2608.08253), with Garima Singh and Arun Pratap Bhardwaj. arXiv:2608.08253. Multi-scope isolation, role-based access, verified erasure, hash-chained audit and bi-temporal recall, with their measured cost.
275
+ 2. **V3.3 (2026):** [SuperLocalMemory V3.3: The Living Brain](https://arxiv.org/abs/2604.04514), arXiv:2604.04514. Biologically inspired forgetting, cognitive quantization, multi-channel retrieval without an LLM.
276
+ 3. **V3 (2026):** [SuperLocalMemory V3: Information-Geometric Foundations for Zero-LLM Enterprise Agent Memory](https://arxiv.org/abs/2603.14588), arXiv:2603.14588. Fisher-information retrieval, Langevin lifecycle, sheaf contradiction detection; the LoCoMo results above.
277
+ 4. **V2 (2026):** [SuperLocalMemory: Privacy-Preserving Multi-Agent Memory with Bayesian Trust Defense Against Memory Poisoning](https://arxiv.org/abs/2603.02240), arXiv:2603.02240.
278
+
279
+ Cite the V4 paper with [CITATION.cff](CITATION.cff) or GitHub's "Cite this repository" button:
166
280
 
167
281
  ```bibtex
168
282
  @article{bhardwaj2026superlocalmemory,
169
283
  title = {SuperLocalMemory 4.0: The Governed Memory Operating System for AI Agents},
170
284
  author = {Bhardwaj, Varun Pratap and Singh, Garima and Bhardwaj, Arun Pratap},
171
285
  journal = {arXiv preprint arXiv:2608.08253},
172
- year = {2026},
173
- doi = {10.5281/zenodo.21853302}
286
+ year = {2026}
174
287
  }
175
288
  ```
176
289
 
290
+ ## Documentation
291
+
292
+ **Start:** [Getting started](docs/getting-started.md) · [IDE setup](docs/ide-setup.md) · [Linux install](docs/install-linux.md) · [Quick proof](docs/QUICK_PROOF.md) · [Migrating from V2](docs/migration-from-v2.md)
293
+
294
+ **Use:** [Recall](docs/recall.md) · [Memory kinds](docs/memory-kinds.md) · [Answer check](docs/answer-check.md) · [Auto-memory](docs/auto-memory.md) · [Shared memory](docs/shared-memory.md) · [Optimize](docs/optimize-overview.md)
295
+
296
+ **Reference:** [CLI](docs/cli-reference.md) · [MCP tools](docs/mcp-tools.md) · [Configuration](docs/configuration.md) · [Errors](docs/errors.md) · [Troubleshooting](docs/troubleshooting.md) · [Distributed deployment](docs/distributed-deployment.md) · [Privacy diagnostics](docs/privacy-diagnostics.md)
297
+
298
+ **Design:** [Architecture](docs/ARCHITECTURE.md) · [Score contract](docs/retrieval-score-contract.md) · [Compliance](docs/compliance.md) · [Benchmarks](docs/benchmarks.md)
299
+
177
300
  ## Upgrade
178
301
 
179
302
  ```bash
180
- pipx upgrade superlocalmemory # or: npm update -g superlocalmemory
303
+ npm update -g superlocalmemory # or, in your activated venv: python -m pip install --upgrade superlocalmemory
181
304
  slm restart && slm doctor
182
305
  slm upgrade-hosts # preview IDE and plugin updates; nothing changes until you --apply
183
306
  ```
184
307
 
185
- Upgrades never move or delete memory, and an update that changes the store takes a restore point first. Plugin updates follow your editor; see [host upgrades](docs/host-upgrades.md).
308
+ Upgrades never move or delete memory; an update that changes the store takes a restore point first. Plugins update through your editor; see [host upgrades](docs/host-upgrades.md).
309
+
310
+ ## Platform support
311
+
312
+ | | SuperLocalMemory | Jev (online check) | Laya (on-device check) |
313
+ |---|---|---|---|
314
+ | Apple Silicon macOS | Yes | Yes | Yes |
315
+ | 64-bit Windows | Yes | Yes | No (Laya uses Apple's MLX) |
316
+ | 64-bit Linux (x86-64, ARM64) | Yes | Yes | No |
317
+ | Intel Mac, 32-bit Windows | No prebuilt install | — | — |
318
+
319
+ Python 3.12+, and Node 18+ for npm. Intel Mac and 32-bit Windows lack a build of the pinned security library (`cryptography` 50); older versions have high-severity advisories. The default embedding model (about 500 MB) downloads on first use or with `slm warmup`.
186
320
 
187
321
  ## Contributing and license
188
322
 
189
323
  Issues and pull requests are welcome; start with [CONTRIBUTING.md](CONTRIBUTING.md). Report vulnerabilities through [SECURITY.md](SECURITY.md). Release notes are in [CHANGELOG.md](CHANGELOG.md).
190
324
 
191
325
  SLM is licensed under [AGPL-3.0-or-later](LICENSE). For a commercial license, see [COMMERCIAL-LICENSE.md](COMMERCIAL-LICENSE.md). Copyright (c) 2026 Varun Pratap Bhardwaj / [Qualixar](https://qualixar.com). Website: [superlocalmemory.com](https://www.superlocalmemory.com).
326
+
327
+ ---
328
+
329
+ <div align="center">
330
+
331
+ ### Built by Qualixar
332
+
333
+ **SuperLocalMemory** is made by [Varun Pratap Bhardwaj](https://varunpratap.com) at [Qualixar](https://qualixar.com), where the work is AI Reliability Engineering: memory, contracts, tests and loops that make AI agents dependable enough to trust with real work.
334
+
335
+ [![GitHub stars](https://img.shields.io/github/stars/qualixar/superlocalmemory?style=social)](https://github.com/qualixar/superlocalmemory/stargazers)
336
+ [![PyPI downloads](https://img.shields.io/pepy/dt/superlocalmemory?label=PyPI%20downloads)](https://pepy.tech/project/superlocalmemory)
337
+ [![npm downloads](https://img.shields.io/npm/dt/superlocalmemory?label=npm%20downloads)](https://www.npmjs.com/package/superlocalmemory)
338
+ [![Follow on X](https://img.shields.io/badge/follow-%40varunPbhardwaj-000000?logo=x)](https://x.com/varunPbhardwaj)
339
+
340
+ If SLM keeps your agents from forgetting, **[star the repository](https://github.com/qualixar/superlocalmemory)**: it is how other developers find it.
341
+
342
+ **More from Qualixar:** [Qualixar OS](https://github.com/qualixar/qualixar-os) · [SkillFortify](https://github.com/qualixar/skillfortify) · [SLM Mesh](https://github.com/qualixar/slm-mesh) · [AgentAssert](https://github.com/qualixar/agentassert-abc) · [AgentAssay](https://github.com/qualixar/agentassay) · [Bounded Loops](https://github.com/qualixar/bounded-loops) · [Jev Decision Layer](https://github.com/qualixar/jev-decision-layer) · [SLM MCP Hub](https://github.com/qualixar/slm-mcp-hub)
343
+
344
+ [superlocalmemory.com](https://www.superlocalmemory.com) · [qualixar.com](https://qualixar.com) · [Papers](#research) · [LinkedIn](https://www.linkedin.com/in/varun-pratap-bhardwaj-7ab63742/) · [X](https://x.com/varunPbhardwaj)
345
+
346
+ </div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "superlocalmemory",
3
- "version": "4.1.20",
3
+ "version": "4.1.21",
4
4
  "description": "Local-first agent memory with MCP and an agent-native CLI. Documented clients include Claude Code, Cursor, and Windsurf.",
5
5
  "keywords": [
6
6
  "ai-memory",
@@ -15,5 +15,5 @@
15
15
  "mcpServers": "./.mcp.json",
16
16
  "name": "superlocalmemory",
17
17
  "repository": "https://github.com/qualixar/superlocalmemory",
18
- "version": "4.1.20"
18
+ "version": "4.1.21"
19
19
  }
package/plugin/CLAUDE.md CHANGED
@@ -1,4 +1,4 @@
1
- <!-- BEGIN SuperLocalMemory v4.1.20 -->
1
+ <!-- BEGIN SuperLocalMemory v4.1.21 -->
2
2
 
3
3
  ## SuperLocalMemory (SLM) — Agent Rules
4
4
 
@@ -40,6 +40,6 @@ slm-recall · slm-remember · slm-session · slm-status · slm-cache · slm-comp
40
40
  ### Subagents
41
41
  slm-memory-advisor (memory decisions, session hygiene, scope/profile guidance) · slm-optimize-advisor (context compression + KV cache) · slm-governance-advisor (scope/roles/compliance/GDPR)
42
42
 
43
- <!-- END SuperLocalMemory v4.1.20 -->
43
+ <!-- END SuperLocalMemory v4.1.21 -->
44
44
 
45
- SuperLocalMemory v4.1.20 · Qualixar · AGPL-3.0-or-later
45
+ SuperLocalMemory v4.1.21 · Qualixar · AGPL-3.0-or-later
@@ -77,4 +77,4 @@ slm-scope · slm-governance · slm-profile · slm-remember · slm-recall
77
77
  # What NOT to do
78
78
  Never session_init twice; never forget without dry-run preview; never store secrets; never bypass role checks; never claim an erasure succeeded without verifying via recall.
79
79
 
80
- SuperLocalMemory v4.1.20 · Qualixar · AGPL-3.0-or-later
80
+ SuperLocalMemory v4.1.21 · Qualixar · AGPL-3.0-or-later
@@ -68,4 +68,4 @@ assessment. The gate is the authority.
68
68
 
69
69
  ---
70
70
 
71
- SuperLocalMemory v4.1.20 · Qualixar · AGPL-3.0-or-later
71
+ SuperLocalMemory v4.1.21 · Qualixar · AGPL-3.0-or-later
@@ -47,4 +47,4 @@ slm-recall · slm-remember · slm-session · slm-scope · slm-profile · slm-gov
47
47
  # What NOT to do
48
48
  Never session_init twice; never forget dry_run=False without reporting preview; never dump a whole file into remember; never invent a memory; never claim "saved" without success:true / clean CLI exit; never bypass scope or governance restrictions.
49
49
 
50
- SuperLocalMemory v4.1.20 · Qualixar · AGPL-3.0-or-later
50
+ SuperLocalMemory v4.1.21 · Qualixar · AGPL-3.0-or-later
@@ -41,4 +41,4 @@ slm-compress · slm-cache · slm-status · slm-profile
41
41
  # What NOT to do
42
42
  Never compress code-for-edit/JSON-to-parse/<500 chars; never store secrets/ccr_ids; never let optimize failure block/alter the task; never claim a specific savings %; never carry ccr_ids across profile switches.
43
43
 
44
- SuperLocalMemory v4.1.20 · Qualixar · AGPL-3.0-or-later
44
+ SuperLocalMemory v4.1.21 · Qualixar · AGPL-3.0-or-later
@@ -1 +1 @@
1
- superlocalmemory==4.1.20
1
+ superlocalmemory==4.1.21
@@ -145,4 +145,4 @@ These subcommands control daemon-level cache settings. They do not read or write
145
145
 
146
146
  ---
147
147
 
148
- SuperLocalMemory v4.1.20 · Qualixar · AGPL-3.0-or-later
148
+ SuperLocalMemory v4.1.21 · Qualixar · AGPL-3.0-or-later
@@ -147,4 +147,4 @@ Content over 1 MB (1 000 000 bytes UTF-8) is processed but `reversible` is force
147
147
 
148
148
  ---
149
149
 
150
- SuperLocalMemory v4.1.20 · Qualixar · AGPL-3.0-or-later
150
+ SuperLocalMemory v4.1.21 · Qualixar · AGPL-3.0-or-later
@@ -245,4 +245,4 @@ Before running any destructive operation (`forget`, `compact_memories`):
245
245
 
246
246
  ---
247
247
 
248
- *SuperLocalMemory v4.1.20 · Qualixar · AGPL-3.0-or-later*
248
+ *SuperLocalMemory v4.1.21 · Qualixar · AGPL-3.0-or-later*
@@ -312,4 +312,4 @@ profile. See `slm-profile` for the full profile switching workflow.
312
312
 
313
313
  ---
314
314
 
315
- SuperLocalMemory v4.1.20 · Qualixar · AGPL-3.0-or-later
315
+ SuperLocalMemory v4.1.21 · Qualixar · AGPL-3.0-or-later
@@ -96,4 +96,4 @@ paused, name the approval needed; when errored, quote the short detail.
96
96
 
97
97
  ---
98
98
 
99
- SuperLocalMemory v4.1.20 · Qualixar · AGPL-3.0-or-later
99
+ SuperLocalMemory v4.1.21 · Qualixar · AGPL-3.0-or-later
@@ -279,4 +279,4 @@ mesh availability.
279
279
 
280
280
  ---
281
281
 
282
- *SuperLocalMemory v4.1.20 · Qualixar · AGPL-3.0-or-later*
282
+ *SuperLocalMemory v4.1.21 · Qualixar · AGPL-3.0-or-later*
@@ -32,8 +32,8 @@ project, a client engagement, a production vs staging environment.
32
32
  |---------|-------|-------------|
33
33
  | `core` | 18 tools — remember, recall, search, session, optimize | Minimal footprint, no code tools |
34
34
  | `code` | 38 tools — core + portable Brain evidence + code graph + profile switching + bounded loops + memory-kind management | Default for IDE/coding agents |
35
- | `full` | 54 tools — code + all memory ops + mesh + bounded loops | Multi-session, team workflows |
36
- | `power` | 66 tools — full + governance + behavioral tools | Enterprise, admin, audit use cases |
35
+ | `full` | 56 tools — code + all memory ops + mesh + bounded loops | Multi-session, team workflows |
36
+ | `power` | 68 tools — full + governance + behavioral tools | Enterprise, admin, audit use cases |
37
37
  | `mesh` | 8 tools — mesh coordination only | Lightweight cross-session signalling |
38
38
 
39
39
  The profile is set at MCP server startup via `SLM_MCP_PROFILE` in the MCP config.
@@ -146,4 +146,4 @@ Name them differently in your MCP config (e.g. `superlocalmemory-personal` and
146
146
 
147
147
  ---
148
148
 
149
- *SuperLocalMemory v4.1.20 · Qualixar · AGPL-3.0-or-later*
149
+ *SuperLocalMemory v4.1.21 · Qualixar · AGPL-3.0-or-later*
@@ -330,4 +330,4 @@ before recalling, then switch back. See `slm-profile` for workspace switching.
330
330
 
331
331
  ---
332
332
 
333
- *SuperLocalMemory v4.1.20 · Qualixar · AGPL-3.0-or-later*
333
+ *SuperLocalMemory v4.1.21 · Qualixar · AGPL-3.0-or-later*
@@ -270,4 +270,4 @@ different workspace, use `switch_profile` first. See `slm-profile`.
270
270
 
271
271
  ---
272
272
 
273
- *SuperLocalMemory v4.1.20 · Qualixar · AGPL-3.0-or-later*
273
+ *SuperLocalMemory v4.1.21 · Qualixar · AGPL-3.0-or-later*
@@ -173,4 +173,4 @@ to review the impact. See `slm-remember` for the full deletion discipline.
173
173
 
174
174
  ---
175
175
 
176
- *SuperLocalMemory v4.1.20 · Qualixar · AGPL-3.0-or-later*
176
+ *SuperLocalMemory v4.1.21 · Qualixar · AGPL-3.0-or-later*
@@ -268,4 +268,4 @@ explicitly and call `recall` with `include_global`/`include_shared` after
268
268
 
269
269
  ---
270
270
 
271
- *SuperLocalMemory v4.1.20 · Qualixar · AGPL-3.0-or-later*
271
+ *SuperLocalMemory v4.1.21 · Qualixar · AGPL-3.0-or-later*
@@ -163,4 +163,4 @@ multi-profile setup. To switch the active profile, see `slm-profile`.
163
163
 
164
164
  ---
165
165
 
166
- SuperLocalMemory v4.1.20 · Qualixar · AGPL-3.0-or-later
166
+ SuperLocalMemory v4.1.21 · Qualixar · AGPL-3.0-or-later
@@ -47,4 +47,4 @@ slm-recall · slm-remember · slm-session · slm-scope · slm-profile · slm-gov
47
47
  # What NOT to do
48
48
  Never session_init twice; never forget dry_run=False without reporting preview; never dump a whole file into remember; never invent a memory; never claim "saved" without success:true / clean CLI exit; never bypass scope or governance restrictions.
49
49
 
50
- SuperLocalMemory v4.1.20 · Qualixar · AGPL-3.0-or-later
50
+ SuperLocalMemory v4.1.21 · Qualixar · AGPL-3.0-or-later
@@ -41,4 +41,4 @@ slm-compress · slm-cache · slm-status · slm-profile
41
41
  # What NOT to do
42
42
  Never compress code-for-edit/JSON-to-parse/<500 chars; never store secrets/ccr_ids; never let optimize failure block/alter the task; never claim a specific savings %; never carry ccr_ids across profile switches.
43
43
 
44
- SuperLocalMemory v4.1.20 · Qualixar · AGPL-3.0-or-later
44
+ SuperLocalMemory v4.1.21 · Qualixar · AGPL-3.0-or-later
@@ -85,7 +85,7 @@ When the SLM MCP server is unavailable, use these CLI equivalents:
85
85
 
86
86
  > The MCP config ships only `SLM_AGENT_ID=claude_code` — no `SLM_MCP_PROFILE` —
87
87
  > so it falls back to the same no-profile default every install gets: the
88
- > 54-tool `full` surface. That is the 18 core tools below **plus** mesh
88
+ > 56-tool `full` surface. That is the 18 core tools below **plus** mesh
89
89
  > coordination (8: `mesh_summary`, `mesh_peers`, `mesh_send`, `mesh_inbox`,
90
90
  > `mesh_state`, `mesh_lock`, `mesh_events`, `mesh_status`), portable-evidence
91
91
  > tools (5: `get_brain_evidence_status`, `record_agent_experience`,
@@ -102,7 +102,7 @@ When the SLM MCP server is unavailable, use these CLI equivalents:
102
102
  > which trades mesh and administration tools for 6 code-graph tools
103
103
  > (`build_code_graph`, `get_blast_radius`, `query_graph`,
104
104
  > `semantic_search_code`, `get_review_context`, `detect_changes`). Use
105
- > `power` (66 tools) for governance and audit tools. See slm-profile for
105
+ > `power` (68 tools) for governance and audit tools. See slm-profile for
106
106
  > profile switching.
107
107
 
108
108
  | Tool | Signature (key params) | Notes |
@@ -149,4 +149,4 @@ When the SLM MCP server is unavailable, use these CLI equivalents:
149
149
  - **slm-optimize-advisor** — context compression and KV cache
150
150
  - **slm-governance-advisor** — scope/role compliance, retention policies, GDPR
151
151
 
152
- SuperLocalMemory v4.1.20 · Qualixar · AGPL-3.0-or-later
152
+ SuperLocalMemory v4.1.21 · Qualixar · AGPL-3.0-or-later
@@ -145,4 +145,4 @@ These subcommands control daemon-level cache settings. They do not read or write
145
145
 
146
146
  ---
147
147
 
148
- SuperLocalMemory v4.1.20 · Qualixar · AGPL-3.0-or-later
148
+ SuperLocalMemory v4.1.21 · Qualixar · AGPL-3.0-or-later
@@ -147,4 +147,4 @@ Content over 1 MB (1 000 000 bytes UTF-8) is processed but `reversible` is force
147
147
 
148
148
  ---
149
149
 
150
- SuperLocalMemory v4.1.20 · Qualixar · AGPL-3.0-or-later
150
+ SuperLocalMemory v4.1.21 · Qualixar · AGPL-3.0-or-later
@@ -245,4 +245,4 @@ Before running any destructive operation (`forget`, `compact_memories`):
245
245
 
246
246
  ---
247
247
 
248
- *SuperLocalMemory v4.1.20 · Qualixar · AGPL-3.0-or-later*
248
+ *SuperLocalMemory v4.1.21 · Qualixar · AGPL-3.0-or-later*
@@ -312,4 +312,4 @@ profile. See `slm-profile` for the full profile switching workflow.
312
312
 
313
313
  ---
314
314
 
315
- SuperLocalMemory v4.1.20 · Qualixar · AGPL-3.0-or-later
315
+ SuperLocalMemory v4.1.21 · Qualixar · AGPL-3.0-or-later
@@ -96,4 +96,4 @@ paused, name the approval needed; when errored, quote the short detail.
96
96
 
97
97
  ---
98
98
 
99
- SuperLocalMemory v4.1.20 · Qualixar · AGPL-3.0-or-later
99
+ SuperLocalMemory v4.1.21 · Qualixar · AGPL-3.0-or-later
@@ -279,4 +279,4 @@ mesh availability.
279
279
 
280
280
  ---
281
281
 
282
- *SuperLocalMemory v4.1.20 · Qualixar · AGPL-3.0-or-later*
282
+ *SuperLocalMemory v4.1.21 · Qualixar · AGPL-3.0-or-later*
@@ -32,8 +32,8 @@ project, a client engagement, a production vs staging environment.
32
32
  |---------|-------|-------------|
33
33
  | `core` | 18 tools — remember, recall, search, session, optimize | Minimal footprint, no code tools |
34
34
  | `code` | 38 tools — core + portable Brain evidence + code graph + profile switching + bounded loops + memory-kind management | Default for IDE/coding agents |
35
- | `full` | 54 tools — code + all memory ops + mesh + bounded loops | Multi-session, team workflows |
36
- | `power` | 66 tools — full + governance + behavioral tools | Enterprise, admin, audit use cases |
35
+ | `full` | 56 tools — code + all memory ops + mesh + bounded loops | Multi-session, team workflows |
36
+ | `power` | 68 tools — full + governance + behavioral tools | Enterprise, admin, audit use cases |
37
37
  | `mesh` | 8 tools — mesh coordination only | Lightweight cross-session signalling |
38
38
 
39
39
  The profile is set at MCP server startup via `SLM_MCP_PROFILE` in the MCP config.
@@ -146,4 +146,4 @@ Name them differently in your MCP config (e.g. `superlocalmemory-personal` and
146
146
 
147
147
  ---
148
148
 
149
- *SuperLocalMemory v4.1.20 · Qualixar · AGPL-3.0-or-later*
149
+ *SuperLocalMemory v4.1.21 · Qualixar · AGPL-3.0-or-later*
@@ -330,4 +330,4 @@ before recalling, then switch back. See `slm-profile` for workspace switching.
330
330
 
331
331
  ---
332
332
 
333
- *SuperLocalMemory v4.1.20 · Qualixar · AGPL-3.0-or-later*
333
+ *SuperLocalMemory v4.1.21 · Qualixar · AGPL-3.0-or-later*
@@ -270,4 +270,4 @@ different workspace, use `switch_profile` first. See `slm-profile`.
270
270
 
271
271
  ---
272
272
 
273
- *SuperLocalMemory v4.1.20 · Qualixar · AGPL-3.0-or-later*
273
+ *SuperLocalMemory v4.1.21 · Qualixar · AGPL-3.0-or-later*
@@ -173,4 +173,4 @@ to review the impact. See `slm-remember` for the full deletion discipline.
173
173
 
174
174
  ---
175
175
 
176
- *SuperLocalMemory v4.1.20 · Qualixar · AGPL-3.0-or-later*
176
+ *SuperLocalMemory v4.1.21 · Qualixar · AGPL-3.0-or-later*
@@ -268,4 +268,4 @@ explicitly and call `recall` with `include_global`/`include_shared` after
268
268
 
269
269
  ---
270
270
 
271
- *SuperLocalMemory v4.1.20 · Qualixar · AGPL-3.0-or-later*
271
+ *SuperLocalMemory v4.1.21 · Qualixar · AGPL-3.0-or-later*
@@ -163,4 +163,4 @@ multi-profile setup. To switch the active profile, see `slm-profile`.
163
163
 
164
164
  ---
165
165
 
166
- SuperLocalMemory v4.1.20 · Qualixar · AGPL-3.0-or-later
166
+ SuperLocalMemory v4.1.21 · Qualixar · AGPL-3.0-or-later