superlocalmemory 3.8.13 → 4.0.0

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 (212) hide show
  1. package/ATTRIBUTION.md +4 -4
  2. package/CHANGELOG.md +113 -121
  3. package/README.md +65 -63
  4. package/docs/pi-dev-integration.md +1 -1
  5. package/package.json +6 -1
  6. package/plugin/.claude-plugin/plugin.json +1 -1
  7. package/plugin/CLAUDE.md +3 -3
  8. package/plugin/agents/slm-governance-advisor.md +1 -1
  9. package/plugin/agents/slm-loop-runner.md +1 -1
  10. package/plugin/agents/slm-memory-advisor.md +1 -1
  11. package/plugin/agents/slm-optimize-advisor.md +1 -1
  12. package/plugin/requirements.txt +1 -1
  13. package/plugin/skills/slm-cache/SKILL.md +1 -1
  14. package/plugin/skills/slm-compress/SKILL.md +1 -1
  15. package/plugin/skills/slm-governance/SKILL.md +1 -1
  16. package/plugin/skills/slm-graph/SKILL.md +1 -1
  17. package/plugin/skills/slm-loop/SKILL.md +1 -1
  18. package/plugin/skills/slm-mesh/SKILL.md +1 -1
  19. package/plugin/skills/slm-profile/SKILL.md +1 -1
  20. package/plugin/skills/slm-recall/SKILL.md +1 -1
  21. package/plugin/skills/slm-remember/SKILL.md +1 -1
  22. package/plugin/skills/slm-scope/SKILL.md +1 -1
  23. package/plugin/skills/slm-session/SKILL.md +1 -1
  24. package/plugin/skills/slm-status/SKILL.md +1 -1
  25. package/plugin-src/rules/AGENTS.md +1 -1
  26. package/plugin-src/skills/slm-cache/SKILL.md +1 -1
  27. package/plugin-src/skills/slm-compress/SKILL.md +1 -1
  28. package/plugin-src/skills/slm-governance/SKILL.md +248 -0
  29. package/plugin-src/skills/slm-graph/SKILL.md +1 -1
  30. package/plugin-src/skills/slm-loop/SKILL.md +99 -0
  31. package/plugin-src/skills/slm-mesh/SKILL.md +282 -0
  32. package/plugin-src/skills/slm-profile/SKILL.md +148 -0
  33. package/plugin-src/skills/slm-recall/SKILL.md +1 -1
  34. package/plugin-src/skills/slm-remember/SKILL.md +1 -1
  35. package/plugin-src/skills/slm-scope/SKILL.md +176 -0
  36. package/plugin-src/skills/slm-session/SKILL.md +1 -1
  37. package/plugin-src/skills/slm-status/SKILL.md +1 -1
  38. package/pyproject.toml +11 -4
  39. package/src/superlocalmemory/__init__.py +1 -1
  40. package/src/superlocalmemory/cli/commands.py +125 -11
  41. package/src/superlocalmemory/cli/daemon.py +5 -1
  42. package/src/superlocalmemory/cli/main.py +35 -2
  43. package/src/superlocalmemory/cli/ops_cmd.py +281 -0
  44. package/src/superlocalmemory/cli/setup_wizard.py +1 -1
  45. package/src/superlocalmemory/compliance/audit.py +65 -0
  46. package/src/superlocalmemory/compliance/eu_ai_act.py +27 -57
  47. package/src/superlocalmemory/compliance/gdpr.py +416 -20
  48. package/src/superlocalmemory/compliance/retention.py +74 -22
  49. package/src/superlocalmemory/compliance/scheduler.py +78 -9
  50. package/src/superlocalmemory/core/actor_context.py +166 -0
  51. package/src/superlocalmemory/core/admission.py +549 -0
  52. package/src/superlocalmemory/core/backend_orchestrator.py +23 -10
  53. package/src/superlocalmemory/core/config.py +202 -24
  54. package/src/superlocalmemory/core/consolidation_engine.py +13 -13
  55. package/src/superlocalmemory/core/context_cache.py +28 -0
  56. package/src/superlocalmemory/core/embeddings.py +64 -2
  57. package/src/superlocalmemory/core/engine.py +7 -2
  58. package/src/superlocalmemory/core/engine_ingestion.py +65 -3
  59. package/src/superlocalmemory/core/engine_wiring.py +36 -9
  60. package/src/superlocalmemory/core/ingest_policy.py +38 -0
  61. package/src/superlocalmemory/core/maintenance.py +255 -0
  62. package/src/superlocalmemory/core/modes.py +40 -13
  63. package/src/superlocalmemory/core/mutations.py +437 -44
  64. package/src/superlocalmemory/core/operation_policy.py +92 -0
  65. package/src/superlocalmemory/core/operation_policy_registry.py +542 -0
  66. package/src/superlocalmemory/core/operation_request.py +127 -0
  67. package/src/superlocalmemory/core/ops_remediation.py +542 -0
  68. package/src/superlocalmemory/core/recall_pipeline.py +7 -0
  69. package/src/superlocalmemory/core/remember_runtime.py +202 -4
  70. package/src/superlocalmemory/core/remote_mode.py +20 -5
  71. package/src/superlocalmemory/core/store_pipeline.py +150 -0
  72. package/src/superlocalmemory/core/topic_signature.py +19 -4
  73. package/src/superlocalmemory/core/transactions/__init__.py +78 -0
  74. package/src/superlocalmemory/core/transactions/concrete_owners.py +597 -0
  75. package/src/superlocalmemory/core/transactions/erasure.py +825 -0
  76. package/src/superlocalmemory/core/transactions/manifest.py +255 -0
  77. package/src/superlocalmemory/core/transactions/manifest_key.py +155 -0
  78. package/src/superlocalmemory/core/transactions/obligations.py +272 -0
  79. package/src/superlocalmemory/core/transactions/owners.py +114 -0
  80. package/src/superlocalmemory/core/transactions/reconciler.py +285 -0
  81. package/src/superlocalmemory/core/transactions/service.py +330 -0
  82. package/src/superlocalmemory/core/worker_pool.py +33 -5
  83. package/src/superlocalmemory/encoding/cognitive_consolidator.py +70 -28
  84. package/src/superlocalmemory/encoding/emotional.py +75 -14
  85. package/src/superlocalmemory/encoding/scene_builder.py +115 -13
  86. package/src/superlocalmemory/encoding/temporal_parser.py +4 -0
  87. package/src/superlocalmemory/evolution/blind_verifier.py +11 -4
  88. package/src/superlocalmemory/evolution/evolution_store.py +244 -4
  89. package/src/superlocalmemory/evolution/llm_dispatch.py +40 -0
  90. package/src/superlocalmemory/evolution/model_selection.py +18 -3
  91. package/src/superlocalmemory/evolution/mutation_generator.py +3 -0
  92. package/src/superlocalmemory/evolution/skill_activator.py +270 -0
  93. package/src/superlocalmemory/evolution/skill_evolver.py +281 -59
  94. package/src/superlocalmemory/evolution/types.py +30 -8
  95. package/src/superlocalmemory/graph/cozo_backend.py +17 -9
  96. package/src/superlocalmemory/hooks/auto_invoker.py +2 -1
  97. package/src/superlocalmemory/hooks/auto_recall.py +64 -30
  98. package/src/superlocalmemory/hooks/codex_assets.py +14 -1
  99. package/src/superlocalmemory/infra/backup.py +434 -7
  100. package/src/superlocalmemory/infra/process_reaper.py +18 -0
  101. package/src/superlocalmemory/infra/self_heal.py +401 -0
  102. package/src/superlocalmemory/learning/feedback.py +52 -9
  103. package/src/superlocalmemory/loops/engine.py +10 -0
  104. package/src/superlocalmemory/mcp/_daemon_proxy.py +3 -0
  105. package/src/superlocalmemory/mcp/http_transport.py +30 -331
  106. package/src/superlocalmemory/mcp/profiles.py +5 -0
  107. package/src/superlocalmemory/mcp/resources.py +8 -0
  108. package/src/superlocalmemory/mcp/server.py +51 -4
  109. package/src/superlocalmemory/mcp/shared.py +19 -0
  110. package/src/superlocalmemory/mcp/tools_active.py +25 -4
  111. package/src/superlocalmemory/mcp/tools_code_graph.py +26 -18
  112. package/src/superlocalmemory/mcp/tools_context.py +50 -8
  113. package/src/superlocalmemory/mcp/tools_core.py +69 -21
  114. package/src/superlocalmemory/mcp/tools_evolution.py +9 -2
  115. package/src/superlocalmemory/mcp/tools_learning.py +21 -10
  116. package/src/superlocalmemory/mcp/tools_loops.py +29 -18
  117. package/src/superlocalmemory/mcp/tools_mesh.py +8 -0
  118. package/src/superlocalmemory/mcp/tools_ops.py +115 -0
  119. package/src/superlocalmemory/mcp/tools_optimize.py +4 -0
  120. package/src/superlocalmemory/mcp/tools_v28.py +10 -3
  121. package/src/superlocalmemory/mcp/tools_v3.py +34 -14
  122. package/src/superlocalmemory/mcp/tools_v33.py +18 -33
  123. package/src/superlocalmemory/mesh/broker.py +124 -46
  124. package/src/superlocalmemory/mesh/broker_security.py +470 -0
  125. package/src/superlocalmemory/mesh/discovery.py +365 -0
  126. package/src/superlocalmemory/mesh/lock_protocol.py +313 -0
  127. package/src/superlocalmemory/mesh/node_identity.py +97 -0
  128. package/src/superlocalmemory/mesh/outbox_remote.py +429 -0
  129. package/src/superlocalmemory/mesh/remote_sync.py +511 -28
  130. package/src/superlocalmemory/mesh/state_sync.py +286 -0
  131. package/src/superlocalmemory/optimize/config/store.py +45 -0
  132. package/src/superlocalmemory/parameterization/cross_project.py +12 -0
  133. package/src/superlocalmemory/parameterization/prompt_injector.py +13 -11
  134. package/src/superlocalmemory/parameterization/prompt_lifecycle.py +8 -2
  135. package/src/superlocalmemory/parameterization/workflow_miner.py +17 -0
  136. package/src/superlocalmemory/retrieval/ann_index.py +5 -0
  137. package/src/superlocalmemory/retrieval/bm25_channel.py +49 -2
  138. package/src/superlocalmemory/retrieval/engine.py +19 -4
  139. package/src/superlocalmemory/retrieval/fusion.py +4 -1
  140. package/src/superlocalmemory/retrieval/hopfield_channel.py +9 -3
  141. package/src/superlocalmemory/retrieval/remote_reranker.py +47 -22
  142. package/src/superlocalmemory/retrieval/reranker.py +32 -1
  143. package/src/superlocalmemory/retrieval/temporal_channel.py +16 -3
  144. package/src/superlocalmemory/retrieval/temporal_utils.py +107 -0
  145. package/src/superlocalmemory/retrieval/temporal_validity_filter.py +155 -42
  146. package/src/superlocalmemory/retrieval/vector_store.py +214 -8
  147. package/src/superlocalmemory/server/api.py +5 -5
  148. package/src/superlocalmemory/server/egress_policy.py +258 -0
  149. package/src/superlocalmemory/server/rbac_enforce.py +32 -0
  150. package/src/superlocalmemory/server/route_mutations.py +20 -0
  151. package/src/superlocalmemory/server/routes/compliance.py +153 -7
  152. package/src/superlocalmemory/server/routes/data_io.py +43 -2
  153. package/src/superlocalmemory/server/routes/events.py +15 -0
  154. package/src/superlocalmemory/server/routes/memories.py +56 -3
  155. package/src/superlocalmemory/server/routes/mesh.py +82 -1
  156. package/src/superlocalmemory/server/routes/mesh_lock.py +54 -0
  157. package/src/superlocalmemory/server/routes/mesh_state.py +63 -0
  158. package/src/superlocalmemory/server/routes/v3_api.py +50 -27
  159. package/src/superlocalmemory/server/routes/ws.py +86 -0
  160. package/src/superlocalmemory/server/ui.py +6 -6
  161. package/src/superlocalmemory/server/unified_daemon.py +942 -119
  162. package/src/superlocalmemory/storage/_migration_internals.py +568 -0
  163. package/src/superlocalmemory/storage/_schema_version.py +110 -0
  164. package/src/superlocalmemory/storage/database.py +329 -24
  165. package/src/superlocalmemory/storage/embedding_migrator.py +246 -51
  166. package/src/superlocalmemory/storage/erasure_fence.py +45 -0
  167. package/src/superlocalmemory/storage/generation_fence.py +63 -0
  168. package/src/superlocalmemory/storage/migration_runner.py +140 -417
  169. package/src/superlocalmemory/storage/migrations/M009_model_lineage.py +40 -0
  170. package/src/superlocalmemory/storage/migrations/M033_projection_transactions.py +148 -0
  171. package/src/superlocalmemory/storage/migrations/M034_obligation_integrity.py +58 -0
  172. package/src/superlocalmemory/storage/migrations/M035_erasure_receipts.py +113 -0
  173. package/src/superlocalmemory/storage/migrations/M036_vector_row_map.py +107 -0
  174. package/src/superlocalmemory/storage/migrations/M037_manifest_hmac_version.py +162 -0
  175. package/src/superlocalmemory/storage/migrations/{M033_learning_feedback_channel.py → M038_learning_feedback_channel.py} +3 -3
  176. package/src/superlocalmemory/storage/migrations/M039_scene_fact_members.py +137 -0
  177. package/src/superlocalmemory/storage/migrations/__init__.py +4 -2
  178. package/src/superlocalmemory/storage/schema.py +67 -0
  179. package/src/superlocalmemory/storage/write_coordinator.py +125 -0
  180. package/src/superlocalmemory/trust/scorer.py +28 -4
  181. package/src/superlocalmemory/ui/index.html +14 -3
  182. package/src/superlocalmemory/ui/js/auto-settings.js +12 -1
  183. package/src/superlocalmemory/ui/js/brain.js +6 -4
  184. package/src/superlocalmemory/ui/js/compliance.js +66 -12
  185. package/src/superlocalmemory/ui/js/dashboard.js +13 -3
  186. package/src/superlocalmemory/ui/js/feedback.js +8 -2
  187. package/src/superlocalmemory/ui/js/lifecycle.js +7 -1
  188. package/src/superlocalmemory/ui/js/modal.js +272 -5
  189. package/src/superlocalmemory/ui/js/od-backup.js +9 -2
  190. package/src/superlocalmemory/ui/js/od-compliance-ext.js +301 -0
  191. package/src/superlocalmemory/ui/js/od-operations.js +154 -23
  192. package/src/superlocalmemory/ui/js/od-ops-health.js +417 -0
  193. package/src/superlocalmemory/ui/js/od-optimize.js +35 -21
  194. package/src/superlocalmemory/ui/js/od-team.js +9 -2
  195. package/src/superlocalmemory/ui/js/optimize.js +13 -16
  196. package/src/superlocalmemory/ui/js/profiles.js +7 -3
  197. package/src/superlocalmemory/ui/js/settings.js +7 -1
  198. package/src/superlocalmemory/vector/lancedb_backend.py +19 -9
  199. package/src/superlocalmemory/attribution/mathematical_dna.py +0 -235
  200. package/src/superlocalmemory/cli/post_install.py +0 -114
  201. package/src/superlocalmemory/core/clock_monitor.py +0 -45
  202. package/src/superlocalmemory/core/db_pool.py +0 -80
  203. package/src/superlocalmemory/core/error_catalog.py +0 -113
  204. package/src/superlocalmemory/core/loop_watchdog.py +0 -56
  205. package/src/superlocalmemory/core/priority_queue.py +0 -61
  206. package/src/superlocalmemory/core/pruning_engine.py +0 -216
  207. package/src/superlocalmemory/core/queue_dispatcher.py +0 -73
  208. package/src/superlocalmemory/core/slmignore.py +0 -125
  209. package/src/superlocalmemory/infra/heartbeat_monitor.py +0 -140
  210. package/src/superlocalmemory/infra/webhook_dispatcher.py +0 -247
  211. package/src/superlocalmemory/learning/quantization_scheduler.py +0 -320
  212. package/src/superlocalmemory/storage/access_control.py +0 -182
