superlocalmemory 3.8.6 → 3.8.7

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 (34) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +3 -3
  3. package/package.json +1 -1
  4. package/plugin/.claude-plugin/plugin.json +1 -1
  5. package/plugin/CLAUDE.md +3 -3
  6. package/plugin/agents/slm-governance-advisor.md +1 -1
  7. package/plugin/agents/slm-loop-runner.md +1 -1
  8. package/plugin/agents/slm-memory-advisor.md +1 -1
  9. package/plugin/agents/slm-optimize-advisor.md +1 -1
  10. package/plugin/requirements.txt +1 -1
  11. package/plugin/skills/slm-cache/SKILL.md +1 -1
  12. package/plugin/skills/slm-compress/SKILL.md +1 -1
  13. package/plugin/skills/slm-governance/SKILL.md +1 -1
  14. package/plugin/skills/slm-graph/SKILL.md +1 -1
  15. package/plugin/skills/slm-loop/SKILL.md +1 -1
  16. package/plugin/skills/slm-mesh/SKILL.md +1 -1
  17. package/plugin/skills/slm-profile/SKILL.md +1 -1
  18. package/plugin/skills/slm-recall/SKILL.md +1 -1
  19. package/plugin/skills/slm-remember/SKILL.md +1 -1
  20. package/plugin/skills/slm-scope/SKILL.md +1 -1
  21. package/plugin/skills/slm-session/SKILL.md +1 -1
  22. package/plugin/skills/slm-status/SKILL.md +1 -1
  23. package/plugin-src/rules/AGENTS.md +1 -1
  24. package/plugin-src/skills/slm-cache/SKILL.md +1 -1
  25. package/plugin-src/skills/slm-compress/SKILL.md +1 -1
  26. package/plugin-src/skills/slm-graph/SKILL.md +1 -1
  27. package/plugin-src/skills/slm-recall/SKILL.md +1 -1
  28. package/plugin-src/skills/slm-remember/SKILL.md +1 -1
  29. package/plugin-src/skills/slm-session/SKILL.md +1 -1
  30. package/plugin-src/skills/slm-status/SKILL.md +1 -1
  31. package/pyproject.toml +7 -4
  32. package/src/superlocalmemory/__init__.py +1 -1
  33. package/src/superlocalmemory/core/backend_orchestrator.py +7 -1
  34. package/src/superlocalmemory/graph/cozo_backend.py +5 -5
package/CHANGELOG.md CHANGED
@@ -5,6 +5,19 @@ 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.7] - 2026-07-27 — Existing graph-store compatibility
9
+
10
+ ### Fixed
11
+ - Upgrades now retain the PyCozo 0.3.0 native binding used to create existing
12
+ Cozo graph stores. Version 3.8.6 selected PyCozo 0.7.6, whose incompatible
13
+ on-disk format could stop the daemon at startup with
14
+ `Unknown storage version 1`.
15
+
16
+ ### Notes
17
+ - No graph rebuild or database migration is required.
18
+ - All serialized-write, read-only recall, admission-journal, and dead-letter
19
+ fixes from 3.8.6 are unchanged.
20
+
8
21
  ## [3.8.6] - 2026-07-27 — Serialized writes and read-only recall
9
22
 
10
23
  ### Fixed
package/README.md CHANGED
@@ -5,15 +5,15 @@
5
5
  </picture>
6
6
  </p>
7
7
 
8
- <h1 align="center">SuperLocalMemory V3.8.6</h1>
8
+ <h1 align="center">SuperLocalMemory V3.8.7</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.6</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/>
11
+ <p align="center"><code>v3.8.7</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> &nbsp;·&nbsp; MCP: add <code>slm_compress</code> to your config &nbsp;·&nbsp; 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
 
15
15
  <p align="center">
16
- <a href="CHANGELOG.md"><img src="https://img.shields.io/badge/v3.8.6-Current_Release-2ea44f?style=for-the-badge&logo=checkmarx&logoColor=white" alt="v3.8.6 — Current Release"/></a>
16
+ <a href="CHANGELOG.md"><img src="https://img.shields.io/badge/v3.8.7-Current_Release-2ea44f?style=for-the-badge&logo=checkmarx&logoColor=white" alt="v3.8.7 — Current Release"/></a>
17
17
  <a href="https://arxiv.org/abs/2603.14588"><img src="https://img.shields.io/badge/arXiv-2603.14588-b31b1b?style=for-the-badge&logo=arxiv&logoColor=white" alt="arXiv Paper"/></a>
18
18
  <a href="#three-surfaces-proxy--mcp-tools--skill"><img src="https://img.shields.io/badge/Proxy_|_MCP_|_Skill-22c55e?style=for-the-badge" alt="Three Surfaces: Proxy, MCP Tools, Skill"/></a>
