superlocalmemory 3.6.23 → 3.7.1

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 (285) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/README.md +271 -71
  3. package/bin/slm-npm +43 -89
  4. package/ide/configs/antigravity-mcp.json +2 -2
  5. package/ide/configs/chatgpt-desktop-mcp.json +1 -1
  6. package/ide/configs/claude-desktop-mcp.json +2 -2
  7. package/ide/configs/windsurf-mcp.json +2 -2
  8. package/ide/hooks/context-hook.js +6 -2
  9. package/ide/hooks/post-recall-hook.js +7 -3
  10. package/ide/hooks/tool-event-hook.sh +2 -1
  11. package/package.json +17 -9
  12. package/plugin/.claude-plugin/plugin.json +1 -1
  13. package/plugin/_GENERATED.md +1 -1
  14. package/plugin/agents/slm-memory-advisor.md +1 -1
  15. package/plugin/requirements.txt +1 -1
  16. package/plugin/skills/slm-session/SKILL.md +1 -1
  17. package/plugin-src/agents/slm-memory-advisor.md +1 -1
  18. package/plugin-src/manifest.json +1 -1
  19. package/plugin-src/requirements.txt +1 -1
  20. package/plugin-src/rules/AGENTS.md +1 -1
  21. package/plugin-src/skills/slm-session/SKILL.md +1 -1
  22. package/pyproject.toml +40 -8
  23. package/scripts/postinstall-interactive.js +17 -94
  24. package/scripts/postinstall.js +185 -258
  25. package/scripts/preuninstall.js +9 -50
  26. package/src/superlocalmemory/__init__.py +2 -2
  27. package/src/superlocalmemory/attribution/mathematical_dna.py +1 -1
  28. package/src/superlocalmemory/attribution/signer.py +34 -19
  29. package/src/superlocalmemory/attribution/watermark.py +1 -1
  30. package/src/superlocalmemory/cli/_lazy_init.py +7 -7
  31. package/src/superlocalmemory/cli/commands.py +453 -191
  32. package/src/superlocalmemory/cli/context_commands.py +5 -4
  33. package/src/superlocalmemory/cli/daemon.py +282 -187
  34. package/src/superlocalmemory/cli/db_migrate.py +3 -1
  35. package/src/superlocalmemory/cli/diagnostics_cmd.py +28 -0
  36. package/src/superlocalmemory/cli/evidence_cmd.py +103 -0
  37. package/src/superlocalmemory/cli/ingest_cmd.py +7 -3
  38. package/src/superlocalmemory/cli/main.py +128 -31
  39. package/src/superlocalmemory/cli/pending_store.py +54 -38
  40. package/src/superlocalmemory/cli/scale_engine_cmd.py +37 -0
  41. package/src/superlocalmemory/cli/service_installer.py +57 -52
  42. package/src/superlocalmemory/cli/setup_wizard.py +142 -88
  43. package/src/superlocalmemory/cli/version_banner.py +2 -1
  44. package/src/superlocalmemory/code_graph/config.py +3 -1
  45. package/src/superlocalmemory/core/backend_orchestrator.py +81 -21
  46. package/src/superlocalmemory/core/config.py +65 -20
  47. package/src/superlocalmemory/core/consolidation_engine.py +9 -7
  48. package/src/superlocalmemory/core/context_cache.py +56 -8
  49. package/src/superlocalmemory/core/derivation_lineage.py +246 -0
  50. package/src/superlocalmemory/core/embedding_worker.py +32 -20
  51. package/src/superlocalmemory/core/embeddings.py +54 -18
  52. package/src/superlocalmemory/core/engine.py +150 -104
  53. package/src/superlocalmemory/core/engine_ingestion.py +513 -0
  54. package/src/superlocalmemory/core/engine_wiring.py +32 -23
  55. package/src/superlocalmemory/core/evidence_bundle.py +526 -0
  56. package/src/superlocalmemory/core/fact_consolidator.py +5 -11
  57. package/src/superlocalmemory/core/graph_analyzer.py +2 -2
  58. package/src/superlocalmemory/core/health_monitor.py +4 -2
  59. package/src/superlocalmemory/core/ingestion_command.py +636 -0
  60. package/src/superlocalmemory/core/injection.py +69 -18
  61. package/src/superlocalmemory/core/lifecycle_state.py +153 -0
  62. package/src/superlocalmemory/core/maintenance.py +1 -1
  63. package/src/superlocalmemory/core/maintenance_scheduler.py +51 -35
  64. package/src/superlocalmemory/core/mutations.py +143 -0
  65. package/src/superlocalmemory/core/platform_utils.py +7 -4
  66. package/src/superlocalmemory/core/ram_lock.py +16 -5
  67. package/src/superlocalmemory/core/rate_limit.py +1 -1
  68. package/src/superlocalmemory/core/recall_pipeline.py +60 -101
  69. package/src/superlocalmemory/core/recall_worker.py +76 -59
  70. package/src/superlocalmemory/core/registry.py +1 -1
  71. package/src/superlocalmemory/core/scale_engine.py +293 -0
  72. package/src/superlocalmemory/core/score_contract.py +62 -0
  73. package/src/superlocalmemory/core/security_primitives.py +3 -1
  74. package/src/superlocalmemory/core/slm_disabled.py +3 -5
  75. package/src/superlocalmemory/core/store_pipeline.py +172 -40
  76. package/src/superlocalmemory/core/tier_manager.py +32 -20
  77. package/src/superlocalmemory/core/worker_pool.py +13 -4
  78. package/src/superlocalmemory/dynamics/activation_guided_quantization.py +1 -1
  79. package/src/superlocalmemory/dynamics/eap_scheduler.py +10 -3
  80. package/src/superlocalmemory/dynamics/ebbinghaus_langevin_coupling.py +1 -1
  81. package/src/superlocalmemory/dynamics/fisher_langevin_coupling.py +1 -1
  82. package/src/superlocalmemory/encoding/auto_linker.py +1 -1
  83. package/src/superlocalmemory/encoding/cognitive_consolidator.py +7 -16
  84. package/src/superlocalmemory/encoding/consolidator.py +22 -5
  85. package/src/superlocalmemory/encoding/fact_extractor.py +1 -1
  86. package/src/superlocalmemory/encoding/foresight.py +2 -0
  87. package/src/superlocalmemory/encoding/graph_builder.py +1 -1
  88. package/src/superlocalmemory/encoding/temporal_parser.py +2 -0
  89. package/src/superlocalmemory/evaluation/__init__.py +13 -0
  90. package/src/superlocalmemory/evaluation/calibration.py +308 -0
  91. package/src/superlocalmemory/evolution/skill_evolver.py +2 -1
  92. package/src/superlocalmemory/graph/cozo_backend.py +256 -23
  93. package/src/superlocalmemory/hooks/_outcome_common.py +21 -11
  94. package/src/superlocalmemory/hooks/antigravity_adapter.py +10 -31
  95. package/src/superlocalmemory/hooks/auto_invoker.py +25 -27
  96. package/src/superlocalmemory/hooks/auto_recall.py +31 -6
  97. package/src/superlocalmemory/hooks/auto_recall_hook.py +13 -33
  98. package/src/superlocalmemory/hooks/before_web_hook.py +9 -7
  99. package/src/superlocalmemory/hooks/claude_code_hooks.py +123 -35
  100. package/src/superlocalmemory/hooks/codex_assets.py +59 -0
  101. package/src/superlocalmemory/hooks/codex_hooks.py +186 -0
  102. package/src/superlocalmemory/hooks/context_payload.py +1 -1
  103. package/src/superlocalmemory/hooks/copilot_adapter.py +9 -24
  104. package/src/superlocalmemory/hooks/cursor_adapter.py +10 -32
  105. package/src/superlocalmemory/hooks/hook_daemon.py +4 -2
  106. package/src/superlocalmemory/hooks/hook_handlers.py +219 -32
  107. package/src/superlocalmemory/hooks/memory_protocol.py +5 -3
  108. package/src/superlocalmemory/hooks/post_tool_async_hook.py +4 -2
  109. package/src/superlocalmemory/hooks/session_registry.py +15 -8
  110. package/src/superlocalmemory/hooks/stop_outcome_hook.py +10 -6
  111. package/src/superlocalmemory/hooks/topic_shift_hook.py +42 -12
  112. package/src/superlocalmemory/hooks/user_prompt_hook.py +9 -14
  113. package/src/superlocalmemory/hooks/user_prompt_rehash_hook.py +19 -11
  114. package/src/superlocalmemory/infra/auth_middleware.py +38 -5
  115. package/src/superlocalmemory/infra/backup.py +7 -5
  116. package/src/superlocalmemory/infra/cloud_backup.py +18 -8
  117. package/src/superlocalmemory/infra/daemon_identity.py +248 -0
  118. package/src/superlocalmemory/infra/data_root.py +199 -0
  119. package/src/superlocalmemory/infra/event_bus.py +3 -1
  120. package/src/superlocalmemory/infra/local_diagnostics.py +327 -0
  121. package/src/superlocalmemory/infra/process_reaper.py +23 -0
  122. package/src/superlocalmemory/ingestion/adapter_manager.py +27 -9
  123. package/src/superlocalmemory/ingestion/base_adapter.py +25 -31
  124. package/src/superlocalmemory/ingestion/calendar_adapter.py +13 -4
  125. package/src/superlocalmemory/ingestion/credentials.py +14 -7
  126. package/src/superlocalmemory/ingestion/gmail_adapter.py +13 -4
  127. package/src/superlocalmemory/ingestion/transcript_adapter.py +7 -2
  128. package/src/superlocalmemory/learning/consolidation_quantization_worker.py +1 -1
  129. package/src/superlocalmemory/learning/ensemble.py +11 -0
  130. package/src/superlocalmemory/learning/entity_compiler.py +1 -1
  131. package/src/superlocalmemory/learning/feedback.py +1 -1
  132. package/src/superlocalmemory/learning/forgetting_scheduler.py +12 -7
  133. package/src/superlocalmemory/learning/quantization_scheduler.py +1 -1
  134. package/src/superlocalmemory/learning/ranker.py +4 -1
  135. package/src/superlocalmemory/learning/source_quality.py +1 -1
  136. package/src/superlocalmemory/learning/trigram_index.py +3 -2
  137. package/src/superlocalmemory/llm/backbone.py +1 -1
  138. package/src/superlocalmemory/math/ebbinghaus.py +1 -1
  139. package/src/superlocalmemory/math/fisher.py +1 -1
  140. package/src/superlocalmemory/math/fisher_quantized.py +1 -1
  141. package/src/superlocalmemory/math/hopfield.py +1 -1
  142. package/src/superlocalmemory/math/langevin.py +1 -1
  143. package/src/superlocalmemory/math/polar_quant.py +3 -4
  144. package/src/superlocalmemory/math/qjl.py +1 -1
  145. package/src/superlocalmemory/math/sheaf.py +1 -1
  146. package/src/superlocalmemory/math/turbo_quant.py +3 -2
  147. package/src/superlocalmemory/mcp/_daemon_proxy.py +12 -11
  148. package/src/superlocalmemory/mcp/_pool_adapter.py +27 -0
  149. package/src/superlocalmemory/mcp/http_transport.py +53 -0
  150. package/src/superlocalmemory/mcp/server.py +39 -13
  151. package/src/superlocalmemory/mcp/shared.py +69 -3
  152. package/src/superlocalmemory/mcp/tools_active.py +141 -31
  153. package/src/superlocalmemory/mcp/tools_core.py +130 -31
  154. package/src/superlocalmemory/mcp/tools_evolution.py +5 -7
  155. package/src/superlocalmemory/mcp/tools_learning.py +42 -2
  156. package/src/superlocalmemory/mcp/tools_mesh.py +7 -23
  157. package/src/superlocalmemory/mcp/tools_optimize.py +8 -1
  158. package/src/superlocalmemory/mcp/tools_v28.py +23 -2
  159. package/src/superlocalmemory/mcp/tools_v3.py +26 -1
  160. package/src/superlocalmemory/mcp/tools_v33.py +56 -17
  161. package/src/superlocalmemory/mesh/broker.py +2 -0
  162. package/src/superlocalmemory/mesh/remote_sync.py +50 -12
  163. package/src/superlocalmemory/optimize/cache/manager.py +77 -1
  164. package/src/superlocalmemory/optimize/cache/semantic.py +23 -3
  165. package/src/superlocalmemory/optimize/compress/ccr.py +4 -0
  166. package/src/superlocalmemory/optimize/compress/router.py +6 -1
  167. package/src/superlocalmemory/optimize/config/__init__.py +5 -0
  168. package/src/superlocalmemory/optimize/config/store.py +6 -4
  169. package/src/superlocalmemory/optimize/proxy/_helpers.py +15 -5
  170. package/src/superlocalmemory/optimize/proxy/capture.py +3 -2
  171. package/src/superlocalmemory/optimize/proxy/server.py +2 -2
  172. package/src/superlocalmemory/optimize/storage/db.py +12 -12
  173. package/src/superlocalmemory/retrieval/agentic.py +1 -1
  174. package/src/superlocalmemory/retrieval/ann_index.py +1 -1
  175. package/src/superlocalmemory/retrieval/bm25_channel.py +35 -11
  176. package/src/superlocalmemory/retrieval/bridge_discovery.py +73 -8
  177. package/src/superlocalmemory/retrieval/engine.py +169 -79
  178. package/src/superlocalmemory/retrieval/entity_channel.py +289 -67
  179. package/src/superlocalmemory/retrieval/forgetting_filter.py +1 -1
  180. package/src/superlocalmemory/retrieval/fusion.py +1 -1
  181. package/src/superlocalmemory/retrieval/hopfield_channel.py +118 -30
  182. package/src/superlocalmemory/retrieval/profile_channel.py +1 -1
  183. package/src/superlocalmemory/retrieval/quantization_aware_search.py +16 -10
  184. package/src/superlocalmemory/retrieval/reranker.py +56 -20
  185. package/src/superlocalmemory/retrieval/scope_policy.py +85 -0
  186. package/src/superlocalmemory/retrieval/semantic_channel.py +122 -14
  187. package/src/superlocalmemory/retrieval/spreading_activation.py +141 -25
  188. package/src/superlocalmemory/retrieval/strategy.py +1 -1
  189. package/src/superlocalmemory/retrieval/temporal_channel.py +30 -15
  190. package/src/superlocalmemory/retrieval/vector_store.py +1 -1
  191. package/src/superlocalmemory/server/api.py +10 -7
  192. package/src/superlocalmemory/server/bandit_loops.py +4 -2
  193. package/src/superlocalmemory/server/recall_serializer.py +24 -0
  194. package/src/superlocalmemory/server/route_mutations.py +84 -0
  195. package/src/superlocalmemory/server/routes/agents.py +8 -6
  196. package/src/superlocalmemory/server/routes/brain.py +14 -12
  197. package/src/superlocalmemory/server/routes/chat.py +29 -12
  198. package/src/superlocalmemory/server/routes/data_io.py +55 -24
  199. package/src/superlocalmemory/server/routes/helpers.py +8 -63
  200. package/src/superlocalmemory/server/routes/ingest.py +53 -36
  201. package/src/superlocalmemory/server/routes/memories.py +104 -43
  202. package/src/superlocalmemory/server/routes/mesh.py +31 -0
  203. package/src/superlocalmemory/server/routes/profiles.py +26 -4
  204. package/src/superlocalmemory/server/routes/tiers.py +43 -11
  205. package/src/superlocalmemory/server/routes/timeline.py +5 -1
  206. package/src/superlocalmemory/server/routes/v3_api.py +76 -21
  207. package/src/superlocalmemory/server/security_middleware.py +1 -1
  208. package/src/superlocalmemory/server/unified_daemon.py +680 -293
  209. package/src/superlocalmemory/server/write_identity.py +147 -0
  210. package/src/superlocalmemory/storage/access_log.py +4 -3
  211. package/src/superlocalmemory/storage/database.py +118 -25
  212. package/src/superlocalmemory/storage/migration_runner.py +84 -1
  213. package/src/superlocalmemory/storage/migration_v33.py +1 -1
  214. package/src/superlocalmemory/storage/migrations/M002_model_state_history.py +6 -60
  215. package/src/superlocalmemory/storage/migrations/M018_ingestion_operations.py +120 -0
  216. package/src/superlocalmemory/storage/migrations/M019_derivation_lineage.py +54 -0
  217. package/src/superlocalmemory/storage/migrations/M020_model_state_integrity.py +52 -0
  218. package/src/superlocalmemory/storage/migrations/__init__.py +5 -0
  219. package/src/superlocalmemory/storage/models.py +16 -0
  220. package/src/superlocalmemory/storage/quantized_store.py +20 -3
  221. package/src/superlocalmemory/storage/v2_migrator.py +5 -3
  222. package/src/superlocalmemory/ui/favicon.svg +5 -0
  223. package/src/superlocalmemory/ui/index.html +1 -0
  224. package/src/superlocalmemory/ui/js/compliance.js +1 -1
  225. package/src/superlocalmemory/ui/js/core.js +49 -8
  226. package/src/superlocalmemory/ui/js/dashboard.js +23 -2
  227. package/src/superlocalmemory/ui/js/feedback.js +1 -1
  228. package/src/superlocalmemory/ui/js/graph-filters.js +1 -1
  229. package/src/superlocalmemory/ui/js/graph-ui.js +1 -1
  230. package/src/superlocalmemory/ui/js/lifecycle.js +1 -1
  231. package/src/superlocalmemory/ui/js/ng-mesh.js +15 -49
  232. package/src/superlocalmemory/ui/js/settings.js +4 -2
  233. package/src/superlocalmemory/vector/lancedb_backend.py +57 -9
  234. package/bin/slm +0 -59
  235. package/bin/slm.bat +0 -77
  236. package/bin/slm.cmd +0 -5
  237. package/ide/integrations/langchain/README.md +0 -106
  238. package/ide/integrations/langchain/langchain_superlocalmemory/__init__.py +0 -9
  239. package/ide/integrations/langchain/langchain_superlocalmemory/chat_message_history.py +0 -201
  240. package/ide/integrations/langchain/pyproject.toml +0 -38
  241. package/ide/integrations/langchain/tests/__init__.py +0 -3
  242. package/ide/integrations/langchain/tests/test_chat_message_history.py +0 -215
  243. package/ide/integrations/langchain/tests/test_security.py +0 -117
  244. package/ide/integrations/llamaindex/README.md +0 -81
  245. package/ide/integrations/llamaindex/llama_index/storage/chat_store/superlocalmemory/__init__.py +0 -9
  246. package/ide/integrations/llamaindex/llama_index/storage/chat_store/superlocalmemory/base.py +0 -316
  247. package/ide/integrations/llamaindex/pyproject.toml +0 -43
  248. package/ide/integrations/llamaindex/tests/__init__.py +0 -3
  249. package/ide/integrations/llamaindex/tests/test_chat_store.py +0 -294
  250. package/ide/integrations/llamaindex/tests/test_security.py +0 -241
  251. package/scripts/__tests__/build-plugin.test.mjs +0 -613
  252. package/scripts/_savings_math.py +0 -270
  253. package/scripts/build-dmg.sh +0 -417
  254. package/scripts/build-plugin.js +0 -742
  255. package/scripts/build-slm-hook.ps1 +0 -40
  256. package/scripts/build-slm-hook.sh +0 -45
  257. package/scripts/build_entry.py +0 -452
  258. package/scripts/ci/stage5b_gate.sh +0 -50
  259. package/scripts/dogfood_savings.py +0 -490
  260. package/scripts/generate-thumbnails.py +0 -218
  261. package/scripts/install-skills.ps1 +0 -4
  262. package/scripts/install-skills.sh +0 -5
  263. package/scripts/install.ps1 +0 -701
  264. package/scripts/install.sh +0 -1015
  265. package/scripts/postinstall_binary.js +0 -287
  266. package/scripts/prepack.js +0 -33
  267. package/scripts/release_manifest.py +0 -273
  268. package/scripts/slm-hook.spec +0 -56
  269. package/scripts/start-dashboard.ps1 +0 -52
  270. package/scripts/start-dashboard.sh +0 -41
  271. package/scripts/sync-wiki.ps1 +0 -127
  272. package/scripts/sync-wiki.sh +0 -82
  273. package/scripts/test-dmg.sh +0 -161
  274. package/scripts/test-npm-package.ps1 +0 -252
  275. package/scripts/test-npm-package.sh +0 -207
  276. package/scripts/verify-install.ps1 +0 -294
  277. package/scripts/verify-install.sh +0 -266
  278. package/scripts/verify-v27.ps1 +0 -301
  279. package/scripts/verify-v27.sh +0 -233
  280. package/src/superlocalmemory.egg-info/PKG-INFO +0 -516
  281. package/src/superlocalmemory.egg-info/SOURCES.txt +0 -529
  282. package/src/superlocalmemory.egg-info/dependency_links.txt +0 -1
  283. package/src/superlocalmemory.egg-info/entry_points.txt +0 -2
  284. package/src/superlocalmemory.egg-info/requires.txt +0 -71
  285. package/src/superlocalmemory.egg-info/top_level.txt +0 -1
