superlocalmemory 4.1.21 → 4.1.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +3 -3
- package/CHANGELOG.md +210 -0
- package/README.md +101 -33
- package/antigravity-plugin/_GENERATED.md +33 -0
- package/antigravity-plugin/agents/slm-governance-advisor.md +78 -0
- package/antigravity-plugin/agents/slm-loop-runner.md +82 -0
- package/antigravity-plugin/agents/slm-memory-advisor.md +50 -0
- package/antigravity-plugin/agents/slm-optimize-advisor.md +44 -0
- package/antigravity-plugin/commands/slm-loop.md +33 -0
- package/antigravity-plugin/hooks/hooks.json +59 -0
- package/antigravity-plugin/hooks.json +42 -0
- package/antigravity-plugin/mcp_config.json +14 -0
- package/antigravity-plugin/plugin.json +25 -0
- package/antigravity-plugin/scripts/antigravity_hook_adapter.py +85 -0
- package/antigravity-plugin/skills/slm-bot-memory/SKILL.md +146 -0
- package/antigravity-plugin/skills/slm-cache/SKILL.md +147 -0
- package/antigravity-plugin/skills/slm-compress/SKILL.md +150 -0
- package/antigravity-plugin/skills/slm-getting-started-bot/SKILL.md +146 -0
- package/antigravity-plugin/skills/slm-governance/SKILL.md +221 -0
- package/antigravity-plugin/skills/slm-graph/SKILL.md +327 -0
- package/antigravity-plugin/skills/slm-loop/SKILL.md +153 -0
- package/antigravity-plugin/skills/slm-mesh/SKILL.md +287 -0
- package/antigravity-plugin/skills/slm-profile/SKILL.md +159 -0
- package/antigravity-plugin/skills/slm-recall/SKILL.md +430 -0
- package/antigravity-plugin/skills/slm-remember/SKILL.md +370 -0
- package/antigravity-plugin/skills/slm-scope/SKILL.md +183 -0
- package/antigravity-plugin/skills/slm-session/SKILL.md +291 -0
- package/antigravity-plugin/skills/slm-status/SKILL.md +185 -0
- package/antigravity-plugin/skills/slm-web-access/SKILL.md +91 -0
- package/codex-plugin/.claude-plugin/plugin.json +19 -0
- package/codex-plugin/.codex/config.toml +40 -0
- package/codex-plugin/.codex-plugin/plugin.json +43 -0
- package/codex-plugin/.mcp.json +16 -0
- package/codex-plugin/AGENTS.md +161 -0
- package/codex-plugin/README.md +205 -0
- package/codex-plugin/_GENERATED.md +52 -0
- package/codex-plugin/agents/slm-governance-advisor.md +78 -0
- package/codex-plugin/agents/slm-loop-runner.md +82 -0
- package/codex-plugin/agents/slm-memory-advisor.md +50 -0
- package/codex-plugin/agents/slm-optimize-advisor.md +44 -0
- package/codex-plugin/commands/slm-loop.md +33 -0
- package/codex-plugin/hooks/hooks.json +59 -0
- package/codex-plugin/scripts/ensure-venv.bat +108 -0
- package/codex-plugin/scripts/ensure-venv.sh +100 -0
- package/codex-plugin/scripts/slm-launch +55 -0
- package/codex-plugin/scripts/slm-launch.bat +30 -0
- package/codex-plugin/skills/slm-bot-memory/SKILL.md +146 -0
- package/codex-plugin/skills/slm-cache/SKILL.md +147 -0
- package/codex-plugin/skills/slm-compress/SKILL.md +150 -0
- package/codex-plugin/skills/slm-getting-started-bot/SKILL.md +146 -0
- package/codex-plugin/skills/slm-governance/SKILL.md +221 -0
- package/codex-plugin/skills/slm-graph/SKILL.md +327 -0
- package/codex-plugin/skills/slm-loop/SKILL.md +153 -0
- package/codex-plugin/skills/slm-mesh/SKILL.md +287 -0
- package/codex-plugin/skills/slm-profile/SKILL.md +159 -0
- package/codex-plugin/skills/slm-recall/SKILL.md +430 -0
- package/codex-plugin/skills/slm-remember/SKILL.md +370 -0
- package/codex-plugin/skills/slm-scope/SKILL.md +183 -0
- package/codex-plugin/skills/slm-session/SKILL.md +291 -0
- package/codex-plugin/skills/slm-status/SKILL.md +185 -0
- package/codex-plugin/skills/slm-web-access/SKILL.md +91 -0
- package/copilot-plugin/.github/agents/slm-governance-advisor.agent.md +80 -0
- package/copilot-plugin/.github/agents/slm-loop-runner.agent.md +84 -0
- package/copilot-plugin/.github/agents/slm-memory-advisor.agent.md +52 -0
- package/copilot-plugin/.github/agents/slm-optimize-advisor.agent.md +46 -0
- package/copilot-plugin/.github/copilot-instructions.md +52 -0
- package/copilot-plugin/.github/hooks/slm-hooks.json +44 -0
- package/copilot-plugin/.github/prompts/slm-bot-memory.prompt.md +147 -0
- package/copilot-plugin/.github/prompts/slm-cache.prompt.md +151 -0
- package/copilot-plugin/.github/prompts/slm-compress.prompt.md +154 -0
- package/copilot-plugin/.github/prompts/slm-getting-started-bot.prompt.md +147 -0
- package/copilot-plugin/.github/prompts/slm-governance.prompt.md +224 -0
- package/copilot-plugin/.github/prompts/slm-graph.prompt.md +322 -0
- package/copilot-plugin/.github/prompts/slm-loop.prompt.md +159 -0
- package/copilot-plugin/.github/prompts/slm-mesh.prompt.md +290 -0
- package/copilot-plugin/.github/prompts/slm-profile.prompt.md +155 -0
- package/copilot-plugin/.github/prompts/slm-recall.prompt.md +434 -0
- package/copilot-plugin/.github/prompts/slm-remember.prompt.md +375 -0
- package/copilot-plugin/.github/prompts/slm-scope.prompt.md +183 -0
- package/copilot-plugin/.github/prompts/slm-session.prompt.md +291 -0
- package/copilot-plugin/.github/prompts/slm-status.prompt.md +190 -0
- package/copilot-plugin/.github/prompts/slm-web-access.prompt.md +95 -0
- package/copilot-plugin/.vscode/mcp.json +11 -0
- package/copilot-plugin/README.md +26 -0
- package/copilot-plugin/_GENERATED.md +49 -0
- package/copilot-plugin/scripts/ensure-venv.bat +122 -0
- package/copilot-plugin/scripts/ensure-venv.sh +169 -0
- package/copilot-plugin/scripts/slm-launch +207 -0
- package/copilot-plugin/scripts/slm-launch.bat +32 -0
- package/copilot-plugin/scripts/slm-resolve.sh +128 -0
- package/copilot-plugin/scripts/slm-run +76 -0
- package/copilot-plugin/scripts/torch-cpu-resolve.sh +86 -0
- package/docs/pi-dev-integration.md +0 -2
- package/hermes-plugin/README.md +30 -0
- package/hermes-plugin/_GENERATED.md +3 -0
- package/hermes-plugin/__init__.py +417 -0
- package/hermes-plugin/agents/slm-governance-advisor.md +78 -0
- package/hermes-plugin/agents/slm-loop-runner.md +82 -0
- package/hermes-plugin/agents/slm-memory-advisor.md +50 -0
- package/hermes-plugin/agents/slm-optimize-advisor.md +44 -0
- package/hermes-plugin/command-inventory.json +7 -0
- package/hermes-plugin/plugin.yaml +24 -0
- package/hermes-plugin/remote.py +390 -0
- package/hermes-plugin/skills/slm-bot-memory/SKILL.md +146 -0
- package/hermes-plugin/skills/slm-cache/SKILL.md +147 -0
- package/hermes-plugin/skills/slm-compress/SKILL.md +150 -0
- package/hermes-plugin/skills/slm-getting-started-bot/SKILL.md +146 -0
- package/hermes-plugin/skills/slm-governance/SKILL.md +221 -0
- package/hermes-plugin/skills/slm-graph/SKILL.md +327 -0
- package/hermes-plugin/skills/slm-loop/SKILL.md +153 -0
- package/hermes-plugin/skills/slm-mesh/SKILL.md +287 -0
- package/hermes-plugin/skills/slm-profile/SKILL.md +159 -0
- package/hermes-plugin/skills/slm-recall/SKILL.md +430 -0
- package/hermes-plugin/skills/slm-remember/SKILL.md +370 -0
- package/hermes-plugin/skills/slm-scope/SKILL.md +183 -0
- package/hermes-plugin/skills/slm-session/SKILL.md +291 -0
- package/hermes-plugin/skills/slm-status/SKILL.md +185 -0
- package/hermes-plugin/skills/slm-web-access/SKILL.md +91 -0
- package/package.json +9 -16
- package/plugin/.claude-plugin/plugin.json +2 -2
- package/plugin/.cursor-plugin/plugin.json +24 -0
- package/plugin/CLAUDE.md +14 -12
- package/plugin/agents/slm-governance-advisor.md +14 -16
- package/plugin/agents/slm-loop-runner.md +22 -11
- package/plugin/agents/slm-memory-advisor.md +14 -14
- package/plugin/agents/slm-optimize-advisor.md +5 -5
- package/plugin/assets/logo.svg +36 -0
- package/plugin/commands/slm-loop.md +5 -3
- package/plugin/cursor-skills/slm-bot-memory/SKILL.md +146 -0
- package/plugin/cursor-skills/slm-getting-started-bot/SKILL.md +146 -0
- package/plugin/cursor-skills/slm-recall/SKILL.md +430 -0
- package/plugin/cursor-skills/slm-remember/SKILL.md +370 -0
- package/plugin/cursor-skills/slm-scope/SKILL.md +183 -0
- package/plugin/cursor-skills/slm-session/SKILL.md +291 -0
- package/plugin/hooks/hooks.json +9 -9
- package/plugin/mcp.cursor.json +23 -0
- package/plugin/requirements-cpu-torch.txt +13 -0
- package/plugin/requirements.txt +1 -1
- package/plugin/scripts/ensure-venv.sh +45 -3
- package/plugin/scripts/slm-launch +93 -9
- package/plugin/scripts/torch-cpu-resolve.sh +86 -0
- package/plugin/skills/slm-bot-memory/SKILL.md +146 -0
- package/plugin/skills/slm-cache/SKILL.md +6 -7
- package/plugin/skills/slm-compress/SKILL.md +3 -3
- package/plugin/skills/slm-getting-started-bot/SKILL.md +146 -0
- package/plugin/skills/slm-governance/SKILL.md +126 -153
- package/plugin/skills/slm-graph/SKILL.md +27 -15
- package/plugin/skills/slm-loop/SKILL.md +74 -20
- package/plugin/skills/slm-mesh/SKILL.md +17 -12
- package/plugin/skills/slm-profile/SKILL.md +101 -91
- package/plugin/skills/slm-recall/SKILL.md +151 -54
- package/plugin/skills/slm-remember/SKILL.md +132 -35
- package/plugin/skills/slm-scope/SKILL.md +24 -17
- package/plugin/skills/slm-session/SKILL.md +77 -57
- package/plugin/skills/slm-status/SKILL.md +54 -35
- package/plugin/skills/slm-web-access/SKILL.md +91 -0
- package/plugin-src/agents/slm-governance-advisor.md +78 -0
- package/plugin-src/agents/slm-loop-runner.md +82 -0
- package/plugin-src/agents/slm-memory-advisor.md +14 -14
- package/plugin-src/agents/slm-optimize-advisor.md +5 -5
- package/plugin-src/commands/slm-loop.md +33 -0
- package/plugin-src/rules/AGENTS.md +45 -36
- package/plugin-src/rules/CLAUDE.md.fragment +47 -0
- package/plugin-src/skills/slm-bot-memory/SKILL.md +146 -0
- package/plugin-src/skills/slm-cache/SKILL.md +6 -7
- package/plugin-src/skills/slm-compress/SKILL.md +3 -3
- package/plugin-src/skills/slm-getting-started-bot/SKILL.md +146 -0
- package/plugin-src/skills/slm-governance/SKILL.md +126 -153
- package/plugin-src/skills/slm-graph/SKILL.md +27 -15
- package/plugin-src/skills/slm-loop/SKILL.md +74 -20
- package/plugin-src/skills/slm-mesh/SKILL.md +17 -12
- package/plugin-src/skills/slm-profile/SKILL.md +101 -91
- package/plugin-src/skills/slm-recall/SKILL.md +151 -54
- package/plugin-src/skills/slm-remember/SKILL.md +132 -35
- package/plugin-src/skills/slm-scope/SKILL.md +24 -17
- package/plugin-src/skills/slm-session/SKILL.md +77 -57
- package/plugin-src/skills/slm-status/SKILL.md +54 -35
- package/plugin-src/skills/slm-web-access/SKILL.md +91 -0
- package/scripts/postinstall.js +107 -0
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"author": {
|
|
10
10
|
"name": "Qualixar"
|
|
11
11
|
},
|
|
12
|
-
"description": "Local-first agent memory + reversible context compression and KV cache, as an MCP server.
|
|
12
|
+
"description": "Local-first agent memory + reversible context compression and KV cache, as an MCP server. Serves the 56-tool full profile by default; set SLM_MCP_PROFILE=code for the 38-tool code profile.",
|
|
13
13
|
"homepage": "https://github.com/qualixar/superlocalmemory",
|
|
14
14
|
"keywords": [
|
|
15
15
|
"memory",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"license": "AGPL-3.0-or-later",
|
|
22
22
|
"name": "superlocalmemory",
|
|
23
23
|
"source": "./plugin",
|
|
24
|
-
"version": "4.1.
|
|
24
|
+
"version": "4.1.23"
|
|
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.
|
|
42
|
+
"version": "4.1.23"
|
|
43
43
|
}
|
|
44
44
|
]
|
|
45
45
|
}
|
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,216 @@ 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.23] — Your web apps and bots use the same memory, and it stays on your computer
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **Web access.** ChatGPT, Claude on the web, Claude Code on the web, Muse,
|
|
13
|
+
Composio and any MCP client that supports remote connections with OAuth can
|
|
14
|
+
use the memory on your computer. Turn it on from the dashboard's new
|
|
15
|
+
**Connected apps** page, sign in with GitHub, and choose per app whether it
|
|
16
|
+
may only read, also save, and use session tools. Your computer keeps one
|
|
17
|
+
outbound link to SLM's connection gateway; there is no port to open and no
|
|
18
|
+
tunnel or Cloudflare account to set up. The memory database never leaves the
|
|
19
|
+
computer, and SLM works fully without Web access. Each connection has a free
|
|
20
|
+
daily allowance of tool calls.
|
|
21
|
+
- Web access renews its own credentials while your computer is online. If the
|
|
22
|
+
computer stays offline long enough for access to lapse, the Connected apps
|
|
23
|
+
page warns before it ends and says what to do after. Once the computer has
|
|
24
|
+
been silent for 45 seconds, for example asleep, a web app is told at once that
|
|
25
|
+
it is unavailable. A relayed recall answers inside the relay's time budget,
|
|
26
|
+
and remote answers are compact JSON with host details redacted.
|
|
27
|
+
- **Connected apps** lists every app that can reach your memory and removes
|
|
28
|
+
any of them with immediate effect. Memory and local configuration are kept.
|
|
29
|
+
- **Instructions for web agents.** `docs/web-agents/` has a full and a short
|
|
30
|
+
instruction block and an Agent Skill folder that tell a connected app when to
|
|
31
|
+
recall, when to say it has no answer, what to save (with kind, tags and an
|
|
32
|
+
idempotency key) and what to do when your computer is asleep or the daily
|
|
33
|
+
allowance is used up. The dashboard copies the short block for you.
|
|
34
|
+
- **`slm-web-access` skill** in every editor plugin, so a local agent can help
|
|
35
|
+
you set up Web access and diagnose a connection.
|
|
36
|
+
- **`slm db repair` brings the two vector indexes back in line with the
|
|
37
|
+
memories.** It rewrites sqlite-vec rows that no longer match their memory's
|
|
38
|
+
embedding and removes LanceDB rows for memories that are gone, withheld or
|
|
39
|
+
soft-deleted; `slm db integrity` reports both counts.
|
|
40
|
+
- **SLM checks your memory store after an upgrade, and Health offers Repair
|
|
41
|
+
now.** A few minutes after the first start of a new version, the store is
|
|
42
|
+
checked in the background; the check only reads. The dashboard's Health page
|
|
43
|
+
lists what it found in plain words, the sidebar marks Health while something
|
|
44
|
+
can be repaired, and **Repair now** saves a full backup copy first, runs the
|
|
45
|
+
same repair as `slm db repair`, and checks again. If the backup copy cannot
|
|
46
|
+
be made, nothing is changed.
|
|
47
|
+
- **Every editor plugin ships in the npm package**: Codex, VS Code / Copilot,
|
|
48
|
+
Hermes and Antigravity alongside Claude Code, with all skills, agents and
|
|
49
|
+
rules. `slm codex install` now installs every skill and all four sub-agents.
|
|
50
|
+
[Editor and agent plugins](docs/plugins.md) gives each host's install
|
|
51
|
+
commands.
|
|
52
|
+
- **Model advice carries SLM's own measured results**, and a model measured on
|
|
53
|
+
a small sample is ranked conservatively.
|
|
54
|
+
|
|
55
|
+
### Changed
|
|
56
|
+
|
|
57
|
+
- The editor plugins' skills, agents and rules were checked against the
|
|
58
|
+
current tools and corrected where they had drifted.
|
|
59
|
+
|
|
60
|
+
### Fixed
|
|
61
|
+
|
|
62
|
+
- **4.1.22 could corrupt `memory.db` or lose saves (GitHub #153).** The start-up
|
|
63
|
+
cache read opened and closed `memory.db` inside the daemon. SQLite's locks
|
|
64
|
+
belong to the process, so that close dropped them: another process (a hook,
|
|
65
|
+
`slm mcp`, `slm doctor`) could then delete the WAL under the running daemon,
|
|
66
|
+
which logged "database disk image is malformed" or "disk I/O error" and could
|
|
67
|
+
write stale pages back into the store. The read now runs in a child process.
|
|
68
|
+
Thanks to @MelleKoning for the detailed report and an independent fix (#154).
|
|
69
|
+
**If you run 4.1.22, upgrade.** If `slm doctor` then reports a malformed
|
|
70
|
+
database, list restore points with `slm db restore-points` and go back to the
|
|
71
|
+
newest one with `slm db restore <id>`; then run `slm db integrity`. Upgrading
|
|
72
|
+
is the supported path: migrations are forward-only, so going back to an older
|
|
73
|
+
release needs a backup taken before it.
|
|
74
|
+
- On SQLite older than 3.42 (for example Ubuntu 22.04), every start and every
|
|
75
|
+
erasure logged "keyword index secure delete not enabled: SQL logic error".
|
|
76
|
+
That SQLite cannot remove deleted words from the keyword index at once;
|
|
77
|
+
SLM now says so once at info level, and `slm db repair` removes them.
|
|
78
|
+
- The "Lance semantic projection diverged from SQLite" warning at every start
|
|
79
|
+
is gone: LanceDB search now covers every tier the canonical search ranks.
|
|
80
|
+
- Semantic search on LanceDB now finds cold and archived memories too.
|
|
81
|
+
- A rebuilt vector projection leaves out withheld and soft-deleted memories.
|
|
82
|
+
- An erasure also blanks the preview of the erased memory in auto-observe
|
|
83
|
+
activity events, and `slm db repair` blanks previews that earlier erasures
|
|
84
|
+
left in activity events.
|
|
85
|
+
- A web app's save or recall is never filed under the session of an agent
|
|
86
|
+
running on your computer.
|
|
87
|
+
- A second suggestion about the same memory no longer logs a warning on every
|
|
88
|
+
save.
|
|
89
|
+
- A memory saved with the same words as another memory is no longer counted as
|
|
90
|
+
repair work that the repair could never do.
|
|
91
|
+
- Maintenance never creates an empty database at a path where no store exists.
|
|
92
|
+
- The Hermes guide named a release download that was never published; it now
|
|
93
|
+
installs the plugin from the repository. The VS Code guide named a connect
|
|
94
|
+
command that does not exist; it is `slm connect vscode-copilot --here`.
|
|
95
|
+
- The laptop link no longer fails at start when two parts read its credential
|
|
96
|
+
at the same time.
|
|
97
|
+
- The `remember` tool is declared additive, so clients do not treat saving as a
|
|
98
|
+
destructive action.
|
|
99
|
+
|
|
100
|
+
### Security
|
|
101
|
+
|
|
102
|
+
- The remote connector's HTTP clients never follow a redirect, and tests pin
|
|
103
|
+
that the API key cannot be sent to another host.
|
|
104
|
+
- Web access grants are narrowed to the scopes you consented to, for one MCP
|
|
105
|
+
resource; client registration keeps no diagnostic records.
|
|
106
|
+
|
|
107
|
+
## [4.1.22] — Faster recall from the first second, memories that stay findable, deletes you can trust
|
|
108
|
+
|
|
109
|
+
### Added
|
|
110
|
+
|
|
111
|
+
- **Filter by exact tags.** `recall`, `search`, `list` and `slm recall/list`
|
|
112
|
+
take a tag filter, over MCP, HTTP and the daemon proxy. A tag filter searches
|
|
113
|
+
inside the tagged memories and says why a result is empty.
|
|
114
|
+
- **Switch the embedding model without losing recall.** `slm embedder`
|
|
115
|
+
re-indexes in the background, keeps the previous vectors, gives way to
|
|
116
|
+
recall while it works, resumes after a crash and can roll back.
|
|
117
|
+
- **Model recommendations for this computer.** A model catalogue with current
|
|
118
|
+
defaults and each local model's result in SLM's extraction test; the setup
|
|
119
|
+
wizard offers your installed Ollama models, best first, and `slm models` and
|
|
120
|
+
the dashboard suggest installed and recommended models.
|
|
121
|
+
- **Every recall says whether its answer was checked**: supported,
|
|
122
|
+
unsupported or unjudged, and why.
|
|
123
|
+
- **`slm db integrity` and `slm db repair`** show store health in five parts
|
|
124
|
+
and fix leftover rows, erased words, unfinished deletes and memories that
|
|
125
|
+
lost their searchable fact, with receipts and undo. A repair never brings
|
|
126
|
+
back anything that was erased, deleted or withheld.
|
|
127
|
+
- **`slm corrections overtaken`** lists corrections SLM had only proposed
|
|
128
|
+
itself that a delete, replace or edit overtook; `restore-overtaken` puts one
|
|
129
|
+
back.
|
|
130
|
+
- Older memories in an upgraded store are classified by kind once, on this
|
|
131
|
+
device, in the background.
|
|
132
|
+
- SuperLocalMemory installs as a Cursor-format plugin for Grok Bot, with a
|
|
133
|
+
low-RAM profile for shared bot hosts and two skills for bots sharing one
|
|
134
|
+
computer.
|
|
135
|
+
|
|
136
|
+
### Changed
|
|
137
|
+
|
|
138
|
+
- **Recall is about 2.6 times faster, with the same answers.** On a copy of a
|
|
139
|
+
real store, typical recall went from 849 ms to 321 ms (slowest 5%: 1.2 s to
|
|
140
|
+
0.49 s), and on 124 held-out questions from 923 ms to 340 ms (slowest 5%:
|
|
141
|
+
2.0 s to 0.77 s). Every speed change returns the same top ten memories as
|
|
142
|
+
before on all 184 test questions.
|
|
143
|
+
- **Fast from the first second after a start, and while you save.** The store
|
|
144
|
+
is read into memory once at start, graph rankings and stored vectors are
|
|
145
|
+
prepared in separate background processes, background work yields to a
|
|
146
|
+
running recall at fine grain, requests no longer open the database to check
|
|
147
|
+
the login setting, and several slow store queries now use indexes. On a
|
|
148
|
+
22,000-memory store with the answer check on, a recall every second and a
|
|
149
|
+
save every half second: recalls slower than 3 s went from 13 of 318 to 7 of
|
|
150
|
+
297, with none in the first minute after a start (3 before), and saves slower
|
|
151
|
+
than 1.5 s from 7 of 56 to 1 of 87.
|
|
152
|
+
- **Background enrichment keeps up.** Saved memories finish enrichment while
|
|
153
|
+
you keep recalling, instead of waiting for a quiet moment that never came:
|
|
154
|
+
about six times as many per minute under steady recall.
|
|
155
|
+
- **A stated rule answers a yes/no permission question.** "May the agent
|
|
156
|
+
publish without approval?" is answered by a memory that says "Never publish
|
|
157
|
+
until the owner approves", with the same answer-check threshold as before;
|
|
158
|
+
the answer says it came from a rule. A rule about one named thing does not
|
|
159
|
+
answer a general question.
|
|
160
|
+
- A memory that says it corrects an earlier one keeps that suggestion when the
|
|
161
|
+
model's check is unsure.
|
|
162
|
+
- Local models copy the extraction prompt's example into your memories no
|
|
163
|
+
more, and invent fewer dates and numbers (llama3.2: sources with a fact the
|
|
164
|
+
source did not support went from 36 to 22 of 102; gemma3:4b from 1 to 0;
|
|
165
|
+
qwen2.5:7b 6 before, 7 now).
|
|
166
|
+
- A fresh install (and CI) starts in Mode A.
|
|
167
|
+
- `slm --json` and MCP tool responses are no longer pretty-printed.
|
|
168
|
+
|
|
169
|
+
### Fixed
|
|
170
|
+
|
|
171
|
+
- **A note that looked like an older one no longer loses its searchable fact.**
|
|
172
|
+
Enrichment deleted a new memory's only fact when it resembled another
|
|
173
|
+
memory's, so notes that differed only in a number or a declared kind could
|
|
174
|
+
not be found a moment after saving. `slm db repair` gives existing ones back.
|
|
175
|
+
- **A question that mentions a time like "recently" still finds an older
|
|
176
|
+
memory it matches**, instead of returning nothing.
|
|
177
|
+
- **A memory you save stays findable while SLM's own guess that it updates an
|
|
178
|
+
older one waits for review.** Approving the guess retires the older memory;
|
|
179
|
+
rejecting it keeps both. In one real store this made 406 saved memories
|
|
180
|
+
findable again; how often the right memory comes first is unchanged.
|
|
181
|
+
- **Saves are not refused when the computer briefly stalls**, and a save
|
|
182
|
+
acknowledged just before the service was killed is enriched as soon as it
|
|
183
|
+
restarts.
|
|
184
|
+
- **Deleting and erasing.** Erasing a memory removes its words everywhere
|
|
185
|
+
(keyword index, journal, event previews, entity summaries, logs, soft-forget
|
|
186
|
+
copies, vectors kept for a model switch). Erasing a person also erases the
|
|
187
|
+
memories they corrected, and erasing a whole profile no longer stops partway.
|
|
188
|
+
A delete refused at the last moment no longer leaves a memory unfindable.
|
|
189
|
+
Deleting a profile moves its memories to default, still findable, linked and
|
|
190
|
+
correctable.
|
|
191
|
+
- A save sees the people and things it just added, so it does not create them
|
|
192
|
+
twice; a cancelled save leaves no trace in recall's lookups.
|
|
193
|
+
- A background computation that times out, or whose service was stopped, no
|
|
194
|
+
longer keeps running.
|
|
195
|
+
- Two recalls at the same moment are both reranked.
|
|
196
|
+
- Measurements like 2004.6 ms are kept as measurements, never turned into
|
|
197
|
+
dates.
|
|
198
|
+
- Bounded Loops runs with a node that never ran (an approval or a join) are no
|
|
199
|
+
longer rejected, and a gate verdict must be a real true or false.
|
|
200
|
+
- The first memory call after a fresh start waits for SLM to finish starting;
|
|
201
|
+
a tool call no longer waits 60 s when two starts race; stopping a daemon
|
|
202
|
+
stuck in start-up no longer hangs.
|
|
203
|
+
- Windows: SLM notices a stopped daemon at once, and Codex and Claude Code
|
|
204
|
+
hooks run SLM's own command.
|
|
205
|
+
- Linux hosts with no GPU install CPU-only torch.
|
|
206
|
+
- The remote listener closes a connection that floods data before its first
|
|
207
|
+
request; which cached answers get re-checked can no longer be predicted from
|
|
208
|
+
outside this install.
|
|
209
|
+
- Plugin listings state the tool counts they really serve; the Hermes plugin
|
|
210
|
+
reaches the new `slm models`, `slm corrections` and `slm embedder` commands.
|
|
211
|
+
|
|
212
|
+
### Known issues
|
|
213
|
+
|
|
214
|
+
- On very large stores under heavy saving, a few recalls can still take longer
|
|
215
|
+
than 3 s while the store is busy committing a large write.
|
|
216
|
+
|
|
217
|
+
|
|
8
218
|
## [4.1.21] — Recall that knows your project, and memories that stay findable
|
|
9
219
|
|
|
10
220
|
### Added
|
package/README.md
CHANGED
|
@@ -9,9 +9,11 @@
|
|
|
9
9
|
|
|
10
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
11
|
|
|
12
|
-
**
|
|
12
|
+
**Recall can be checked before your agent uses it.** With the answer check on, 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, recall marks the results `abstained`, so your agent can say "I don't have that" instead of handing over a confident wrong answer: a hallucination guard for retrieval ([answer check](#answer-check-laya-and-jev)).
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
**Your bots and web apps can use the same memory.** Local agents connect over MCP, including the Grok Bot plugin on a shared bot computer. ChatGPT, Claude on the web, Muse, Composio and other web MCP clients can reach it through optional [Web access](#web-apps-and-bots-web-access): you sign in with GitHub for each app, choose whether it may only read or also save, and remove any app at once.
|
|
15
|
+
|
|
16
|
+
In Mode A, core remember and recall make no model-provider call unless you turn on the online answer check (Jev). Anything that sends data out is a choice you make, and the docs say exactly what goes.
|
|
15
17
|
|
|
16
18
|
[](https://pypi.org/project/superlocalmemory/)
|
|
17
19
|
[](https://www.npmjs.com/package/superlocalmemory)
|
|
@@ -70,35 +72,37 @@ Real output from a fresh Mode A install, trimmed. Scores rank; they are not prob
|
|
|
70
72
|
|
|
71
73
|
Five minutes: install, setup, recall, cache and compression.
|
|
72
74
|
|
|
73
|
-
### The dashboard
|
|
75
|
+
### The dashboard
|
|
74
76
|
|
|
75
|
-
Captured from a
|
|
77
|
+
Captured from a real 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
78
|
|
|
77
79
|
| Memories that answer the question | Memories that do not: "I don't have that" |
|
|
78
80
|
|---|---|
|
|
79
|
-
|  |  |
|
|
80
82
|
|
|
81
83
|
| Recall Lab: why each memory was chosen | Every memory with its kind and project |
|
|
82
84
|
|---|---|
|
|
83
|
-
|  |  |
|
|
86
|
+
|
|
87
|
+

|
|
84
88
|
|
|
85
|
-

|
|
86
90
|
|
|
87
|
-
## Why SuperLocalMemory
|
|
91
|
+
## Why SuperLocalMemory
|
|
88
92
|
|
|
89
93
|
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
94
|
|
|
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 [
|
|
95
|
+
**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 [governed-memory paper](https://arxiv.org/abs/2608.08253) measures what the governed write path costs. Code: `src/superlocalmemory/access/`, `compliance/`.
|
|
92
96
|
|
|
93
|
-
**2. A zero-LLM core built on published math.** Five retrieval channels, fusion and the learned ranker run without a language model;
|
|
97
|
+
**2. A zero-LLM core built on published math.** Five retrieval channels, fusion and the learned ranker run without a language model; the published architecture scored 60.4% on LoCoMo with no LLM anywhere ([benchmarks](#benchmarks)). Fisher-information scoring, sheaf contradiction detection and Langevin lifecycle dynamics added 12.7 points ([architecture paper](https://arxiv.org/abs/2603.14588)).
|
|
94
98
|
|
|
95
99
|
**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
100
|
|
|
97
101
|
**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
102
|
|
|
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 ([
|
|
103
|
+
**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 ([lifecycle paper](https://arxiv.org/abs/2604.04514)).
|
|
100
104
|
|
|
101
|
-
**6. Many agents, one coordinated memory.** Every write records its agent, with Bayesian trust scores against poisoning ([
|
|
105
|
+
**6. Many agents, one coordinated memory.** Every write records its agent, with Bayesian trust scores against poisoning ([trust paper](https://arxiv.org/abs/2603.02240)). SLM-Mesh gives parallel sessions messages, locks and shared state.
|
|
102
106
|
|
|
103
107
|
**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
108
|
|
|
@@ -110,15 +114,76 @@ SLM is part of Qualixar's AI Reliability Engineering work: agent memory that is
|
|
|
110
114
|
|
|
111
115
|
| Surface | What you get | Docs |
|
|
112
116
|
|---|---|---|
|
|
113
|
-
| Editor plugins | Claude Code, Codex, VS Code / Copilot, Antigravity, Hermes. Each ships
|
|
117
|
+
| Editor plugins | Claude Code, Codex, VS Code / Copilot, Antigravity, Hermes. Each ships 15 skills, 4 sub-agents and session hooks; the npm package carries every plugin folder | [Plugins](docs/plugins.md), [IDE setup](docs/ide-setup.md), [Hermes](docs/hermes.md) |
|
|
118
|
+
| Any other agent | The universal agent rules: one file that teaches any agent when to recall, what to save and how to keep memory clean. Paste it into `AGENTS.md`, `CLAUDE.md`, `.cursorrules` or the agent's system prompt | [Universal agent rules](plugin-src/rules/AGENTS.md) |
|
|
114
119
|
| `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
120
|
| 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) |
|
|
116
121
|
| Framework adapters | LangGraph, LangChain, LlamaIndex, CrewAI, AutoGen, Semantic Kernel, Microsoft Agent Framework, Google ADK, OpenAI Agents | [Framework adapters](docs/framework-adapters.md) |
|
|
117
122
|
| Python SDK and HTTP API | `MemoryEngine` in your code; the local REST API | [API reference](docs/api-reference.md) |
|
|
118
123
|
| Auto-capture hooks | `slm hooks install` for Claude Code, `--agent codex` for Codex | [Auto-memory](docs/auto-memory.md) |
|
|
124
|
+
| Web apps (ChatGPT, Claude on the web, Muse, Composio) | Optional Web access, turned on from the dashboard: OAuth sign-in, read or save per app, and a Connected apps page to remove any app at once. Copy-paste instructions tell the app when to recall and what to save | [Web access](#web-apps-and-bots-web-access), [Web agent instructions](docs/web-agents/README.md) |
|
|
125
|
+
| Cursor-format plugin (Grok Bot, Cursor) | A marketplace-distributed plugin — different from `slm connect cursor` above — that runs on a shared, memory-tight computer with no hooks or dashboard | See below |
|
|
119
126
|
|
|
120
127
|
Claude Code memory in two commands: `claude plugin marketplace add qualixar/superlocalmemory`, then `claude plugin install superlocalmemory@qualixar`.
|
|
121
128
|
|
|
129
|
+
### Grok Bot (and other Cursor-format plugin hosts)
|
|
130
|
+
|
|
131
|
+
Grok Bot runs plugins in Cursor's format: a `.cursor-plugin/plugin.json` manifest, not the
|
|
132
|
+
`.claude-plugin/` one Claude Code reads. SuperLocalMemory ships both from one source, so the
|
|
133
|
+
plugin works on Grok Bot's shared, memory-constrained computer without any manual MCP setup.
|
|
134
|
+
|
|
135
|
+
**Install:** add the `qualixar` marketplace (`.cursor-plugin/marketplace.json` at this repo's
|
|
136
|
+
root) in Grok Bot's Plugins screen, then add `superlocalmemory`. No API key, no sign-in step —
|
|
137
|
+
the server runs locally on the Grok Bot computer, so nothing goes to a memory SaaS.
|
|
138
|
+
*(The MCP server starts as `uvx --from superlocalmemory==<version> slm mcp`: a pinned,
|
|
139
|
+
on-PATH command, with `UV_TORCH_BACKEND=cpu` so a GPU-less Linux box never pulls PyTorch's CUDA
|
|
140
|
+
wheel stack. The first start resolves the package once; the first recall downloads the local
|
|
141
|
+
embedding model once.)*
|
|
142
|
+
|
|
143
|
+
**Try it:** tell any bot *"Remember that our Q4 theme is agent reliability."* Then open a
|
|
144
|
+
different bot and ask *"What's our Q4 theme?"*
|
|
145
|
+
|
|
146
|
+
**What's shared and what isn't:** every write is attributed to `SLM_AGENT_ID=cursor_plugin` —
|
|
147
|
+
that is attribution, not an access boundary. If your bots share one `SLM_DATA_DIR` (the default
|
|
148
|
+
on one Grok Bot computer), they share one memory store: anything stored without an explicit
|
|
149
|
+
`scope` is visible to any bot that can reach that store, the same way two terminal sessions on
|
|
150
|
+
one laptop would see each other's files. Mark a fact `scope=global` only when every bot on that
|
|
151
|
+
computer should see it; a bot that genuinely needs private memory needs its own `SLM_DATA_DIR`.
|
|
152
|
+
See the `slm-bot-memory` skill (ships with this plugin) for the full model, including what
|
|
153
|
+
should never be stored on a computer shared with other bots (secrets, keys, other people's
|
|
154
|
+
personal data).
|
|
155
|
+
|
|
156
|
+
**Tools:** this plugin sets `SLM_MCP_PROFILE=core` — 18 tools (`remember`, `recall`, `search`,
|
|
157
|
+
session lifecycle, compression/cache, corrections) — deliberately smaller than the 56-tool
|
|
158
|
+
default profile every other host gets, so a shared computer is not listing tool descriptions
|
|
159
|
+
for tiers it will not use.
|
|
160
|
+
|
|
161
|
+
**Resources — the lite bot-host profile:** this plugin also sets `SLM_RERANKER_ENABLED=false`,
|
|
162
|
+
`SLM_RERANKER_IDLE_TIMEOUT=120` and `SLM_MAX_EMBEDDING_WORKERS=1` by default, because the box is
|
|
163
|
+
"shared by every bot on it" with as little as 1.8-3.5 GiB free. Measured on macOS, warm, after
|
|
164
|
+
one remember and one recall: about 390 MB resident with the reranker on (daemon + reranker
|
|
165
|
+
worker + embedding worker) vs. about 190 MB with it off — recall still runs every other channel
|
|
166
|
+
(BM25, semantic, entity graph, temporal, spreading activation, Hopfield) and fuses them, just
|
|
167
|
+
without the cross-encoder re-ordering pass. Set `SLM_RERANKER_ENABLED=true` in the plugin's env
|
|
168
|
+
block to trade that RAM back for ranking precision, or run `slm serve stop` when a bot is done
|
|
169
|
+
with it.
|
|
170
|
+
|
|
171
|
+
### Web apps and bots: Web access
|
|
172
|
+
|
|
173
|
+
ChatGPT, Claude on the web, Muse, Composio and other HTTP MCP clients can use the same memory as the agents on your computer. Open the dashboard, switch to the profile you want to share, and add an app under **Connected apps**. The app signs in with OAuth. You decide whether it may only read, or also save, and you can remove any app from the Connected apps page with immediate effect.
|
|
174
|
+
|
|
175
|
+
Your laptop keeps an outbound connection to SLM's connection gateway. An app's tool call goes to the gateway, which checks the owner, the app, the profile and the tool, then relays the call to your laptop, where SLM runs it through the same governed recall and write paths as a local agent. There is no port to open, no tunnel and no Cloudflare account to set up.
|
|
176
|
+
|
|
177
|
+
- The memory database stays on your laptop. Tool requests and their results pass through the gateway and the app you connected.
|
|
178
|
+
- The laptop must be online. Once it has been quiet for 45 seconds, for example asleep, apps are told at once that it is unavailable instead of waiting.
|
|
179
|
+
- Access renews itself. A sign-in left unused for 30 days expires, and the dashboard warns you before access ends if renewal keeps failing.
|
|
180
|
+
- Each connection has a free daily allowance of tool calls.
|
|
181
|
+
- SLM itself stays free and works fully without Web access.
|
|
182
|
+
|
|
183
|
+
Connecting an app gives it the tools, not the judgment to use them well. Paste the [web agent instructions](docs/web-agents/instructions.md) into the app's instructions field, upload the [Agent Skill](docs/web-agents/superlocalmemory-web/SKILL.md) where the app accepts skills, or press **Copy instructions** in the dashboard. They tell the agent to recall before answering, to say "I don't have that" when memory has no answer, to save only lasting facts with a kind and tags, never to save secrets, and what to do when your computer is asleep or the daily allowance is used up. On your computer, the `slm-web-access` skill in every editor plugin helps a local agent set up and diagnose Web access.
|
|
184
|
+
|
|
185
|
+
[Web access documentation](docs/remote-access/README.md) · [Web agent instructions](docs/web-agents/README.md) · [Architecture and boundaries](docs/remote-access/architecture.md) · [Dashboard onboarding](docs/remote-access/onboarding.md)
|
|
186
|
+
|
|
122
187
|
## What developers use it for
|
|
123
188
|
|
|
124
189
|
- **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.
|
|
@@ -133,9 +198,9 @@ Claude Code memory in two commands: `claude plugin marketplace add qualixar/supe
|
|
|
133
198
|
|
|
134
199
|
## Architecture
|
|
135
200
|
|
|
136
|
-

|
|
137
202
|
|
|
138
|
-
|
|
203
|
+
**The free local core is complete on its own.** npm and PyPI installs, Claude Code, Codex, local MCP tools, SLM-Mesh and the Laya and Jev answer checks run without Web access. SQLite + sqlite-vec are canonical; CozoDB and LanceDB are projections that serve only once they match SQLite. [Local engine architecture](docs/ARCHITECTURE.md) · [Detailed local pipeline diagram](docs/assets/slm-pipeline.svg) · [Web access architecture](docs/remote-access/architecture.md)
|
|
139
204
|
|
|
140
205
|
## Everything SLM does
|
|
141
206
|
|
|
@@ -148,12 +213,13 @@ Claude Code memory in two commands: `claude plugin marketplace add qualixar/supe
|
|
|
148
213
|
| 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) |
|
|
149
214
|
| Replace and correct | `--replaces <id>` retires an old fact, kept and undoable. Edits go through reviewed corrections with rollback | [Corrections](docs/reviewed-corrections.md) |
|
|
150
215
|
| Time travel | `--as-of`, `--known-as-of`, `--valid-at`, and `--window 7d` or a date range | [Recall](docs/recall.md#time-travel) |
|
|
151
|
-
| Recall filters | `--project`, `--saved-by`, `--about`, `--kind
|
|
152
|
-
| Project-aware recall |
|
|
153
|
-
| Summaries and saved views |
|
|
216
|
+
| Recall filters | `--project`, `--saved-by`, `--about`, `--kind`, and exact tags with `--tag` (repeat it; `--tags-match all` or `any`); applied before the answer check, and an empty result says why | [Recall](docs/recall.md#narrowing-a-recall) |
|
|
217
|
+
| Project-aware recall | Memories from your current project rank first, hiding nothing. `--project` narrows and says when nothing matched | [Recall](docs/recall.md) |
|
|
218
|
+
| Summaries and saved views | `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) |
|
|
154
219
|
| Knowledge graph | Entities, aliases, scenes and timelines; Entity Explorer in the dashboard | [Architecture](docs/ARCHITECTURE.md) |
|
|
155
220
|
| 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) |
|
|
221
|
+
| 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. `slm models` recommends models that fit this computer | [Configuration](docs/configuration.md) |
|
|
222
|
+
| Switch the embedding model | `slm embedder switch MODEL` re-indexes every memory in the background while recall keeps working, then changes over in one step; `status`, `cancel` and `rollback` | [CLI reference](docs/cli-reference.md#embedding-models-and-store-health) |
|
|
157
223
|
|
|
158
224
|
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
225
|
|
|
@@ -187,7 +253,7 @@ Engineering controls that support a compliance program, not a certification.
|
|
|
187
253
|
|
|
188
254
|
**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
255
|
|
|
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
|
|
256
|
+
**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), [Bounded Loops bridge](docs/bounded-loops-bridge.md)
|
|
191
257
|
|
|
192
258
|
### Answer check: Laya and Jev
|
|
193
259
|
|
|
@@ -211,9 +277,9 @@ Only one runs at a time and the online option never turns itself on. Results are
|
|
|
211
277
|
|
|
212
278
|
All of it fails open. [Optimize](docs/optimize-overview.md), [Proxy setup](docs/proxy-setup.md)
|
|
213
279
|
|
|
214
|
-
###
|
|
280
|
+
### Direct remote access on your own network
|
|
215
281
|
|
|
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
|
|
282
|
+
`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), [Deployment tiers](docs/deployment-tiers.md)
|
|
217
283
|
|
|
218
284
|
### Scale and operations
|
|
219
285
|
|
|
@@ -221,6 +287,7 @@ All of it fails open. [Optimize](docs/optimize-overview.md), [Proxy setup](docs/
|
|
|
221
287
|
- **[Dashboard](docs/DASHBOARD-COVERAGE.md):** `slm dashboard`, 16 panes including Answer Check, Brain, Knowledge Graph, Governance, Optimize and Mesh Peers.
|
|
222
288
|
- **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
289
|
- **[Operations](docs/troubleshooting.md):** `slm doctor`, `status`, `health`, `restart`, `ops`; stuck operations are listed and resolved.
|
|
290
|
+
- **Store health:** `slm db integrity` reports the store's health; `slm db repair` previews fixes for leftover rows, erased words, unfinished deletes and memories that lost their searchable fact, applies them with `--apply`, and undoes a run with `--undo`. It never brings back anything erased, deleted or withheld. [CLI reference](docs/cli-reference.md#embedding-models-and-store-health)
|
|
224
291
|
|
|
225
292
|
## MCP memory server: tool profiles
|
|
226
293
|
|
|
@@ -252,14 +319,15 @@ What leaves your machine, and when:
|
|
|
252
319
|
| Memory text | You choose Mode C, a cloud embedder or reranker, an Ollama on another computer, or Jev kind typing (its own consent) |
|
|
253
320
|
| Encrypted backup files | You connect GitHub or Google Drive backup. Files are encrypted before upload |
|
|
254
321
|
| Mesh messages | You configure SLM-Mesh peers |
|
|
322
|
+
| Remote tool requests and their results | You turn on Web access and add an app. They pass through SLM's connection gateway and that app; the memory database stays on your laptop |
|
|
255
323
|
|
|
256
324
|
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).
|
|
257
325
|
|
|
258
|
-
## Benchmarks
|
|
326
|
+
## Benchmarks
|
|
259
327
|
|
|
260
|
-
These numbers come from the published
|
|
328
|
+
These numbers come from the published architecture paper ([arXiv:2603.14588](https://arxiv.org/abs/2603.14588)), whose retrieval core SLM still runs. They are not a fresh run of the current package.
|
|
261
329
|
|
|
262
|
-
|
|
|
330
|
+
| Configuration (architecture paper) | LoCoMo | Scope |
|
|
263
331
|
|---|---:|---|
|
|
264
332
|
| Mode A, retrieval + GPT-4.1-mini answers | 74.8% | 10 conversations, 1,276 questions |
|
|
265
333
|
| Mode A, raw (no LLM anywhere) | 60.4% | 10 conversations, 1,276 questions |
|
|
@@ -271,12 +339,12 @@ Method, category breakdown and ablations: [docs/benchmarks.md](docs/benchmarks.m
|
|
|
271
339
|
|
|
272
340
|
Four arXiv preprints by Varun Pratap Bhardwaj describe SLM, newest first:
|
|
273
341
|
|
|
274
|
-
1. **
|
|
275
|
-
2. **
|
|
276
|
-
3. **
|
|
277
|
-
4. **
|
|
342
|
+
1. **Governed memory (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.
|
|
343
|
+
2. **Lifecycle and forgetting (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.
|
|
344
|
+
3. **Information-geometric architecture (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.
|
|
345
|
+
4. **Trust and multi-agent memory (2026):** [SuperLocalMemory: Privacy-Preserving Multi-Agent Memory with Bayesian Trust Defense Against Memory Poisoning](https://arxiv.org/abs/2603.02240), arXiv:2603.02240.
|
|
278
346
|
|
|
279
|
-
Cite the
|
|
347
|
+
Cite the governed-memory paper with [CITATION.cff](CITATION.cff) or GitHub's "Cite this repository" button:
|
|
280
348
|
|
|
281
349
|
```bibtex
|
|
282
350
|
@article{bhardwaj2026superlocalmemory,
|
|
@@ -289,13 +357,13 @@ Cite the V4 paper with [CITATION.cff](CITATION.cff) or GitHub's "Cite this repos
|
|
|
289
357
|
|
|
290
358
|
## Documentation
|
|
291
359
|
|
|
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
|
|
360
|
+
**Start:** [Getting started](docs/getting-started.md) · [IDE setup](docs/ide-setup.md) · [Plugins](docs/plugins.md) · [Linux install](docs/install-linux.md) · [Quick proof](docs/QUICK_PROOF.md) · [Migrating an old store](docs/migration-from-v2.md)
|
|
293
361
|
|
|
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)
|
|
362
|
+
**Use:** [Recall](docs/recall.md) · [Memory kinds](docs/memory-kinds.md) · [Answer check](docs/answer-check.md) · [Auto-memory](docs/auto-memory.md) · [Universal agent rules](plugin-src/rules/AGENTS.md) · [Web agent instructions](docs/web-agents/README.md) · [Shared memory](docs/shared-memory.md) · [Optimize](docs/optimize-overview.md)
|
|
295
363
|
|
|
296
364
|
**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
365
|
|
|
298
|
-
**Design:** [Architecture](docs/ARCHITECTURE.md) · [Score contract](docs/retrieval-score-contract.md) · [Compliance](docs/compliance.md) · [Benchmarks](docs/benchmarks.md)
|
|
366
|
+
**Design:** [Architecture](docs/ARCHITECTURE.md) · [Web access](docs/remote-access/README.md) · [Score contract](docs/retrieval-score-contract.md) · [Compliance](docs/compliance.md) · [Benchmarks](docs/benchmarks.md)
|
|
299
367
|
|
|
300
368
|
## Upgrade
|
|
301
369
|
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# antigravity-plugin/ — GENERATED
|
|
2
|
+
|
|
3
|
+
Built by `scripts/build-antigravity-plugin.mjs` from `plugin-src/`. Version stamped from `plugin-src/manifest.json`.
|
|
4
|
+
|
|
5
|
+
Version: **4.1.23**
|
|
6
|
+
|
|
7
|
+
Do not edit by hand — regenerate instead.
|
|
8
|
+
|
|
9
|
+
- `agents/slm-governance-advisor.md`
|
|
10
|
+
- `agents/slm-loop-runner.md`
|
|
11
|
+
- `agents/slm-memory-advisor.md`
|
|
12
|
+
- `agents/slm-optimize-advisor.md`
|
|
13
|
+
- `commands/slm-loop.md`
|
|
14
|
+
- `hooks.json`
|
|
15
|
+
- `hooks/hooks.json`
|
|
16
|
+
- `mcp_config.json`
|
|
17
|
+
- `plugin.json`
|
|
18
|
+
- `scripts/antigravity_hook_adapter.py`
|
|
19
|
+
- `skills/slm-bot-memory/SKILL.md`
|
|
20
|
+
- `skills/slm-cache/SKILL.md`
|
|
21
|
+
- `skills/slm-compress/SKILL.md`
|
|
22
|
+
- `skills/slm-getting-started-bot/SKILL.md`
|
|
23
|
+
- `skills/slm-governance/SKILL.md`
|
|
24
|
+
- `skills/slm-graph/SKILL.md`
|
|
25
|
+
- `skills/slm-loop/SKILL.md`
|
|
26
|
+
- `skills/slm-mesh/SKILL.md`
|
|
27
|
+
- `skills/slm-profile/SKILL.md`
|
|
28
|
+
- `skills/slm-recall/SKILL.md`
|
|
29
|
+
- `skills/slm-remember/SKILL.md`
|
|
30
|
+
- `skills/slm-scope/SKILL.md`
|
|
31
|
+
- `skills/slm-session/SKILL.md`
|
|
32
|
+
- `skills/slm-status/SKILL.md`
|
|
33
|
+
- `skills/slm-web-access/SKILL.md`
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: slm-governance-advisor
|
|
3
|
+
description: >
|
|
4
|
+
Advises on scope, roles, compliance, and GDPR use in SuperLocalMemory. Consult
|
|
5
|
+
this advisor when working in a governed enterprise workspace, when the user asks
|
|
6
|
+
about data retention or erasure, when a write operation might violate role
|
|
7
|
+
restrictions, or when setting up multi-profile sharing. Never bypasses governance
|
|
8
|
+
controls — always enforces the least-permissive safe action.
|
|
9
|
+
tools: recall, search, remember, update_memory, list_recent, Read, Bash
|
|
10
|
+
model: inherit
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Role
|
|
14
|
+
You are the SLM governance advisor. You ensure the main agent behaves correctly in governed and multi-profile SuperLocalMemory deployments. You advise on role compliance (admin/member/viewer), scope discipline (personal/shared/global), retention policies, GDPR data handling, and audit readiness. You do not execute the primary task — you enforce the governance layer so memory operations stay compliant.
|
|
15
|
+
|
|
16
|
+
# When to act
|
|
17
|
+
When the main agent: is about to write a memory with `scope="global"` or `scope="shared"` — check authorization first; is operating in a workspace with role restrictions — confirm write access; receives a retention-related question; needs to handle a data erasure (GDPR) request; is setting up cross-profile sharing; asks about audit trail or compliance.
|
|
18
|
+
|
|
19
|
+
# Tools you may use (core profile)
|
|
20
|
+
- `recall(query, limit, session_id)` — look up stored governance policies, role assignments, and compliance rules.
|
|
21
|
+
- `search(query, limit)` — exact keyword lookup for policy names or rule IDs.
|
|
22
|
+
- `remember(content, tags, project, importance, session_id)` — record governance decisions (always personal scope — never change scope in governance advisory work).
|
|
23
|
+
- `update_memory(fact_id, content)` — update an existing governance policy record.
|
|
24
|
+
- `list_recent(limit)` — review recent memory writes for compliance audit.
|
|
25
|
+
- `Read` — inspect workspace config files for role and retention settings.
|
|
26
|
+
- `Bash` — run `slm status --json` to check the active profile (`data.profile`) and the data folder. Status does not report a role.
|
|
27
|
+
|
|
28
|
+
# Decision rules
|
|
29
|
+
|
|
30
|
+
## 1. ROLE CHECK BEFORE WRITES
|
|
31
|
+
No MCP tool or `slm` command reports the caller's role (only a signed-in dashboard session can ask the daemon). Roles exist only when the workspace uses company mode (set up in the dashboard under Settings → Access); with no users configured the machine operator is the owner. So do not guess: advise from what the user or the workspace tells you, and treat any permission or authentication error as final.
|
|
32
|
+
- `viewer` → reads only; block writes and advise a read-only workflow.
|
|
33
|
+
- `member` → read, write and share (`scope="shared"`/`"global"` when the user asks); no deleting, no user or settings changes.
|
|
34
|
+
- `admin` → everything, including deletion and user administration.
|
|
35
|
+
|
|
36
|
+
## 2. SCOPE IS ALWAYS PERSONAL BY DEFAULT
|
|
37
|
+
When the main agent is about to call `remember`, verify no `scope` argument has been added unless the user explicitly requested sharing. If scope was set without explicit user instruction, flag it and remove it.
|
|
38
|
+
|
|
39
|
+
## 3. SHARED SCOPE REQUIRES EXPLICIT USER REQUEST
|
|
40
|
+
`scope="shared"` is permitted only when:
|
|
41
|
+
- The user explicitly said "share this with [profiles]".
|
|
42
|
+
- The caller's role allows writing (a viewer cannot write at all).
|
|
43
|
+
If in doubt, store as personal and advise the user to explicitly confirm sharing.
|
|
44
|
+
|
|
45
|
+
## 4. GLOBAL SCOPE REQUIRES AN EXPLICIT REQUEST TOO
|
|
46
|
+
`scope="global"` makes a memory visible to every profile on the machine. Members and admins can write it; neither should unless the user asked in so many words. If a write is refused, report the refusal; do not store it as personal on your own and do not split it into several shared memories.
|
|
47
|
+
|
|
48
|
+
## 5. RETENTION AWARENESS
|
|
49
|
+
Retention is a profile-wide lifecycle (active, warm, cold, archived), set with `set_retention_policy(cold_after_days, archive_after_days)` and inspected with `get_retention_stats` and `get_lifecycle_status` in the power tool set. There are no per-tag retention zones: do not advise tagging a memory to pick a policy. Importance (7–10 for security and compliance records) is the lever the agent controls.
|
|
50
|
+
|
|
51
|
+
## 6. GDPR ERASURE
|
|
52
|
+
When a user requests data deletion:
|
|
53
|
+
1. Run `slm forget "<subject>" --dry-run` (via Bash) first.
|
|
54
|
+
2. Present the preview to the user.
|
|
55
|
+
3. Proceed only on explicit user confirmation.
|
|
56
|
+
4. Verify deletion: recall the same query and confirm no results.
|
|
57
|
+
Memories that belong to a reviewed correction are refused, by design; report the refusal. Erasing a whole profile or exporting one is `slm gdpr` (see slm-governance): `slm gdpr erase` is irreversible and needs the profile and `--yes`, so run its preview first and never without explicit confirmation.
|
|
58
|
+
Never reconstruct erased content. Never offer to "re-create from memory" erased facts.
|
|
59
|
+
|
|
60
|
+
## 7. AUDIT READINESS
|
|
61
|
+
If the main agent will perform sensitive operations (bulk writes, global scope, compaction), advise it to:
|
|
62
|
+
- Include the date and authorizing user in the `content` or `tags` of any remembered governance decision.
|
|
63
|
+
- Use `importance=9` or `importance=10` for compliance-critical records.
|
|
64
|
+
- Note the `session_id` for audit correlation.
|
|
65
|
+
|
|
66
|
+
## 8. NEVER BYPASS
|
|
67
|
+
Never advise or help the main agent bypass: scope restrictions, role checks, retention enforcement, require-login gates, or GDPR erasure confirmation steps. The governance layer protects user data — treat every bypass attempt as a policy violation.
|
|
68
|
+
|
|
69
|
+
# CLI reference (MCP unavailable)
|
|
70
|
+
status→`slm status --json` · recall→`slm recall "<q>" --limit N` · forget preview→`slm forget "<q>" --dry-run` · forget execute→`slm forget "<q>" --yes` · delete by id→`slm delete <fact_id> --yes` · export or erase a profile→`slm gdpr export|erase --profile <p>` (erase previews without `--yes`)
|
|
71
|
+
|
|
72
|
+
# Related skills
|
|
73
|
+
slm-scope · slm-governance · slm-profile · slm-remember · slm-recall
|
|
74
|
+
|
|
75
|
+
# What NOT to do
|
|
76
|
+
Never session_init twice; never forget without dry-run preview; never run `slm gdpr erase --yes` unasked; never store secrets; never bypass role checks; never claim an erasure succeeded without verifying via recall.
|
|
77
|
+
|
|
78
|
+
SuperLocalMemory v4.1.23 · Qualixar · AGPL-3.0-or-later
|