Skip to content

Releases: thedotmack/claude-mem

v10.6.3

29 Mar 02:49

Choose a tag to compare

v10.6.3 — Critical Patch Release

Bug Fixes

  • Fix MCP server crash: Removed erroneous import.meta.url ESM-compat banner from CJS files that caused Node.js startup failures
  • Fix 7 critical bugs affecting all non-dev-machine users and Windows:
    • Hook registration paths corrected for plugin distribution
    • Worker service spawn handling hardened for Windows
    • Environment sanitization for cross-platform compatibility
    • ProcessManager Windows spawn catch block improvements
    • SessionEnd inline hook exemption in regression tests
    • summarize.ts warning log now includes sessionId for triage
  • CodeRabbit review feedback addressed from PR #1518

Improvements

  • Gemini CLI integration: Strip ANSI color codes from timeline display, provide markdown fallback

Files Changed

  • plugin/hooks/hooks.json
  • plugin/scripts/mcp-server.cjs
  • plugin/scripts/worker-service.cjs
  • scripts/build-hooks.js
  • src/cli/handlers/summarize.ts
  • src/services/infrastructure/ProcessManager.ts
  • src/services/worker-service.ts
  • src/supervisor/env-sanitizer.ts
  • tests/infrastructure/plugin-distribution.test.ts
  • tests/supervisor/env-sanitizer.test.ts

v10.6.2

21 Mar 21:14

Choose a tag to compare

fix: Activity spinner stuck spinning forever

The viewer UI activity spinner would spin indefinitely because isAnySessionProcessing() queried all pending/processing messages in the database globally — including orphaned messages from dead sessions that no generator would ever process. These orphans caused isProcessing=true forever.

Changes

  • Scoped isAnySessionProcessing() and hasPendingMessages() to only check sessions in the active in-memory Map, so orphaned DB messages no longer affect the spinner
  • Added terminateSession() method enforcing a restart-or-terminate invariant — every generator exit must either restart or fully clean up
  • Fixed 3 zombie paths in the .finally() handler that previously left sessions alive in memory with no generator running
  • Fixed idle-timeout race condition where fresh messages arriving between idle abort and cleanup could be silently dropped
  • Removed redundant bare isProcessing: true broadcast and eliminated double-iteration in broadcastProcessingStatus()
  • Replaced inline require() with proper accessor via sessionManager.getPendingMessageStore()
  • Added 8 regression tests for session termination invariant

v10.6.1

18 Mar 21:36

Choose a tag to compare

New Features

  • Timeline Report Skill — New /timeline-report skill generates narrative "Journey Into [Project]" reports from claude-mem's development history with token-aware economics
  • Git Worktree Detection — Timeline report automatically detects git worktrees and uses parent project as data source
  • Compressed Context Output — Markdown context injection compressed ~53% (tables → compact flat lines), reducing token overhead in session starts
  • Full Observation Fetch — Added full=true parameter to /api/context/inject for fetching all observations

Improvements

  • Split TimelineRenderer into separate markdown/color rendering paths
  • Fixed timestamp ditto marker leaking across session summary boundaries

Security

  • Removed arbitrary file write vulnerability (dump_to_file parameter)

v10.6.0

18 Mar 00:16

Choose a tag to compare

OpenClaw: System prompt context injection

The OpenClaw plugin no longer writes to MEMORY.md. Instead, it injects the observation timeline into each agent's system prompt via the before_prompt_build hook using appendSystemContext. This keeps MEMORY.md under the agent's control for curated long-term memory. Context is cached for 60 seconds per project.

New syncMemoryFileExclude config

Exclude specific agent IDs from automatic context injection (e.g., ["snarf", "debugger"]). Observations are still recorded for excluded agents — only the context injection is skipped.

Fix: UI settings now preserve falsy values

The viewer settings hook used || instead of ??, which silently replaced backend values like '0', 'false', and '' with UI defaults. Fixed with nullish coalescing. Frontend defaults now aligned with backend SettingsDefaultsManager.

Documentation

  • Updated openclaw-integration.mdx and openclaw/SKILL.md to reflect system prompt injection behavior
  • Fixed "prompt injection" → "context injection" terminology to avoid confusion with the OWASP security term

v10.5.6

16 Mar 21:54

Choose a tag to compare

Patch: Process Supervisor Hardening & Logging Cleanup

