{"slug": "hermes-memory-installer-memory-sidecar-v3-5-1", "title": "hermes-memory-installer: Memory Sidecar v3.5.1", "summary": "Memory Sidecar v3.5.1 has been released as an operational hardening update for the agent-agnostic memory layer, focusing on fault isolation and deterministic cleanup. The release introduces session-scoped graceful shutdown with ephemeral tokens and heartbeat detection, as well as retry logic with capped exponential backoff and jitter to prevent retry storms. The update also includes a new configure API with explicit orphan handling and optional transaction logging.", "body_md": "Memory Sidecar v3.5.1 lands as a focused operational hardening release for the public agent-agnostic memory layer. If you’ve been running earlier iterations in production with multi-agent systems, you know the friction: dangling connections from failed sessions, unbounded retries hammering storage backends, and inconsistent transaction windows when multiple agents write simultaneously. This release doesn’t introduce new storage engines or retrieval strategies—it locks down the seams where real-world deployments bleed availability.\n\nThe core target is fault isolation and deterministic cleanup. Two concrete changes drive this:\n\n**Session Scoped Graceful Shutdown**\n\nPreviously, when an agent task died ungracefully, the sidecar held onto memory handles until a timeout forced closure. In v3.5.1, every session lock is tied to a unique ephemeral token, and the sidecar’s heartbeat goroutine now detects stale tokens within half the lease interval. The shutdown path emits a final checkpoint before releasing storage, preventing orphaned write buffers.\n\n**Retry with Bounded Jitter**\n\nRetry logic now uses a capped exponential backoff (max 30s) with per-request jitter derived from the session ID. This avoids retry storms when a transient storage outage resolves—each agent sees staggered attempts, and the storage side sees smoothed load. The `max_retries`\n\nconfig defaults to 3 and can be overridden per deployment but is clamped at 5 to prevent tail latency blowups.\n\nThe most visible improvement is the updated configure API for the memory connector. Here’s how you set up a hardened instance with retry policy and transaction logging:\n\n``` python\nfrom memory_sidecar import MemoryClient\n\nclient = MemoryClient(\n    endpoint=\"unix:///var/run/mem-sidecar.sock\",\n    session_config={\n        \"heartbeat_interval_s\": 10,\n        \"heartbeat_timeout_s\": 25,\n        \"on_orhpan\": \"checkpoint_and_close\"\n    },\n    retry_policy={\n        \"max_retries\": 3,\n        \"base_delay_ms\": 200,\n        \"cap_delay_s\": 30,\n        \"jitter_factor\": 0.25\n    },\n    transaction_log=\"/var/log/mem-sidecar-tx.jsonl\"\n)\n```\n\nKey points from this snippet:\n\n`on_orphan`\n\nreplaces the old ambiguous `timeout_action`\n\n—now you explicitly choose between `checkpoint_and_close`\n\nor `abort_quietly`\n\n.\n`transaction_log`\n\nenables an append-only log of all memory mutations. This is off by default; enabling it costs ~2% throughput but gives you precise replay for debugging or audit trails.\nBecause Memory Sidecar remains agent-agnostic, these improvements automatically protect any adapter implementing the standard gRPC contract. Whether your agents are built on LangChain, custom Python workers, or Node services, the sidecar enforces the same session lifecycle and retry boundaries. The installer (`hermes-memory-installer`\n\n) now includes a `--hardening-profile`\n\nflag that applies these defaults to all new deployments.\n\nIf you’re upgrading from v3.4.x, note that the `timeout_ms`\n\nfield in session config is deprecated in favor of the two-parameter heartbeat model. The sidecar logs a warning if you use the old field but still respects it during migration. Remove `timeout_ms`\n\nwhen you can schedule a config cleanup.\n\nMemory Sidecar v3.5.1 is available now through the hermes-memory-installer package. Run `pip install --upgrade hermes-memory-installer`\n\nand review the new `config`\n\ntemplates in `/etc/memory-sidecar/`\n\n. No database migrations required—this is purely a runtime stabilization cut.", "url": "https://wpnews.pro/news/hermes-memory-installer-memory-sidecar-v3-5-1", "canonical_source": "https://dev.to/manoir_yantai_f22f01340f0/hermes-memory-installer-memory-sidecar-v351-42la", "published_at": "2026-06-30 00:02:31+00:00", "updated_at": "2026-06-30 00:18:51.768126+00:00", "lang": "en", "topics": ["developer-tools", "ai-agents", "ai-infrastructure"], "entities": ["Memory Sidecar", "hermes-memory-installer", "LangChain", "gRPC"], "alternates": {"html": "https://wpnews.pro/news/hermes-memory-installer-memory-sidecar-v3-5-1", "markdown": "https://wpnews.pro/news/hermes-memory-installer-memory-sidecar-v3-5-1.md", "text": "https://wpnews.pro/news/hermes-memory-installer-memory-sidecar-v3-5-1.txt", "jsonld": "https://wpnews.pro/news/hermes-memory-installer-memory-sidecar-v3-5-1.jsonld"}}