superlocalmemory 3.4.55 → 3.4.56

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "superlocalmemory",
3
- "version": "3.4.55",
3
+ "version": "3.4.56",
4
4
  "description": "Information-geometric agent memory with mathematical guarantees. 4-channel retrieval, Fisher-Rao similarity, zero-LLM mode, EU AI Act compliant. Works with Claude, Cursor, Windsurf, and 17+ AI tools.",
5
5
  "keywords": [
6
6
  "ai-memory",
package/pyproject.toml CHANGED
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "superlocalmemory"
3
- version = "3.4.55"
3
+ version = "3.4.56"
4
4
  description = "Information-geometric agent memory with mathematical guarantees"
5
5
  readme = "README.md"
6
6
  license = {text = "AGPL-3.0-or-later"}
@@ -3,7 +3,7 @@
3
3
  import os
4
4
  os.environ.setdefault("KMP_DUPLICATE_LIB_OK", "TRUE")
5
5
 
6
- __version__ = "3.4.55"
6
+ __version__ = "3.4.56"
7
7
 
8
8
  _REQUIRED_VERSIONS = {
9
9
  "sentence_transformers": "5.3.0",
@@ -78,20 +78,21 @@ def init_embedder(config: SLMConfig) -> Any | None:
78
78
  emb_cfg = config.embedding
79
79
  provider = emb_cfg.provider
80
80
 
81
- # All modes use sentence-transformers subprocess as primary so the
82
- # embedding space matches stored vectors. Ollama is fallback only
83
- # Ollama's nomic-embed-text and sentence-transformers nomic-embed-text-v1.5
84
- # produce different vectors, so mixing them against an ST-indexed
85
- # corpus degrades semantic recall quality.
81
+ # v3.4.55: When provider is ollama, use Ollama's embedding API as
82
+ # PRIMARY. The stored vectors were created by Ollama's nomic-embed-text;
83
+ # sentence-transformers' nomic-embed-text-v1.5 produces different vectors.
84
+ # Mixing them degrades semantic recall. ST subprocess is the fallback,
85
+ # not the primary this also eliminates the 2-3 minute cold-start
86
+ # where the ST model loads from disk (~2.1 GB) on every daemon restart.
86
87
  if provider == "ollama":
87
- st_emb = _try_service_embedder(EmbeddingService, emb_cfg)
88
- if st_emb is not None:
89
- logger.info("Using sentence-transformers subprocess (matches stored embedding space)")
90
- return st_emb
91
88
  result = _try_ollama_embedder(emb_cfg)
92
89
  if result is not None:
93
- logger.warning("sentence-transformers unavailable; falling back to Ollama (semantic quality may degrade)")
90
+ logger.info("Using Ollama embeddings (nomic-embed-text, local)")
94
91
  return result
92
+ st_emb = _try_service_embedder(EmbeddingService, emb_cfg)
93
+ if st_emb is not None:
94
+ logger.warning("Ollama unavailable; falling back to sentence-transformers subprocess")
95
+ return st_emb
95
96
  return None
96
97
 
97
98
  # --- V3.4.24: Explicit OpenAI-compatible provider ---
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: superlocalmemory
3
- Version: 3.4.55
3
+ Version: 3.4.56
4
4
  Summary: Information-geometric agent memory with mathematical guarantees
5
5
  Author-email: Varun Pratap Bhardwaj <admin@superlocalmemory.com>
6
6
  License: AGPL-3.0-or-later