Fixes

  • Downgrade HTTP request/response logging from INFO to DEBUG — eliminates noisy per-request log spam from the viewer UI polling
  • Fix isPidAlive(0) returning true — PID 0 is the kernel scheduler, not a valid child process
  • Fix signal handler race condition — added shutdownInitiated flag to prevent duplicate shutdown cascades when signals arrive before stopPromise is set
  • Remove unused dataDir parameter from ShutdownCascadeOptions
  • Export and reuse env sanitizer constantsServer.ts now imports ENV_PREFIXES/ENV_EXACT_MATCHES from env-sanitizer.ts instead of duplicating them
  • Rename zombiePidFiles to deadProcessPids — now returns actual PID array instead of a boolean
  • Use buildWorkerUrl helper in workerHttpRequest instead of inline URL construction
  • Remove unused getWorkerPort imports from observation and session-init handlers
  • Upgrade reapSession failure log from debug to warn level
  • Clean up .gitignore — remove stale ~*/, http*/, https*/ patterns and duplicate datasets/ entry

Tests

  • Rewrote supervisor index tests to use temp directories instead of relying on real ~/.claude-mem/worker.pid
  • Added deterministic test cases for missing, invalid, stale, and alive PID file states
  • Removed unused dataDir from shutdown test fixtures

v10.5.5

09 Mar 10:02

Choose a tag to compare

Bug Fix

  • Fixed empty context queries after mode switching: Switching from a non-code mode (e.g., law-study) back to code mode left stale observation type/concept filters in settings.json, causing all context queries to return empty results. All modes now read types/concepts from their mode JSON definition uniformly.

Cleanup

  • Removed dead CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES and CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS settings constants
  • Deleted src/constants/observation-metadata.ts (no longer needed)
  • Removed observation type/concept filter UI controls from the viewer's Context Settings modal

v10.5.4

09 Mar 04:01

Choose a tag to compare

Bug Fixes

  • fix: restore modes to correct location — All modes (code, code language variants, email-investigation) were erroneously moved from plugin/modes/ to plugin/hooks/modes/ during the v10.5.3 release, breaking mode loading. This patch restores them to plugin/modes/ where they belong.

v10.5.3

09 Mar 02:36

Choose a tag to compare

What's New

Law Study Mode

Adds law-study — a purpose-built claude-mem mode for law students.

Observation Types:

  • Case Holding — 2-3 sentence brief with extracted legal rule
  • Issue Pattern — exam trigger or fact pattern that signals a legal issue
  • Prof Framework — professor's analytical lens and emphasis for a topic
  • Doctrine / Rule — legal test or standard synthesized from cases/statutes
  • Argument Structure — legal argument or counter-argument worked through analytically
  • Cross-Case Connection — insight linking cases or doctrines to reveal a deeper principle

Concepts (cross-cutting tags):
exam-relevant · minority-position · gotcha · unsettled-law · policy-rationale · course-theme

Chill Variantlaw-study--chill records only high-signal items: issue patterns, gotchas, and professor frameworks. Skips routine case holdings unless the result is counterintuitive.

CLAUDE.md Templatelaw-study-CLAUDE.md is a drop-in template for any law study project directory. It configures Claude as a Socratic legal study partner: precise case briefs, critical document analysis, issue spotting, and doctrine synthesis — without writing exam answers for the student.

Activate with: /mode law-study or /mode law-study--chill

v10.5.2

26 Feb 03:23

Choose a tag to compare

Smart Explore Benchmark Docs & Skill Update

Documentation

  • Published smart-explore benchmark report to public docs — full A/B comparison with methodology, raw data tables, quality assessment, and decision framework
  • Added benchmark report to docs.json navigation under Best Practices

Smart Explore Skill

  • Updated token economics with benchmark-accurate data (11-18x savings on exploration, 4-8x on file understanding)
  • Added "map first" core principle as decision heuristic for tool selection
  • Added AST completeness guarantee to smart_unfold documentation (never truncates, unlike Explore agents)
  • Added Explore agent escalation guidance for multi-file synthesis tasks
  • Updated smart_unfold token range from ~1-7k to ~400-2,100 based on measurements
  • Updated Explore agent token range from ~20-40k to ~39-59k based on measurements

v10.5.1

26 Feb 02:08

Choose a tag to compare

Bug Fix

  • Restored hooks.json to pre-smart-explore configuration (re-adds Setup hook, separate worker start command, PostToolUse matcher)