package/CHANGELOG.md CHANGED
@@ -5,6 +5,67 @@ 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.7.1] - 2026-07-16 — Installer-parity hotfix
9
+
10
+ ### Fixed
11
+
12
+ - Included the full `plugin-src/` build inputs in the npm artifact so the npm-owned Python runtime can build with the same Codex skill data files as the PyPI artifact.
13
+ - Added a release gate that fails when any Python `data-files` build source is absent from `npm pack` output.
14
+ - Corrected first-run configuration metadata to use the installed runtime version instead of a stale historical version.
15
+ - Kept background reranker warmup informational on first run; fallback retrieval remains explicit and `slm doctor` remains the diagnostic path.
16
+
17
+ ## [3.7.0] - 2026-07-16 — Release package
18
+
19
+ V3.7 packages the audit-hardening stream: fail-closed release promotion,
20
+ exact artifact testing, evidence and checksums, canonical version/license
21
+ guards, daemon identity and mutation authorization, and retrieval/ingestion
22
+ integrity fixes. Publication remains gated on the final evidence bundle and
23
+ registry verification.
24
+
25
+ ## [3.6.23] - 2026-07-12 — Cross-platform data-root and maintenance hardening
26
+
27
+ ### Fixed
28
+
29
+ - Resolved the server data directory from the supported environment variables instead of a hard-coded path.
30
+ - Made Langevin maintenance backfill tolerate timezone-naive `created_at` values.
31
+ - Applied the coordinated cross-platform release patch and reconciled package metadata at 3.6.23.
32
+
33
+ ## [3.6.22] - 2026-06-30 — Provider response hardening
34
+
35
+ ### Fixed
36
+
37
+ - Treated an empty HTTP 200 provider body as a controlled provider error instead of leaking a `JSONDecodeError`.
38
+ - Completed the remaining dashboard audit fixes included in the 3.6.22 release tag.
39
+
40
+ ## [3.6.21] - 2026-06-30 — Dashboard audit and settings preservation
41
+
42
+ ### Fixed
43
+
44
+ - Preserved unrelated user settings when dashboard and MCP configuration paths write updates.
45
+ - Completed the dashboard UI audit and browser-side mesh authentication repair for issue #60.
46
+
47
+ ## [3.6.20] - 2026-06-26 — Remote mesh authentication repair
48
+
49
+ ### Fixed
50
+
51
+ - Accepted the supported bearer-token authentication path in the mesh broker and removed the superseded validation path.
52
+
53
+ ## [3.6.19] - 2026-06-24 — Plugin hook source correction
54
+
55
+ ### Fixed
56
+
57
+ - Moved the session mandate hook into `plugin-src`, the actual build source, so npm prepack no longer overwrites the shipped hook with stale content.
58
+
59
+ ## [3.6.18] - 2026-06-24 — Session mandate and atomic installer state
60
+
61
+ ### Added
62
+
63
+ - Added the `session_init` mandate, plugin auto-install support, migration M017, and garbage-collection-safe tests.
64
+
65
+ ### Fixed
66
+
67
+ - Made `settings.json` replacement atomic and hook installation idempotent across repeated installer runs.
68
+
8
69
  ## [3.6.17] - 2026-06-21 — Community PR round + dashboard-feedback fix + SQLite tuning
