superlocalmemory 3.7.8 → 3.8.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 (280) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/ATTRIBUTION.md +1 -3
  3. package/CHANGELOG.md +129 -0
  4. package/README.md +205 -123
  5. package/package.json +12 -3
  6. package/plugin/.claude-plugin/plugin.json +2 -3
  7. package/plugin/CLAUDE.md +8 -8
  8. package/plugin/agents/slm-governance-advisor.md +80 -0
  9. package/plugin/agents/slm-loop-runner.md +71 -0
  10. package/plugin/agents/slm-memory-advisor.md +10 -5
  11. package/plugin/agents/slm-optimize-advisor.md +9 -3
  12. package/plugin/commands/slm-loop.md +31 -0
  13. package/plugin/hooks/hooks.json +79 -0
  14. package/plugin/requirements.txt +1 -1
  15. package/plugin/scripts/slm-launch +46 -7
  16. package/plugin/settings.json +9 -0
  17. package/plugin/skills/slm-cache/SKILL.md +9 -1
  18. package/plugin/skills/slm-compress/SKILL.md +8 -1
  19. package/plugin/skills/slm-governance/SKILL.md +248 -0
  20. package/plugin/skills/slm-graph/SKILL.md +17 -3
  21. package/plugin/skills/slm-loop/SKILL.md +99 -0
  22. package/plugin/skills/slm-mesh/SKILL.md +282 -0
  23. package/plugin/skills/slm-profile/SKILL.md +148 -0
  24. package/plugin/skills/slm-recall/SKILL.md +46 -10
  25. package/plugin/skills/slm-remember/SKILL.md +48 -1
  26. package/plugin/skills/slm-scope/SKILL.md +176 -0
  27. package/plugin/skills/slm-session/SKILL.md +24 -1
  28. package/plugin/skills/slm-status/SKILL.md +18 -1
  29. package/plugin-src/rules/AGENTS.md +57 -18
  30. package/plugin-src/skills/slm-cache/SKILL.md +9 -1
  31. package/plugin-src/skills/slm-compress/SKILL.md +8 -1
  32. package/plugin-src/skills/slm-graph/SKILL.md +17 -3
  33. package/plugin-src/skills/slm-recall/SKILL.md +46 -10
  34. package/plugin-src/skills/slm-remember/SKILL.md +48 -1
  35. package/plugin-src/skills/slm-session/SKILL.md +24 -1
  36. package/plugin-src/skills/slm-status/SKILL.md +18 -1
  37. package/pyproject.toml +2 -1
  38. package/scripts/postinstall/validation.js +2 -0
  39. package/scripts/postinstall-interactive.js +74 -2
  40. package/src/superlocalmemory/__init__.py +1 -1
  41. package/src/superlocalmemory/access/__init__.py +3 -0
  42. package/src/superlocalmemory/access/rbac.py +477 -0
  43. package/src/superlocalmemory/cli/commands.py +228 -17
  44. package/src/superlocalmemory/cli/compress_cmd.py +17 -7
  45. package/src/superlocalmemory/cli/daemon.py +7 -0
  46. package/src/superlocalmemory/cli/loop_cmd.py +187 -0
  47. package/src/superlocalmemory/cli/main.py +49 -8
  48. package/src/superlocalmemory/cli/mesh_cmd.py +38 -0
  49. package/src/superlocalmemory/cli/optimize_cmd.py +3 -0
  50. package/src/superlocalmemory/cli/pending_store.py +49 -13
  51. package/src/superlocalmemory/cli/proxy_cmd.py +4 -0
  52. package/src/superlocalmemory/cli/scale_engine_cmd.py +6 -0
  53. package/src/superlocalmemory/cli/setup_wizard.py +22 -13
  54. package/src/superlocalmemory/cli/version_banner.py +17 -3
  55. package/src/superlocalmemory/compliance/audit.py +6 -0
  56. package/src/superlocalmemory/compliance/gdpr.py +128 -138
  57. package/src/superlocalmemory/compliance/retention.py +176 -45
  58. package/src/superlocalmemory/core/backend_orchestrator.py +23 -59
  59. package/src/superlocalmemory/core/community_summary.py +267 -0
  60. package/src/superlocalmemory/core/config.py +216 -3
  61. package/src/superlocalmemory/core/consolidation_engine.py +95 -22
  62. package/src/superlocalmemory/core/context_cache.py +61 -18
  63. package/src/superlocalmemory/core/embedding_worker.py +21 -7
  64. package/src/superlocalmemory/core/embeddings.py +131 -46
  65. package/src/superlocalmemory/core/engine.py +41 -22
  66. package/src/superlocalmemory/core/engine_ingestion.py +359 -43
  67. package/src/superlocalmemory/core/engine_wiring.py +13 -0
  68. package/src/superlocalmemory/core/entity_community.py +178 -0
  69. package/src/superlocalmemory/core/graph_analyzer.py +39 -2
  70. package/src/superlocalmemory/core/graph_pruner.py +13 -8
  71. package/src/superlocalmemory/core/ingestion_command.py +134 -25
  72. package/src/superlocalmemory/core/injection.py +12 -7
  73. package/src/superlocalmemory/core/key_expander.py +138 -0
  74. package/src/superlocalmemory/core/maintenance.py +23 -0
  75. package/src/superlocalmemory/core/maintenance_scheduler.py +17 -7
  76. package/src/superlocalmemory/core/modes.py +1 -1
  77. package/src/superlocalmemory/core/mutations.py +2 -2
  78. package/src/superlocalmemory/core/pii.py +105 -0
  79. package/src/superlocalmemory/core/progressive_abstraction.py +208 -0
  80. package/src/superlocalmemory/core/recall_pipeline.py +7 -3
  81. package/src/superlocalmemory/core/recall_worker.py +20 -6
  82. package/src/superlocalmemory/core/scale_engine.py +60 -1
  83. package/src/superlocalmemory/core/security_primitives.py +40 -2
  84. package/src/superlocalmemory/core/store_pipeline.py +186 -29
  85. package/src/superlocalmemory/core/worker_pool.py +21 -6
  86. package/src/superlocalmemory/encoding/entity_reflexion.py +200 -0
  87. package/src/superlocalmemory/encoding/entity_resolver.py +34 -24
  88. package/src/superlocalmemory/encoding/fact_extractor.py +26 -1
  89. package/src/superlocalmemory/encoding/temporal_validator.py +64 -1
  90. package/src/superlocalmemory/evolution/evolution_store.py +122 -45
  91. package/src/superlocalmemory/evolution/llm_dispatch.py +12 -1
  92. package/src/superlocalmemory/evolution/model_selection.py +160 -0
  93. package/src/superlocalmemory/evolution/mutation_generator.py +16 -0
  94. package/src/superlocalmemory/evolution/skill_evolver.py +127 -42
  95. package/src/superlocalmemory/evolution/triggers.py +22 -13
  96. package/src/superlocalmemory/graph/cozo_backend.py +43 -20
  97. package/src/superlocalmemory/hooks/adapter_base.py +5 -1
  98. package/src/superlocalmemory/hooks/auto_recall.py +13 -1
  99. package/src/superlocalmemory/hooks/claude_code_hooks.py +11 -0
  100. package/src/superlocalmemory/hooks/codex_assets.py +64 -5
  101. package/src/superlocalmemory/hooks/hook_daemon.py +20 -3
  102. package/src/superlocalmemory/hooks/hook_handlers.py +6 -1
  103. package/src/superlocalmemory/hooks/memory_protocol.py +54 -0
  104. package/src/superlocalmemory/hooks/portable_kit.py +148 -3
  105. package/src/superlocalmemory/infra/backup.py +12 -1
  106. package/src/superlocalmemory/infra/daemon_identity.py +40 -4
  107. package/src/superlocalmemory/infra/data_root.py +43 -4
  108. package/src/superlocalmemory/infra/event_bus.py +107 -24
  109. package/src/superlocalmemory/infra/rate_limiter.py +93 -0
  110. package/src/superlocalmemory/ingestion/adapter_manager.py +4 -1
  111. package/src/superlocalmemory/ingestion/credentials.py +1 -1
  112. package/src/superlocalmemory/learning/cross_project.py +28 -19
  113. package/src/superlocalmemory/learning/model_rollback.py +3 -0
  114. package/src/superlocalmemory/learning/ranker_retrain_online.py +2 -0
  115. package/src/superlocalmemory/learning/reward.py +50 -0
  116. package/src/superlocalmemory/learning/reward_proxy.py +42 -9
  117. package/src/superlocalmemory/learning/source_quality.py +523 -1
  118. package/src/superlocalmemory/loops/__init__.py +56 -0
  119. package/src/superlocalmemory/loops/budget.py +58 -0
  120. package/src/superlocalmemory/loops/engine.py +164 -0
  121. package/src/superlocalmemory/loops/ledger.py +263 -0
  122. package/src/superlocalmemory/loops/models.py +152 -0
  123. package/src/superlocalmemory/loops/rules.py +52 -0
  124. package/src/superlocalmemory/mcp/_daemon_proxy.py +3 -0
  125. package/src/superlocalmemory/mcp/_pool_adapter.py +2 -0
  126. package/src/superlocalmemory/mcp/profiles.py +103 -0
  127. package/src/superlocalmemory/mcp/server.py +32 -79
  128. package/src/superlocalmemory/mcp/tools_active.py +4 -7
  129. package/src/superlocalmemory/mcp/tools_code_graph.py +51 -5
  130. package/src/superlocalmemory/mcp/tools_core.py +12 -4
  131. package/src/superlocalmemory/mcp/tools_evolution.py +6 -3
  132. package/src/superlocalmemory/mcp/tools_learning.py +2 -2
  133. package/src/superlocalmemory/mcp/tools_loops.py +300 -0
  134. package/src/superlocalmemory/mcp/tools_mesh.py +140 -4
  135. package/src/superlocalmemory/mcp/tools_optimize.py +15 -8
  136. package/src/superlocalmemory/mesh/broker.py +237 -129
  137. package/src/superlocalmemory/mesh/remote_sync.py +50 -8
  138. package/src/superlocalmemory/optimize/NOTICE +1 -6
  139. package/src/superlocalmemory/optimize/adapters/anthropic_adapter.py +1 -4
  140. package/src/superlocalmemory/optimize/adapters/openai_adapter.py +1 -4
  141. package/src/superlocalmemory/optimize/cache/semantic.py +27 -19
  142. package/src/superlocalmemory/optimize/compress/align.py +32 -26
  143. package/src/superlocalmemory/optimize/compress/ccr.py +14 -71
  144. package/src/superlocalmemory/optimize/compress/router.py +105 -22
  145. package/src/superlocalmemory/optimize/config/defaults.py +1 -1
  146. package/src/superlocalmemory/optimize/config/schema.py +87 -4
  147. package/src/superlocalmemory/optimize/metrics/counters.py +13 -4
  148. package/src/superlocalmemory/optimize/metrics/estimator.py +0 -3
  149. package/src/superlocalmemory/optimize/proxy/_helpers.py +31 -4
  150. package/src/superlocalmemory/optimize/storage/db.py +38 -9
  151. package/src/superlocalmemory/optimize/storage/schema.py +10 -0
  152. package/src/superlocalmemory/parameterization/pattern_extractor.py +6 -3
  153. package/src/superlocalmemory/retrieval/agentic.py +1 -1
  154. package/src/superlocalmemory/retrieval/bm25_channel.py +68 -10
  155. package/src/superlocalmemory/retrieval/engine.py +221 -47
  156. package/src/superlocalmemory/retrieval/entity_channel.py +7 -5
  157. package/src/superlocalmemory/retrieval/hopfield_channel.py +9 -2
  158. package/src/superlocalmemory/retrieval/reranker.py +3 -4
  159. package/src/superlocalmemory/retrieval/semantic_channel.py +114 -21
  160. package/src/superlocalmemory/retrieval/spreading_activation.py +11 -2
  161. package/src/superlocalmemory/retrieval/temporal_channel.py +48 -9
  162. package/src/superlocalmemory/retrieval/temporal_frame.py +102 -0
  163. package/src/superlocalmemory/retrieval/temporal_validity_filter.py +135 -0
  164. package/src/superlocalmemory/retrieval/time_window.py +181 -0
  165. package/src/superlocalmemory/server/api.py +4 -4
  166. package/src/superlocalmemory/server/config_file.py +90 -0
  167. package/src/superlocalmemory/server/origin.py +50 -0
  168. package/src/superlocalmemory/server/profile_runtime.py +125 -8
  169. package/src/superlocalmemory/server/rbac_enforce.py +142 -0
  170. package/src/superlocalmemory/server/recall_health.py +24 -3
  171. package/src/superlocalmemory/server/recall_serializer.py +19 -1
  172. package/src/superlocalmemory/server/routes/abstraction.py +115 -0
  173. package/src/superlocalmemory/server/routes/agents.py +128 -38
  174. package/src/superlocalmemory/server/routes/backup.py +317 -70
  175. package/src/superlocalmemory/server/routes/behavioral.py +349 -71
  176. package/src/superlocalmemory/server/routes/brain.py +69 -12
  177. package/src/superlocalmemory/server/routes/chat.py +10 -5
  178. package/src/superlocalmemory/server/routes/compliance.py +171 -21
  179. package/src/superlocalmemory/server/routes/config_api.py +438 -0
  180. package/src/superlocalmemory/server/routes/data_io.py +30 -8
  181. package/src/superlocalmemory/server/routes/entity.py +108 -26
  182. package/src/superlocalmemory/server/routes/events.py +24 -8
  183. package/src/superlocalmemory/server/routes/evolution.py +189 -68
  184. package/src/superlocalmemory/server/routes/helpers.py +16 -1
  185. package/src/superlocalmemory/server/routes/ingest.py +7 -4
  186. package/src/superlocalmemory/server/routes/insights.py +3 -3
  187. package/src/superlocalmemory/server/routes/learning.py +289 -118
  188. package/src/superlocalmemory/server/routes/learning_telemetry.py +153 -0
  189. package/src/superlocalmemory/server/routes/lifecycle.py +59 -8
  190. package/src/superlocalmemory/server/routes/memories.py +182 -57
  191. package/src/superlocalmemory/server/routes/mesh.py +200 -31
  192. package/src/superlocalmemory/server/routes/optimize.py +33 -1
  193. package/src/superlocalmemory/server/routes/prewarm.py +2 -0
  194. package/src/superlocalmemory/server/routes/profiles.py +63 -17
  195. package/src/superlocalmemory/server/routes/ratelimit.py +132 -0
  196. package/src/superlocalmemory/server/routes/rbac.py +367 -0
  197. package/src/superlocalmemory/server/routes/stats.py +103 -158
  198. package/src/superlocalmemory/server/routes/tiers.py +11 -9
  199. package/src/superlocalmemory/server/routes/token.py +3 -13
  200. package/src/superlocalmemory/server/routes/v3_api.py +247 -89
  201. package/src/superlocalmemory/server/routes/ws.py +5 -2
  202. package/src/superlocalmemory/server/security_middleware.py +12 -5
  203. package/src/superlocalmemory/server/ui.py +20 -5
  204. package/src/superlocalmemory/server/unified_daemon.py +827 -72
  205. package/src/superlocalmemory/server/write_identity.py +38 -8
  206. package/src/superlocalmemory/storage/database.py +265 -53
  207. package/src/superlocalmemory/storage/migration_runner.py +132 -1
  208. package/src/superlocalmemory/storage/migrations/M010_evolution_config.py +5 -0
  209. package/src/superlocalmemory/storage/migrations/M021_ingestion_log_profile.py +108 -0
  210. package/src/superlocalmemory/storage/migrations/M022_entity_aliases_profile.py +86 -0
  211. package/src/superlocalmemory/storage/migrations/M023_mesh_profile_isolation.py +194 -0
  212. package/src/superlocalmemory/storage/migrations/M024_rbac_users_roles.py +87 -0
  213. package/src/superlocalmemory/storage/migrations/M025_perf_indexes.py +90 -0
  214. package/src/superlocalmemory/storage/migrations/M026_rbac_memberships_fk.py +136 -0
  215. package/src/superlocalmemory/storage/migrations/M027_transferable_patterns_profile.py +163 -0
  216. package/src/superlocalmemory/storage/migrations/M028_fact_entity_associations.py +270 -0
  217. package/src/superlocalmemory/storage/migrations/M029_behavioral_history_indexes.py +137 -0
  218. package/src/superlocalmemory/storage/migrations/M030_entity_explorer_indexes.py +93 -0
  219. package/src/superlocalmemory/storage/migrations/__init__.py +4 -0
  220. package/src/superlocalmemory/storage/models.py +4 -0
  221. package/src/superlocalmemory/storage/schema.py +136 -1
  222. package/src/superlocalmemory/storage/schema_v32.py +2 -0
  223. package/src/superlocalmemory/storage/schema_v343.py +24 -12
  224. package/src/superlocalmemory/storage/schema_v347.py +4 -0
  225. package/src/superlocalmemory/trust/gate.py +49 -8
  226. package/src/superlocalmemory/ui/assets/slm-icon-white.svg +64 -0
  227. package/src/superlocalmemory/ui/assets/slm-icon.svg +36 -0
  228. package/src/superlocalmemory/ui/css/design-system.css +621 -0
  229. package/src/superlocalmemory/ui/css/neural-glass.css +6 -0
  230. package/src/superlocalmemory/ui/css/od-bridge.css +158 -0
  231. package/src/superlocalmemory/ui/favicon.svg +35 -4
  232. package/src/superlocalmemory/ui/index.html +303 -173
  233. package/src/superlocalmemory/ui/js/brain.js +5 -20
  234. package/src/superlocalmemory/ui/js/core.js +100 -41
  235. package/src/superlocalmemory/ui/js/dashboard.js +403 -65
  236. package/src/superlocalmemory/ui/js/event-delegation.js +102 -0
  237. package/src/superlocalmemory/ui/js/knowledge-graph.js +11 -11
  238. package/src/superlocalmemory/ui/js/math-health.js +1 -1
  239. package/src/superlocalmemory/ui/js/memories.js +15 -4
  240. package/src/superlocalmemory/ui/js/memory-chat.js +7 -7
  241. package/src/superlocalmemory/ui/js/ng-entities.js +6 -8
  242. package/src/superlocalmemory/ui/js/ng-ingestion.js +4 -4
  243. package/src/superlocalmemory/ui/js/ng-mesh.js +4 -9
  244. package/src/superlocalmemory/ui/js/ng-shell.js +8 -8
  245. package/src/superlocalmemory/ui/js/ng-skills.js +54 -2
  246. package/src/superlocalmemory/ui/js/od-agents.js +544 -0
  247. package/src/superlocalmemory/ui/js/od-auth-gate.js +257 -0
  248. package/src/superlocalmemory/ui/js/od-backup.js +871 -0
  249. package/src/superlocalmemory/ui/js/od-brain.js +816 -0
  250. package/src/superlocalmemory/ui/js/od-entities.js +579 -0
  251. package/src/superlocalmemory/ui/js/od-graph.js +600 -0
  252. package/src/superlocalmemory/ui/js/od-health.js +539 -0
  253. package/src/superlocalmemory/ui/js/od-mcp.js +508 -0
  254. package/src/superlocalmemory/ui/js/od-memories.js +929 -0
  255. package/src/superlocalmemory/ui/js/od-mesh.js +553 -0
  256. package/src/superlocalmemory/ui/js/od-operations.js +1250 -0
  257. package/src/superlocalmemory/ui/js/od-optimize.js +787 -0
  258. package/src/superlocalmemory/ui/js/od-settings.js +1107 -0
  259. package/src/superlocalmemory/ui/js/od-shell.js +809 -0
  260. package/src/superlocalmemory/ui/js/od-skills.js +600 -0
  261. package/src/superlocalmemory/ui/js/od-team.js +258 -0
  262. package/src/superlocalmemory/ui/js/profiles.js +159 -46
  263. package/src/superlocalmemory/ui/js/settings.js +17 -3
  264. package/src/superlocalmemory/ui/js/timeline.js +34 -5
  265. package/src/superlocalmemory/ui/js/trust-dashboard.js +2 -2
  266. package/src/superlocalmemory/vector/lancedb_backend.py +8 -6
  267. package/plugin-src/.mcp.json +0 -12
  268. package/plugin-src/agents/slm-memory-advisor.md +0 -44
  269. package/plugin-src/agents/slm-optimize-advisor.md +0 -38
  270. package/plugin-src/hooks/.gitkeep +0 -0
  271. package/plugin-src/hooks/hooks.json +0 -23
  272. package/plugin-src/manifest.json +0 -25
  273. package/plugin-src/requirements.txt +0 -1
  274. package/plugin-src/rules/CLAUDE.md.fragment +0 -44
  275. package/plugin-src/scripts/ensure-venv.bat +0 -122
  276. package/plugin-src/scripts/ensure-venv.sh +0 -105
  277. package/plugin-src/scripts/slm-launch +0 -23
  278. package/plugin-src/scripts/slm-launch.bat +0 -23
  279. package/plugin-src/settings.json +0 -16
  280. package/src/superlocalmemory/learning/behavioral_listener.py +0 -94
@@ -9,7 +9,7 @@
9
9
  "author": {
10
10
  "name": "Qualixar"
11
11
  },
12
- "description": "Local-first agent memory + reversible context compression and KV cache, as an MCP server. 20-tool code profile with graph intelligence.",
12
+ "description": "Local-first agent memory + reversible context compression and KV cache, as an MCP server. 21-tool code profile with graph intelligence.",
13
13
  "name": "superlocalmemory",
14
14
  "source": "./plugin"
15
15
  }
package/ATTRIBUTION.md CHANGED
@@ -74,10 +74,8 @@ The Implementer verified each arXiv ID against arxiv.org before citation.
74
74
  | **CacheAttack** (86% response hijack, 90.6% agentic) | arXiv:2601.23088 | Threat model. The 90.6% figure is [UNVERIFIED — body-only, RA-18]; the 86% figure is verified from the abstract. |
75
75
  | **SAFE-CACHE** (centroid-based adversarial defense) | Nature Scientific Reports 2026 | [CITATION-NEEDED-ONLINE — exact paper verified, but exact defense figures are body-only.] Defense reduced attack success from 52.77% to 14.27% per the paper. |
76
76
  | **ContextCache** (multi-turn context-aware keys) | arXiv:2506.22791 | §3 — context-aware cache keys prevent false reuse across semantically overlapping but conversationally distinct turns. |
77
- | **LLMLingua-2** (prose compression) | arXiv:2403.12968 (Microsoft Research) | MIT license. Models: `microsoft/llmlingua-2-bert-base-multilingual-cased-meetingbank` (default) and `microsoft/llmlingua-2-xlm-roberta-large-meetingbank`. Off by default, opt-in via `compress_prose=True` + `compress_mode="aggressive"`. **Originals always stored in CCR before lossy compression — reversible via `headroom_retrieve`.** |
77
+ | **LLMLingua-2** (prose compression) | arXiv:2403.12968 (Microsoft Research) | MIT license. Models: `microsoft/llmlingua-2-bert-base-multilingual-cased-meetingbank` (default) and `microsoft/llmlingua-2-xlm-roberta-large-meetingbank`. Off by default, opt-in via `compress_prose=True` + `compress_mode="aggressive"`. **Originals always stored in CCR before lossy compression — reversible via `slm_ccr_retrieve`.** |
78
78
  | **LongLLMLingua** (RAG compression) | arXiv:2310.06839 | Not used in Phase 3. Documented for Phase 4 RAG integration. |
79
- | **Headroom** (router, JSON handler, code handler, aligner) | github.com/qualixar/headroom (Apache-2.0) | Patterns adapted with attribution: `ContentRouter`, `JSONStructureHandler`, `CodeLanguage` enum, `CacheAligner._classify_token`. |
80
- | **omnicache-ai** (test fixture patterns) | github.com/qualixar/omnicache-ai (Apache-2.0) | Deterministic hash-to-vector embedding fixture for tests. |
81
79
 
82
80
  **Two fabricated arXiv IDs were caught and fixed during the LLD-10 audit:**
83
81
  `2501.05064` and `2404.12693` (both previously wrong vCache labels). The
package/CHANGELOG.md CHANGED
@@ -5,6 +5,135 @@ All notable changes to SuperLocalMemory V3 will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [3.8.1] - 2026-07-23 — Existing-install stability
9
+
10
+ ### Fixed
11
+
12
+ - **Large existing databases no longer delay daemon readiness for a full tier
13
+ rebalance.** Startup now initializes bounded backend state and leaves the
14
+ scheduled full-database tier evaluation to maintenance.
15
+ - **Failed enrichment can no longer retry forever.** Automatic durable-ingestion
16
+ materialization stops after ten attempts; an operator can still request an
17
+ explicit retry after correcting the underlying issue.
18
+ - **Background enrichment no longer monopolizes SQLite.** Durable
19
+ materialization now uses short saga checkpoints instead of holding one
20
+ database write transaction across model extraction and embedding work, so
21
+ remember, update, delete, and dashboard actions remain writable while
22
+ enrichment continues.
23
+ - **Durable enrichment retries are idempotent after partial failure.** Fact,
24
+ evidence, provenance, graph, temporal, and entity-association effects are
25
+ checkpointed or keyed so retries and process recovery cannot inflate them.
26
+ - **Entity counts stay O(1) on mature databases.** A normalized, indexed
27
+ fact/entity association ledger replaces per-entity scans of the full facts
28
+ table; existing associations are backfilled once during upgrade.
29
+ - **Newly queryable memories are immediately visible to recall.** A strong
30
+ exact BM25/FTS hit now retains one bounded result slot even when semantic
31
+ candidates would otherwise fill a small `limit`, preserving the
32
+ queryable-before-enrichment contract.
33
+ - **Mesh heartbeat writes no longer block the async HTTP event loop.** SQLite
34
+ work runs in FastAPI's worker thread pool, keeping health, token, dashboard,
35
+ recall, and remember endpoints responsive during peer activity.
36
+ - **Dashboard navigation preserves mounted pane state.** Brain, Knowledge Graph,
37
+ Memories, and Entity Explorer do not remount and refetch on every return.
38
+ Successful writes and configuration changes invalidate pane state once so
39
+ the next visit refreshes deliberately.
40
+ - **Brain telemetry is historical and provenance-backed.** Existing reward
41
+ outcomes are repaired into source-quality observations in resumable bounded
42
+ batches, and transient database errors can no longer be reported as a
43
+ completed repair.
44
+ - **Company-mode learning controls enforce workspace permissions.** Learning
45
+ and behavioral reads and mutations now apply the same read, write, delete,
46
+ and manage gates as the rest of the control plane.
47
+ - **Large graph views have a fixed browser-compute budget.** The dashboard can
48
+ render the requested graph result while force simulation is bounded, with a
49
+ short initial settle and finite animation window; selecting a large graph can
50
+ no longer monopolize the browser main thread.
51
+ - **Interactive model workers stay warm instead of repeatedly cold-starting.**
52
+ Embedding and reranker workers now remain resident for a 30-minute working
53
+ session by default, and the embedding peak guard matches the daemon's
54
+ 2.5 GB per-worker watchdog. Low-RAM installations can retain shorter idle
55
+ windows and stricter recycling through the existing environment overrides.
56
+ - **CLI mutations use the resident daemon as the single database writer.**
57
+ Exact delete and update commands no longer initialize a competing engine
58
+ beside a running daemon, preventing lock failures on active existing
59
+ installations.
60
+ - **Skill Evolution repairs incomplete historical schemas.** The migration
61
+ runner verifies a completed migration's promised end-state before skipping
62
+ it and reapplies additive DDL when an older upgrade left a required table
63
+ missing.
64
+ - **Release packages are deterministic again.** Canonical data-root routing,
65
+ generated plugin parity checks, truthful integration instructions, and the
66
+ bounded npm package surface are restored.
67
+
68
+ ## [3.8.0] - 2026-07-23 — Teams, bounded loops, and nine framework adapters
69
+
70
+ ### Added
71
+
72
+ - **Team & company memory with real access control.** A workspace (profile) can
73
+ now have multiple users, each with a role — **admin**, **member**, or
74
+ **viewer**. Admins manage people and settings, members read and write, viewers
75
+ read only. Everything is managed from the dashboard's new **Team & access**
76
+ panel: add a person, set their role, sign in, or remove them — no config files
77
+ or command line needed.
78
+ - **Sign-in for shared workspaces.** Turn on *"require sign-in"* (company mode)
79
+ and everyone must log in before reading or writing memory, so every action is
80
+ attributable to a person. Single-user setups are unchanged and need no login.
81
+ - **Private, shared, and global memories across a mesh.** Memories keep their
82
+ personal / shared / global visibility consistently when several SuperLocalMemory
83
+ instances are connected, and one team's coordination never bleeds into another's.
84
+ - **Optional personal-data scrubbing on save.** Enable PII redaction and emails,
85
+ phone numbers, national IDs, payment cards, and IP addresses are stripped from
86
+ content before it is ever stored.
87
+ - **Bounded loops — gate-verified iteration.** A loop terminates only when an
88
+ independent gate passes (a test exit code, a linter, a JSON-schema check, or
89
+ an SLM-recall condition) — never when the agent reports completion. Every lap
90
+ is persisted to SLM memory under the tag `loop:<name>`, making runs auditable
91
+ and resumable across sessions. Ships on three surfaces: the `slm loop` CLI
92
+ (`demo` / `history` / `show`), the `/slm-loop` skill with the
93
+ `slm-loop-runner` agent, and the MCP tools `slm_loop_run` /
94
+ `slm_loop_history` / `slm_loop_show` (available in the `code` and `full`
95
+ profiles).
96
+ - **Nine framework adapters.** SLM now ships adapters under `ide/integrations/`
97
+ for LangGraph, Semantic Kernel, Microsoft Agent Framework, LangChain,
98
+ LlamaIndex, CrewAI, AutoGen, Google ADK, and OpenAI Agents. Each adapter
99
+ wires SLM as the memory and history provider without replacing the framework's
100
+ agent runtime. Pydantic AI is intentionally not included — it does not expose
101
+ a formal memory interface for external providers.
102
+ - **Multi-Agent Memory dashboard page.** A new dashboard workspace shows
103
+ per-agent write activity and attribution for environments where multiple
104
+ agents share one SLM deployment. Memory entries are stamped via
105
+ `SLM_AGENT_ID`; the page surfaces per-agent write counts, recent activity,
106
+ and agent trust signals.
107
+
108
+ ### Changed / Fixed
109
+
110
+ - **Strict tenant isolation across the whole product.** Coordination between
111
+ agents (peers, messages, shared state, file locks, activity log) is now scoped
112
+ per workspace, so different teams or companies sharing one deployment can never
113
+ see each other's activity.
114
+ - **A person can only enter a workspace they belong to.** Switching into a
115
+ workspace now requires membership.
116
+ - **Tighter file permissions.** Memory, audit, and learning databases are now
117
+ owner-only on disk.
118
+
119
+ ## [3.7.9] - 2026-07-20 — Dashboard, skill-evolution, and security hardening
120
+
121
+ ### Fixed
122
+
123
+ - **Skill evolution now produces output.** A token-limit mismatch made every evolution attempt fail silently and produce nothing; the ceiling is corrected and the underlying misconfiguration is logged instead of masked.
124
+ - **Manual evolution respects its cost caps.** Triggering `evolve_skill` directly now runs under the same per-cycle, wall-time, and per-day LLM caps as automatic evolution (previously it could run uncapped).
125
+ - **Dashboard landing page loads on first open.** The Operating Mode, LLM Provider, Memories, and Version cards now populate immediately instead of staying on "Loading…".
126
+ - **Operating mode is consistent everywhere.** The active mode is read from a single source of truth, so the CLI, daemon, and dashboard always agree and the chosen mode and provider are actually used.
127
+ - **Code-graph updates are safe against hostile repositories.** `update_code_graph` rejects paths outside your home directory and runs `git` with hook and config execution disabled.
128
+ - **LanceDB tier updates escape identifiers**, closing a filter-injection path.
129
+ - **Optimize savings** no longer errors when no model is configured.
130
+
131
+ ### Added
132
+
133
+ - **Configurable, lowest-cost skill-evolution models.** Each step (generate / verify / confirm) defaults to the cheapest capable model for your backend, keeps the blind verifier independent of the generator, and is settable from the CLI or dashboard. Enabling evolution shows a cost advisory.
134
+ - **Dashboard write endpoint** (`POST /api/evolution/config`) for evolution settings, validated against the same allow-list as the CLI.
135
+ - **Test coverage** for the Gmail and Calendar ingestion adapters.
136
+
8
137
  ## [3.7.8] - 2026-07-20 — Profile-isolation leak fix, loopback auth opt-in, hardening
9
138
 
10
139
  ### Fixed
package/README.md CHANGED
@@ -5,10 +5,10 @@
5
5
  </picture>
6
6
  </p>
7
7
 
8
- <h1 align="center">SuperLocalMemory V3.7.8</h1>
9
- <p align="center"><strong>Cache. Compress. Remember. Three surfaces — proxy, MCP tools, or skill. Every setup covered.</strong><br/>
10
- <em>Local-first agent memory with explicit operating modes, auditable retrieval, and optional Optimize tools.</em></p>
11
- <p align="center"><code>v3.7.8</code> — <strong>Profile-isolation leak fix, opt-in loopback write auth, and fresh-install acceptance verification.</strong><br/>
8
+ <h1 align="center">SuperLocalMemory V3.8.1</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.1</code> — one control plane: auditable retrieval · multi-scope memory (personal / shared / global) · Cache · Compress · trusted-peer Mesh · bounded loops — across CLI, MCP, dashboard, the <strong>Claude plugin</strong>, the <strong>Codex add-on</strong>, and documented IDE integrations.<br/>
12
12
  Proxy: <code>slm wrap claude</code> &nbsp;·&nbsp; MCP: add <code>slm_compress</code> to your config &nbsp;·&nbsp; Skill: zero-config</p>
13
13
  <p align="center"><strong>3 public research preprints</strong> (arXiv + Zenodo archives) · <a href="https://arxiv.org/abs/2603.02240">arXiv:2603.02240</a> · <a href="https://arxiv.org/abs/2603.14588">arXiv:2603.14588</a> · <a href="https://arxiv.org/abs/2604.04514">arXiv:2604.04514</a></p>
14
14
 
@@ -19,6 +19,7 @@ Proxy: <code>slm wrap claude</code> &nbsp;·&nbsp; MCP: add <code>slm_compress</
19
19
  <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>
20
20
  <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>
21
21
  <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>
22
+ <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>
22
23
  <a href="https://superlocalmemory.com"><img src="https://img.shields.io/badge/Web-superlocalmemory.com-ff6b35?style=for-the-badge" alt="Website"/></a>
23
24
  <a href="#dual-interface-mcp--cli"><img src="https://img.shields.io/badge/MCP-Native-blue?style=for-the-badge" alt="MCP Native"/></a>
24
25
  <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>
@@ -29,14 +30,29 @@ Proxy: <code>slm wrap claude</code> &nbsp;·&nbsp; MCP: add <code>slm_compress</
29
30
 
30
31
  ## Why SuperLocalMemory?
31
32
 
33
+ SuperLocalMemory is an enterprise-grade, local-first memory control plane for AI agents. Your team's agent memory lives on infrastructure you control, with per-workspace isolation, role-based access, and GDPR / EU AI Act governance controls — built for organizations, and for EU data-residency obligations where agent context must not leave your environment by default.
34
+
32
35
  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.
33
36
 
34
- 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.
37
+ 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.
38
+
39
+ 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.
40
+
41
+ **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.
42
+
43
+ **What V3.8.0 added.** The 3.8.0 capability release introduced the following
44
+ foundation; 3.8.1 is the existing-install stability patch for it:
45
+
46
+ - **Temporal depth** — the time-aware retrieval and lifecycle described above.
47
+ - **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).
48
+ - **Framework adapters** — [drop-in, engine-backed memory for nine agent frameworks](#framework-adapters-v380).
49
+ - **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).
50
+ - **Stronger cache and compression** — exact-match caching with tagged invalidation plus opt-in reversible compression, across proxy, MCP, and skill surfaces.
51
+ - **Stability** — a long defect-and-audit sweep across ingestion, retrieval, mesh, and the dashboard hardens the everyday path.
52
+
53
+ SLM is one strand of Qualixar's work on AI reliability engineering: making agent behavior observable, bounded, and reproducible instead of best-effort.
35
54
 
36
- **Published benchmark evidence carried into V3.7:** the architecture evaluated
37
- in the V3 paper remains the foundation of this release. The figures below keep
38
- their original LoCoMo protocol, answer-construction, model, and sample scope;
39
- they are not a claim of a newly rerun 3.7 package benchmark.
55
+ The architecture evaluated in the V3 paper remains the foundation of this release. The figures below keep their original LoCoMo protocol, answer-construction, model, and sample scope.
40
56
 
41
57
  ### How SLM fits beside other memory systems
42
58
 
@@ -61,7 +77,7 @@ for current primary sources and protocol-scoped benchmark evidence. A LoCoMo
61
77
  percentage is comparable only when the dataset scope, answer model, judge,
62
78
  retrieval stack, and release artifact match.
63
79
 
64
- ### The V3.7 capability architecture
80
+ ### The V3.8.0 capability architecture
65
81
 
66
82
  SuperLocalMemory is one local control plane for persistent agent context. It is
67
83
  not just a vector store: the same runtime can accept evidence, build and govern
@@ -69,7 +85,7 @@ memory, retrieve bounded evidence for an agent, and expose cache, compression,
69
85
  and peer-coordination controls through a CLI, MCP, dashboard, and supported
70
86
  IDE integrations.
71
87
 
72
- ![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)
88
+ ![SuperLocalMemory V3 capability architecture: modes, seven operating layers, Scale Engine, Mesh, delivery surfaces, and opt-in adapters](docs/assets/slm-v37-capability-architecture.png)
73
89
 
74
90
  *Architecture boundary: SQLite + sqlite-vec remain canonical; CozoDB and
75
91
  LanceDB are parity-gated projections; Mesh coordinates trusted peers rather
@@ -128,6 +144,7 @@ health surfaces expose the stages actually completed by the installed runtime.
128
144
  | Knowledge Graph and Memories | graph neighborhoods, entities, scenes, temporal evidence, memory inspection and mutation |
129
145
  | Operations | ingestion-operation state, traces, maintenance and lifecycle work |
130
146
  | Entity Explorer and Skill Evolution | compiled entity summaries/timelines; opt-in skill lineage, budgets and verification outcomes |
147
+ | Multi-Agent Memory | per-agent write activity and attribution; memories stamped by `SLM_AGENT_ID`, agent write counts, and trust signals |
131
148
  | Mesh Peers | configured peers, inbox/outbox, pending coordination and locks |
132
149
  | Settings and Optimize | mode/provider/configuration; cache, compression and savings telemetry |
133
150
 
@@ -141,9 +158,9 @@ deployment.
141
158
 
142
159
  **[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.
143
160
 
144
- ### Published LoCoMo evidence carried into V3.7
161
+ ### Published LoCoMo evidence (V3 architecture, carried into V3.8.0)
145
162
 
146
- The V3 paper evaluates the architecture carried into V3.7. Every figure below
163
+ The V3 paper evaluates the architecture carried into V3.8.0. Every figure below
147
164
  is protocol-scoped, so a reader can distinguish local retrieval, answer
148
165
  construction, and cloud-assisted evaluation rather than treating unlike runs as
149
166
  one score.
@@ -164,8 +181,7 @@ information-geometric layers versus **58.9%** without them: **+12.7pp**.
164
181
  See [arXiv:2603.14588](https://arxiv.org/abs/2603.14588) and the [official
165
182
  LoCoMo paper](https://arxiv.org/abs/2402.17753) for the full protocol,
166
183
  ablation table, and limitations. These are published V3 architecture results
167
- carried into V3.7—not a substitute for a newly rerun release-artifact
168
- benchmark.
184
+ carried into V3.8.0—not a substitute for a newly rerun release-artifact benchmark.
169
185
 
170
186
  ---
171
187
 
@@ -255,7 +271,7 @@ retrieved at runtime rather than copied into those files.
255
271
  **Score Contract v2:** `relevance_score` is query-relative relevance;
256
272
  `ranking_score` is internal ranking utility; `memory_confidence` belongs to the
257
273
  stored assertion; and `trust_score` is an evidence-policy signal. Legacy
258
- `score` and `confidence` remain aliases for one compatibility release. V3.7 is
274
+ `score` and `confidence` remain aliases for one compatibility release. V3.8.0 is
259
275
  explicitly uncalibrated: `calibration_status` is `uncalibrated` and
260
276
  `answer_confidence` is `null`. See
261
277
  [the retrieval score contract](docs/retrieval-score-contract.md).
@@ -269,8 +285,7 @@ can run without a cloud LLM:
269
285
 
270
286
  Auto-capture hooks are installed explicitly with `slm hooks install` (Claude
271
287
  Code) or `slm hooks install --agent codex` (Codex). Hook latency and capture
272
- quality must be evaluated for the target client and workload; V3.7 publishes
273
- no universal p99 claim.
288
+ quality must be evaluated for the target client and workload; V3.8.0 publishes no universal p99 claim.
274
289
 
275
290
  **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)**.
276
291
 
@@ -325,7 +340,7 @@ export SLM_MESH_SHARED_SECRET=my-secret-key
325
340
  slm init
326
341
  ```
327
342
 
328
- 8 mesh MCP tools: `mesh_peers`, `mesh_send`, `mesh_broadcast`, `mesh_project`, `mesh_inbox`, `mesh_pending`, `mesh_state`, `mesh_lock`.
343
+ 8 mesh MCP tools: `mesh_summary`, `mesh_peers`, `mesh_send`, `mesh_inbox`, `mesh_state`, `mesh_lock`, `mesh_events`, `mesh_status`.
329
344
 
330
345
  Full docs: [docs/multi-machine.md](docs/multi-machine.md) · [docs/distributed-deployment.md](docs/distributed-deployment.md)
331
346
 
@@ -377,10 +392,10 @@ Control tool surface via `SLM_MCP_PROFILE`:
377
392
  | Profile | Tools | Use case |
378
393
  |:--------|:-----:|:---------|
379
394
  | `core` | 14 | Memory, session, and optimize core |
380
- | `code` | 20 | Core + code-graph tools |
395
+ | `code` | 24 | Core + code-graph tools + profile switching + bounded loops |
381
396
  | `mesh` | 8 | Mesh-only — multi-machine coordination |
382
- | `full` | 38 | Memory + optimize + evolution + mesh |
383
- | `power` | 50 | Full + administration, lifecycle, and diagnostics |
397
+ | `full` | 42 | Memory + optimize + evolution + mesh + bounded loops |
398
+ | `power` | 54 | Full + administration, lifecycle, and diagnostics |
384
399
  | `whole` | all registered | Every registered MCP tool |
385
400
 
386
401
  **Precedence:** `ALL` > `TOOLS` > `PROFILE` > `default`
@@ -392,10 +407,7 @@ slm mcp
392
407
 
393
408
  For a predictable small surface, set `core` explicitly. Leaving the variable
394
409
  unset retains the compatibility default, whose mesh tools follow the local
395
- mesh setting. The former count-suffixed names (`core14`, `code20`, `mesh8`,
396
- `full38`, `power50`, `whole81`) remain temporary aliases and emit a migration
397
- warning. Unknown names stop startup instead of silently selecting another tool
398
- set.
410
+ mesh setting. Count-suffixed aliases remain for backward compatibility and emit a migration warning: `core14`, `code20`, `code21`, `code24`, `mesh8`, `full38`, `full39`, `full42`, `power50`, `power51`, `power54`, `whole81`, `whole84`. Unknown names stop startup instead of silently selecting another tool set.
399
411
 
400
412
  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).
401
413
 
@@ -455,6 +467,22 @@ not a byte-preserving operation; use it only when you want the MCP server
455
467
  configured. Check the result with `slm codex status`; undo SLM-owned add-ons
456
468
  with `slm codex remove`.
457
469
 
470
+ ## GitHub Copilot integration
471
+
472
+ The shipped installer configures the SuperLocalMemory MCP server and additive
473
+ agent instructions for VS Code with GitHub Copilot:
474
+
475
+ ```bash
476
+ slm connect vscode-copilot --here
477
+ ```
478
+
479
+ Run it from the project root. It semantically merges the SLM server into
480
+ `.vscode/mcp.json` and adds SLM-owned guidance inside
481
+ `.github/copilot-instructions.md`, preserving unrelated servers and existing
482
+ instructions. The generated `copilot-plugin/` source bundle is maintained for
483
+ parity checks, but v3.8.1 does not claim that `slm connect` installs its prompt,
484
+ agent, or hook files.
485
+
458
486
  ---
459
487
 
460
488
  ## Privacy controls and operating modes
@@ -481,6 +509,141 @@ Available controls include local export and erasure commands, hash-chained audit
481
509
 
482
510
  ---
483
511
 
512
+ ## Teams and Enterprise Memory (v3.8.0)
513
+
514
+ 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.
515
+
516
+ ### Users and roles
517
+
518
+ SLM supports three role tiers within a workspace: **admin**, **member**, and **viewer**.
519
+
520
+ | Role | Can read memory | Can write memory | Can manage users/config |
521
+ |------|:---------------:|:----------------:|:-----------------------:|
522
+ | admin | yes | yes | yes |
523
+ | member | yes | yes | no |
524
+ | viewer | yes | no | no |
525
+
526
+ Roles are scoped per workspace (profile). A user may have different roles in different workspaces.
527
+
528
+ ### Workspace isolation
529
+
530
+ Each workspace (profile) is a fully isolated memory namespace. One workspace cannot read another's personal memories. Shared and global scopes are opt-in and still profile-bounded at the authorization layer.
531
+
532
+ ### Login gate
533
+
534
+ Enterprise deployments set `require_login = true` in configuration. With login enabled:
535
+ - Every dashboard and API request requires an authenticated session.
536
+ - First-run creates an admin account with a user-chosen password (no default credentials are shipped).
537
+ - Session cookies use `HttpOnly` with optional `Secure` enforcement.
538
+ - Personal installs run with `require_login = false` (loopback owner is trusted).
539
+
540
+ ```bash
541
+ slm config set security.require_login true # Enable for team/enterprise use
542
+ ```
543
+
544
+ ### Memory scopes
545
+
546
+ | Scope | Who can recall | Set with |
547
+ |-------|---------------|----------|
548
+ | `personal` | Owner profile only (default) | `slm remember "..." --scope personal` |
549
+ | `shared` | Named profiles the owner grants | `slm remember "..." --scope shared --shared-with profile-a,profile-b` |
550
+ | `global` | Any authorized user on this machine | `slm remember "..." --scope global` |
551
+
552
+ Recall is default-deny: shared and global facts are never returned unless the caller explicitly opts in (`--include-shared`, `--include-global`) or the scope policy allows it. See [docs/shared-memory.md](docs/shared-memory.md).
553
+
554
+ ### GDPR and data governance
555
+
556
+ SLM ships built-in controls that support GDPR compliance programs:
557
+
558
+ - **Export** — full profile data export as a structured JSONL bundle
559
+ - **Erasure** — profile deletion removes data from 30+ scoped tables; erasure is logged to the tamper-proof audit chain before any data is deleted
560
+ - **Retention rules** — time-based policies (`indefinite`, `gdpr-30d`, `hipaa-7y`, `custom`) applied per profile
561
+ - **Audit trail** — every store, recall, mutation, and erasure produces a hash-chained audit record
562
+ - **PII redaction** — configurable automatic redaction before memory content crosses trust boundaries
563
+
564
+ These are engineering controls. Compliance depends on deployment configuration, use case, and operator responsibility. See [docs/compliance.md](docs/compliance.md).
565
+
566
+ ### EU AI Act mode verification
567
+
568
+ SLM includes a per-mode EU AI Act self-assessment. The `EUAIActChecker` produces a compliance report for the active operating mode — risk category, whether data stays local, whether generative AI is used, and transparency / human-oversight signals:
569
+
570
+ - **Mode A (Local Guardian)** and **Mode B (Smart Local)** — assessed as compliant: memory processing stays local and uses no generative AI.
571
+ - **Mode C (Provider-assisted)** — flagged non-compliant, because query or enrichment content is sent to a cloud model provider.
572
+
573
+ 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).
574
+
575
+ ### Deployment tiers
576
+
577
+ SLM ships one binary and is configured for the appropriate tier at install or post-install time.
578
+
579
+ | Tier | Login gate | PII redaction | Retention | Audit |
580
+ |------|:---------:|:-------------:|:---------:|:-----:|
581
+ | **Personal** | off | off | off | on |
582
+ | **Enterprise** | on | on | on | on |
583
+
584
+ The installer or `slm reconfigure` sets the tier. Each setting is independently overridable at runtime. Full tier documentation: [docs/deployment-tiers.md](docs/deployment-tiers.md).
585
+
586
+ ### RBAC and teams docs
587
+
588
+ Full reference: [docs/rbac-teams.md](docs/rbac-teams.md) · [docs/deployment-tiers.md](docs/deployment-tiers.md)
589
+
590
+ ---
591
+
592
+ ## Bounded Loops (v3.8.0)
593
+
594
+ A bounded loop terminates only when an **independent gate** passes — a test
595
+ suite exit code, a linter, a JSON-schema check, or an SLM-recall condition.
596
+ The agent's own "I finished" message is recorded as advisory context and never
597
+ used as the termination signal. Every lap is persisted to SLM memory under the
598
+ tag `loop:<name>`, so runs are auditable and resumable across sessions.
599
+
600
+ Three surfaces ship together:
601
+
602
+ | Surface | How you use it |
603
+ |---------|---------------|
604
+ | **CLI** | `slm loop demo` · `slm loop history [--name <n>]` · `slm loop show <run_id>` |
605
+ | **Skill + agent** | `/slm-loop` skill with the `slm-loop-runner` agent — delegate a task that has a checkable acceptance condition |
606
+ | **MCP tools** | `slm_loop_run` · `slm_loop_history` · `slm_loop_show` — call from any IDE or agent (available in the `code` and `full` MCP profiles) |
607
+
608
+ ```bash
609
+ # Run the built-in convergence demo (no API key needed)
610
+ slm loop demo
611
+
612
+ # Inspect recorded runs
613
+ slm loop history --name convergence-demo
614
+ slm loop show <run_id>
615
+ ```
616
+
617
+ Loop laps are stored as ordinary SLM memories and are visible in the dashboard
618
+ under Knowledge Graph and Memories (filter by tag `loop:<name>`) and in the
619
+ Multi-Agent Memory workspace.
620
+
621
+ ---
622
+
623
+ ## Framework Adapters (v3.8.0)
624
+
625
+ SLM ships nine framework adapters under `ide/integrations/`. Each adapter
626
+ wires SLM as the memory and history provider for the respective framework
627
+ without replacing the framework's own agent runtime.
628
+
629
+ | Framework | Directory |
630
+ |-----------|-----------|
631
+ | LangGraph | `ide/integrations/langgraph/` |
632
+ | Semantic Kernel | `ide/integrations/semantic-kernel/` |
633
+ | Microsoft Agent Framework | `ide/integrations/agent-framework/` |
634
+ | LangChain | `ide/integrations/langchain/` |
635
+ | LlamaIndex | `ide/integrations/llamaindex/` |
636
+ | CrewAI | `ide/integrations/crewai/` |
637
+ | AutoGen | `ide/integrations/autogen/` |
638
+ | Google ADK | `ide/integrations/google-adk/` |
639
+ | OpenAI Agents | `ide/integrations/openai-agents/` |
640
+
641
+ Pydantic AI is not included — it does not expose a formal memory interface for
642
+ external providers. Each adapter's `README.md` covers installation and
643
+ configuration for that framework.
644
+
645
+ ---
646
+
484
647
  ## Advanced
485
648
 
486
649
  | Topic | Link |
@@ -495,6 +658,8 @@ Available controls include local export and erasure commands, hash-chained audit
495
658
  | MCP tools reference | [docs/mcp-tools.md](docs/mcp-tools.md) |
496
659
  | Getting started | [docs/getting-started.md](docs/getting-started.md) |
497
660
  | IDE setup (15 configs) | [docs/ide-setup.md](docs/ide-setup.md) |
661
+ | Teams, users, and RBAC | [docs/rbac-teams.md](docs/rbac-teams.md) |
662
+ | Deployment tiers | [docs/deployment-tiers.md](docs/deployment-tiers.md) |
498
663
  | pi.dev integration | [docs/pi-dev-integration.md](docs/pi-dev-integration.md) |
499
664
  | Skill evolution | [docs/skill-evolution.md](docs/skill-evolution.md) |
500
665
  | V2 migration | [docs/migration-from-v2.md](docs/migration-from-v2.md) |
@@ -502,82 +667,19 @@ Available controls include local export and erasure commands, hash-chained audit
502
667
  | Retrieval score contract | [docs/retrieval-score-contract.md](docs/retrieval-score-contract.md) |
503
668
  | Wiki | [github.com/qualixar/superlocalmemory/wiki](https://github.com/qualixar/superlocalmemory/wiki) |
504
669
 
505
- **Web dashboard:**
506
- ```bash
507
- slm dashboard # Opens at http://localhost:8765
508
- ```
509
- The dashboard includes Dashboard, Brain, Knowledge Graph, Memories, Health,
510
- Operations, Entity Explorer, Skill Evolution, Mesh Peers, Settings, and
511
- Optimize workspaces. Features are populated only when their corresponding
512
- runtime capability is enabled and healthy.
513
-
514
- **Release history:**
515
-
516
- | Version | Codename | Key Features |
517
- |---|---|---|
518
- | **v3.6.23** | Cross-platform Patch | Windows doctor/cache stats fixes (#65), neutral SLM hook guidance (#64), pi.dev MCP docs (#31), contributor fixes for dashboard profile path resolution (#63) and tz-naive Langevin maintenance backfill (#66) |
519
- | **v3.6.22** | Stability | backbone.py JSONDecodeError on empty HTTP 200 body (issue #62) — retries 3× then returns "" gracefully; remaining dashboard UI audit: clusters/compliance/entities r.ok guards, math-health status badge colors |
520
- | **v3.6.21** | Dashboard Audit | Full UI audit across all 7 dashboard tabs — auth fix for mesh panel (issue #60 frontend), Quick Store endpoint, timeline endpoint, r.ok guards, SSE \r fix, event delegation for lazy tabs, optimize toggle revert |
521
- | **v3.6.20** | Mesh Auth | Remote mesh auth fix (issue #60) — `_get_broker` now accepts Bearer + X-Mesh-Secret from non-loopback callers; config settings preservation (AIDEV-86) |
522
- | **v3.6.17** | Community | 8 contributor PRs (observability events, marker-bounded adapter writes, daemon port discovery, anthropic `api_base`, OpenMP workers, atomic-write rehash, `_jl` sentinel, LFS pointer); dashboard-feedback fix (#53/#59); env-tunable SQLite knobs + idle backoff; remote LLM test-probe (#40) |
523
- | **v3.6.16** | Docs | Corrected Claude Code plugin install — adds the required `/plugin marketplace add` step; clarifies plugin vs pip/npm delivery |
524
- | **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 |
525
- | **v3.6.14** | Plugin-native | Claude Code Plugin (WP-06), MCP profiles (WP-01), IDE connect (WP-08), asset consolidation, UI polish (WP-12) |
526
- | **v3.6.x** | Optimize Everywhere / Distributed-ready | Three surfaces (proxy/MCP/skill), `SLM_REMOTE=1` LAN mode, remote dashboard, custom LLM endpoints |
527
- | **v3.5.0** | Historical scale work | Early CozoDB/LanceDB projection paths, retrieval additions, Core Memory Block, context injection v2, score normalization |
528
- | **v3.4.x** | Scale-Ready (foundation) | Tiered storage, graph pruning, Hopfield channel, LightGBM ranking, mDNS mesh discovery |
529
- | **v3.3.x** | Foundation | BM25Plus, Fisher-Rao, sqlite-vec, RRF fusion, cross-encoder rerank. 3 published papers |
530
-
531
- ---
670
+ Open the web dashboard with `slm dashboard`; workspaces appear only when their
671
+ runtime capability is enabled and healthy. See [CHANGELOG.md](CHANGELOG.md) for
672
+ the complete release history.
532
673
 
533
674
  ## Research Papers
534
675
 
535
- SuperLocalMemory is backed by three published research papers (arXiv preprints + Zenodo DOIs). These are preprints — not conference-accepted or journal-published yet.
536
-
537
- ### Paper 3: The Living Brain (V3.3)
538
- > **SuperLocalMemory V3.3: The Living Brain — Biologically-Inspired Forgetting, Cognitive Quantization, and Multi-Channel Retrieval for Zero-LLM Agent Memory Systems**
539
- > Varun Pratap Bhardwaj (2026)
540
- > [arXiv:2604.04514](https://arxiv.org/abs/2604.04514) · [Zenodo DOI: 10.5281/zenodo.19435120](https://zenodo.org/records/19435120)
541
-
542
- ### Paper 2: Information-Geometric Foundations (V3)
543
- > **SuperLocalMemory V3: Information-Geometric Foundations for Zero-LLM Enterprise Agent Memory**
544
- > Varun Pratap Bhardwaj (2026)
545
- > [arXiv:2603.14588](https://arxiv.org/abs/2603.14588) · [Zenodo DOI: 10.5281/zenodo.19038659](https://zenodo.org/records/19038659)
546
-
547
- ### Paper 1: Trust & Behavioral Foundations (V2)
548
- > **SuperLocalMemory: A Structured Local Memory Architecture for Persistent AI Agent Context**
549
- > Varun Pratap Bhardwaj (2026)
550
- > [arXiv:2603.02240](https://arxiv.org/abs/2603.02240) · [Zenodo DOI: 10.5281/zenodo.18709670](https://zenodo.org/records/18709670)
551
-
552
- ### Cite This Work
553
-
554
- ```bibtex
555
- @article{bhardwaj2026slmv33,
556
- title={SuperLocalMemory V3.3: The Living Brain — Biologically-Inspired
557
- Forgetting, Cognitive Quantization, and Multi-Channel Retrieval
558
- for Zero-LLM Agent Memory Systems},
559
- author={Bhardwaj, Varun Pratap},
560
- journal={arXiv preprint arXiv:2604.04514},
561
- year={2026},
562
- url={https://arxiv.org/abs/2604.04514}
563
- }
564
-
565
- @article{bhardwaj2026slmv3,
566
- title={Information-Geometric Foundations for Zero-LLM Enterprise Agent Memory},
567
- author={Bhardwaj, Varun Pratap},
568
- journal={arXiv preprint arXiv:2603.14588},
569
- year={2026}
570
- }
571
-
572
- @article{bhardwaj2026slm,
573
- title={A Structured Local Memory Architecture for Persistent AI Agent Context},
574
- author={Bhardwaj, Varun Pratap},
575
- journal={arXiv preprint arXiv:2603.02240},
576
- year={2026}
577
- }
578
- ```
676
+ SuperLocalMemory is backed by three preprints by Varun Pratap Bhardwaj (2026):
579
677
 
580
- ---
678
+ - **The Living Brain (V3.3):** [arXiv:2604.04514](https://arxiv.org/abs/2604.04514) · [Zenodo 19435120](https://zenodo.org/records/19435120)
679
+ - **Information-Geometric Foundations (V3):** [arXiv:2603.14588](https://arxiv.org/abs/2603.14588) · [Zenodo 19038659](https://zenodo.org/records/19038659)
680
+ - **Trust & Behavioral Foundations (V2):** [arXiv:2603.02240](https://arxiv.org/abs/2603.02240) · [Zenodo 18709670](https://zenodo.org/records/18709670)
681
+
682
+ Use the citation metadata on the linked arXiv or Zenodo records.
581
683
 
582
684
  ## Support / License / Qualixar
583
685
 
@@ -593,34 +695,14 @@ Part of [Qualixar](https://qualixar.com) · Author: [Varun Pratap Bhardwaj](http
593
695
 
594
696
  ### Acknowledgments
595
697
 
596
- - **[Everything Claude Code (ECC)](https://github.com/affaan-m/everything-claude-code)** SLM's skill observation patterns were inspired by ECC's continuous learning architecture. SLM supports direct ingestion of ECC observations via `slm ingest --source ecc`. We recommend ECC for Claude Code users who want the deepest learning experience alongside SLM.
597
- - **[HKUDS/OpenSpace](https://github.com/HKUDS/OpenSpace)** The skill evolution research in SLM draws from the EvoSkills co-evolutionary verification concepts (arXiv:2604.01687). We adopted their 3-trigger evolution system and anti-loop guard patterns.
698
+ - **[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`.
699
+ - **[HKUDS/OpenSpace](https://github.com/HKUDS/OpenSpace)** informed the skill-evolution verification design (arXiv:2604.01687).
598
700
 
599
701
  ### Qualixar AI Agent Reliability Platform
600
702
 
601
- Qualixar is building the open-source infrastructure for AI agent reliability engineering. Seven products, one coherent platform:
602
-
603
- | Product | Purpose | Install |
604
- |---------|---------|---------|
605
- | **[SuperLocalMemory](https://github.com/qualixar/superlocalmemory)** | Persistent memory + learning | `npm install -g superlocalmemory` |
606
- | **[Qualixar OS](https://github.com/qualixar/qualixar-os)** | Universal agent runtime | `npx qualixar-os` |
607
- | **[SLM Mesh](https://github.com/qualixar/slm-mesh)** | P2P coordination across sessions | `npm i slm-mesh` |
608
- | **[SLM MCP Hub](https://github.com/qualixar/slm-mcp-hub)** | Federate 430+ MCP tools | `pip install slm-mcp-hub` |
609
- | **[AgentAssay](https://github.com/qualixar/agentassay)** | Token-efficient agent testing | `pip install agentassay` |
610
- | **[AgentAssert](https://github.com/qualixar/agentassert-abc)** | Behavioral contracts + drift detection | `pip install agentassert-abc` |
611
- | **[SkillFortify](https://github.com/qualixar/skillfortify)** | Formal verification for agent skills | `pip install skillfortify` |
612
-
613
- **Local-first architecture. Deployment-specific privacy and compliance controls.**
614
-
615
- Start here → **[qualixar.com](https://qualixar.com)** · [All papers on Qualixar HuggingFace](https://huggingface.co/Qualixar)
616
-
617
- ---
618
-
619
- <p align="center">
620
- <sub>Built with mathematical rigor. Not in the race — here to help everyone build better AI memory systems.</sub>
621
- </p>
622
-
623
- ---
703
+ Qualixar builds open-source infrastructure for AI reliability engineering.
704
+ Start at **[qualixar.com](https://qualixar.com)** or browse the
705
+ [Qualixar research archive](https://huggingface.co/Qualixar).
624
706
 
625
707
  ## Star This Project
626
708