Releases: thedotmack/claude-mem
v10.6.3
v10.6.3 — Critical Patch Release
Bug Fixes
- Fix MCP server crash: Removed erroneous
import.meta.urlESM-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.tswarning log now includessessionIdfor 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.jsonplugin/scripts/mcp-server.cjsplugin/scripts/worker-service.cjsscripts/build-hooks.jssrc/cli/handlers/summarize.tssrc/services/infrastructure/ProcessManager.tssrc/services/worker-service.tssrc/supervisor/env-sanitizer.tstests/infrastructure/plugin-distribution.test.tstests/supervisor/env-sanitizer.test.ts
v10.6.2
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()andhasPendingMessages()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: truebroadcast and eliminated double-iteration inbroadcastProcessingStatus() - Replaced inline
require()with proper accessor viasessionManager.getPendingMessageStore() - Added 8 regression tests for session termination invariant
v10.6.1
New Features
- Timeline Report Skill — New
/timeline-reportskill 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=trueparameter to/api/context/injectfor fetching all observations
Improvements
- Split
TimelineRendererinto separate markdown/color rendering paths - Fixed timestamp ditto marker leaking across session summary boundaries
Security
- Removed arbitrary file write vulnerability (
dump_to_fileparameter)
v10.6.0
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.mdxandopenclaw/SKILL.mdto reflect system prompt injection behavior - Fixed "prompt injection" → "context injection" terminology to avoid confusion with the OWASP security term
v10.5.6
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
shutdownInitiatedflag to prevent duplicate shutdown cascades when signals arrive beforestopPromiseis set - Remove unused
dataDirparameter fromShutdownCascadeOptions - Export and reuse env sanitizer constants —
Server.tsnow importsENV_PREFIXES/ENV_EXACT_MATCHESfromenv-sanitizer.tsinstead of duplicating them - Rename
zombiePidFilestodeadProcessPids— now returns actual PID array instead of a boolean - Use
buildWorkerUrlhelper inworkerHttpRequestinstead of inline URL construction - Remove unused
getWorkerPortimports from observation and session-init handlers - Upgrade
reapSessionfailure log from debug to warn level - Clean up
.gitignore— remove stale~*/,http*/,https*/patterns and duplicatedatasets/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
dataDirfrom shutdown test fixtures
v10.5.5
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_TYPESandCLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTSsettings 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
Bug Fixes
- fix: restore modes to correct location — All modes (
code, code language variants,email-investigation) were erroneously moved fromplugin/modes/toplugin/hooks/modes/during the v10.5.3 release, breaking mode loading. This patch restores them toplugin/modes/where they belong.
v10.5.3
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 Variant — law-study--chill records only high-signal items: issue patterns, gotchas, and professor frameworks. Skips routine case holdings unless the result is counterintuitive.
CLAUDE.md Template — law-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
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
Bug Fix
- Restored hooks.json to pre-smart-explore configuration (re-adds Setup hook, separate worker start command, PostToolUse matcher)