9
70
 
10
71
  Eight community pull requests merged after line-by-line review, plus fixes for the open issues. Every change was validated against the full test suite under the real 3.12 runtime; default single-machine behavior is unchanged.
package/README.md CHANGED
@@ -2,12 +2,12 @@
2
2
  <img src="https://superlocalmemory.com/assets/logo-mark.png" alt="SuperLocalMemory" width="200"/>
3
3
  </p>
4
4
 
5
- <h1 align="center">SuperLocalMemory V3.6.23</h1>
5
+ <h1 align="center">SuperLocalMemory V3.7.1</h1>
6
6
  <p align="center"><strong>Cache. Compress. Remember. Three surfaces — proxy, MCP tools, or skill. Every setup covered.</strong><br/>
7
- <em>To the best of our knowledge, the only zero-cloud agent memory that beats Mem0's zero-LLM score on LoCoMo. Mode A: 74.8% vs Mem0 64.2% — no GPU, no API key, on CPU.</em></p>
8
- <p align="center"><code>v3.6.23</code> — <strong>Plugin-native. Profile-aware. Distributed-ready.</strong><br/>
7
+ <em>Local-first agent memory with explicit operating modes, auditable retrieval, and optional Optimize tools.</em></p>
8
+ <p align="center"><code>v3.7.1</code> — <strong>Installer-parity hotfix; release witnesses required before outreach.</strong><br/>
9
9
  Proxy: <code>slm wrap claude</code> &nbsp;·&nbsp; MCP: add <code>slm_compress</code> to your config &nbsp;·&nbsp; Skill: zero-config</p>
