superlocalmemory 3.8.3 → 3.8.6

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 (125) hide show
  1. package/CHANGELOG.md +76 -0
  2. package/README.md +3 -2
  3. package/package.json +1 -1
  4. package/plugin/.claude-plugin/plugin.json +1 -1
  5. package/plugin/CLAUDE.md +3 -3
  6. package/plugin/agents/slm-governance-advisor.md +1 -1
  7. package/plugin/agents/slm-loop-runner.md +1 -1
  8. package/plugin/agents/slm-memory-advisor.md +1 -1
  9. package/plugin/agents/slm-optimize-advisor.md +1 -1
  10. package/plugin/requirements.txt +1 -1
  11. package/plugin/skills/slm-cache/SKILL.md +1 -1
  12. package/plugin/skills/slm-compress/SKILL.md +1 -1
  13. package/plugin/skills/slm-governance/SKILL.md +1 -1
  14. package/plugin/skills/slm-graph/SKILL.md +1 -1
  15. package/plugin/skills/slm-loop/SKILL.md +1 -1
  16. package/plugin/skills/slm-mesh/SKILL.md +1 -1
  17. package/plugin/skills/slm-profile/SKILL.md +1 -1
  18. package/plugin/skills/slm-recall/SKILL.md +1 -1
  19. package/plugin/skills/slm-remember/SKILL.md +1 -1
  20. package/plugin/skills/slm-scope/SKILL.md +1 -1
  21. package/plugin/skills/slm-session/SKILL.md +1 -1
  22. package/plugin/skills/slm-status/SKILL.md +1 -1
  23. package/plugin-src/rules/AGENTS.md +1 -1
  24. package/plugin-src/skills/slm-cache/SKILL.md +1 -1
  25. package/plugin-src/skills/slm-compress/SKILL.md +1 -1
  26. package/plugin-src/skills/slm-graph/SKILL.md +1 -1
  27. package/plugin-src/skills/slm-recall/SKILL.md +1 -1
  28. package/plugin-src/skills/slm-remember/SKILL.md +1 -1
  29. package/plugin-src/skills/slm-session/SKILL.md +1 -1
  30. package/plugin-src/skills/slm-status/SKILL.md +1 -1
  31. package/pyproject.toml +9 -4
  32. package/src/superlocalmemory/__init__.py +1 -1
  33. package/src/superlocalmemory/access/rbac.py +68 -76
  34. package/src/superlocalmemory/cli/commands.py +158 -404
  35. package/src/superlocalmemory/cli/ingest_cmd.py +11 -1
  36. package/src/superlocalmemory/cli/main.py +30 -0
  37. package/src/superlocalmemory/cli/pending_store.py +39 -14
  38. package/src/superlocalmemory/core/backend_orchestrator.py +93 -0
  39. package/src/superlocalmemory/core/component_registry.py +4 -2
  40. package/src/superlocalmemory/core/config.py +78 -0
  41. package/src/superlocalmemory/core/consolidation_engine.py +79 -73
  42. package/src/superlocalmemory/core/embeddings.py +33 -6
  43. package/src/superlocalmemory/core/engine.py +186 -60
  44. package/src/superlocalmemory/core/engine_ingestion.py +150 -63
  45. package/src/superlocalmemory/core/fact_consolidator.py +148 -30
  46. package/src/superlocalmemory/core/graph_pruner.py +436 -39
  47. package/src/superlocalmemory/core/ingestion_command.py +273 -32
  48. package/src/superlocalmemory/core/maintenance_scheduler.py +61 -1
  49. package/src/superlocalmemory/core/mutations.py +32 -10
  50. package/src/superlocalmemory/core/recall_pipeline.py +111 -74
  51. package/src/superlocalmemory/core/registry.py +5 -1
  52. package/src/superlocalmemory/core/remember_admission.py +152 -0
  53. package/src/superlocalmemory/core/remember_runtime.py +712 -0
  54. package/src/superlocalmemory/core/remote_mode.py +3 -1
  55. package/src/superlocalmemory/core/scale_engine.py +41 -18
  56. package/src/superlocalmemory/core/store_pipeline.py +18 -4
  57. package/src/superlocalmemory/encoding/entity_resolver.py +18 -11
  58. package/src/superlocalmemory/graph/cozo_backend.py +5 -5
  59. package/src/superlocalmemory/hooks/_outcome_common.py +9 -2
  60. package/src/superlocalmemory/hooks/adapter_base.py +58 -44
  61. package/src/superlocalmemory/hooks/ide_connector.py +26 -8
  62. package/src/superlocalmemory/hooks/portable_kit.py +105 -9
  63. package/src/superlocalmemory/hooks/prewarm_auth.py +21 -2
  64. package/src/superlocalmemory/infra/auth_middleware.py +3 -1
  65. package/src/superlocalmemory/infra/cloud_backup.py +26 -27
  66. package/src/superlocalmemory/infra/event_bus.py +250 -88
  67. package/src/superlocalmemory/learning/bandit.py +50 -1
  68. package/src/superlocalmemory/learning/consolidation_cycle.py +33 -16
  69. package/src/superlocalmemory/learning/entity_compiler.py +148 -132
  70. package/src/superlocalmemory/learning/memory_merge.py +97 -82
  71. package/src/superlocalmemory/learning/reward_archive.py +98 -90
  72. package/src/superlocalmemory/learning/reward_boost.py +40 -30
  73. package/src/superlocalmemory/learning/source_quality.py +38 -35
  74. package/src/superlocalmemory/mcp/_daemon_proxy.py +38 -15
  75. package/src/superlocalmemory/mcp/http_transport.py +335 -3
  76. package/src/superlocalmemory/mcp/tools_active.py +4 -41
  77. package/src/superlocalmemory/mcp/tools_core.py +26 -87
  78. package/src/superlocalmemory/mcp/tools_evolution.py +5 -10
  79. package/src/superlocalmemory/optimize/proxy/capture.py +196 -8
  80. package/src/superlocalmemory/retrieval/engine.py +15 -4
  81. package/src/superlocalmemory/retrieval/entity_channel.py +25 -1
  82. package/src/superlocalmemory/retrieval/reranker.py +130 -22
  83. package/src/superlocalmemory/retrieval/spreading_activation.py +20 -12
  84. package/src/superlocalmemory/retrieval/vector_store.py +84 -69
  85. package/src/superlocalmemory/server/loopback.py +85 -0
  86. package/src/superlocalmemory/server/origin.py +9 -4
  87. package/src/superlocalmemory/server/profile_runtime.py +14 -0
  88. package/src/superlocalmemory/server/routes/abstraction.py +2 -4
  89. package/src/superlocalmemory/server/routes/agents.py +3 -5
  90. package/src/superlocalmemory/server/routes/backup.py +6 -2
  91. package/src/superlocalmemory/server/routes/behavioral.py +11 -25
  92. package/src/superlocalmemory/server/routes/brain.py +6 -9
  93. package/src/superlocalmemory/server/routes/compliance.py +20 -23
  94. package/src/superlocalmemory/server/routes/config_api.py +83 -0
  95. package/src/superlocalmemory/server/routes/entity.py +3 -7
  96. package/src/superlocalmemory/server/routes/evolution.py +3 -5
  97. package/src/superlocalmemory/server/routes/helpers.py +57 -25
  98. package/src/superlocalmemory/server/routes/insights.py +2 -4
  99. package/src/superlocalmemory/server/routes/learning.py +2 -5
  100. package/src/superlocalmemory/server/routes/lifecycle.py +2 -4
  101. package/src/superlocalmemory/server/routes/memories.py +119 -98
  102. package/src/superlocalmemory/server/routes/mesh.py +7 -2
  103. package/src/superlocalmemory/server/routes/profiles.py +20 -21
  104. package/src/superlocalmemory/server/routes/rbac.py +0 -1
  105. package/src/superlocalmemory/server/routes/tiers.py +28 -35
  106. package/src/superlocalmemory/server/routes/timeline.py +2 -4
  107. package/src/superlocalmemory/server/routes/v3_api.py +85 -93
  108. package/src/superlocalmemory/server/unified_daemon.py +400 -140
  109. package/src/superlocalmemory/server/write_identity.py +22 -4
  110. package/src/superlocalmemory/storage/admission_codec.py +119 -0
  111. package/src/superlocalmemory/storage/admission_journal.py +728 -0
  112. package/src/superlocalmemory/storage/database.py +168 -19
  113. package/src/superlocalmemory/storage/deferred_writes.py +209 -0
  114. package/src/superlocalmemory/storage/embedding_migrator.py +19 -0
  115. package/src/superlocalmemory/storage/memory_write.py +115 -0
  116. package/src/superlocalmemory/storage/migration_runner.py +44 -0
  117. package/src/superlocalmemory/storage/migrations/M028_fact_entity_associations.py +113 -78
  118. package/src/superlocalmemory/storage/migrations/M031_dead_letter_operations.py +80 -0
  119. package/src/superlocalmemory/storage/migrations/M032_write_coordinator_admission.py +188 -0
  120. package/src/superlocalmemory/storage/read_connection.py +115 -0
  121. package/src/superlocalmemory/storage/write_coordinator.py +756 -0
  122. package/src/superlocalmemory/storage/write_lock.py +88 -0
  123. package/src/superlocalmemory/ui/index.html +1 -1
  124. package/src/superlocalmemory/ui/js/auto-settings.js +14 -1
  125. package/src/superlocalmemory/ui/js/od-settings.js +9 -3