package/ATTRIBUTION.md CHANGED
@@ -38,7 +38,7 @@ is_valid = QualixarSigner.verify(signed_output)
38
38
 
39
39
  ### Research Papers
40
40
 
41
- SuperLocalMemory is backed by three peer-reviewed research papers:
41
+ SuperLocalMemory is backed by three public research preprints (arXiv preprints):
42
42
 
43
43
  1. **Paper 1 — Trust & Behavioral Foundations** (arXiv:2603.02240)
44
44
  Bayesian trust defense, behavioral pattern mining, OWASP-aligned memory poisoning protection.
@@ -47,7 +47,7 @@ SuperLocalMemory is backed by three peer-reviewed research papers:
47
47
  Fisher-Rao geodesic distance, cellular sheaf cohomology, Riemannian Langevin lifecycle dynamics.
48
48
 
49
49
  3. **Paper 3 — The Living Brain** (arXiv:2604.04514)
50
- FRQAD mixed-precision metric, Ebbinghaus adaptive forgetting, 7-channel cognitive retrieval, memory parameterization, trust-weighted forgetting.
50
+ FRQAD mixed-precision metric, Ebbinghaus adaptive forgetting, five candidate producers plus entity-graph enhancement, memory parameterization, trust-weighted forgetting.
51
51
 
