Reported issues for shodh-memory
Pod holds 19 of 25 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.
Back to shodh-memory.
Most discussed
Memory leak: shodh-memory-server grows to 2GB+ RAM over 24 hours
Description
The shodh-memory-server binary (v0.1.74) exhibits a significant memory leak when running as a persistent backend across multiple Claude Code sessions.
Observed Behavior
- Fresh start: ~23MB RSS
- After ~25 hours: ~2GB RSS (2,046,876 KB)
- System impact: On a 7.7GB RAM machine, the server consumed 25% of total memory
- Symptom: MCP tool calls start failing with "Failed after 3 attempts: This operation was aborted" (timeouts)
Environment
- OS: Linux
Read the thread · 2026-03-04 · open · external user · 21 comments
Server relibility
As I am running a long single CC session the shodh server keeps failing with CC returning Error: Failed after 3 attempts: API error 500: {"code":"INTERNAL_ERROR","message":"Internal error: Failed to initialize memory system for user 'claude-code'".
I can just do /mcp -> find shodh and select reconnect, which restarts the server. But Claude can't do this himself and these failures makes shodh practically useless since when Claude wants to recall a memory the server is not available and he ju
Read the thread · 2026-03-19 · closed · external user · 7 comments
proactive_context returns empty while recall finds exact memory at 0.95
Summary
In practice, proactive_context has never surfaced useful memories for my workflows across projects/chats. I am reporting this specific reproducible case because it shows the pattern clearly: the same memory is returned by /api/recall at high confidence, but /api/proactive_context returns no results.
Environment
- Shodh backend:
0.2.0 - Package:
@shodh/memory-mcp@0.2.0 - Backend health:
{"status":"healthy","version":"0.2.0"} - Index verification: healthy,
12491memo
Read the thread · 2026-05-17 · closed · external user · 5 comments
[Feature request] A flag to return complete memories contents on proactive_context and recall tools calls
This is a feature request that came from my daily shodh usage over a long period.
I was sometimes looking at tool call returns and assumed that the truncated/summary-like text I saw was just a display thing - that agents were actually receiving the full memory content. This turned out not to be true. recall and proactive_context tools return only a short fragment per memory - with no indication (or mention in the sparse docs) that the content IS actually incomplete. However, this is fully o
Read the thread · 2026-07-14 · closed · external user · 4 comments
MCP server processes accumulate when sessions end — orphaned child processes cause RocksDB lock errors
Problem
When using shodh-memory-mcp with clients that manage sessions via stdio (e.g., kiro-cli), ending a session does not reliably clean up the spawned shodh-memory-server child process. After multiple sessions over ~24h, ~25 orphaned processes accumulate, causing:
Failed to initialize memory system for user 'karl' (500 INTERNAL_ERROR)
This is RocksDB LOCK file contention — only one process can hold the lock on a given storage directory.
Root Cause
Three compounding issues
Read the thread · 2026-04-09 · closed · 2 comments
docs: Installation guides, multi-instance setup, and service configuration
Context
From discussion #103 — users are asking for clear installation and operational documentation. Currently this information is scattered or missing entirely.
What needs documenting
Installation Guide
- Docker — single command with volume mounts, environment variables, port mapping
- Pre-built binaries — download links per platform (Linux x64, macOS ARM64/x64, Windows x64), extraction, PATH setup
- **Cargo i
Read the thread · 2026-03-11 · open · 2 comments
Improve MCP client setup documentation
Summary
The README doesn't clearly explain that a standalone server must be running before the MCP client will work, or that API keys are locally generated.
Environment
- Any platform
- @shodh/memory-mcp (npm package)
- Claude Code CLI
Current Behavior
Running claude mcp add @shodh/memory-mcp installs the client, but users get "connection refused" errors with no guidance.
Expected Behavior
Documentation clearly explains the server requirement, API key generation, and provide
Read the thread · 2026-01-18 · closed · external user · 2 comments
Windows: spawn EINVAL + truncated UUIDs break forget/read_memory
Bug 1: spawn EINVAL on Windows — server fails to auto-start
Problem
On Windows, ensureServerRunning() calls spawn(binaryPath, [], { detached: true, ... }). The getBinaryPath() function prefers shodh-memory.bat over shodh-memory-server.exe. Node.js spawn() with detached: true cannot spawn .bat files on Windows — it throws EINVAL.
Error: spawn EINVAL
at ChildProcess.spawn (node:internal/child_process:421:11)
at ensureServerRunning (dist/index.js:7969:19
[Read the thread](https://github.com/varun29ankuS/shodh-memory/issues/98) · 2026-03-09 · closed · external user · 1 comment
## Most recent
### Roadmap: Rust-native MCP endpoint (Streamable-HTTP/SSE) — collapse the stdio shim into the backend
## Idea
Expose an MCP-compatible Streamable-HTTP/SSE endpoint directly from the Rust backend (e.g. `http://127.0.0.1:3030/mcp`), so hosts (Claude Desktop, etc.) connect over HTTP instead of spawning the Node stdio shim. Eliminates the entire class of stdio-lifecycle bugs (thread-switch stdin EOF kills, in-flight abandonment — see #405, #218) rather than patching each one, and reduces the Node dependency toward a single sovereign Rust process.
Proposed by @devklepacki in #405.
## Direction / co
[Read the thread](https://github.com/varun29ankuS/shodh-memory/issues/406) · 2026-07-15 · open · 0 comments
### IPC v2: SHODH_IPC_REQUIRED default for sovereign profile + cross-impl auth test
Follow-up from #399. (1) Server bind-failure default is log-and-continue-HTTP-only; a squatter can force HTTP. Make SHODH_IPC_REQUIRED=true the documented requirement/default for the sovereign profile. (2) Rust-server<->TS-client parity is inspection-only; add a real cross-impl auth test (tamper/replay/stale-nonce).
[Read the thread](https://github.com/varun29ankuS/shodh-memory/issues/403) · 2026-07-15 · open · 0 comments
### IPC v2: HKDF-derive an IPC-only subkey (probe MAC is a chosen-challenge oracle over the raw API key)
Follow-up from #399 re-review. The v2 probe/request MACs use the raw SHODH_API_KEY directly as the HMAC key, so a same-user (even low-integrity) peer that passes the pipe peer-check can treat the probe as a chosen-challenge MAC oracle and offline-brute-force a weak key (and we ship local-dev-key). Fix: HKDF-derive an IPC-only subkey; enforce a key-entropy floor; stop documenting trivially-guessable dev keys. Same-user-only, hardening for the sovereign/defence profile.
[Read the thread](https://github.com/varun29ankuS/shodh-memory/issues/401) · 2026-07-15 · open · 0 comments
### Server version seems to be hardcoded to version "0.1.90"
Hello, basically issue is as written in the title. I didn't dig much into this, but:
curl -X GET http://localhost:3030/health { "status":"healthy","version":"0.2.0", ... }
while at the exact same time logs shows:
[Stream] WebSocket connected to ws://127.0.0.1:3030/api/stream ... [shodh-memory] Backend server started successfully Shodh-Memory MCP server v0.1.90 running Connecting to: http://127.0.0.1:3030
and `grep`ping for string "0.1.90" returns 2 matches:
~ % grep -c
Read the thread · 2026-07-02 · closed · external user · 0 comments
Cannot use remote (production) server
Steps to repro:
- Initialize named volume shodh-data on remote server
- Initialize shodh-memory on remote server
- Intitialize reverse proxy pointing to port 5910
- Use curl to retrieve health endpoint to verify connectivity
- Update mcp settings for Claude Code
- Launch Claude code with debug flag
- check /mcp to verify Claude thinks it is connected
- test the shodh-memory MCP server with: shodh-memory - memory_stats() (MCP)
● I'll test the shodh-memory MCP server by c
Read the thread · 2026-03-31 · closed · external user · 0 comments
FIX-05/FIX-07: auto-ingest quality gap — context: None, credibility dead for majority of memories
Summary
Auto-ingested memories (from proactive_context and hooks) lack RichContext, making credibility, emotional, and episode scoring paths dead for the majority of stored memories.
FIX-05: Auto-Ingest Missing Context
recall.rs:1608,1668: both auto-ingest paths use..Default::default()→context: None- Path A (assistant response): no episode grouping, no source type differentiation
- Path B (user context): same problem
- Should set:
source_type: AiGenerated(assistant) /
Read the thread · 2026-03-29 · closed · 0 comments
Feedback loop: disconnected weight learning, off-by-one user_followup, noisy previous_response
Summary
The implicit feedback circuit has multiple wiring gaps. Adaptive weight learning never updates, user_followup semantics are wrong, and previous_response carries formatting noise.
Bugs
LearnedWeights Never Updated
RelevanceEngine::apply_feedback(relevance.rs:663) exists and connects toLearnedWeights::apply_feedback(relevance.rs:427)- Uses
WEIGHT_LEARNING_RATE = 0.05gradient descent on 7-dimensional weight vector - Never called from the
proactive_contextfee
Read the thread · 2026-03-29 · closed · 0 comments
Hook enrichment: emotional, episodic, credibility, and structured capture signals never sent
Summary
hooks/memory-hook.ts is the primary auto-ingestion path for Claude Code but sends bare-minimum payloads. The entire enrichment infrastructure in the Rust backend is numerically inert for hook-originated memories.
Missing Signals
Emotional Dimension
- No
classifyEmotion()function exists — hook never sendsemotional_valence,emotional_arousal, oremotion - All hook-stored memories have
{valence: 0.0, arousal: 0.0, emotion: None} - This makes arousal boosts (Layer
Read the thread · 2026-03-29 · closed · 0 comments
Importance field missing from RememberRequest — all automated writes have zero importance
Problem
Neither RememberRequest nor UpsertRequest expose an optional importance field. The Rust binary auto-calculates importance server-side, but hooks never provide an override. This means 100% of automated (hook-written) memories get generic importance scores, neutralizing importance-weighted eviction and salience ranking.
Impact
- MEDIUM — importance affects cache eviction priority and display salience
- All hook memories have identical eviction priority (no differentiatio
Read the thread · 2026-03-25 · closed · 0 comments
SHODH_API_KEY in mcp client and SHODH_API_KEYS in server/TUI mismatch
The server is accepting the dev API key fine. So the issue is between the MCP npm package (@shodh/memory-mcp) and the shodh server. Let me check how the MCP package is configured and what key it's actually sending.
Searched for 1 pattern, read 3 files (ctrl+o to expand)
⏺ There it is. The MCP package reads SHODH_API_KEY (singular), but your env has SHODH_API_KEYS (plural) and SHODH_DEV_API_KEY. Since SHODH_API_KEY isn't set, it auto-generates a random key which doesn't match the serv
Read the thread · 2026-03-19 · closed · external user · 0 comments
test: Set up Vitest for MCP server and add comprehensive tests
Context
The MCP server (mcp-server/index.ts) is a 3867+ line monolithic file with 45 tools and zero tests. As we continue to add features and fix bugs, we need a testing framework in place.
Setup
- Framework: Vitest (fast, native TypeScript, zero-config)
- Location:
mcp-server/__tests__/ormcp-server/tests/
Test coverage needed
Unit tests
- Tool input validation and parameter parsing
stripSystemNoise()and other utility functionsensureServerRunning()ser
Read the thread · 2026-03-11 · open · 0 comments
The remaining reports are on the project's issue tracker.