10
- <p align="center"><strong>3 published research papers</strong> (arXiv preprints + Zenodo-archived) · <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>
10
+ <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>
11
11
 
12
12
  <p align="center">
13
13
  <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>
@@ -15,7 +15,7 @@ Proxy: <code>slm wrap claude</code> &nbsp;·&nbsp; MCP: add <code>slm_compress</
15
15
  <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>
16
16
  <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>
17
17
  <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>
18
- <a href="#eu-ai-act-compliance"><img src="https://img.shields.io/badge/EU_AI_Act-Design_Compliant-brightgreen?style=for-the-badge" alt="EU AI Act Design Compliant"/></a>
18
+ <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>
19
19
  <a href="https://superlocalmemory.com"><img src="https://img.shields.io/badge/Web-superlocalmemory.com-ff6b35?style=for-the-badge" alt="Website"/></a>
20
20
  <a href="#dual-interface-mcp--cli"><img src="https://img.shields.io/badge/MCP-Native-blue?style=for-the-badge" alt="MCP Native"/></a>
21
21
  <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>
@@ -26,53 +26,179 @@ Proxy: <code>slm wrap claude</code> &nbsp;·&nbsp; MCP: add <code>slm_compress</
26
26
 
27
27
  ## Why SuperLocalMemory?
28
28
 