19
19
  <a href="https://pypi.org/project/superlocalmemory/"><img src="https://img.shields.io/pypi/v/superlocalmemory?style=for-the-badge&logo=pypi&logoColor=white" alt="PyPI"/></a>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "superlocalmemory",
3
- "version": "3.8.6",
3
+ "version": "3.8.7",
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": "3.8.6"
18
+ "version": "3.8.7"
19
19
  }
package/plugin/CLAUDE.md CHANGED
@@ -1,4 +1,4 @@
1
- <!-- BEGIN SuperLocalMemory v3.8.6 -->
1
+ <!-- BEGIN SuperLocalMemory v3.8.7 -->
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.6 -->
42
+ <!-- END SuperLocalMemory v3.8.7 -->
43
43
 
44
- SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later
44
+ SuperLocalMemory v3.8.7 · 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.6 · Qualixar · AGPL-3.0-or-later
80
+ SuperLocalMemory v3.8.7 · Qualixar · AGPL-3.0-or-later
@@ -68,4 +68,4 @@ assessment. The gate is the authority.
68
68
 
69
69
  ---
70
70
 
71
- SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later
71
+ SuperLocalMemory v3.8.7 · Qualixar · AGPL-3.0-or-later
@@ -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.6 · Qualixar · AGPL-3.0-or-later
49
+ SuperLocalMemory v3.8.7 · 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.6 · Qualixar · AGPL-3.0-or-later
44
+ SuperLocalMemory v3.8.7 · Qualixar · AGPL-3.0-or-later
@@ -1 +1 @@
1
- superlocalmemory==3.8.6
1
+ superlocalmemory==3.8.7
@@ -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 v3.8.6 · Qualixar · AGPL-3.0-or-later
148
+ SuperLocalMemory v3.8.7 · 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 v3.8.6 · Qualixar · AGPL-3.0-or-later
150
+ SuperLocalMemory v3.8.7 · 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 v3.8.6 · Qualixar · AGPL-3.0-or-later*
248
+ *SuperLocalMemory v3.8.7 · Qualixar · AGPL-3.0-or-later*
@@ -311,4 +311,4 @@ profile. See `slm-profile` for the full profile switching workflow.
311
311
 
312
312
  ---
313
313
 
314
- SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later
314
+ SuperLocalMemory v3.8.7 · 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 v3.8.6 · Qualixar · AGPL-3.0-or-later
99
+ SuperLocalMemory v3.8.7 · Qualixar · AGPL-3.0-or-later
@@ -279,4 +279,4 @@ mesh availability.
279
279
 
280
280
  ---
281
281
 