package/CHANGELOG.md CHANGED
@@ -5,6 +5,82 @@ 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.6] - 2026-07-27 — Serialized writes and read-only recall
9
+
10
+ ### Fixed
11
+ - Remember requests and dashboard fact mutations now enter one bounded,
12
+ priority-aware coordinator. Durable idempotency receipts make retries safe,
13
+ while accepted admissions survive daemon interruption and replay once.
14
+ - Recall paths now use query-only SQLite connections and no longer update
15
+ diagnostics, bandit state, access counters, or other canonical tables.
16
+ - Dashboard, CLI, and MCP mutations use the running daemon instead of opening
17
+ competing writable engines. When the daemon is unavailable, writes fail
18
+ explicitly instead of silently switching to another database path.
19
+ - Mode and profile changes rebind the canonical writer before the new runtime
20
+ is exposed, and roll back cleanly when persistence fails.
21
+ - Stuck background enrichment work is moved to a bounded failed/dead-letter
22
+ state instead of retrying forever (#77).
23
+ - Daemon shutdown now closes deferred writers and terminates embedding and
24
+ reranker workers within bounded time, including Mode B container deployments
25
+ (#91).
26
+ - CozoDB now installs on Linux ARM64 by using the current embedded wheel series.
27
+
28
+ ### Added
29
+ - A separate authenticated admission journal protects accepted remember
30
+ requests before canonical SQLite work begins.
31
+ - Runtime readiness now distinguishes full retrieval readiness from degraded
32
+ or warming operation without breaking existing status clients.
33
+ - Concurrency regression coverage for duplicate remember requests, foreground
34
+ priority, read-only recall, legacy writer coexistence, mode/profile isolation,
35
+ and bounded child-process shutdown.
36
+
37
+ ### Notes
38
+ - Upgrades apply automatically on daemon start; no manual migration is needed.
39
+ - Existing memory databases are preserved. The new coordinator ledger and
40
+ admission journal are additive.
41
+
42
+ ## [3.8.5] - 2026-07-26 — Reliable, full-quality recall
43
+
44
+ ### Fixed
45
+ - Recall now consistently uses full-quality relevance ranking. The ranking model
46
+ warms up in the background with automatic retries, so recall no longer quietly
47
+ falls back to basic scoring when the model is slow to load, is recycled, or is
48
+ restarted. Full ranking resumes on its own within seconds if it is ever interrupted.
49
+ - The first recall after startup is now fast. The memory graph is fully warmed in
50
+ the background before queries arrive, instead of the first query paying a
51
+ multi-second load — and the graph no longer reloads on the query path during
52
+ normal use, so recall latency stays consistent.
53
+ - Recall stays responsive under heavy concurrent load. A startup contention issue
54
+ that could make the first queries slow on busy multi-agent systems has been removed.
55
+ - The internal recall cache is now cleaned up automatically. It could previously
56
+ grow without bound over months of use; on upgrade, stale entries are compacted away.
57
+
58
+ ### Added
59
+ - Automatic scale-up for very large memory graphs. A database that grows past
60
+ millions of connections switches to a high-performance graph backend on its own;
61
+ smaller databases stay on the fast built-in engine, which is quicker for them. The
62
+ switch runs in the background, is verified for correctness before it takes effect,
63
+ and falls back safely to the built-in engine if it cannot complete.
64
+
65
+ ### Notes
66
+ - Upgrades apply automatically on daemon start — no manual migration command needed.
67
+ - Recommended upgrade for all 3.8.x users.
68
+
69
+ ## [3.8.4] - 2026-07-26
70
+
71
+ ### Fixed
72
+ - Frequent "database is locked" errors under heavy or concurrent multi-agent use.
73
+ - MCP connections dropping when idle; connections now stay stable and recover cleanly.
74
+ - A just-saved memory is now instantly findable by meaning, not only by keyword (on a warm instance).
75
+ - HTTP write endpoints (dashboard Save / API) were rejected on some networked/containerized setups (#90).
76
+ - Background ingestion operations that failed no longer retry forever; failures move to a dead-letter queue (#77).
77
+ - Stale agent locks are cleared on restart; daemon shutdown no longer logs spurious import errors; the dashboard UI serves reliably on restricted filesystems.
78
+ ### Added
79
+ - A choice of connection transport (stdio or HTTP) when connecting IDEs.
80
+ - Configurable graph-memory pruning (max edges per node, minimum edge weight) (#84).
81
+ ### Notes
82
+ - Upgrades apply automatically on daemon start — no manual migration command needed.
83
+
8
84
  ## [3.8.3] - 2026-07-24 — Recall stays responsive under heavy load
9
85
 
10
86
  ### Fixed
package/README.md CHANGED
@@ -5,14 +5,15 @@
5
5
  </picture>
6
6
  </p>
7
7
 
8
- <h1 align="center">SuperLocalMemory V3.8.3</h1>
8
+ <h1 align="center">SuperLocalMemory V3.8.6</h1>
9
9
  <p align="center"><strong>Enterprise-grade, local-first memory for AI agents and teams.</strong><br/>
10
10
  <em>A persistent, auditable long-term brain for your agents that runs on your own infrastructure — with multi-workspace isolation, role-based access, and GDPR + EU AI Act governance controls built in.</em></p>
11
- <p align="center"><code>v3.8.3</code> — one control plane: auditable retrieval · multi-scope memory (personal / shared / global) · Cache · Compress · trusted-peer Mesh · bounded loops — across CLI, MCP, dashboard, the <strong>Claude plugin</strong>, the <strong>Codex add-on</strong>, and documented IDE integrations.<br/>
11
+ <p align="center"><code>v3.8.6</code> — one control plane: auditable retrieval · multi-scope memory (personal / shared / global) · Cache · Compress · trusted-peer Mesh · bounded loops — across CLI, MCP, dashboard, the <strong>Claude plugin</strong>, the <strong>Codex add-on</strong>, and documented IDE integrations.<br/>
12
12
  Proxy: <code>slm wrap claude</code> &nbsp;·&nbsp; MCP: add <code>slm_compress</code> to your config &nbsp;·&nbsp; Skill: zero-config</p>
13
13
  <p align="center"><strong>3 public research preprints</strong> (arXiv + Zenodo archives) · <a href="https://arxiv.org/abs/2603.02240">arXiv:2603.02240</a> · <a href="https://arxiv.org/abs/2603.14588">arXiv:2603.14588</a> · <a href="https://arxiv.org/abs/2604.04514">arXiv:2604.04514</a></p>
14
14
 
15
15
  <p align="center">
16
+ <a href="CHANGELOG.md"><img src="https://img.shields.io/badge/v3.8.6-Current_Release-2ea44f?style=for-the-badge&logo=checkmarx&logoColor=white" alt="v3.8.6 — Current Release"/></a>
16
17
  <a href="https://arxiv.org/abs/2603.14588"><img src="https://img.shields.io/badge/arXiv-2603.14588-b31b1b?style=for-the-badge&logo=arxiv&logoColor=white" alt="arXiv Paper"/></a>
17
18
  <a href="#three-surfaces-proxy--mcp-tools--skill"><img src="https://img.shields.io/badge/Proxy_|_MCP_|_Skill-22c55e?style=for-the-badge" alt="Three Surfaces: Proxy, MCP Tools, Skill"/></a>
18
19
  <a href="https://pypi.org/project/superlocalmemory/"><img src="https://img.shields.io/pypi/v/superlocalmemory?style=for-the-badge&logo=pypi&logoColor=white" alt="PyPI"/></a>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "superlocalmemory",
3
- "version": "3.8.3",
3
+ "version": "3.8.6",
4
4
  "description": "Local-first agent memory with MCP and an agent-native CLI. Documented clients include Claude Code, Cursor, and Windsurf.",
5
5
  "keywords": [
6
6
  "ai-memory",
@@ -15,5 +15,5 @@
15
15
  "mcpServers": "./.mcp.json",
16
16
  "name": "superlocalmemory",
17
17
  "repository": "https://github.com/qualixar/superlocalmemory",
18
- "version": "3.8.3"
18
+ "version": "3.8.6"
19
19
  }
package/plugin/CLAUDE.md CHANGED
@@ -1,4 +1,4 @@
1
- <!-- BEGIN SuperLocalMemory v3.8.3 -->
1
+ <!-- BEGIN SuperLocalMemory v3.8.6 -->
2
2
 
3
3
  ## SuperLocalMemory (SLM) — Agent Rules
4
4
 
@@ -39,6 +39,6 @@ slm-recall · slm-remember · slm-session · slm-status · slm-cache · slm-comp
39
39
  ### Subagents
40
40
  slm-memory-advisor (memory decisions, session hygiene, scope/profile guidance) · slm-optimize-advisor (context compression + KV cache) · slm-governance-advisor (scope/roles/compliance/GDPR)
41
41
 
42
- <!-- END SuperLocalMemory v3.8.3 -->
42
+ <!-- END SuperLocalMemory v3.8.6 -->
43
43
 
44
- SuperLocalMemory v3.8.3 · Qualixar · AGPL-3.0-or-later
44
+ SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later
@@ -77,4 +77,4 @@ slm-scope · slm-governance · slm-profile · slm-remember · slm-recall
77
77
  # What NOT to do
78
78
  Never session_init twice; never forget without dry-run preview; never store secrets; never bypass role checks; never claim an erasure succeeded without verifying via recall.
79
79
 
80
- SuperLocalMemory v3.8.3 · Qualixar · AGPL-3.0-or-later
80
+ SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later
@@ -68,4 +68,4 @@ assessment. The gate is the authority.
68
68
 
69
69
  ---
70
70
 
71
- SuperLocalMemory v3.8.3 · Qualixar · AGPL-3.0-or-later
71
+ SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later
@@ -46,4 +46,4 @@ slm-recall · slm-remember · slm-session · slm-scope · slm-profile · slm-gov
46
46
  # What NOT to do
47
47
  Never session_init twice; never forget dry_run=False without reporting preview; never dump a whole file into remember; never invent a memory; never claim "saved" without success:true / clean CLI exit; never bypass scope or governance restrictions.
48
48
 
49
- SuperLocalMemory v3.8.3 · Qualixar · AGPL-3.0-or-later
49
+ SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later
@@ -41,4 +41,4 @@ slm-compress · slm-cache · slm-status · slm-profile
41
41
  # What NOT to do
42
42
  Never compress code-for-edit/JSON-to-parse/<500 chars; never store secrets/ccr_ids; never let optimize failure block/alter the task; never claim a specific savings %; never carry ccr_ids across profile switches.
43
43
 
44
- SuperLocalMemory v3.8.3 · Qualixar · AGPL-3.0-or-later
44
+ SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later
@@ -1 +1 @@
1
- superlocalmemory==3.8.3
1
+ superlocalmemory==3.8.6
@@ -145,4 +145,4 @@ These subcommands control daemon-level cache settings. They do not read or write
145
145
 
146
146
  ---
147
147
 
148
- SuperLocalMemory v3.8.3 · Qualixar · AGPL-3.0-or-later
148
+ SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later
@@ -147,4 +147,4 @@ Content over 1 MB (1 000 000 bytes UTF-8) is processed but `reversible` is force
147
147
 
148
148
  ---
149
149
 
150
- SuperLocalMemory v3.8.3 · Qualixar · AGPL-3.0-or-later
150
+ SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later
@@ -245,4 +245,4 @@ Before running any destructive operation (`forget`, `compact_memories`):
245
245
 
246
246
  ---
247
247
 
248
- *SuperLocalMemory v3.8.3 · Qualixar · AGPL-3.0-or-later*
248
+ *SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later*
@@ -311,4 +311,4 @@ profile. See `slm-profile` for the full profile switching workflow.
311
311
 
312
312
  ---
313
313
 
314
- SuperLocalMemory v3.8.3 · Qualixar · AGPL-3.0-or-later
314
+ SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later
@@ -96,4 +96,4 @@ paused, name the approval needed; when errored, quote the short detail.
96
96
 
97
97
  ---
98
98
 
99
- SuperLocalMemory v3.8.3 · Qualixar · AGPL-3.0-or-later
99
+ SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later
@@ -279,4 +279,4 @@ mesh availability.
279
279
 
280
280
  ---
281
281
 
282
- *SuperLocalMemory v3.8.3 · Qualixar · AGPL-3.0-or-later*
282
+ *SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later*
@@ -145,4 +145,4 @@ Name them differently in your MCP config (e.g. `superlocalmemory-personal` and
145
145
 
146
146
  ---
147
147
 
148
- *SuperLocalMemory v3.8.3 · Qualixar · AGPL-3.0-or-later*
148
+ *SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later*
@@ -236,4 +236,4 @@ before recalling, then switch back. See `slm-profile` for workspace switching.
236
236
 
237
237
  ---
238
238
 
239
- *SuperLocalMemory v3.8.3 · Qualixar · AGPL-3.0-or-later*
239
+ *SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later*
@@ -238,4 +238,4 @@ different workspace, use `switch_profile` first. See `slm-profile`.
238
238
 
239
239
  ---
240
240
 
241
- *SuperLocalMemory v3.8.3 · Qualixar · AGPL-3.0-or-later*
241
+ *SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later*
@@ -173,4 +173,4 @@ to review the impact. See `slm-remember` for the full deletion discipline.
173
173
 
174
174
  ---
175
175
 
176
- *SuperLocalMemory v3.8.3 · Qualixar · AGPL-3.0-or-later*
176
+ *SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later*
@@ -227,4 +227,4 @@ explicitly and call `recall` with `include_global`/`include_shared` after
227
227
 
228
228
  ---
229
229
 
230
- *SuperLocalMemory v3.8.3 · Qualixar · AGPL-3.0-or-later*
230
+ *SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later*
@@ -163,4 +163,4 @@ multi-profile setup. To switch the active profile, see `slm-profile`.
163
163
 
164
164
  ---
165
165
 
166
- SuperLocalMemory v3.8.3 · Qualixar · AGPL-3.0-or-later
166
+ SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later
@@ -128,4 +128,4 @@ When the SLM MCP server is unavailable, use these CLI equivalents:
128
128
  - **slm-optimize-advisor** — context compression and KV cache
129
129
  - **slm-governance-advisor** — scope/role compliance, retention policies, GDPR
130
130
 
131
- SuperLocalMemory v3.8.3 · Qualixar · AGPL-3.0-or-later
131
+ SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later
@@ -145,4 +145,4 @@ These subcommands control daemon-level cache settings. They do not read or write
145
145
 
146
146
  ---
147
147
 
148
- SuperLocalMemory v3.8.3 · Qualixar · AGPL-3.0-or-later
148
+ SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later
@@ -147,4 +147,4 @@ Content over 1 MB (1 000 000 bytes UTF-8) is processed but `reversible` is force
147
147
 
148
148
  ---
149
149
 
150
- SuperLocalMemory v3.8.3 · Qualixar · AGPL-3.0-or-later
150
+ SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later
@@ -311,4 +311,4 @@ profile. See `slm-profile` for the full profile switching workflow.
311
311
 
312
312
  ---
313
313
 
314
- SuperLocalMemory v3.8.3 · Qualixar · AGPL-3.0-or-later
314
+ SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later
@@ -236,4 +236,4 @@ before recalling, then switch back. See `slm-profile` for workspace switching.
236
236
 
237
237
  ---
238
238
 
239
- *SuperLocalMemory v3.8.3 · Qualixar · AGPL-3.0-or-later*
239
+ *SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later*
@@ -238,4 +238,4 @@ different workspace, use `switch_profile` first. See `slm-profile`.
238
238
 
239
239
  ---
240
240
 
241
- *SuperLocalMemory v3.8.3 · Qualixar · AGPL-3.0-or-later*
241
+ *SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later*
@@ -227,4 +227,4 @@ explicitly and call `recall` with `include_global`/`include_shared` after
227
227
 
228
228
  ---
229
229
 
230
- *SuperLocalMemory v3.8.3 · Qualixar · AGPL-3.0-or-later*
230
+ *SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later*
@@ -163,4 +163,4 @@ multi-profile setup. To switch the active profile, see `slm-profile`.
163
163
 
164
164
  ---
165
165
 
166
- SuperLocalMemory v3.8.3 · Qualixar · AGPL-3.0-or-later
166
+ SuperLocalMemory v3.8.6 · Qualixar · AGPL-3.0-or-later
package/pyproject.toml CHANGED
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "superlocalmemory"
3
- version = "3.8.3"
3
+ version = "3.8.6"
4
4
  description = "Local-first agent memory with auditable hybrid retrieval"
5
5
  readme = "README.md"
6
6
  license = "AGPL-3.0-or-later"
@@ -59,6 +59,10 @@ dependencies = [
59
59
  "psutil==7.2.2",
60
60
  "structlog==25.5.0",
61
61
  "portalocker==3.2.0",
62
+ # Capture-file ACLs are applied through the verified Windows file handle.
63
+ # Keep this direct: portalocker also needs pywin32 today, but capture must
64
+ # not depend on that transitive implementation detail.
65
+ "pywin32==311; sys_platform == 'win32'",
62
66
  "cryptography==48.0.1",
63
67
  # Semantic search + cross-encoder reranker. Do NOT use
64
68
  # sentence-transformers[onnx] — its extras pull optimum which
@@ -78,7 +82,7 @@ dependencies = [
78
82
  # until `slm db scale prepare -> verify -> promote` proves parity with
79
83
  # canonical SQLite; dependency installation never migrates user data.
80
84
  "lancedb==0.30.2",
81
- "pycozo[embedded]==0.3.0",
85
+ "pycozo[embedded]==0.7.6",
82
86
  # v3.6.10: LLMLingua-2 prose compression (aggressive mode, opt-in at runtime).
83
87
  # Hard dependency so `pip install superlocalmemory` ships compression-ready;
84
88
  # the ~560MB model downloads on first setup/warmup (fail-open). Verified the
@@ -117,13 +121,13 @@ lancedb = [
117
121
  "lancedb==0.30.2",
118
122
  ]
119
123
  cozo = [
120
- "pycozo[embedded]==0.3.0",
124
+ "pycozo[embedded]==0.7.6",
121
125
  ]
122
126
  # Backwards-compatible explicit install target for automation and docs. The
123
127
  # packages are also base dependencies from v3.7 onward.
124
128
  scale = [
125
129
  "lancedb==0.30.2",
126
- "pycozo[embedded]==0.3.0",
130
+ "pycozo[embedded]==0.7.6",
127
131
  ]
128
132
  ingestion = [
129
133
  "keyring>=25.0.0",
@@ -227,4 +231,5 @@ dev = [
227
231
  "pytest>=9.0.2",
228
232
  "pytest-asyncio>=0.21",
229
233
  "twine>=6.2.0",
234
+ "wheel==0.46.3",
230
235
  ]
@@ -32,7 +32,7 @@ if "OMP_NUM_THREADS" not in os.environ:
32
32
  os.environ["OMP_NUM_THREADS"] = "2"
33
33
  # ---------------------------------------------------------------------------
34
34
 
35
- __version__ = "3.8.3"
35
+ __version__ = "3.8.6"
36
36
 
37
37
  _REQUIRED_VERSIONS = {
38
38
  "sentence_transformers": "5.3.0",