29
- Every hosted AI memory platform Mem0 Cloud, Zep Cloud, Letta Cloud, EverMemOS Cloud sends your data to cloud LLMs by default. Self-hosted variants exist but require Docker, a separate graph DB, or Ollama config, and most default to OpenAI until you flip env vars. After **August 2, 2026**, any of those cloud paths becomes a compliance question under the EU AI Act.
30
-
31
- SuperLocalMemory V3 uses **mathematics instead of cloud compute** differential geometry, algebraic topology, and stochastic analysis replace the work other systems need LLMs to do. Local-first out of the box. No Docker. No graph DB. No API keys. CPU-only.
32
-
33
- **Benchmark results** (evaluated on [LoCoMo](https://arxiv.org/abs/2402.09714), the standard long-conversation memory benchmark, published April 2026):
34
-
35
- | System | Score | Config | Cloud LLM required? | Open Source | Source |
36
- |:-------|:-----:|:-------|:-------------------:|:-----------:|:-------|
37
- | EverMemOS | 93.05% | Cloud (proprietary) | Yes | Core only | [evermind.ai](https://evermind.ai/) (Feb 2026) |
38
- | Hindsight (LoComo10) | 92.0% | Cloud | Yes | No | [benchmarks.hindsight.vectorize.io](https://benchmarks.hindsight.vectorize.io) (Apr 2026) |
39
- | Mem0 (token-efficient) | 91.6% | Hybrid (Cohere/OpenAI) | Yes | Partial | [mem0.ai blog](https://mem0.ai/blog/mem0-the-token-efficient-memory-algorithm) (Apr 16 2026) |
40
- | **SLM V3 Mode C** | **87.7%** | Local + optional LLM | Optional (Ollama OK) | **Yes (AGPL-3.0)** | In-house, [arXiv:2603.14588](https://arxiv.org/abs/2603.14588) |
41
- | Zep v3 Cloud | 85.2% | Cloud | Yes | Community deprecated | [getzep.com](https://www.getzep.com/) |
42
- | **SLM V3 Mode A** | **74.8%** | **Local, CPU-only, zero-LLM** | **No** | **Yes (AGPL-3.0)** | In-house, [arXiv:2603.14588](https://arxiv.org/abs/2603.14588) |
43
- | Mem0 (zero-retrieval-LLM) | 64.2% | Local baseline | No | Partial | Mem0 paper, zero-LLM row |
44
-
45
- > **How to read this table.** Scores from different papers use different LoCoMo splits, judge models, and prompt variants. We do NOT claim these numbers are apples-to-apples across rows. Rows marked "In-house" were run by us; cited rows link to the vendor's public source and date. The only apples-to-apples comparison is **Mode A 74.8% vs Mem0 zero-retrieval-LLM 64.2%** (+10.6pp) — both are zero-LLM configurations. Mem0's 91.6% and EverMemOS's 93.05% use cloud LLMs; Mode C uses a local LLM (Ollama).
29
+ 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.
30
+
31
+ SuperLocalMemory V3 combines conventional dense and lexical retrieval with graph, temporal, associative, and Fisher-informed scoring. The default local runtime does not require Docker, a separately operated graph database, or an API key.
32
+
33
+ **Published benchmark evidence carried into V3.7:** the architecture evaluated
34
+ in the V3 paper remains the foundation of this release. The figures below keep
35
+ their original LoCoMo protocol, answer-construction, model, and sample scope;
36
+ they are not a claim of a newly rerun 3.7 package benchmark.
37
+
38
+ ### How SLM fits beside other memory systems
39
+
40
+ Different products solve different boundaries. SLM is for developers who want
41
+ one local-first operating control plane—not only an SDK, managed context API,
42
+ or agent runtime. It combines dated evidence, graph-aware retrieval, cache and
43
+ compression controls, trusted-peer Mesh, and MCP/CLI/hooks/dashboard/IDE
44
+ surfaces in one install.
45
+
46
+ | If your primary need is… | Product boundary to evaluate |
47
+ |---|---|
48
+ | Local-first agent memory plus operations, optimization, and IDE-agent surfaces | **SuperLocalMemory** — Mode A local core; Modes B/C by explicit choice. |
49
+ | A memory SDK, self-hosted server, or managed platform | [Mem0](https://github.com/mem0ai/mem0) |
50
+ | A temporal context-graph service or graph engine | [Zep / Graphiti](https://github.com/getzep/graphiti) |
51
+ | A stateful agent runtime with memory blocks and archival memory | [Letta](https://docs.letta.com/guides/core-concepts/memory/context-hierarchy) |
52
+ | LangGraph-native memory primitives and managers | [LangMem](https://github.com/langchain-ai/langmem) |
53
+ | A context API/app with profiles, connectors, and RAG | [Supermemory](https://github.com/supermemoryai/supermemory) |
54
+ | User profiles and event-timeline memory | [Memobase](https://github.com/memodb-io/memobase) |
55
+
56
+ See the [source-linked market comparison](https://superlocalmemory.com/comparison)
57
+ for current primary sources and protocol-scoped benchmark evidence. A LoCoMo
58
+ percentage is comparable only when the dataset scope, answer model, judge,
59
+ retrieval stack, and release artifact match.
60
+
61
+ ### The V3.7 capability architecture
62
+
63
+ SuperLocalMemory is one local control plane for persistent agent context. It is
64
+ not just a vector store: the same runtime can accept evidence, build and govern
65
+ memory, retrieve bounded evidence for an agent, and expose cache, compression,
66
+ and peer-coordination controls through a CLI, MCP, dashboard, and supported
67
+ IDE integrations.
68
+
69
+ ![SuperLocalMemory V3.7 capability architecture: modes, seven operating layers, Scale Engine, Mesh, delivery surfaces, and opt-in adapters](docs/assets/slm-v37-capability-architecture.png)
70
+
71
+ *Architecture boundary: SQLite + sqlite-vec remain canonical; CozoDB and
72
+ LanceDB are parity-gated projections; Mesh coordinates trusted peers rather
73
+ than replicating a distributed memory database; connectors are opt-in.*
74
+
75
+ **Memory boundaries:** profiles isolate workspaces by default. Every memory is
76
+ `personal`, `shared` with named profile readers, or `global`; cross-profile
77
+ recall is default-deny and must be explicitly enabled. This scoped sharing is
78
+ local authorization, not SLM Mesh synchronization. See
79
+ [shared-memory.md](docs/shared-memory.md).
80
+
81
+ ```text
82
+ IDEs, agents, scripts, connectors, and humans
83
+ │ CLI · MCP (HTTP/stdio) · hooks · dashboard
84
+
85
+ ┌────────────────────────── SLM CONTROL PLANE ──────────────────────────┐
86
+ │ 1. Admission identity, scope, idempotency, raw evidence │
87
+ │ 2. Queryable core SQLite facts + FTS durable receipt │
88
+ │ 3. Enrichment facts, entities, scenes, time, provenance, graph │
89
+ │ 4. Memory brain feedback, patterns, rewards, consolidation │
90
+ │ 5. Retrieval semantic · BM25 · temporal · Hopfield · activation │
91
+ │ 6. Context safety policy, trust, provenance, redaction, budgets │
92
+ │ 7. Operations lifecycle, audit, cache/compress, mesh, backups │
93
+ └───────────────────────────────────────────────────────────────────────┘
94
+
95
+
96
+ SQLite + sqlite-vec canonical store ──► optional graph/vector projections
97
+ ```
46
98
 
47
- **What Mode A is:** CPU-only, SQLite-only, zero-LLM retrieval on published LoCoMo questions. To the best of our knowledge it is the only publicly-released local-first memory that clears Mem0's zero-LLM baseline on this benchmark. If another fully-local system hits similar numbers, please open an issue so we can update this table.
99
+ The seven stages are an execution model, not a promise that every optional
100
+ enricher or retrieval channel runs for every request. The receipt, trace, and
101
+ health surfaces expose the stages actually completed by the installed runtime.
48
102
 
49
- Mathematical layers contribute **+12.7 percentage points** average across 6 conversations (n=832 questions), with up to **+19.9pp on the most challenging dialogues**.
103
+ | Capability | What ships today | Operator boundary |
104
+ |---|---|---|
105
+ | **Memory types and lifecycle** | Atomic facts, episodic scenes, temporal events, canonical entities, profiles/scopes, consolidation, forgetting and retention controls | Lifecycle policies and retention decisions remain operator-configured. |
106
+ | **Memory boundaries** | Profile-isolated workspaces plus `personal`, `shared`, and `global` memory scopes | Personal is the default; shared/global recall requires explicit scope policy or per-call opt-in. |
107
+ | **Ingestion** | Durable raw-to-complete operation state, fact extraction, entity resolution, graph/temporal/provenance derivations, and replay-safe identity | `--sync` waits for declared stages; dependencies and mode determine which enrichers are available. |
108
+ | **Retrieval and recall** | Semantic, lexical, temporal, Hopfield and spreading-activation candidate channels; RRF fusion, optional reranking and graph score enhancement | Healthy channels participate; response provenance states the evidence used. |
109
+ | **Brain and learning** | Behavioral patterns, feedback/outcome records, rewards, consolidation, LightGBM-related ranking components, soft prompts, and guarded skill-evolution workflows | Learning is evidence-driven; it does not claim autonomous correctness or guaranteed improvement. |
110
+ | **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. |
111
+ | **Scale Engine** | SQLite + sqlite-vec are canonical. CozoDB graph and LanceDB vector projections are packaged and managed with prepare → verify → promote → rollback | Promotion is explicit and parity-gated; do not advertise an unverified projection as the source of truth. |
112
+ | **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. |
113
+ | **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. |
114
+ | **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. |
115
+ | **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. |
116
+
117
+ ### What the dashboard exposes
118
+
119
+ `slm dashboard` opens a local operational view of the same control plane:
120
+
121
+ | Workspace | Use it to inspect or control |
122
+ |---|---|
123
+ | Dashboard and Health | daemon identity, storage/runtime health, diagnostics and recent activity |
124
+ | Brain | consolidation, behavioral patterns, outcomes/rewards, learning state and soft prompts |
125
+ | Knowledge Graph and Memories | graph neighborhoods, entities, scenes, temporal evidence, memory inspection and mutation |
126
+ | Operations | ingestion-operation state, traces, maintenance and lifecycle work |
127
+ | Entity Explorer and Skill Evolution | compiled entity summaries/timelines; opt-in skill lineage, budgets and verification outcomes |
128
+ | Mesh Peers | configured peers, inbox/outbox, pending coordination and locks |
129
+ | Settings and Optimize | mode/provider/configuration; cache, compression and savings telemetry |
130
+
131
+ Dashboard visibility is not a substitute for runtime proof: use `slm doctor`,
132
+ `slm health`, `slm trace`, and the relevant CLI/MCP operation to validate a
133
+ deployment.
134
+
135
+ ### Watch the product walkthrough
136
+
137
+ [![Watch the SuperLocalMemory demo](https://img.youtube.com/vi/PMWW_ypsL60/hqdefault.jpg)](https://www.youtube.com/watch?v=PMWW_ypsL60)
138
+
139
+ **[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.
140
+
141
+ ### Published LoCoMo evidence carried into V3.7
142
+
143
+ The V3 paper evaluates the architecture carried into V3.7. Every figure below
144
+ is protocol-scoped, so a reader can distinguish local retrieval, answer
145
+ construction, and cloud-assisted evaluation rather than treating unlike runs as
146
+ one score.
147
+
148
+ | Published configuration | LoCoMo aggregate | Protocol scope | What the result establishes |
149
+ |---|---:|---|---|
150
+ | **Mode A Raw** | **60.4%** | 10 conversations; 1,276 scored questions; local embeddings, local retrieval, and zero-LLM answer construction | End-to-end local answer construction under the published V3 protocol. |
151
+ | **Mode A Retrieval** | **74.8%** | 10 conversations; 1,276 scored questions; local retrieval, then GPT-4.1-mini answer synthesis | Retrieval evidence: local retrieval contributes the evidence, while the disclosed external model constructs the final answer. |
152
+ | **Mode C** | **87.7%** | Conv-30 only; 81 scored questions; text-embedding-3-large plus GPT-4.1-mini answer generation and judge | Cloud-assisted configuration on one fully disclosed conversation; not a full-dataset result. |
153
+
154
+ Published category results: Mode A Retrieval scored **72.0%** single-hop,
155
+ **70.3%** multi-hop, **80.0%** temporal, and **85.0%** open-domain. Mode C
156
+ scored **64.0%** single-hop, **100.0%** multi-hop, and **86.0%** open-domain
157
+ on its 81-question Conv-30 scope (no temporal category was reported for that
158
+ run). Across six LoCoMo conversations, the paper reports **71.7%** with the
159
+ information-geometric layers versus **58.9%** without them: **+12.7pp**.
160
+
161
+ See [arXiv:2603.14588](https://arxiv.org/abs/2603.14588) and the [official
162
+ LoCoMo paper](https://arxiv.org/abs/2402.17753) for the full protocol,
163
+ ablation table, and limitations. These are published V3 architecture results
164
+ carried into V3.7—not a substitute for a newly rerun release-artifact
165
+ benchmark.
50
166
 
51
167
  ---
52
168
 
53
169
  ## Quick Start
54
170
 
55
171
  ```bash
56
- # npm (recommended)
172
+ # Primary path 1 — npm global CLI (Node 18+)
173
+ # Creates a package-owned virtual environment. It does not modify system Python.
57
174
  npm install -g superlocalmemory
58
175
  slm setup # Choose mode (A/B/C)
59
176
  slm doctor # Verify everything is working
60
177
  ```
61
178
 
62
179
  ```bash
63
- # pip
64
- pip install superlocalmemory
180
+ # Primary path 2 — Python CLI + SDK in an activated virtual environment
181
+ python3 -m venv .venv
182
+ source .venv/bin/activate # Windows PowerShell: .venv\Scripts\Activate.ps1
183
+ python -m pip install superlocalmemory
65
184
  slm setup
66
185
  slm doctor
67
186
  ```
68
187
 
69
188
  ```bash
70
189
  # First use
71
- slm remember "Alice works at Google as a Staff Engineer"
190
+ slm remember "Alice works at Google as a Staff Engineer" --json
72
191
  slm recall "What does Alice do?"
73
192
  slm status
74
193
  ```
75
194
 
195
+ The default daemon write commits raw evidence plus a relational/FTS projection
196
+ and returns a durable receipt in `queryable` state. Enrichment then advances the
197
+ same operation through `enriching` to `complete`, or records a retryable
198
+ `failed` state. Use `slm remember "..." --sync` when the caller must wait for
199
+ all declared derivation and projector stages. JSON output includes the opaque
200
+ `operation_id`, current `materialization_state`, and fact IDs.
201
+
76
202
  ```bash
77
203
  # Wrap your agent — starts proxy + sets environment + launches agent
78
204
  slm wrap claude
@@ -80,7 +206,12 @@ slm wrap claude
80
206
  # See savings: slm optimize savings --since 1
81
207
  ```
82
208
 
83
- **Upgrading:** `pip install -U superlocalmemory && slm restart && slm doctor` — migration is automatic, no data loss.
209
+ **Upgrading:** use the owner of the installation: `npm update -g superlocalmemory`
210
+ or, while the Python virtual environment is active,
211
+ `python -m pip install --upgrade superlocalmemory`. Then run
212
+ `slm restart && slm doctor`. Repository-clone users use the matching `upgrade`
213
+ action in `scripts/install.sh` or `scripts/install.ps1`. Installers never move
214
+ or delete memory data.
84
215
 
85
216
  ---
86
217
 
@@ -90,21 +221,53 @@ slm wrap claude
90
221
 
91
222
  <a id="dual-interface-mcp--cli"></a>
92
223
 
93
- Five-channel hybrid retrieval: Semantic (Fisher-Rao geodesic distance) + BM25 + Entity Graph + Temporal + Hopfield (associative/partial-query completion). RRF fusion, cross-encoder reranking, adaptive LightGBM ranking. All data stays local — SQLite + optional LanceDB/CozoDB.
94
-
95
- Three mathematical contributions replace cloud LLM dependency:
96
-
97
- 1. **Fisher-Rao Retrieval Metric** — similarity scoring from the Fisher information structure of diagonal Gaussian families. To the best of our knowledge, the first public application of information geometry to agent memory retrieval.
224
+ Current recall has five candidate producers—dense semantic, BM25 lexical,
225
+ temporal, Hopfield associative, and spreading activation—followed by fusion,
226
+ optional reranking, and entity-graph score enhancement. The entity graph does
227
+ not create an independent candidate in the current implementation. Core memory
228
+ is SQLite-backed. SQLite and sqlite-vec remain the canonical source of truth.
229
+ The packaged Scale Engine can maintain CozoDB graph and LanceDB vector
230
+ projections, and it remains outside active retrieval paths until
231
+ `slm db scale prepare`, `verify`, and `promote` prove parity against the
232
+ canonical store. This makes the capability available on a fresh installation
233
+ without silently migrating an existing user's data.
234
+
235
+ Canonical ingestion is a durable state machine: `raw → queryable → enriching →
236
+ complete`, with `failed` retaining raw evidence, error details, attempt count,
237
+ and retry timing. SQLite relational facts and FTS are the queryable checkpoint;
238
+ optional ANN/vector projectors are verified before `complete` is granted.
239
+
240
+ Recalled text is treated as untrusted evidence. Hooks, MCP `session_init`, CLI
241
+ session context, and chat use one bounded renderer that redacts recognized
242
+ secrets, neutralizes forged boundary markers, and attaches provenance. Trusted
243
+ IDE instruction files contain only the static SLM protocol; fresh memory is
244
+ retrieved at runtime rather than copied into those files.
245
+
246
+ **Score Contract v2:** `relevance_score` is query-relative relevance;
247
+ `ranking_score` is internal ranking utility; `memory_confidence` belongs to the
248
+ stored assertion; and `trust_score` is an evidence-policy signal. Legacy
249
+ `score` and `confidence` remain aliases for one compatibility release. V3.7 is
250
+ explicitly uncalibrated: `calibration_status` is `uncalibrated` and
251
+ `answer_confidence` is `null`. See
252
+ [the retrieval score contract](docs/retrieval-score-contract.md).
253
+
254
+ The retrieval/lifecycle implementation includes three mathematical layers that
255
+ can run without a cloud LLM:
256
+
257
+ 1. **Fisher-informed scoring** — dense candidate generation uses cosine similarity; Fisher-derived terms can modify later scoring when their state is available.
98
258
  2. **Sheaf Cohomology for Consistency** — algebraic topology detects contradictions via coboundary norms on the knowledge graph.
99
259
  3. **Riemannian Langevin Lifecycle** — memory positions evolve on the Poincare ball; neglected memories self-archive, no hardcoded thresholds.
100
260
 
101
- Auto-capture hooks (`slm hooks install`) fire only on real signals — topic pivot, web call, file edit — never on a timer. Fail-open, <10ms p99 hot path.
261
+ Auto-capture hooks are installed explicitly with `slm hooks install` (Claude
262
+ Code) or `slm hooks install --agent codex` (Codex). Hook latency and capture
263
+ quality must be evaluated for the target client and workload; V3.7 publishes
264
+ no universal p99 claim.
102
265
 
103
266
  **Multi-scope memory (v3.6.15, opt-in):** keep memories `personal` (default), `shared` with named profiles, or `global` across the machine. Off by default — recall only ever returns your own facts until you turn sharing on, per call or in config. See **[docs/shared-memory.md](docs/shared-memory.md)**.
104
267
 
105
268
  <a id="multilingual-embedding-support"></a>
106
269
 
107
- **Multilingual:** plug in any OpenAI-compatible embedding endpoint Ollama, vLLM, LiteLLM, `bge-m3`, `multilingual-e5`, `Qwen3-Embedding`. The math layer is language-agnostic; 30+ languages work at full retrieval quality. No cloud dependency, no code changes.
270
+ **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.
108
271
 
109
272
  ### Cache + Compress
110
273
 
@@ -126,9 +289,12 @@ One engine, three ways in — choose the surface that fits your setup:
126
289
  - Zero configuration → **Skill (C)**: install once, auto-compresses CLAUDE.md and large outputs
127
290
  - Agent-controlled caching of repeated file reads → **MCP tools (B)**
128
291
 
129
- **Cache:** exact-match SQLite lookup (SHA-256, zero false hits) + vCache-gated semantic (opt-in). **100% cost saved on a hit** (input + output tokens).
292
+ **Cache:** exact-match SQLite lookup is the stable cache path. Semantic cache
293
+ controls are experimental until release-linked precision, invalidation, and
294
+ tenant-isolation evidence exists. A cache hit can avoid a provider request, but
295
+ actual cost and latency savings depend on the intercepted surface and provider.
130
296
 
131
- **Compress:** safe mode = lossless normalization (JSON/code/tool outputs, 60-95% fewer tokens); aggressive mode = LLMLingua-2 prose only (opt-in). CCR stores originals for byte-exact reversal. Anthropic 90% / OpenAI 50% prefix-cache discount alignment included. [CITATION-NEEDED-ONLINE: live provider prefix-cache discount rates]
297
+ **Compress:** safe mode uses conservative normalization and preserves JSON and code; measured reduction varies by content and can be zero. Aggressive prose compression is opt-in and lossy. CCR can retain an original for later byte-exact retrieval when reversible storage is enabled.
132
298
 
133
299
  **Savings dashboard:** `slm optimize savings --since 7` — live USD/INR/tokens saved. Hot-reload config, fail-open.
134
300
 
@@ -136,7 +302,7 @@ One engine, three ways in — choose the surface that fits your setup:
136
302
 
137
303
  <a id="multi-machine-mesh-coordination"></a>
138
304
 
139
- Run SLM on multiple machines and have agents coordinate as one team — no external broker, no Docker. HTTP-based sync every 30s, mDNS discovery (`SLM_MESH_DISCOVERY=on`), graceful offline queue.
305
+ 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.
140
306
 
141
307
  ```bash
142
308
  # Machine A (broker)
@@ -160,8 +326,10 @@ Full docs: [docs/multi-machine.md](docs/multi-machine.md) · [docs/distributed-d
160
326
 
161
327
  | Path | Command | When |
162
328
  |:-----|:--------|:-----|
163
- | **npm** (recommended) | `npm install -g superlocalmemory` | Node 14+, installs Python deps automatically |
164
- | **pip** | `pip install superlocalmemory` | Python 3.11+, direct install |
329
+ | **npm global CLI** (primary) | `npm install -g superlocalmemory` | Node 18+; package-owned virtual environment; system Python is not modified; run `slm setup` explicitly afterward |
330
+ | **Python CLI + SDK** (primary) | Activate a Python virtual environment, then `python -m pip install superlocalmemory` | Python 3.11+; the `slm` CLI and importable SDK stay inside that environment |
331
+ | **Repository clone — macOS/Linux** | `./scripts/install.sh install` | Research/contributor path; delegates to an existing uv or pipx installation |
332
+ | **Repository clone — Windows** | `.\scripts\install.ps1 -Action Install` | Research/contributor path; delegates to an existing uv or pipx installation |
165
333
  | **Claude Code Plugin** (WP-06) | `/plugin marketplace add qualixar/superlocalmemory` then `/plugin install superlocalmemory@qualixar` | Self-bootstraps venv, isolated SLM_DATA_DIR, additive — 14-tool core. Ships the skills/agents/hooks/commands |
166
334
  | **Portable / IDE connect** (WP-08) | `slm connect <ide> [--here]` | Wire any IDE without reinstalling; `slm connect claude-code` → plugin pointer |
167
335
 
@@ -199,19 +367,27 @@ Control tool surface via `SLM_MCP_PROFILE`:
199
367
 
200
368
  | Profile | Tools | Use case |
201
369
  |:--------|:-----:|:---------|
202
- | `core14` (default) | 14 | Memory core `remember`, `recall`, `forget`, `session_init`, + mesh |
203
- | `mesh8` | 8 | Mesh-only multi-machine coordination |
204
- | `full38` | 38 | Core + optimize + evolution + trust |
205
- | `power50` | 50 | Full38 + admin + ingestion + compliance |
206
- | `whole81` | 81 | Every tool (`SLM_MCP_ALL_TOOLS=1`) |
370
+ | `core` | 14 | Memory, session, and optimize core |
371
+ | `code` | 20 | Core + code-graph tools |
372
+ | `mesh` | 8 | Mesh-only multi-machine coordination |
373
+ | `full` | 38 | Memory + optimize + evolution + mesh |
374
+ | `power` | 50 | Full + administration, lifecycle, and diagnostics |
375
+ | `whole` | all registered | Every registered MCP tool |
207
376
 
208
377
  **Precedence:** `ALL` > `TOOLS` > `PROFILE` > `default`
209
378
 
210
379
  ```bash
211
- export SLM_MCP_PROFILE=full38 # or core14 / mesh8 / power50 / whole81
380
+ export SLM_MCP_PROFILE=full # or core / code / mesh / power / whole
212
381
  slm mcp
213
382
  ```
214
383
 
384
+ For a predictable small surface, set `core` explicitly. Leaving the variable
385
+ unset retains the compatibility default, whose mesh tools follow the local
386
+ mesh setting. The former count-suffixed names (`core14`, `code20`, `mesh8`,
387
+ `full38`, `power50`, `whole81`) remain temporary aliases and emit a migration
388
+ warning. Unknown names stop startup instead of silently selecting another tool
389
+ set.
390
+
215
391
  Per-IDE configs available for Claude Code, Cursor, Windsurf, VS Code Copilot, Continue, Gemini CLI, JetBrains, Zed, and more (15 configs in `ide/configs/`). See [docs/ide-setup.md](docs/ide-setup.md).
216
392
 
217
393
  ---
@@ -237,24 +413,50 @@ then install:
237
413
  - Additive — does not replace an existing SLM install
238
414
  - `slm connect claude-code` detects an existing plugin install and links them
239
415
 
240
- > **Plugin vs `pip`/`npm`:** `pip install superlocalmemory` / `npm i -g superlocalmemory`
416
+ > **Plugin vs Python/npm:** `python -m pip install superlocalmemory` inside an
417
+ > activated virtual environment, or `npm i -g superlocalmemory`,
241
418
  > give you the `slm` CLI + the MCP server (the *tools*). The **skills/agents/hooks/
242
419
  > commands** come only through the plugin above. Use the plugin for Claude Code; use
243
420
  > pip/npm for the CLI or other IDEs.
244
421
 
245
422
  To update later: `/plugin marketplace update qualixar` then `/plugin install superlocalmemory@qualixar`.
246
423
 
424
+ ## Codex add-on
425
+
426
+ For Codex, install the SLM-owned skills, two focused subagents, and four
427
+ lifecycle hooks explicitly:
428
+
429
+ ```bash
430
+ slm codex install
431
+ ```
432
+
433
+ This adds only SLM-owned files under `~/.agents/skills`, `~/.codex/agents`, and
434
+ `~/.codex/hooks.json`; it does not replace another agent's hooks or rewrite
435
+ `~/.codex/config.toml`. Codex requires review and trust for new command hooks:
436
+ open `/hooks` after installation. MCP wiring remains a separate explicit step:
437
+
438
+ ```bash
439
+ slm connect codex
440
+ ```
441
+
442
+ `slm connect codex` semantically merges the `superlocalmemory` MCP server into
443
+ `~/.codex/config.toml`, preserving unrelated configuration keys and writing
444
+ atomically. TOML serializers can normalize whitespace and comments, so it is
445
+ not a byte-preserving operation; use it only when you want the MCP server
446
+ configured. Check the result with `slm codex status`; undo SLM-owned add-ons
447
+ with `slm codex remove`.
448
+
247
449
  ---
248
450
 
249
- ## Modes + EU AI Act
451
+ ## Privacy controls and operating modes
250
452
 
251
- <a id="eu-ai-act-compliance"></a>
453
+ <a id="privacy-controls-and-operating-modes"></a>
252
454
 
253
- | Mode | What | Cloud? | EU AI Act | Best For |
254
- |:----:|:-----|:------:|:---------:|:---------|
255
- | **A** | Local Guardian | **None** | **Compliant** | Privacy-first, air-gapped, enterprise |
256
- | **B** | Smart Local | Local only (Ollama) | Compliant | Better answers, data stays local |
257
- | **C** | Full Power | Cloud LLM | Partial | Maximum accuracy, research |
455
+ | Mode | What | Core memory path | Optional network behavior |
456
+ |:----:|:-----|:-----------------|:--------------------------|
457
+ | **A** | Local Guardian | Local processing | Model/dependency downloads, connectors, backup, and other enabled integrations may use the network |
458
+ | **B** | Smart Local | Local Ollama enrichment | Same optional integrations as Mode A |
459
+ | **C** | Provider-assisted | Local storage with provider calls | Query or enrichment content is sent to the configured provider |
258
460
 
259
461
  ```bash
260
462
  slm mode a # Zero-cloud (default)
@@ -262,20 +464,11 @@ slm mode b # Local Ollama
262
464
  slm mode c # Cloud LLM
263
465
  ```
264
466
 
265
- **Mode A** is, to the best of our knowledge, the only publicly-released agent memory that runs with zero cloud calls while clearing Mem0's published LoCoMo score. All data stays on your device. No API keys. No GPU. Runs on 2 vCPUs + 4GB RAM.
266
-
267
- The EU AI Act (Regulation 2024/1689) takes full effect **August 2, 2026**.
467
+ Mode A can run core memory operations without sending memory content to a cloud model provider. This does not disable optional connectors, cloud backup, proxy providers, dependency acquisition, or model downloads; review configuration and network policy for the deployment.
268
468
 
269
- | Requirement | Mode A | Mode B | Mode C |
270
- |:------------|:------:|:------:|:------:|
271
- | Data sovereignty (Art. 10) | **Pass** | **Pass** | Requires DPA |
272
- | Right to erasure (GDPR Art. 17) | **Pass** | **Pass** | **Pass** |
273
- | Transparency (Art. 13) | **Pass** | **Pass** | **Pass** |
274
- | No network calls during memory ops | **Yes** | **Yes** | No |
469
+ SuperLocalMemory provides local storage, export/erasure commands, provenance, policy, and audit features that can support a compliance program. The software is not a legal certification, and compliance depends on the use case, operator, configuration, and surrounding systems.
275
470
 
276
- To the best of our knowledge, no existing agent memory system addresses EU AI Act compliance by architectural design. Modes A and B pass all checks no personal data leaves the device during any memory operation.
277
-
278
- Built-in compliance tools: GDPR Article 15/17 export + complete erasure, tamper-proof SHA-256 audit chain, data provenance tracking, ABAC policy enforcement. See [docs/compliance.md](docs/compliance.md).
471
+ Available controls include local export and erasure commands, hash-chained audit records, provenance tracking, and ABAC policy enforcement. Verify their behavior and retention boundaries for your deployment; see [docs/compliance.md](docs/compliance.md).
279
472
 
280
473
  ---
281
474
 
@@ -288,6 +481,7 @@ Built-in compliance tools: GDPR Article 15/17 export + complete erasure, tamper-
288
481
  | Multi-machine mesh | [docs/multi-machine.md](docs/multi-machine.md) |
289
482
  | Auto-memory hooks | [docs/auto-memory.md](docs/auto-memory.md) |
290
483
  | Architecture + math | [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) |
484
+ | Published benchmark evidence | [docs/benchmarks.md](docs/benchmarks.md) |
291
485
  | CLI reference | [docs/cli-reference.md](docs/cli-reference.md) |
292
486
  | MCP tools reference | [docs/mcp-tools.md](docs/mcp-tools.md) |
293
487
  | Getting started | [docs/getting-started.md](docs/getting-started.md) |
@@ -296,13 +490,17 @@ Built-in compliance tools: GDPR Article 15/17 export + complete erasure, tamper-
296
490
  | Skill evolution | [docs/skill-evolution.md](docs/skill-evolution.md) |
297
491
  | V2 migration | [docs/migration-from-v2.md](docs/migration-from-v2.md) |
298
492
  | Configuration | [docs/configuration.md](docs/configuration.md) |
493
+ | Retrieval score contract | [docs/retrieval-score-contract.md](docs/retrieval-score-contract.md) |
299
494
  | Wiki | [github.com/qualixar/superlocalmemory/wiki](https://github.com/qualixar/superlocalmemory/wiki) |
300
495
 
301
496
  **Web dashboard:**
302
497
  ```bash
303
498
  slm dashboard # Opens at http://localhost:8765
304
499
  ```
305
- 17-tab sidebar with Knowledge Graph (Sigma.js WebGL, community detection), Health Monitor, Entity Explorer, Mesh Peers, Ingestion Status, Privacy blur mode. Cross-platform: macOS + Windows + Linux.
500
+ The dashboard includes Dashboard, Brain, Knowledge Graph, Memories, Health,
501
+ Operations, Entity Explorer, Skill Evolution, Mesh Peers, Settings, and
502
+ Optimize workspaces. Features are populated only when their corresponding
503
+ runtime capability is enabled and healthy.
306
504
 
307
505
  **Release history:**
308
506
 
@@ -317,7 +515,7 @@ slm dashboard # Opens at http://localhost:8765
317
515
  | **v3.6.15** | Multi-scope | **Opt-in [shared memory](docs/shared-memory.md)** (personal/shared/global, off by default), default-deny scope at every read path, recall scope-race fix, contributor PRs #42/#43/#44, fixes #46–#49 |
318
516
  | **v3.6.14** | Plugin-native | Claude Code Plugin (WP-06), MCP profiles (WP-01), IDE connect (WP-08), asset consolidation, UI polish (WP-12) |
319
517
  | **v3.6.x** | Optimize Everywhere / Distributed-ready | Three surfaces (proxy/MCP/skill), `SLM_REMOTE=1` LAN mode, remote dashboard, custom LLM endpoints |
320
- | **v3.5.0** | Scale-Ready | CozoDB/LanceDB, 6-channel recall <1s, Core Memory Block, context injection v2, score normalization |
518
+ | **v3.5.0** | Historical scale work | Early CozoDB/LanceDB projection paths, retrieval additions, Core Memory Block, context injection v2, score normalization |
321
519
  | **v3.4.x** | Scale-Ready (foundation) | Tiered storage, graph pruning, Hopfield channel, LightGBM ranking, mDNS mesh discovery |
322
520
  | **v3.3.x** | Foundation | BM25Plus, Fisher-Rao, sqlite-vec, RRF fusion, cross-encoder rerank. 3 published papers |
323
521
 
@@ -403,7 +601,7 @@ Qualixar is building the open-source infrastructure for AI agent reliability eng
403
601
  | **[AgentAssert](https://github.com/qualixar/agentassert-abc)** | Behavioral contracts + drift detection | `pip install agentassert-abc` |
404
602
  | **[SkillFortify](https://github.com/qualixar/skillfortify)** | Formal verification for agent skills | `pip install skillfortify` |
405
603
 
406
- **Zero cloud dependency. Local-first. EU AI Act compliant.**
604
+ **Local-first architecture. Deployment-specific privacy and compliance controls.**
407
605
 
408
606
  Start here → **[qualixar.com](https://qualixar.com)** · [All papers on Qualixar HuggingFace](https://huggingface.co/Qualixar)
409
607
 
@@ -419,4 +617,6 @@ Start here → **[qualixar.com](https://qualixar.com)** · [All papers on Qualix
419
617
 
420
618
  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.
421
619
 
422
- [![Star History Chart](https://api.star-history.com/svg?repos=qualixar/superlocalmemory&type=Date)](https://star-history.com/#qualixar/superlocalmemory&Date)
620
+ [![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)
621
+
622
+ 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.