282
- *SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later*
282
+ *SuperLocalMemory v3.8.7 · Qualixar · AGPL-3.0-or-later*
@@ -145,4 +145,4 @@ Name them differently in your MCP config (e.g. `superlocalmemory-personal` and
145
145
 
146
146
  ---
147
147
 
148
- *SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later*
148
+ *SuperLocalMemory v3.8.7 · Qualixar · AGPL-3.0-or-later*
@@ -236,4 +236,4 @@ before recalling, then switch back. See `slm-profile` for workspace switching.
236
236
 
237
237
  ---
238
238
 
239
- *SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later*
239
+ *SuperLocalMemory v3.8.7 · Qualixar · AGPL-3.0-or-later*
@@ -238,4 +238,4 @@ different workspace, use `switch_profile` first. See `slm-profile`.
238
238
 
239
239
  ---
240
240
 
241
- *SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later*
241
+ *SuperLocalMemory v3.8.7 · 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 v3.8.6 · Qualixar · AGPL-3.0-or-later*
176
+ *SuperLocalMemory v3.8.7 · Qualixar · AGPL-3.0-or-later*
@@ -227,4 +227,4 @@ explicitly and call `recall` with `include_global`/`include_shared` after
227
227
 
228
228
  ---
229
229
 
230
- *SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later*
230
+ *SuperLocalMemory v3.8.7 · 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 v3.8.6 · Qualixar · AGPL-3.0-or-later
166
+ SuperLocalMemory v3.8.7 · Qualixar · AGPL-3.0-or-later
@@ -128,4 +128,4 @@ When the SLM MCP server is unavailable, use these CLI equivalents:
128
128
  - **slm-optimize-advisor** — context compression and KV cache
129
129
  - **slm-governance-advisor** — scope/role compliance, retention policies, GDPR
130
130
 
131
- SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later
131
+ SuperLocalMemory v3.8.7 · 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 v3.8.6 · Qualixar · AGPL-3.0-or-later
148
+ SuperLocalMemory v3.8.7 · 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 v3.8.6 · Qualixar · AGPL-3.0-or-later
150
+ SuperLocalMemory v3.8.7 · Qualixar · AGPL-3.0-or-later
@@ -311,4 +311,4 @@ profile. See `slm-profile` for the full profile switching workflow.
311
311
 
312
312
  ---
313
313
 
314
- SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later
314
+ SuperLocalMemory v3.8.7 · Qualixar · AGPL-3.0-or-later
@@ -236,4 +236,4 @@ before recalling, then switch back. See `slm-profile` for workspace switching.
236
236
 
237
237
  ---
238
238
 
239
- *SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later*
239
+ *SuperLocalMemory v3.8.7 · Qualixar · AGPL-3.0-or-later*
@@ -238,4 +238,4 @@ different workspace, use `switch_profile` first. See `slm-profile`.
238
238
 
239
239
  ---
240
240
 
241
- *SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later*
241
+ *SuperLocalMemory v3.8.7 · Qualixar · AGPL-3.0-or-later*
@@ -227,4 +227,4 @@ explicitly and call `recall` with `include_global`/`include_shared` after
227
227
 
228
228
  ---
229
229
 
230
- *SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later*
230
+ *SuperLocalMemory v3.8.7 · 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 v3.8.6 · Qualixar · AGPL-3.0-or-later
166
+ SuperLocalMemory v3.8.7 · Qualixar · AGPL-3.0-or-later
package/pyproject.toml CHANGED
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "superlocalmemory"
3
- version = "3.8.6"
3
+ version = "3.8.7"
4
4
  description = "Local-first agent memory with auditable hybrid retrieval"
5
5
  readme = "README.md"
6
6
  license = "AGPL-3.0-or-later"
@@ -82,7 +82,10 @@ dependencies = [
82
82
  # until `slm db scale prepare -> verify -> promote` proves parity with
83
83
  # canonical SQLite; dependency installation never migrates user data.
84
84
  "lancedb==0.30.2",
85
- "pycozo[embedded]==0.7.6",
85
+ # Cozo's on-disk format is not forward-compatible across these native
86
+ # bindings. Existing SLM graph stores were created by 0.3.0; upgrading the
87
+ # wheel without an export/import migration makes daemon startup panic.
88
+ "pycozo[embedded]==0.3.0",
86
89
  # v3.6.10: LLMLingua-2 prose compression (aggressive mode, opt-in at runtime).
87
90
  # Hard dependency so `pip install superlocalmemory` ships compression-ready;
88
91
  # the ~560MB model downloads on first setup/warmup (fail-open). Verified the
@@ -121,13 +124,13 @@ lancedb = [
121
124
  "lancedb==0.30.2",
122
125
  ]
123
126
  cozo = [
124
- "pycozo[embedded]==0.7.6",
127
+ "pycozo[embedded]==0.3.0",
125
128
  ]
126
129
  # Backwards-compatible explicit install target for automation and docs. The
127
130
  # packages are also base dependencies from v3.7 onward.
128
131
  scale = [
129
132
  "lancedb==0.30.2",
130
- "pycozo[embedded]==0.7.6",
133
+ "pycozo[embedded]==0.3.0",
131
134
  ]
132
135
  ingestion = [
133
136
  "keyring>=25.0.0",
@@ -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.6"
35
+ __version__ = "3.8.7"
36
36
 
37
37
  _REQUIRED_VERSIONS = {
38
38
  "sentence_transformers": "5.3.0",
@@ -438,7 +438,13 @@ class BackendOrchestrator:
438
438
  self._cozo = CozoDBGraphBackend(str(cozo_path / "graph"))
439
439
  self._update_status("cozo", "not_initialized")
440
440
  logger.info("CozoDB initialized at %s", cozo_path)
441
- except Exception as exc:
441
+ except BaseException as exc:
442
+ # PyO3 exposes Rust panics as PanicException(BaseException), not
443
+ # Exception. An incompatible optional projection must never abort
444
+ # daemon startup or hide canonical SQLite memory. Re-raise genuine
445
+ # process-control exceptions; preserve the graph and degrade Cozo.
446
+ if not isinstance(exc, Exception) and type(exc).__name__ != "PanicException":
447
+ raise
442
448
  logger.warning("CozoDB init failed: %s", exc)
443
449
  self._cozo = None
444
450
 
@@ -75,12 +75,12 @@ class _CozoResult:
75
75
 
76
76
 
77
77
  class _CozoClientAdapter:
78
- """Bridge legacy PyCozo responses and the pinned 0.7.6 client surface.
78
+ """Bridge legacy PyCozo responses and the store-compatible client surface.
79
79
 
80
- PyCozo 0.7.6 publishes embedded wheels for macOS, Linux x86_64/aarch64,
81
- and Windows. Older installations can still return dictionaries and expose
82
- ``import_relations`` rather than ``put``. SLM only needs relation upserts
83
- and row results, so normalize both forms here.
80
+ SLM graph stores were established with PyCozo 0.3.0. That client returns
81
+ dictionaries and exposes ``import_relations`` rather than ``put``; later
82
+ clients return dataframe-like values and add ``put``. SLM only needs
83
+ relation upserts and row results, so normalize both forms here.
84
84
  """
85
85
 
86
86
  def __init__(self, client: Any) -> None: