Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

superlocalmemory

Package Overview
Dependencies
Maintainers
1
Versions
176
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

superlocalmemory - npm Package Compare versions

Comparing version
3.6.12
to
3.6.13
+1
-1
package.json
{
"name": "superlocalmemory",
"version": "3.6.12",
"version": "3.6.13",
"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,0 +5,0 @@ "keywords": [

[project]
name = "superlocalmemory"
version = "3.6.12"
version = "3.6.13"
description = "Information-geometric agent memory with mathematical guarantees"

@@ -5,0 +5,0 @@ readme = "README.md"

Metadata-Version: 2.4
Name: superlocalmemory
Version: 3.6.12
Version: 3.6.13
Summary: Information-geometric agent memory with mathematical guarantees

@@ -5,0 +5,0 @@ Author-email: Varun Pratap Bhardwaj <admin@superlocalmemory.com>

@@ -82,29 +82,42 @@ # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar

# v3.6.13 (CRITICAL): the `mcp` stdio transport requires stdout to carry
# ONLY JSON-RPC. The post-upgrade banner + migration notice below must NEVER
# run on that path, or the first post-upgrade `slm mcp` launch pollutes
# stdout and the MCP client (Claude Desktop / Cursor) rejects the stream as
# "not valid JSON". Skip the whole block for `mcp`; the next human `slm`
# command emits the banner (to stderr) and writes the version marker.
_is_mcp_stdio = len(sys.argv) >= 2 and sys.argv[1] == "mcp"
# One-time post-upgrade banner — silent for fresh installs and
# same-version runs. Guarded against I/O errors internally.
from superlocalmemory.cli.version_banner import check_and_emit_upgrade_banner
if check_and_emit_upgrade_banner(_ver):
# First post-upgrade invocation: apply the data-dir migration if
# it's safe. When the previous-version daemon is still running
# we defer — the next daemon start picks it up.
try:
import logging as _logging
from pathlib import Path as _P
from superlocalmemory.migrations.v3_4_25_to_v3_4_26 import (
migrate_if_safe as _migrate_if_safe,
)
_data = _P(_os.environ.get("SLM_DATA_DIR")
or _P.home() / ".superlocalmemory")
_res = _migrate_if_safe(_data)
if _res.get("status") == "deferred":
if not _is_mcp_stdio:
from superlocalmemory.cli.version_banner import check_and_emit_upgrade_banner
if check_and_emit_upgrade_banner(_ver):
# First post-upgrade invocation: apply the data-dir migration if
# it's safe. When the previous-version daemon is still running
# we defer — the next daemon start picks it up.
try:
import logging as _logging
from pathlib import Path as _P
from superlocalmemory.migrations.v3_4_25_to_v3_4_26 import (
migrate_if_safe as _migrate_if_safe,
)
_data = _P(_os.environ.get("SLM_DATA_DIR")
or _P.home() / ".superlocalmemory")
_res = _migrate_if_safe(_data)
if _res.get("status") == "deferred":
print(
" note: data migration deferred — the running SLM "
"daemon will apply it on its next restart.",
file=sys.stderr,
)
except Exception as _mig_exc:
import logging as _logging
_logging.getLogger(__name__).warning(
"v3.4.26 migrate_if_safe failed: %s — run `slm doctor`", _mig_exc,
)
print(
" note: data migration deferred — the running SLM "
"daemon will apply it on its next restart."
" note: data migration check failed — run `slm doctor` to diagnose.",
file=sys.stderr,
)
except Exception as _mig_exc:
import logging as _logging
_logging.getLogger(__name__).warning(
"v3.4.26 migrate_if_safe failed: %s — run `slm doctor`", _mig_exc,
)
print(" note: data migration check failed — run `slm doctor` to diagnose.")

@@ -111,0 +124,0 @@ parser = argparse.ArgumentParser(

@@ -170,4 +170,8 @@ # Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar

sys.stdout.write(_banner(prior, current))
sys.stdout.flush()
# v3.6.13 (CRITICAL): write to STDERR, never stdout. On the `slm mcp`
# stdio transport, ANY stdout byte that isn't JSON-RPC corrupts the
# stream and the MCP client (e.g. Claude Desktop) rejects every
# message as "not valid JSON". The banner is a human notice → stderr.
sys.stderr.write(_banner(prior, current))
sys.stderr.flush()
write_marker_version(current)

@@ -174,0 +178,0 @@ return True

Sorry, the diff of this file is too big to display