superlocalmemory 3.8.1 → 3.8.3
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/CHANGELOG.md +67 -0
- package/README.md +2 -2
- package/package.json +1 -1
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/CLAUDE.md +3 -3
- package/plugin/agents/slm-governance-advisor.md +1 -1
- package/plugin/agents/slm-loop-runner.md +1 -1
- package/plugin/agents/slm-memory-advisor.md +2 -2
- package/plugin/agents/slm-optimize-advisor.md +1 -1
- package/plugin/requirements.txt +1 -1
- package/plugin/skills/slm-cache/SKILL.md +1 -1
- package/plugin/skills/slm-compress/SKILL.md +1 -1
- package/plugin/skills/slm-governance/SKILL.md +1 -1
- package/plugin/skills/slm-graph/SKILL.md +1 -1
- package/plugin/skills/slm-loop/SKILL.md +1 -1
- package/plugin/skills/slm-mesh/SKILL.md +1 -1
- package/plugin/skills/slm-profile/SKILL.md +1 -1
- package/plugin/skills/slm-recall/SKILL.md +3 -5
- package/plugin/skills/slm-remember/SKILL.md +1 -1
- package/plugin/skills/slm-scope/SKILL.md +1 -1
- package/plugin/skills/slm-session/SKILL.md +1 -1
- package/plugin/skills/slm-status/SKILL.md +1 -1
- package/plugin-src/rules/AGENTS.md +2 -1
- package/plugin-src/skills/slm-cache/SKILL.md +1 -1
- package/plugin-src/skills/slm-compress/SKILL.md +1 -1
- package/plugin-src/skills/slm-graph/SKILL.md +1 -1
- package/plugin-src/skills/slm-recall/SKILL.md +3 -5
- package/plugin-src/skills/slm-remember/SKILL.md +1 -1
- package/plugin-src/skills/slm-session/SKILL.md +1 -1
- package/plugin-src/skills/slm-status/SKILL.md +1 -1
- package/pyproject.toml +1 -1
- package/scripts/postinstall.js +7 -1
- package/src/superlocalmemory/__init__.py +1 -1
- package/src/superlocalmemory/cli/commands.py +360 -2
- package/src/superlocalmemory/cli/main.py +62 -3
- package/src/superlocalmemory/cli/setup_wizard.py +142 -16
- package/src/superlocalmemory/core/component_healer.py +144 -0
- package/src/superlocalmemory/core/component_registry.py +487 -0
- package/src/superlocalmemory/core/config.py +21 -0
- package/src/superlocalmemory/core/embeddings.py +14 -1
- package/src/superlocalmemory/core/engine.py +9 -5
- package/src/superlocalmemory/core/ingestion_command.py +36 -16
- package/src/superlocalmemory/core/maintenance.py +43 -0
- package/src/superlocalmemory/core/maintenance_scheduler.py +28 -0
- package/src/superlocalmemory/core/recall_pipeline.py +39 -3
- package/src/superlocalmemory/core/store_pipeline.py +42 -0
- package/src/superlocalmemory/mcp/_daemon_proxy.py +6 -2
- package/src/superlocalmemory/mcp/_pool_adapter.py +4 -1
- package/src/superlocalmemory/mcp/tools_active.py +1 -1
- package/src/superlocalmemory/mcp/tools_core.py +17 -2
- package/src/superlocalmemory/retrieval/bridge_discovery.py +14 -0
- package/src/superlocalmemory/retrieval/spreading_activation.py +68 -38
- package/src/superlocalmemory/server/routes/behavioral.py +6 -2
- package/src/superlocalmemory/server/routes/learning.py +13 -3
- package/src/superlocalmemory/server/routes/memories.py +80 -26
- package/src/superlocalmemory/server/routes/v3_api.py +120 -0
- package/src/superlocalmemory/server/unified_daemon.py +349 -10
- package/src/superlocalmemory/storage/embedding_migrator.py +235 -0
- package/src/superlocalmemory/ui/index.html +3 -2
- package/src/superlocalmemory/ui/js/core.js +6 -1
- package/src/superlocalmemory/ui/js/od-components.js +147 -0
- package/src/superlocalmemory/ui/js/od-entities.js +43 -0
- package/src/superlocalmemory/ui/js/od-graph.js +35 -0
- package/src/superlocalmemory/ui/js/od-health.js +18 -0
- package/src/superlocalmemory/ui/js/od-memories.js +37 -0
- package/src/superlocalmemory/ui/js/od-operations.js +36 -0
- package/src/superlocalmemory/ui/js/od-settings.js +72 -3
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,73 @@ All notable changes to SuperLocalMemory V3 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
|
+
## [3.8.3] - 2026-07-24 — Recall stays responsive under heavy load
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- **Recall no longer hangs when the system is busy.** Search and recall now
|
|
13
|
+
complete within a generous time budget even during background maintenance or
|
|
14
|
+
when many agents are querying at once. If a query can't finish in that window,
|
|
15
|
+
SLM returns keyword-matched results and marks them clearly instead of leaving
|
|
16
|
+
the request to time out. This applies everywhere recall runs — the dashboard
|
|
17
|
+
search, the CLI, and connected assistants — so results are consistent across
|
|
18
|
+
every surface.
|
|
19
|
+
- **Dashboard search waits long enough for a real answer.** The dashboard now
|
|
20
|
+
allows recall the full server-side budget before giving up, so heavy-load
|
|
21
|
+
queries return results rather than an aborted-request error.
|
|
22
|
+
|
|
23
|
+
## [3.8.2] - 2026-07-24 — Self-healing upgrades & faster, consistent recall
|
|
24
|
+
|
|
25
|
+
### Added
|
|
26
|
+
|
|
27
|
+
- **Self-healing on startup.** After an upgrade the daemon quietly repairs its
|
|
28
|
+
own index in the background — backfilling any missing embeddings and rebuilding
|
|
29
|
+
vector indexes — with no manual steps and no interruption to recall. Progress
|
|
30
|
+
is visible in the dashboard. Upgrading is now genuinely zero-touch.
|
|
31
|
+
- **Confidence-aware recall.** Every recall result now carries clear confidence
|
|
32
|
+
signals (`no_confident_match`, `answer_confidence`, `abstained`). Connected
|
|
33
|
+
assistants are guided to sharpen and re-run a query when confidence is low
|
|
34
|
+
rather than guessing — better answers, with no extra server-side wait.
|
|
35
|
+
- **New `client_driven_agentic` setting** controls whether query refinement is
|
|
36
|
+
delegated to the calling assistant (default) or performed inside the server.
|
|
37
|
+
- **Self-repairing components.** On startup SLM checks that the models and
|
|
38
|
+
dependencies it needs are present and quietly re-downloads or reinstalls the
|
|
39
|
+
ones it can, in the background — no commands to run. Anything it can't fix on
|
|
40
|
+
its own (for example a missing Ollama install) is reported with the exact
|
|
41
|
+
command to fix it.
|
|
42
|
+
- **Dashboard “System Health” report.** A new panel in the dashboard Help area
|
|
43
|
+
shows every component as ready / missing / degraded, with copy-paste fixes and
|
|
44
|
+
a “Retry now” button.
|
|
45
|
+
- **Editable memory settings in the dashboard.** A new “Recall & Memory
|
|
46
|
+
Behaviour” group lets you tune recall depth, the quality reranker, and memory
|
|
47
|
+
injection from the UI. Changes apply immediately and persist — no config files
|
|
48
|
+
to edit by hand.
|
|
49
|
+
- **`slm help` and `slm doctor --fix`.** `slm help` now prints a grouped guide to
|
|
50
|
+
every command plus focused topics (`slm help modes | config | self-heal`), and
|
|
51
|
+
`slm doctor --fix` auto-repairs the components it can.
|
|
52
|
+
- **Friendlier first-time setup.** `slm setup` detects a local Ollama and offers
|
|
53
|
+
Smart-Local mode in one keypress, summarizes what will download and asks before
|
|
54
|
+
the large optional compression model, can connect all your detected IDEs in one
|
|
55
|
+
step, and finishes with a health check. Skill Evolution is now off by default.
|
|
56
|
+
|
|
57
|
+
### Changed
|
|
58
|
+
|
|
59
|
+
- **Recall is faster and consistent across every surface.** The CLI, MCP, and
|
|
60
|
+
editor integrations now return the same fast local results (all retrieval
|
|
61
|
+
channels plus reranking) in about 1–2 seconds and behave identically. The
|
|
62
|
+
occasional multi-second tail on some queries is gone.
|
|
63
|
+
- **Dashboard search stays snappy.** The search box returns a quick result list;
|
|
64
|
+
richer synthesis remains available in the memory chat and knowledge-cluster
|
|
65
|
+
summaries.
|
|
66
|
+
|
|
67
|
+
### Fixed
|
|
68
|
+
|
|
69
|
+
- **Large databases no longer produce an occasional multi-second recall spike**
|
|
70
|
+
(graph bridge discovery is now time-bounded).
|
|
71
|
+
- **Upgrades that only relabel an embedding model no longer trigger a full
|
|
72
|
+
re-embed** of every stored memory.
|
|
73
|
+
- Dashboard search now reliably reflects the active profile.
|
|
74
|
+
|
|
8
75
|
## [3.8.1] - 2026-07-23 — Existing-install stability
|
|
9
76
|
|
|
10
77
|
### Fixed
|
package/README.md
CHANGED
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
</picture>
|
|
6
6
|
</p>
|
|
7
7
|
|
|
8
|
-
<h1 align="center">SuperLocalMemory V3.8.
|
|
8
|
+
<h1 align="center">SuperLocalMemory V3.8.3</h1>
|
|
9
9
|
<p align="center"><strong>Enterprise-grade, local-first memory for AI agents and teams.</strong><br/>
|
|
10
10
|
<em>A persistent, auditable long-term brain for your agents that runs on your own infrastructure — with multi-workspace isolation, role-based access, and GDPR + EU AI Act governance controls built in.</em></p>
|
|
11
|
-
<p align="center"><code>v3.8.
|
|
11
|
+
<p align="center"><code>v3.8.3</code> — one control plane: auditable retrieval · multi-scope memory (personal / shared / global) · Cache · Compress · trusted-peer Mesh · bounded loops — across CLI, MCP, dashboard, the <strong>Claude plugin</strong>, the <strong>Codex add-on</strong>, and documented IDE integrations.<br/>
|
|
12
12
|
Proxy: <code>slm wrap claude</code> · MCP: add <code>slm_compress</code> to your config · Skill: zero-config</p>
|
|
13
13
|
<p align="center"><strong>3 public research preprints</strong> (arXiv + Zenodo archives) · <a href="https://arxiv.org/abs/2603.02240">arXiv:2603.02240</a> · <a href="https://arxiv.org/abs/2603.14588">arXiv:2603.14588</a> · <a href="https://arxiv.org/abs/2604.04514">arXiv:2604.04514</a></p>
|
|
14
14
|
|
package/package.json
CHANGED
package/plugin/CLAUDE.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!-- BEGIN SuperLocalMemory v3.8.
|
|
1
|
+
<!-- BEGIN SuperLocalMemory v3.8.3 -->
|
|
2
2
|
|
|
3
3
|
## SuperLocalMemory (SLM) — Agent Rules
|
|
4
4
|
|
|
@@ -39,6 +39,6 @@ slm-recall · slm-remember · slm-session · slm-status · slm-cache · slm-comp
|
|
|
39
39
|
### Subagents
|
|
40
40
|
slm-memory-advisor (memory decisions, session hygiene, scope/profile guidance) · slm-optimize-advisor (context compression + KV cache) · slm-governance-advisor (scope/roles/compliance/GDPR)
|
|
41
41
|
|
|
42
|
-
<!-- END SuperLocalMemory v3.8.
|
|
42
|
+
<!-- END SuperLocalMemory v3.8.3 -->
|
|
43
43
|
|
|
44
|
-
SuperLocalMemory v3.8.
|
|
44
|
+
SuperLocalMemory v3.8.3 · 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 v3.8.
|
|
80
|
+
SuperLocalMemory v3.8.3 · Qualixar · AGPL-3.0-or-later
|
|
@@ -17,7 +17,7 @@ When the main agent: starts a session and hasn't loaded project context; is abou
|
|
|
17
17
|
|
|
18
18
|
# Tools you may use (real SLM MCP tools, core profile)
|
|
19
19
|
- `session_init(project_path, query, max_results, max_age_days)` — ONCE at session start; returns recent decisions + relevant memories.
|
|
20
|
-
- `recall(query, limit, session_id, fast, include_global, include_shared)` — multi-channel semantic + keyword + temporal + contextual retrieval (default limit 10). Leave `include_global`/`include_shared` unset — recall is private-by-default (v3.6.15).
|
|
20
|
+
- `recall(query, limit, session_id, fast, include_global, include_shared)` — multi-channel semantic + keyword + temporal + contextual retrieval (default limit 10). Leave `include_global`/`include_shared` unset — recall is private-by-default (v3.6.15). Returns fast local results (~1–2s, no server-side LLM round) plus confidence signals: if `no_confident_match` is true or `answer_confidence` is low, advise the main agent to rewrite into 1–3 sharper sub-queries and recall again rather than treating the memory as absent.
|
|
21
21
|
- `search(query, limit, profile_id)` — exact keyword / FTS5 BM25.
|
|
22
22
|
- `remember(content, tags, project, importance, session_id, scope, shared_with)` — store atomic fact; importance 1-10. Leave `scope` unset (defaults to `personal`/private).
|
|
23
23
|
- `update_memory(fact_id, content)` — correct by exact id.
|
|
@@ -46,4 +46,4 @@ slm-recall · slm-remember · slm-session · slm-scope · slm-profile · slm-gov
|
|
|
46
46
|
# What NOT to do
|
|
47
47
|
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.
|
|
48
48
|
|
|
49
|
-
SuperLocalMemory v3.8.
|
|
49
|
+
SuperLocalMemory v3.8.3 · 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 v3.8.
|
|
44
|
+
SuperLocalMemory v3.8.3 · Qualixar · AGPL-3.0-or-later
|
package/plugin/requirements.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
superlocalmemory==3.8.
|
|
1
|
+
superlocalmemory==3.8.3
|
|
@@ -87,9 +87,7 @@ Real response shape (`--json` equivalent):
|
|
|
87
87
|
}
|
|
88
88
|
```
|
|
89
89
|
|
|
90
|
-
**
|
|
91
|
-
evidence floor. Do not invent a memory — tell the user nothing was found and
|
|
92
|
-
offer to search more broadly or store a new fact.
|
|
90
|
+
**Refine on low confidence.** `recall` returns confidence signals with every result. If `no_confident_match` is `true` (or `answer_confidence` is low / `abstained` is `true`), do NOT invent a memory — rewrite the query into 1–3 more specific sub-queries (split multi-hop questions; try entity names, synonyms, or broader phrasing) and call `recall` again before concluding nothing was found. A confident match → use it directly. SLM returns fast local results (~1–2s, no server-side LLM round on the hot path) and lets you, the calling model, drive this refinement.
|
|
93
91
|
|
|
94
92
|
### 2. Passing session_id
|
|
95
93
|
|
|
@@ -196,7 +194,7 @@ Flags verified in source (main.py):
|
|
|
196
194
|
|
|
197
195
|
## Never fabricate a memory
|
|
198
196
|
|
|
199
|
-
|
|
197
|
+
After re-querying with refined sub-queries (see **Refine on low confidence** above), if `no_confident_match` is still `true` or results are empty, report it plainly.
|
|
200
198
|
Never construct a response as if a memory was found when it was not. The user
|
|
201
199
|
trusts that what you surface came from the store.
|
|
202
200
|
|
|
@@ -238,4 +236,4 @@ before recalling, then switch back. See `slm-profile` for workspace switching.
|
|
|
238
236
|
|
|
239
237
|
---
|
|
240
238
|
|
|
241
|
-
*SuperLocalMemory v3.8.
|
|
239
|
+
*SuperLocalMemory v3.8.3 · Qualixar · AGPL-3.0-or-later*
|
|
@@ -28,6 +28,7 @@ Call `session_init(project_path, query, max_results, max_age_days)` **once** at
|
|
|
28
28
|
- **Concept phrasing** — phrase queries as concepts, not vague words ("database migration strategy" not "database").
|
|
29
29
|
- **Pass session_id** when available to narrow results to the current session.
|
|
30
30
|
- **Empty / low results** — broaden the query, try `search`, or fall back to `list_recent`. Never fabricate a memory.
|
|
31
|
+
- **Refine on low confidence** — if `no_confident_match` is `true` (or `answer_confidence` is low / `abstained` is `true`), rewrite the query into 1–3 more specific sub-queries (split multi-hop questions; try entity names, synonyms, or broader phrasing) and call `recall` again before concluding nothing was found. SLM returns fast local results (~1–2s, no server-side LLM round on the hot path) — you, the calling model, drive refinement.
|
|
31
32
|
|
|
32
33
|
---
|
|
33
34
|
|
|
@@ -127,4 +128,4 @@ When the SLM MCP server is unavailable, use these CLI equivalents:
|
|
|
127
128
|
- **slm-optimize-advisor** — context compression and KV cache
|
|
128
129
|
- **slm-governance-advisor** — scope/role compliance, retention policies, GDPR
|
|
129
130
|
|
|
130
|
-
SuperLocalMemory v3.8.
|
|
131
|
+
SuperLocalMemory v3.8.3 · Qualixar · AGPL-3.0-or-later
|
|
@@ -87,9 +87,7 @@ Real response shape (`--json` equivalent):
|
|
|
87
87
|
}
|
|
88
88
|
```
|
|
89
89
|
|
|
90
|
-
**
|
|
91
|
-
evidence floor. Do not invent a memory — tell the user nothing was found and
|
|
92
|
-
offer to search more broadly or store a new fact.
|
|
90
|
+
**Refine on low confidence.** `recall` returns confidence signals with every result. If `no_confident_match` is `true` (or `answer_confidence` is low / `abstained` is `true`), do NOT invent a memory — rewrite the query into 1–3 more specific sub-queries (split multi-hop questions; try entity names, synonyms, or broader phrasing) and call `recall` again before concluding nothing was found. A confident match → use it directly. SLM returns fast local results (~1–2s, no server-side LLM round on the hot path) and lets you, the calling model, drive this refinement.
|
|
93
91
|
|
|
94
92
|
### 2. Passing session_id
|
|
95
93
|
|
|
@@ -196,7 +194,7 @@ Flags verified in source (main.py):
|
|
|
196
194
|
|
|
197
195
|
## Never fabricate a memory
|
|
198
196
|
|
|
199
|
-
|
|
197
|
+
After re-querying with refined sub-queries (see **Refine on low confidence** above), if `no_confident_match` is still `true` or results are empty, report it plainly.
|
|
200
198
|
Never construct a response as if a memory was found when it was not. The user
|
|
201
199
|
trusts that what you surface came from the store.
|
|
202
200
|
|
|
@@ -238,4 +236,4 @@ before recalling, then switch back. See `slm-profile` for workspace switching.
|
|
|
238
236
|
|
|
239
237
|
---
|
|
240
238
|
|
|
241
|
-
*SuperLocalMemory v3.8.
|
|
239
|
+
*SuperLocalMemory v3.8.3 · Qualixar · AGPL-3.0-or-later*
|
package/pyproject.toml
CHANGED
package/scripts/postinstall.js
CHANGED
|
@@ -200,7 +200,13 @@ function main(argv = process.argv.slice(2)) {
|
|
|
200
200
|
|
|
201
201
|
console.log(`SuperLocalMemory ${packageVersion}: isolated runtime verified.`);
|
|
202
202
|
console.log('No memory database, IDE hooks, daemon, configuration, or models were changed.');
|
|
203
|
-
console.log('
|
|
203
|
+
console.log('');
|
|
204
|
+
console.log(' Next step — run the guided setup (picks your mode, downloads');
|
|
205
|
+
console.log(' models, connects your IDEs). Takes about a minute:');
|
|
206
|
+
console.log('');
|
|
207
|
+
console.log(' slm setup');
|
|
208
|
+
console.log('');
|
|
209
|
+
console.log(' Prefer to tune performance profiles? Use: slm reconfigure');
|
|
204
210
|
console.log('');
|
|
205
211
|
return 0;
|
|
206
212
|
}
|
|
@@ -32,7 +32,7 @@ if "OMP_NUM_THREADS" not in os.environ:
|
|
|
32
32
|
os.environ["OMP_NUM_THREADS"] = "2"
|
|
33
33
|
# ---------------------------------------------------------------------------
|
|
34
34
|
|
|
35
|
-
__version__ = "3.8.
|
|
35
|
+
__version__ = "3.8.3"
|
|
36
36
|
|
|
37
37
|
_REQUIRED_VERSIONS = {
|
|
38
38
|
"sentence_transformers": "5.3.0",
|