superlocalmemory 3.6.21 → 3.6.22
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/README.md +4 -2
- package/package.json +1 -1
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/requirements.txt +1 -1
- package/plugin-src/manifest.json +1 -1
- package/plugin-src/requirements.txt +1 -1
- package/pyproject.toml +1 -1
- package/src/superlocalmemory/__init__.py +1 -1
- package/src/superlocalmemory/llm/backbone.py +9 -2
- package/src/superlocalmemory/ui/js/clusters.js +1 -0
- package/src/superlocalmemory/ui/js/compliance.js +1 -0
- package/src/superlocalmemory/ui/js/math-health.js +5 -1
- package/src/superlocalmemory/ui/js/ng-entities.js +6 -2
- package/src/superlocalmemory.egg-info/PKG-INFO +5 -3
package/README.md
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
<img src="https://superlocalmemory.com/assets/logo-mark.png" alt="SuperLocalMemory" width="200"/>
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
|
-
<h1 align="center">SuperLocalMemory V3.6.
|
|
5
|
+
<h1 align="center">SuperLocalMemory V3.6.21</h1>
|
|
6
6
|
<p align="center"><strong>Cache. Compress. Remember. Three surfaces — proxy, MCP tools, or skill. Every setup covered.</strong><br/>
|
|
7
7
|
<em>To the best of our knowledge, the only zero-cloud agent memory that beats Mem0's zero-LLM score on LoCoMo. Mode A: 74.8% vs Mem0 64.2% — no GPU, no API key, on CPU.</em></p>
|
|
8
|
-
<p align="center"><code>v3.6.
|
|
8
|
+
<p align="center"><code>v3.6.21</code> — <strong>Plugin-native. Profile-aware. Distributed-ready.</strong><br/>
|
|
9
9
|
Proxy: <code>slm wrap claude</code> · MCP: add <code>slm_compress</code> to your config · Skill: zero-config</p>
|
|
10
10
|
<p align="center"><strong>3 published research papers</strong> (arXiv preprints + Zenodo-archived) · <a href="https://arxiv.org/abs/2603.02240">arXiv:2603.02240</a> · <a href="https://arxiv.org/abs/2603.14588">arXiv:2603.14588</a> · <a href="https://arxiv.org/abs/2604.04514">arXiv:2604.04514</a></p>
|
|
11
11
|
|
|
@@ -307,6 +307,8 @@ slm dashboard # Opens at http://localhost:8765
|
|
|
307
307
|
|
|
308
308
|
| Version | Codename | Key Features |
|
|
309
309
|
|---|---|---|
|
|
310
|
+
| **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; backbone.py JSONDecodeError fix (issue #62) |
|
|
311
|
+
| **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) |
|
|
310
312
|
| **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) |
|
|
311
313
|
| **v3.6.16** | Docs | Corrected Claude Code plugin install — adds the required `/plugin marketplace add` step; clarifies plugin vs pip/npm delivery |
|
|
312
314
|
| **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 |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "superlocalmemory",
|
|
3
|
-
"version": "3.6.
|
|
3
|
+
"version": "3.6.22",
|
|
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/plugin/requirements.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
superlocalmemory==3.6.
|
|
1
|
+
superlocalmemory==3.6.22
|
package/plugin-src/manifest.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
superlocalmemory==3.6.
|
|
1
|
+
superlocalmemory==3.6.22
|
package/pyproject.toml
CHANGED
|
@@ -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.6.
|
|
35
|
+
__version__ = "3.6.22"
|
|
36
36
|
|
|
37
37
|
_REQUIRED_VERSIONS = {
|
|
38
38
|
"sentence_transformers": "5.3.0",
|
|
@@ -190,7 +190,7 @@ class LLMBackbone:
|
|
|
190
190
|
logger.warning("Content filter or bad request (400). Returning empty.")
|
|
191
191
|
return ""
|
|
192
192
|
last_error = exc
|
|
193
|
-
except (httpx.TimeoutException, httpx.ConnectError) as exc:
|
|
193
|
+
except (httpx.TimeoutException, httpx.ConnectError, ValueError) as exc:
|
|
194
194
|
last_error = exc
|
|
195
195
|
|
|
196
196
|
if attempt < _MAX_RETRIES - 1:
|
|
@@ -217,7 +217,14 @@ class LLMBackbone:
|
|
|
217
217
|
with httpx.Client(timeout=timeout) as client:
|
|
218
218
|
resp = client.post(url, headers=headers, json=payload)
|
|
219
219
|
resp.raise_for_status()
|
|
220
|
-
|
|
220
|
+
try:
|
|
221
|
+
return resp.json()
|
|
222
|
+
except Exception as exc:
|
|
223
|
+
raise ValueError(
|
|
224
|
+
f"LLM endpoint returned HTTP {resp.status_code} with "
|
|
225
|
+
f"non-JSON body (Content-Length="
|
|
226
|
+
f"{resp.headers.get('content-length', '?')}): {exc}"
|
|
227
|
+
) from exc
|
|
221
228
|
finally:
|
|
222
229
|
socket.setdefaulttimeout(old_default)
|
|
223
230
|
|
|
@@ -117,6 +117,7 @@ async function loadClusters() {
|
|
|
117
117
|
}
|
|
118
118
|
try {
|
|
119
119
|
var response = await fetch('/api/clusters');
|
|
120
|
+
if (!response.ok) throw new Error('HTTP ' + response.status);
|
|
120
121
|
var data = await response.json();
|
|
121
122
|
_CLUSTERS_STATE.clusters = data.clusters || [];
|
|
122
123
|
_CLUSTERS_STATE.page = 0;
|
|
@@ -13,6 +13,7 @@ async function loadCompliance() {
|
|
|
13
13
|
var url = '/api/compliance/status';
|
|
14
14
|
if (filterValue) url += '?event_type=' + encodeURIComponent(filterValue);
|
|
15
15
|
var response = await fetch(url);
|
|
16
|
+
if (!response.ok) throw new Error('HTTP ' + response.status);
|
|
16
17
|
var data = await response.json();
|
|
17
18
|
_complianceData = data;
|
|
18
19
|
|
|
@@ -61,7 +61,11 @@ async function loadMathHealth() {
|
|
|
61
61
|
var liStatus = document.createElement('li');
|
|
62
62
|
liStatus.appendChild(document.createTextNode('Status: '));
|
|
63
63
|
var statusBadge = document.createElement('span');
|
|
64
|
-
|
|
64
|
+
var _s = (layer.status || 'active').toLowerCase();
|
|
65
|
+
var _badgeClass = _s === 'error' || _s === 'critical' ? 'bg-danger' :
|
|
66
|
+
_s === 'warning' || _s === 'degraded' ? 'bg-warning text-dark' :
|
|
67
|
+
'bg-success';
|
|
68
|
+
statusBadge.className = 'badge ' + _badgeClass;
|
|
65
69
|
statusBadge.textContent = layer.status || 'active';
|
|
66
70
|
liStatus.appendChild(statusBadge);
|
|
67
71
|
ul.appendChild(liStatus);
|
|
@@ -16,12 +16,16 @@
|
|
|
16
16
|
function fetchEntityList(offset) {
|
|
17
17
|
offset = offset || 0;
|
|
18
18
|
fetch('/api/entity/list?limit=' + PAGE_SIZE + '&offset=' + offset)
|
|
19
|
-
.then(function(r) {
|
|
19
|
+
.then(function(r) {
|
|
20
|
+
if (!r.ok) throw new Error('HTTP ' + r.status);
|
|
21
|
+
return r.json();
|
|
22
|
+
})
|
|
20
23
|
.then(function(data) {
|
|
21
24
|
allEntities = data.entities || [];
|
|
22
25
|
renderEntityList(allEntities, data.total || 0, offset);
|
|
23
26
|
})
|
|
24
|
-
.catch(function() {
|
|
27
|
+
.catch(function(err) {
|
|
28
|
+
console.error('[entities] fetchEntityList failed:', err);
|
|
25
29
|
renderEntityList([], 0, 0);
|
|
26
30
|
});
|
|
27
31
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: superlocalmemory
|
|
3
|
-
Version: 3.6.
|
|
3
|
+
Version: 3.6.22
|
|
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
|
|
@@ -96,10 +96,10 @@ Dynamic: license-file
|
|
|
96
96
|
<img src="https://superlocalmemory.com/assets/logo-mark.png" alt="SuperLocalMemory" width="200"/>
|
|
97
97
|
</p>
|
|
98
98
|
|
|
99
|
-
<h1 align="center">SuperLocalMemory V3.6.
|
|
99
|
+
<h1 align="center">SuperLocalMemory V3.6.21</h1>
|
|
100
100
|
<p align="center"><strong>Cache. Compress. Remember. Three surfaces — proxy, MCP tools, or skill. Every setup covered.</strong><br/>
|
|
101
101
|
<em>To the best of our knowledge, the only zero-cloud agent memory that beats Mem0's zero-LLM score on LoCoMo. Mode A: 74.8% vs Mem0 64.2% — no GPU, no API key, on CPU.</em></p>
|
|
102
|
-
<p align="center"><code>v3.6.
|
|
102
|
+
<p align="center"><code>v3.6.21</code> — <strong>Plugin-native. Profile-aware. Distributed-ready.</strong><br/>
|
|
103
103
|
Proxy: <code>slm wrap claude</code> · MCP: add <code>slm_compress</code> to your config · Skill: zero-config</p>
|
|
104
104
|
<p align="center"><strong>3 published research papers</strong> (arXiv preprints + Zenodo-archived) · <a href="https://arxiv.org/abs/2603.02240">arXiv:2603.02240</a> · <a href="https://arxiv.org/abs/2603.14588">arXiv:2603.14588</a> · <a href="https://arxiv.org/abs/2604.04514">arXiv:2604.04514</a></p>
|
|
105
105
|
|
|
@@ -401,6 +401,8 @@ slm dashboard # Opens at http://localhost:8765
|
|
|
401
401
|
|
|
402
402
|
| Version | Codename | Key Features |
|
|
403
403
|
|---|---|---|
|
|
404
|
+
| **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; backbone.py JSONDecodeError fix (issue #62) |
|
|
405
|
+
| **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) |
|
|
404
406
|
| **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) |
|
|
405
407
|
| **v3.6.16** | Docs | Corrected Claude Code plugin install — adds the required `/plugin marketplace add` step; clarifies plugin vs pip/npm delivery |
|
|
406
408
|
| **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 |
|