52
52
  ### Research Initiative
53
53
 
@@ -61,11 +61,11 @@ SuperLocalMemory uses the following open-source libraries:
61
61
  - NumPy (BSD-3-Clause) — Numerical operations
62
62
  - SciPy (BSD-3-Clause) — Numerical optimization (used by vCache MLE logistic refit)
63
63
 
64
- See [requirements.txt](requirements.txt) for the full dependency list.
64
+ See [pyproject.toml](pyproject.toml) for the full dependency list.
65
65
 
66
66
  ### Optimize Module — Research Citations (v3.6)
67
67
 
68
- The Optimize module (LLD-03 / LLD-04) builds on peer-reviewed work.
68
+ The Optimize module (LLD-03 / LLD-04) builds on cited public research.
69
69
  The Implementer verified each arXiv ID against arxiv.org before citation.
70
70
 
71
71
  | Component | Source | License / Note |
package/CHANGELOG.md CHANGED
@@ -1,130 +1,122 @@
1
1
  # Changelog
2
2
 
3
- All notable changes to SuperLocalMemory V3 will be documented in this file.
3
+ All notable changes to SuperLocalMemory will be documented in this file.
4
4
 
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.13] - 2026-08-03Stale-process detection
9
-
10
- ### Fixed
11
- - A running process can now tell when it is serving superseded code. Python
12
- imports a module once, so `__version__` is frozen at process start and
13
- upgrading the package underneath a long-lived `slm mcp` server changes
14
- nothing for that serverit keeps serving the code it read at startup,
15
- indefinitely. Nothing detected this. The stale process did not error; it
16
- returned confident, plausible, wrong answers and reported a
17
- `serverInfo.version` matching the code it had loaded, which is
18
- self-consistent and therefore useless as a staleness signal. During the
19
- 3.8.12 work one machine had eighteen `slm mcp` processes alive at once
20
- spanning four days and two releases, and one of them made issue #106 look
21
- unfixed across two debugging sessions. (#107)
22
-
23
- The existing process reaper does not cover this: it kills *orphans*, whose
24
- parent has died. A server whose IDE is still running is never an orphan.
25
-
26
- Staleness is now reported by `slm doctor` (as a warning, with a restart
27
- hint), on the loopback `/health` payload as `version_integrity`, and in the
28
- `slm mcp` startup log. The MCP path logs to stderr only — that transport is
29
- JSON-RPC over stdio, where a printed warning would corrupt the protocol and
30
- turn a cosmetic problem into a dead session.
31
-
32
- Running *ahead* of the installed distribution — normal for an editable
33
- checkout — is deliberately reported separately and does not warn. A warning
34
- that fires on every developer machine is one everybody learns to ignore, and
35
- then it goes unread on the day it matters. Every failure path resolves to
36
- `unknown` rather than to a false `current`.
37
-
38
- ## [3.8.12] - 2026-08-03 — Canonical learning signals, clock-independent daemon identity, remote reranker
39
-
40
- ### Fixed
41
- - Explicit feedback now reaches the store every consumer actually reads.
42
- Three tables carry a "feedback" name: `feedback_records` (memory.db, read by
43
- nothing), `learning_feedback` (the pre-v3.4.22 legacy table that
44
- `legacy_migration` copies forward), and `learning_signals` +
45
- `learning_features` (canonical — read by the dashboard Living Brain panel,
46
- the ranker-phase card, and the LightGBM retrainer). The 3.8.11 fix wrote to
47
- the legacy table, so it moved a counter nothing consumes. `record_explicit`
48
- now writes the legacy row and the canonical signal/feature pair in one
49
- transaction, flagged `is_synthetic=1` so the LightGBM trainer's
50
- `WHERE is_synthetic=0` filter excludes them from training. (#106)
51
- - The recall phase gate and the dashboard no longer read different tables.
52
- The gate counted `learning_feedback` while every user-visible surface counted
53
- `learning_signals`, so the phase a user was shown and the phase that actually
54
- ranked their results could disagree without limit. Both now resolve from the
55
- canonical store, with thresholds imported from `learning.ranker` rather than
56
- duplicated as literals — duplicated literals are how the two surfaces drifted
57
- apart in the first place. (#106)
58
- - `report_feedback` no longer reports success for a write that did not happen.
59
- It fell back to the `feedback_records` count when the canonical read failed,
60
- and that table increments on every call regardless, so total write failure was
61
- indistinguishable from success. The cross-store fallback is removed; a failed
62
- durable write returns `success: false` with `durable: false`. (#106)
63
- - The CLI no longer disowns a healthy daemon after a few minutes on WSL2.
64
- psutil derives `create_time` as boot time plus start ticks and re-reads
65
- `/proc/stat` `btime` on every call; WSL2 resyncs its VM clock mid-session, so
66
- `btime` moves and every process's computed creation time moves with it,
67
- retroactively. The recorded value stopped matching the same live PID while
68
- `/health` still answered in milliseconds. Ownership now compares a
69
- clock-independent process token — `boot_id` plus raw start ticks on
70
- Linux/WSL2, psutil's monotonic creation time elsewhere — as exact equality,
71
- with no tolerance constant left to silently expire. PID-reuse protection is
72
- strengthened: a creation-time mismatch no longer condemns a process outright,
73
- it falls through to cryptographic identity proof over loopback. (#104)
74
- - `DAEMON_UNAVAILABLE` now names one of eight specific reasons with an
75
- actionable hint instead of "owned daemon is unavailable; retry later". (#104)
76
- - `slm setup` no longer wipes the `retrieval` config block on every re-run.
8
+ ## [4.0.0] - 2026-08-01Verifiable memory transactions
9
+
10
+ Version 4.0 hardens the full lifecycle of a memory operation — admission,
11
+ canonical commit, projection to every store, migration, backup, and erasure
12
+ so each step is authorized and verifiable. Existing memories and
13
+ configuration are preserved; M038 (eager) and M039 (deferred) migrations are
14
+ automatically applied at startupno manual migration is normally required
15
+ (see `src/superlocalmemory/storage/migration_runner.py`; `slm db migrate` is
16
+ forward-only: `status`/`--dry-run`/apply, no rollback). Schema downgrade is
17
+ unsupported restore a verified pre-upgrade backup instead.
18
+
19
+ ### Changed
20
+ - **MCP SDK 2.0.0 (fully-stateless Streamable HTTP).** Pinned `mcp==2.0.0`.
21
+ Replaced deleted `mcp.server.fastmcp.FastMCP` with
22
+ `mcp.server.mcpserver.MCPServer` (same `@tool` decorator and
23
+ `run(transport="stdio")`). Transport knobs
24
+ (`stateless_http`, `json_response`, `streamable_http_path`,
25
+ `transport_security`) are now kwargs to `streamable_http_app()` —
26
+ `_configure_mcp_transport_settings()` returns that kwargs dict.
27
+ **Stateless is the default** (opt out with `SLM_MCP_STATEFUL=1`). Session
28
+ idle-timeout and EventStore SSE resumability are unused under
29
+ `stateless_http=True`. Application-level `session_init` / `close_session`
30
+ are unchanged (orthogonal to transport sessions). SDK lowlevel already
31
+ registers `server/discover` — not hand-written. Product version is passed
32
+ as `MCPServer(version=...)` (no private `_mcp_server.version` poke).
77
33
 
78
34
  ### Added
79
- - Remote and custom reranker endpoints, mirroring the remote embedding support
80
- added in v3.4.24. Setting `cross_encoder_backend` to `openai` (or `remote`)
81
- with a `cross_encoder_endpoint` routes reranking to an OpenAI-compatible
82
- `/v1/rerank` service instead of the local subprocess worker. The built-in
83
- cross-encoder is English-only, silently degrading recall for non-English
84
- users; this lets them bring a multilingual model. Failure degrades to fusion
85
- order with `applied=False` and an error log — never a silent fall back to the
86
- local English model, which would recreate the very problem this solves. The
87
- new outbound HTTP surface enforces an http/https allow-list, rejects 3xx and
88
- does not follow redirects, refuses credentials embedded in the URL, and
89
- bounds response reads at 8 MB. (#105)
90
- - `cross_encoder_endpoint` is now a real config field. It was previously
91
- accepted and silently ignored the remaining half of #103.
92
-
93
- ## [3.8.11] - 2026-08-02 Learning-signal integrity and honest reranker diagnostics
94
-
95
- ### Fixed
96
- - Explicit feedback reported through `report_feedback` now writes to the
97
- canonical learning store (`learning.db`), which every learning consumer
98
- reads: the adaptive-ranking phase gate, `pattern_miner`, and the dashboard
99
- Living Brain. Previously it wrote only to a table nothing else read, so
100
- feedback returned success and a rising counter while the ranker never
101
- advanced past Phase 1 (#102).
102
- - `learning_feedback` now has the `channel` column `pattern_miner` has always
103
- queried but no schema ever defined. Every fresh database raised
104
- `no such column: channel` on the first mining pass — caught, logged at
105
- debug, and silently disabled both channel-performance mining and the
106
- co-retrieval mining that shared its error handler. Migration `M033`
107
- backfills existing databases without touching existing rows (#102).
108
- - The cross-encoder reranker now reports the real reason a model load
109
- failed instead of a generic timeout message, and no longer retries a
110
- configuration error five times (~7.5 minutes) before giving up. An
111
- unrecognized `cross_encoder_backend` value is now rejected by name;
112
- SuperLocalMemory has no remote/OpenAI-compatible reranker backend, so a
113
- `cross_encoder_endpoint` config key was previously accepted and silently
114
- ignored (#103).
115
- - `slm recall` no longer crashes when a daemon response's
116
- `retrieval_time_ms` or a result's `score` is present but `null` — the
117
- keyword-fallback recall path now includes `retrieval_time_ms` in every
118
- response, matching every other recall path's contract.
119
- - The MagicMock artifact guard (`.gitignore` and its CI test) now also
120
- catches the directory-shaped leak (`MagicMock/mock/<id>/`) produced when
121
- a mock-derived path reaches `mkdir()`, not just the file-shaped leak
122
- (`<MagicMock id='...'>`) produced by `os.open()`.
35
+ - A unified admission gateway resolves one authenticated actor, active profile,
36
+ and policy decision for every write across the CLI, MCP, HTTP, WebSocket, and
37
+ hook surfaces.
38
+ - Every completed operation carries a durable receipt and a hash-verifiable
39
+ completion manifest spanning all representations.
40
+ - **BackupCoordinator** is available as a coherent, checksum-verified backup
41
+ set primitive (`src/superlocalmemory/infra/backup.py`: `BackupCoordinator.create_backup_set()` /
42
+ `restore_from_manifest()` shared epoch, per-store SHA-256, manifest hash,
43
+ atomic publish, pre-restore snapshot + rollback). Production backup,
44
+ dashboard, cloud, and export routes currently use the **legacy
45
+ `BackupManager`** independent per-file SQLite `sqlite3.backup()` snapshots
46
+ (one file at a time); companion-store failures are logged as non-critical
47
+ and do not fail the primary `memory.db` snapshot (`_backup_all_dbs`). See
48
+ correction note below.
49
+ - **SLM-Mesh** remains the peer-coordination plane (cross-session / cross-machine
50
+ messages, locks, shared state, inbox/outbox) with mesh MCP tools on the
51
+ `full` / `power` / `mesh` profiles.
52
+ - Documented MCP profile counts for the V4 surface: `full` 42 (default everyday),
53
+ `power` 54, `whole` 87 registered tools; `core` 14, `code` 24, `mesh` 8.
54
+ - Product documentation reframes the release as V4: multi-scope memory and
55
+ profiles, cache/compress context optimization, Entity Explorer and skill
56
+ evolution, Modes A/B/C locality choices, GDPR export/erasure/retention and
57
+ hash-chained audit controls, and the seven-layer retrieval/operations stack.
123
58
 
124
- ### Documentation
125
- - `docs/auto-memory.md` no longer references `slm patterns` / `slm useful`,
126
- which do not exist in V3; documents the `report_feedback` MCP tool as the
127
- supported path instead.
59
+ ### Security
60
+ - Outbound provider requests are validated against server-side request forgery,
61
+ blocking internal metadata endpoints and unresolved hosts.
62
+ - Secrets are scrubbed from content before it is persisted or indexed, on both
63
+ the canonical write path and import.
64
+ - Profile erasure removes every representation — main store, projections,
65
+ full-text and semantic indexes, and the context cache — and reports each count.
66
+ - Mesh peers receive server-assigned identities bound to tenant and project;
67
+ production remote transport rejects plaintext, and shared state rejects
68
+ secret-looking values.
69
+
70
+ ### Fixed
71
+ - A corrected fact is re-indexed everywhere, so semantic and keyword recall
72
+ reflect the new content instead of a stale copy.
73
+ - Archived facts are excluded from every read path, including keyword search
74
+ and direct fetch.
75
+ - Schema migrations refuse to run against a database written by a newer build,
76
+ and a migration whose dependency did not complete is held back.
77
+ - In-memory configuration changes are preserved across a save, and unknown or
78
+ externally tuned settings survive a load/save cycle.
79
+
80
+ ### Backup scope and offline guidance (correction)
81
+
82
+ *Correction 2026-08-08 — the 2026-08-01 text “Backups are captured as a
83
+ coherent, checksum-verified set and restored atomically …” described the
84
+ `BackupCoordinator` primitive, not the wired production path. The production
85
+ path ( `BackupManager.create_backup()` / `server/routes/backup.py` /
86
+ `maintenance_scheduler` auto-backup / cloud sync / dashboard **Export**
87
+ ) remains independent per-file `sqlite3.backup()` snapshots; this entry is
88
+ preserved with this pointer rather than silently rewritten.*
89
+
90
+ - Included stores (legacy path): `memory.db`, `learning.db`, `audit_chain.db`,
91
+ `code_graph.db`, `pending.db`, `audit.db` — only those present on disk; no
92
+ other files are backed up. `memory-*.db` is the primary snapshot;
93
+ `_backup_all_dbs()` copies remaining managed DBs one-by-one.
94
+ Companion-copy exceptions are caught and logged at `warning` as non-critical.
95
+ `lance/` (LanceDB directory) is **not** included by the legacy path; the
96
+ coherent primitive handles it as an out-of-manifest companion.
97
+ - Exclusions: nothing outside `MANAGED_DATABASES`; no coherent epoch or
98
+ cross-store manifest/rollback claim for the production path.
99
+ - Dashboard **Export** (`POST /api/backup/export`) creates a single compressed
100
+ `.db.gz` from the latest `memory.db` snapshot only (`memory-*.db` → gzip).
101
+ It is not a coherent whole-root export.
102
+ - No `BackupCoordinator` epoch/atomic-set / whole-root backup is wired to
103
+ production routes or `slm` subcommands in this release.
104
+ - Legacy backup destination files follow the process **umask**, not source-file
105
+ permission inheritance; there is no unwired whole-root restore route. For
106
+ offline whole-root backup/restore, `slm serve stop` (stop the daemon) first
107
+ so WAL/SHM are checkpointed, then copy the complete data-root store set
108
+ (all present `*.db` plus `-wal`/`-shm` sidecars and `lance/` if present)
109
+ with the destination directory on an encrypted/private volume; verify
110
+ resulting files are owner-only (`0600`/`0700`) after copy.
111
+ - Legacy backup destination follows process umask; do not claim source
112
+ permission inheritance.
113
+
114
+ ### Notes
115
+ - Existing memories and configuration are preserved. V4.0.0 M038 (eager) and
116
+ M039 (deferred) are auto-applied at startup; no manual `slm db migrate` is
117
+ normally required. Downgrade requires a verified pre-upgrade complete backup
118
+ (stop daemon before offline copy, include WAL/SHM). No `slm db migrate
119
+ --rollback`; use restore of that backup instead.
128
120
 
129
121
  ## [3.8.10] - 2026-07-29 — Reliable startup and MCP writes
130
122
 
@@ -2387,7 +2379,7 @@ Hardening release — correctness, stability, and security fixes.
2387
2379
  **Varun Pratap Bhardwaj**
2388
2380
  *Solution Architect*
2389
2381
 
2390
- SuperLocalMemory V3 - Intelligent local memory system for AI coding assistants.
2382
+ SuperLocalMemory V4 - Intelligent local memory system for AI coding assistants.
2391
2383
 
2392
2384
  ---
2393
2385
 
@@ -2825,7 +2817,7 @@ We use [Semantic Versioning](https://semver.org/):
2825
2817
  - **MINOR:** New features (backward compatible, e.g., 2.0.0 → 2.1.0)
2826
2818
  - **PATCH:** Bug fixes (backward compatible, e.g., 2.1.0 → 2.1.1)
2827
2819
 
2828
- **Current Version:** v3.3.0
2820
+ **Current Version:** v4.0.0 (see top of this file for the active release entry)
2829
2821
  **Website:** [superlocalmemory.com](https://superlocalmemory.com)
2830
2822
  **npm:** `npm install -g superlocalmemory`
2831
2823
 
@@ -2833,7 +2825,7 @@ We use [Semantic Versioning](https://semver.org/):
2833
2825
 
2834
2826
  ## License
2835
2827
 
2836
- SuperLocalMemory V3 is released under the [Elastic License 2.0](LICENSE).
2828
+ Early SuperLocalMemory V3 packaging used the [Elastic License 2.0](LICENSE); the current public project license is AGPL-3.0-or-later (see LICENSE at the repository root).
2837
2829
 
2838
2830
  ---
2839
2831
 
package/README.md CHANGED
@@ -5,22 +5,41 @@
5
5
  </picture>
6
6
  </p>
7
7
 
8
- <h1 align="center">SuperLocalMemory V3.8.13</h1>
9
- <p align="center"><strong>Enterprise-grade, local-first memory for AI agents and teams.</strong><br/>
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.13</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/>
8
+ <h1 align="center">SuperLocalMemory V4.0.0</h1>
9
+
10
+ <h2 align="center">Rent the LLM. Own the memory.</h2>
11
+
12
+ <p align="center"><em>Rent an LLM — but own the memory, for your company and for your industry.</em></p>
13
+
14
+ <p align="center"><strong>The governed memory layer for AI agents: local-first, auditable, and built for the compliance obligations teams now actually carry.</strong><br/>
15
+ Models are interchangeable and rented by the token. What your agents <em>remember</em> is
16
+ yours — it is your customers' data, your retention obligations, and your audit trail. SLM
17
+ keeps that layer on infrastructure you control, with multi-workspace isolation, role-based
18
+ access, and GDPR + EU AI Act governance controls built in.</p>
19
+
20
+ <p align="center"><strong>The boundary.</strong> SuperLocalMemory starts with a local runtime;
21
+ provider-backed enrichment, cloud backup, connectors, and proxy use are explicit choices.
22
+ Different products solve different boundaries. Published benchmark evidence carried into V4
23
+ comes from the published V3 research architecture; it is not a claim of a newly rerun V4 package benchmark.</p>
24
+
25
+ <p align="center"><strong>How to check that, rather than believe it.</strong> Every reliability
26
+ guarantee here is stated as a falsifiable invariant, tested under an adversarial condition with a
27
+ negative control, and shipped with the harness that regenerates the evidence:
28
+ <code>python benchmark/run_all.py --trials 200 --output-dir results/</code>. What each experiment
29
+ does <em>not</em> exercise is stated too.</p>
30
+ <p align="center"><code>v4.0.0</code> — one control plane: <strong>SLM-Mesh</strong> peer coordination · multi-scope memory (personal / shared / global) · profiles · Cache · Compress · 7-layer retrieval · code graph · Entity Explorer · skill evolution · Modes A/B/C · GDPR retention &amp; audit chain · bounded loops — across CLI, MCP, dashboard, the <strong>Claude plugin</strong>, the <strong>Codex add-on</strong>, and documented IDE integrations.<br/>
12
31
  Proxy: <code>slm wrap claude</code> &nbsp;·&nbsp; MCP: add <code>slm_compress</code> to your config &nbsp;·&nbsp; Skill: zero-config</p>
13
32
  <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
33
 
15
34
  <p align="center">
16
- <a href="CHANGELOG.md"><img src="https://img.shields.io/badge/v3.8.13-Current_Release-2ea44f?style=for-the-badge&logo=checkmarx&logoColor=white" alt="v3.8.13 — Current Release"/></a>
35
+ <a href="CHANGELOG.md"><img src="https://img.shields.io/badge/v4.0.0-Current_Release-2ea44f?style=for-the-badge&logo=checkmarx&logoColor=white" alt="v4.0.0 — Current Release"/></a>
17
36
  <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
37
  <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
38
  <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>
20
39
  <a href="https://www.npmjs.com/package/superlocalmemory"><img src="https://img.shields.io/npm/v/superlocalmemory?style=for-the-badge&logo=npm&logoColor=white" alt="npm"/></a>
21
40
  <a href="https://www.gnu.org/licenses/agpl-3.0"><img src="https://img.shields.io/badge/License-AGPL_v3-blue.svg?style=for-the-badge" alt="AGPL v3"/></a>
22
41
  <a href="#privacy-controls-and-operating-modes"><img src="https://img.shields.io/badge/Privacy-Deployment_Assessed-brightgreen?style=for-the-badge" alt="Privacy controls require deployment assessment"/></a>
23
- <a href="#teams-and-enterprise-memory-v380"><img src="https://img.shields.io/badge/Enterprise-GDPR_%7C_EU_AI_Act-0b5394?style=for-the-badge" alt="Enterprise governance: GDPR and EU AI Act controls"/></a>
42
+ <a href="#teams-and-enterprise-memory-v4"><img src="https://img.shields.io/badge/Enterprise-GDPR_%7C_EU_AI_Act-0b5394?style=for-the-badge" alt="Enterprise governance: GDPR and EU AI Act controls"/></a>
24
43
  <a href="https://superlocalmemory.com"><img src="https://img.shields.io/badge/Web-superlocalmemory.com-ff6b35?style=for-the-badge" alt="Website"/></a>
25
44
  <a href="#dual-interface-mcp--cli"><img src="https://img.shields.io/badge/MCP-Native-blue?style=for-the-badge" alt="MCP Native"/></a>
26
45
  <a href="#dual-interface-mcp--cli"><img src="https://img.shields.io/badge/CLI-Agent--Native-green?style=for-the-badge" alt="CLI Agent-Native"/></a>
@@ -35,21 +54,24 @@ SuperLocalMemory is an enterprise-grade, local-first memory control plane for AI
35
54
 
36
55
  Agent-memory systems make different storage, model-provider, and deployment trade-offs. SuperLocalMemory starts with a local runtime and makes provider-backed enrichment, cloud backup, connectors, and proxy use explicit choices.
37
56
 
38
- Different products solve different boundaries. The published benchmark evidence carried into V3.8.0 is protocol-scoped evidence from the published V3 research, not a claim of a newly rerun V3.8.0 package benchmark.
57
+ Different products solve different boundaries. The published LoCoMo benchmark evidence in this README is protocol-scoped evidence from the published V3 research architecture; it is carried forward for continuity and is not a claim of a newly rerun V4 package benchmark.
39
58
 
40
- SuperLocalMemory V3 combines conventional dense and lexical retrieval with graph, temporal, associative, and statistical relevance scoring. The default local runtime does not require Docker, a separately operated graph database, or an API key.
59
+ SuperLocalMemory V4 combines conventional dense and lexical retrieval with graph, temporal, associative, and statistical relevance scoring in a **7-layer** control plane (admission → queryable core → enrichment → brain → multi-channel retrieval → context safety → operations). The default local runtime does not require Docker, a separately operated graph database, or an API key.
41
60
 
42
61
  **Memory with a sense of time.** SLM does not only store *what* an agent learned — it records *when*. Every fact carries ingestion timing and provenance; recall runs a dedicated temporal candidate channel alongside semantic, lexical, and associative retrieval; scenes and entity timelines reconstruct sequence; and the lifecycle lets neglected memory decay and self-archive instead of growing without bound. Time is a first-class ranking and lifecycle signal rather than a timestamp column an agent never reads — which is what lets a long-lived agent reason about how its context changed, not only what it currently holds.
43
62
 
44
- **What V3.8.0 added.** The 3.8.0 capability release introduced the following
45
- foundation; 3.8.1 is the existing-install stability patch for it:
63
+ **What V4.0.0 ships.** V4 is a *governed* local-first control plane — every canonical write is admitted, policy-authorized, tracked as durable per-store obligations (lexical, temporal, vector), and sealed by a completion manifest, so it is either fully applied or explicitly marked degraded, never silently half-done. Flagship surfaces in this release:
46
64
 
47
- - **Temporal depth** — the time-aware retrieval and lifecycle described above.
48
- - **Governance & EU compliance** — [team roles, workspace isolation, a login gate, multi-scope memory, GDPR access/erasure/portability rights, a hash-chained audit trail, and per-mode EU AI Act self-assessment](#teams-and-enterprise-memory-v380).
49
- - **Framework adapters** — [drop-in, engine-backed memory for nine agent frameworks](#framework-adapters-v380).
50
- - **Bounded loops** — [gate-verified agent loops where an independent check, not the agent's own claim, decides when a task is done](#bounded-loops-v380).
51
- - **Stronger cache and compression** — exact-match caching with tagged invalidation plus opt-in reversible compression, across proxy, MCP, and skill surfaces.
52
- - **Stability** a long defect-and-audit sweep across ingestion, retrieval, mesh, and the dashboard hardens the everyday path.
65
+ - **[SLM-Mesh](#slm-mesh-cross-session--cross-machine-coordination)** — authenticated cross-session and cross-machine peer coordination (messages, locks, shared state, inbox/outbox, optional discovery). Coordination only — not automatic replicated memory.
66
+ - **Multi-scope memory & profiles** — workspaces (profiles) plus `personal` / `shared` / `global` scopes; cross-profile recall is default-deny.
67
+ - **Cache & compression (context optimization)** — exact-match cache with tagged invalidation, safe compression, and opt-in reversible/aggressive paths across proxy, MCP, and skill surfaces.
68
+ - **Entity Explorer & skill evolution** — compiled entity summaries/timelines; opt-in skill lineage, budgets, and verification outcomes.
69
+ - **Modes A / B / C** — local-only (A), on-device LLM enrichment (B), provider-assisted (C). An operating mode records technical locality facts; it does **not** determine EU AI Act legal compliance (that is deployment-context assessment — see [Privacy controls](#privacy-controls-and-operating-modes)).
70
+ - **GDPR posture, retention & audit chain** export, fail-closed cross-store erasure, retention policies, and a hash-chained audit trail. Engineering controls for compliance programs, not a legal certification.
71
+ - **7-layer retrieval/recall stack & code graph** — multi-channel candidates (semantic, BM25, temporal, Hopfield, spreading activation) plus optional code-graph tools for blast radius and review context.
72
+ - **MCP profiles** — `full` exposes **42** tools (default everyday surface); `power` **54**; `whole` **87** (all registered). Also `core` (14), `code` (24), and `mesh` (8).
73
+ - **Governed write path & verifiable transactions** — admission + policy control, a per-owner obligation ledger, and a hash-sealed completion manifest with a reconciler that redrives unmet obligations.
74
+ - **Self-healing lifecycle & admin remediation** — stale locks cleared on restart; list/resolve stuck operations from CLI, MCP, or the dashboard.
53
75
 
54
76
  SLM is one strand of Qualixar's work on AI reliability engineering: making agent behavior observable, bounded, and reproducible instead of best-effort.
55
77
 
@@ -60,7 +82,7 @@ The architecture evaluated in the V3 paper remains the foundation of this releas
60
82
  Different products solve different boundaries. SLM is for developers who want
61
83
  one local-first operating control plane—not only an SDK, managed context API,
62
84
  or agent runtime. It combines dated evidence, graph-aware retrieval, cache and
63
- compression controls, trusted-peer Mesh, and MCP/CLI/hooks/dashboard/IDE
85
+ compression controls, **SLM-Mesh**, and MCP/CLI/hooks/dashboard/IDE
64
86
  surfaces in one install.
65
87
 
66
88
  | If your primary need is… | Product boundary to evaluate |
@@ -78,24 +100,24 @@ for current primary sources and protocol-scoped benchmark evidence. A LoCoMo
78
100
  percentage is comparable only when the dataset scope, answer model, judge,
79
101
  retrieval stack, and release artifact match.
80
102
 
81
- ### The V3.8.0 capability architecture
103
+ ### The V4 capability architecture
82
104
 
83
105
  SuperLocalMemory is one local control plane for persistent agent context. It is
84
106
  not just a vector store: the same runtime can accept evidence, build and govern
85
107
  memory, retrieve bounded evidence for an agent, and expose cache, compression,
86
- and peer-coordination controls through a CLI, MCP, dashboard, and supported
108
+ and **SLM-Mesh** peer-coordination controls through a CLI, MCP, dashboard, and supported
87
109
  IDE integrations.
88
110
 
89
- ![SuperLocalMemory V3 capability architecture: modes, seven operating layers, Scale Engine, Mesh, delivery surfaces, and opt-in adapters](docs/assets/slm-v37-capability-architecture.png)
111
+ ![SuperLocalMemory V4 capability architecture: modes, seven operating layers, Scale Engine, SLM-Mesh, delivery surfaces, and opt-in adapters](docs/assets/slm-v37-capability-architecture.png)
90
112
 
91
113
  *Architecture boundary: SQLite + sqlite-vec remain canonical; CozoDB and
92
- LanceDB are parity-gated projections; Mesh coordinates trusted peers rather
114
+ LanceDB are parity-gated projections; **SLM-Mesh** coordinates trusted peers rather
93
115
  than replicating a distributed memory database; connectors are opt-in.*
94
116
 
95
117
  **Memory boundaries:** profiles isolate workspaces by default. Every memory is
96
118
  `personal`, `shared` with named profile readers, or `global`; cross-profile
97
119
  recall is default-deny and must be explicitly enabled. This scoped sharing is
98
- local authorization, not SLM Mesh synchronization. See
120
+ local authorization, not **SLM-Mesh** synchronization. See
99
121
  [shared-memory.md](docs/shared-memory.md).
100
122
 
101
123
  ```text
@@ -130,7 +152,7 @@ health surfaces expose the stages actually completed by the installed runtime.
130
152
  | **Knowledge graph and entities** | Canonical entities, aliases, entity profiles, graph edges, scenes, timelines, explorer and graph APIs | Stored/derived graph data is evidence, not an instruction authority. |
131
153
  | **Scale Engine** | SQLite + sqlite-vec are canonical. CozoDB graph and LanceDB vector projections are managed with prepare → verify → promote → rollback; a structurally detected pre-v3.7 projection can be explicitly adopted. | Promotion is parity-gated and crash-recoverable. Legacy adoption preserves the prior projection as a rollback backup; repeated physical edge rows normalize to one logical edge with the strongest weight. |
132
154
  | **Optimize** | Exact cache, tagged invalidation, safe compression, opt-in aggressive prose compression, CCR originals, proxy/MCP/skill surfaces | Only proxy intercepts a primary provider turn. MCP/skill cache results explicitly routed through SLM. |
133
- | **Mesh** | Authenticated peer messages, inbox/outbox, locks, offline queue, optional discovery and mesh MCP tools | Mesh is coordination, not automatic replicated memory or conflict resolution. |
155
+ | **SLM-Mesh** | Authenticated peer messages, inbox/outbox, locks, offline queue, optional discovery and mesh MCP tools | SLM-Mesh is coordination, not automatic replicated memory or conflict resolution. |
134
156
  | **Governance and operations** | Provenance, audit/retention/policy surfaces, export/erasure controls, diagnostics, health, backups and daemon lifecycle | These are engineering controls, not a legal certification. |
135
157
  | **Integrations** | CLI, Python SDK, MCP HTTP/stdio, Claude plugin, Codex add-on, supported IDE configurations, Gmail/Calendar/transcript adapters | Hooks, IDE edits, connectors, and networked adapters require explicit operator activation. |
136
158
 
@@ -146,7 +168,7 @@ health surfaces expose the stages actually completed by the installed runtime.
146
168
  | Operations | ingestion-operation state, traces, maintenance and lifecycle work |
147
169
  | Entity Explorer and Skill Evolution | compiled entity summaries/timelines; opt-in skill lineage, budgets and verification outcomes |
148
170
  | Multi-Agent Memory | per-agent write activity and attribution; memories stamped by `SLM_AGENT_ID`, agent write counts, and trust signals |
149
- | Mesh Peers | configured peers, inbox/outbox, pending coordination and locks |
171
+ | SLM-Mesh Peers | configured peers, inbox/outbox, pending coordination and locks |
150
172
  | Settings and Optimize | mode/provider/configuration; cache, compression and savings telemetry |
151
173
 
152
174
  Dashboard visibility is not a substitute for runtime proof: use `slm doctor`,
@@ -159,9 +181,9 @@ deployment.
159
181
 
160
182
  **[Watch the SuperLocalMemory demo on YouTube](https://www.youtube.com/watch?v=PMWW_ypsL60)** — a five-minute walkthrough of installation, setup, recall, cache, and compression. The video shows a product walkthrough; use the commands and release notes in this README as the current release contract.
161
183
 
162
- ### Published LoCoMo evidence (V3 architecture, carried into V3.8.0)
184
+ ### Published LoCoMo evidence (V3 architecture, carried into V4)
163
185
 
164
- The V3 paper evaluates the architecture carried into V3.8.0. Every figure below
186
+ The V3 paper evaluates the multi-channel architecture that V4 still runs. Every figure below
165
187
  is protocol-scoped, so a reader can distinguish local retrieval, answer
166
188
  construction, and cloud-assisted evaluation rather than treating unlike runs as
167
189
  one score.
@@ -182,7 +204,7 @@ information-geometric layers versus **58.9%** without them: **+12.7pp**.
182
204
  See [arXiv:2603.14588](https://arxiv.org/abs/2603.14588) and the [official
183
205
  LoCoMo paper](https://arxiv.org/abs/2402.17753) for the full protocol,
184
206
  ablation table, and limitations. These are published V3 architecture results
185
- carried into V3.8.0—not a substitute for a newly rerun release-artifact benchmark.
207
+ carried into V4—not a substitute for a newly rerun release-artifact benchmark.
186
208
 
187
209
  ---
188
210
 
@@ -294,10 +316,6 @@ quality must be evaluated for the target client and workload; V3.8.0 publishes n
294
316
 
295
317
  **Multilingual models:** configure an OpenAI-compatible embedding endpoint such as Ollama, vLLM, LiteLLM, `bge-m3`, `multilingual-e5`, or `Qwen3-Embedding`. Language coverage and retrieval quality depend on the selected model and should be evaluated for the deployment corpus.
296
318
 
297
- <a id="remote-embedding-and-rerank-endpoints"></a>
298
-
299
- **Remote embedding + rerank endpoints.** The bundled reranker `cross-encoder/ms-marco-MiniLM-L-12-v2` is **English-only**, so a Chinese, Japanese, or Arabic corpus is scored by a model that cannot read it. Set `retrieval.cross_encoder_backend: "openai"` plus `retrieval.cross_encoder_endpoint` to route reranking to any Cohere-shaped `POST /v1/rerank` service — llama-server, text-embeddings-inference, Infinity — running a multilingual model such as `BAAI/bge-reranker-v2-m3` (v3.8.12, [#105](https://github.com/qualixar/superlocalmemory/issues/105); the same escape hatch embeddings got in v3.4.24, [#16](https://github.com/qualixar/superlocalmemory/issues/16)). No subprocess and no local model download. An unreachable, slow, or malformed endpoint logs an error and returns fusion-ranked results — SLM never silently substitutes the local English model. Keys, auth, and failure semantics: **[docs/configuration.md](docs/configuration.md#remote-embedding-and-rerank-endpoints)**.
300
-
301
319
  ### Cache + Compress
302
320
 
303
321
  <a id="three-surfaces-proxy--mcp-tools--skill"></a>
@@ -327,11 +345,12 @@ actual cost and latency savings depend on the intercepted surface and provider.
327
345
 
328
346
  **Savings dashboard:** `slm optimize savings --since 7` — live USD/INR/tokens saved. Hot-reload config, fail-open.
329
347
 
330
- ### Mesh
348
+ ### SLM-Mesh (cross-session / cross-machine coordination)
331
349
 
332
350
  <a id="multi-machine-mesh-coordination"></a>
351
+ <a id="slm-mesh-cross-session--cross-machine-coordination"></a>
333
352
 
334
- Mesh provides authenticated coordination messages between configured peers, with an offline queue and optional mDNS discovery (`SLM_MESH_DISCOVERY=on`). It is not a replicated or conflict-resolving distributed-memory database.
353
+ **SLM-Mesh** is the V4 peer-coordination plane: authenticated messages, locks, shared lightweight state, inbox/outbox, and an offline queue between configured peers (same machine sessions or cross-machine). Optional mDNS discovery (`SLM_MESH_DISCOVERY=on`). It is **not** a replicated or conflict-resolving distributed-memory database — multi-scope memory sharing is a separate local-authorization feature.
335
354
 
336
355
  ```bash
337
356
  # Machine A (broker)
@@ -345,7 +364,7 @@ export SLM_MESH_SHARED_SECRET=my-secret-key
345
364
  slm init
346
365
  ```
347
366
 
348
- 8 mesh MCP tools: `mesh_summary`, `mesh_peers`, `mesh_send`, `mesh_inbox`, `mesh_state`, `mesh_lock`, `mesh_events`, `mesh_status`.
367
+ Eight **SLM-Mesh** MCP tools: `mesh_summary`, `mesh_peers`, `mesh_send`, `mesh_inbox`, `mesh_state`, `mesh_lock`, `mesh_events`, `mesh_status`.
349
368
 
350
369
  Full docs: [docs/multi-machine.md](docs/multi-machine.md) · [docs/distributed-deployment.md](docs/distributed-deployment.md)
351
370
 
@@ -353,6 +372,8 @@ Full docs: [docs/multi-machine.md](docs/multi-machine.md) · [docs/distributed-d
353
372
 
354
373
  ## Install Paths
355
374
 
375
+ > **V4 platform support:** Apple Silicon macOS, 64-bit Windows, and 64-bit Linux. Intel Mac and 32-bit Windows are not supported by the patched `cryptography` 50 runtime.
376
+
356
377
  | Path | Command | When |
357
378
  |:-----|:--------|:-----|
358
379
  | **npm global CLI** (primary) | `npm install -g superlocalmemory` | Node 18+; package-owned virtual environment; system Python is not modified; run `slm setup` explicitly afterward |
@@ -398,10 +419,10 @@ Control tool surface via `SLM_MCP_PROFILE`:
398
419
  |:--------|:-----:|:---------|
399
420
  | `core` | 14 | Memory, session, and optimize core |
400
421
  | `code` | 24 | Core + code-graph tools + profile switching + bounded loops |
401
- | `mesh` | 8 | Mesh-only — multi-machine coordination |
422
+ | `mesh` | 8 | SLM-Mesh only — multi-session / multi-machine coordination |
402
423
  | `full` | 42 | Memory + optimize + evolution + mesh + bounded loops |
403
424
  | `power` | 54 | Full + administration, lifecycle, and diagnostics |
404
- | `whole` | all registered | Every registered MCP tool |
425
+ | `whole` | 87 | Every registered MCP tool |
405
426
 
406
427
  **Precedence:** `ALL` > `TOOLS` > `PROFILE` > `default`
407
428
 
@@ -514,9 +535,9 @@ Available controls include local export and erasure commands, hash-chained audit
514
535
 
515
536
  ---
516
537
 
517
- ## Teams and Enterprise Memory (v3.8.0)
538
+ ## Teams and Enterprise Memory (V4)
518
539
 
519
- V3.8.0 adds multi-user, multi-workspace controls for teams and organizations. These are opt-in — personal single-user installs work exactly as before with no required login.
540
+ V4 includes multi-user, multi-workspace controls for teams and organizations (introduced on the 3.8 line and retained). These are opt-in — personal single-user installs work exactly as before with no required login.
520
541
 
521
542
  ### Users and roles
522
543
 
@@ -570,12 +591,9 @@ These are engineering controls. Compliance depends on deployment configuration,
570
591
 
571
592
  ### EU AI Act mode verification
572
593
 
573
- SLM includes a per-mode EU AI Act self-assessment. The `EUAIActChecker` produces a compliance report for the active operating moderisk category, whether data stays local, whether generative AI is used, and transparency / human-oversight signals:
594
+ SLM includes a per-mode EU AI Act *technical posture* report (`EUAIActChecker`). It records facts the runtime can know — whether data is configured to stay local, whether generative AI is used, and that transparency / human-oversight need deployment evidence.
574
595
 
575
- - **Mode A (Local Guardian)** and **Mode B (Smart Local)** assessed as compliant: memory processing stays local and uses no generative AI.
576
- - **Mode C (Provider-assisted)** — flagged non-compliant, because query or enrichment content is sent to a cloud model provider.
577
-
578
- This is operator self-assessment tooling, not a legal certification or conformity assessment; actual EU AI Act obligations depend on your system, deployment, and role. See [docs/compliance.md](docs/compliance.md).
596
+ **An operating mode does not establish legal compliance under the EU AI Act.** Legal risk classification and conformity assessment depend on intended purpose, affected persons, sector, deployment context, and operator controls. The checker therefore returns `compliant=None` / risk category `undetermined` for every mode and always requires deployment-context review. Mode A/B/C only change technical locality and enrichment options (for example Mode C may send content to a configured provider). See [docs/compliance.md](docs/compliance.md) and `src/superlocalmemory/core/modes.py`.
579
597
 
580
598
  ### Deployment tiers
581
599
 
@@ -594,7 +612,7 @@ Full reference: [docs/rbac-teams.md](docs/rbac-teams.md) · [docs/deployment-tie
594
612
 
595
613
  ---
596
614
 
597
- ## Bounded Loops (v3.8.0)
615
+ ## Bounded Loops (V4)
598
616
 
599
617
  A bounded loop terminates only when an **independent gate** passes — a test
600
618
  suite exit code, a linter, a JSON-schema check, or an SLM-recall condition.
@@ -625,7 +643,7 @@ Multi-Agent Memory workspace.
625
643
 
626
644
  ---
627
645
 
628
- ## Framework Adapters (v3.8.0)
646
+ ## Framework Adapters (V4)
629
647
 
630
648
  SLM ships nine framework adapters under `ide/integrations/`. Each adapter
631
649
  wires SLM as the memory and history provider for the respective framework
@@ -687,32 +705,16 @@ SuperLocalMemory is backed by three preprints by Varun Pratap Bhardwaj (2026):
687
705
  Use the citation metadata on the linked arXiv or Zenodo records.
688
706
 
689
707
  ## Support / License / Qualixar
690
-
691
708
  See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines. [Wiki](https://github.com/qualixar/superlocalmemory/wiki) for detailed documentation.
692
-
693
709
  GNU Affero General Public License v3.0 (AGPL-3.0). See [LICENSE](LICENSE).
694
-
695
710
  For commercial licensing (closed-source, proprietary, or hosted use), see [COMMERCIAL-LICENSE.md](COMMERCIAL-LICENSE.md) or contact varun.pratap.bhardwaj@gmail.com.
696
-
697
711
  Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar.
698
-
699
712
  Part of [Qualixar](https://qualixar.com) · Author: [Varun Pratap Bhardwaj](https://varunpratap.com)
700
-
701
- ### Acknowledgments
702
-
703
- - **[Everything Claude Code (ECC)](https://github.com/affaan-m/everything-claude-code)** inspired SLM's skill-observation patterns; SLM can ingest ECC observations with `slm ingest --source ecc`.
704
- - **[HKUDS/OpenSpace](https://github.com/HKUDS/OpenSpace)** informed the skill-evolution verification design (arXiv:2604.01687).
705
-
706
- ### Qualixar AI Agent Reliability Platform
707
-
708
- Qualixar builds open-source infrastructure for AI reliability engineering.
709
- Start at **[qualixar.com](https://qualixar.com)** or browse the
710
- [Qualixar research archive](https://huggingface.co/Qualixar).
713
+ Acknowledgments: [Everything Claude Code](https://github.com/affaan-m/everything-claude-code) informed skill observation; [HKUDS/OpenSpace](https://github.com/HKUDS/OpenSpace) informed skill-evolution verification.
714
+ Qualixar builds open-source infrastructure for AI reliability engineering. Start at [qualixar.com](https://qualixar.com) or browse the [research archive](https://huggingface.co/Qualixar).
711
715
 
712
716
  ## Star This Project
713
717
 
714
718
  If this project solves a real problem for you, **please star the repo** — it helps other developers discover Qualixar and signals that the AI agent reliability community is growing.
715
719
 
716
720
  [![Star SuperLocalMemory on GitHub](https://img.shields.io/github/stars/qualixar/superlocalmemory?style=for-the-badge&logo=github&label=Star%20on%20GitHub)](https://github.com/qualixar/superlocalmemory)
717
-
718
- The live Star History chart is intentionally not embedded: its upstream service timed out during release validation. The link above is the stable, direct way to star and follow the repository.