Releases: thedotmack/claude-mem
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)
v10.5.0
Smart Explore: AST-Powered Code Navigation
This release introduces Smart Explore, a token-optimized structural code search system built on tree-sitter AST parsing. It applies the same progressive disclosure pattern used in human-readable code outlines — but programmatically, for AI agents.
Why This Matters
The standard exploration cycle (Glob → Grep → Read) forces agents to consume entire files to understand code structure. A typical 800-line file costs ~12,000 tokens to read. Smart Explore replaces this with a 3-layer progressive disclosure workflow that delivers the same understanding at 6-12x lower token cost.
3 New MCP Tools
smart_search— Walks directories, parses all code files via tree-sitter, and returns ranked symbols with signatures and line numbers. Replaces the Glob → Grep discovery cycle in a single call (~2-6k tokens).smart_outline— Returns the complete structural skeleton of a file: all functions, classes, methods, properties, imports (~1-2k tokens vs ~12k for a full Read).smart_unfold— Expands a single symbol to its full source code including JSDoc, decorators, and implementation (~1-7k tokens).
Token Economics
| Approach | Tokens | Savings |
|---|---|---|
| smart_outline + smart_unfold | ~3,100 | 8x vs Read |
| smart_search (cross-file) | ~2,000-6,000 | 6-12x vs Explore agent |
| Read (full file) | ~12,000+ | baseline |
| Explore agent | ~20,000-40,000 | baseline |
Language Support
10 languages via tree-sitter grammars: TypeScript, JavaScript, Python, Rust, Go, Java, C, C++, Ruby, PHP.
Other Changes
- Simplified hooks configuration
- Removed legacy setup.sh script
- Security fix: replaced
execSyncwithexecFileSyncto prevent command injection in file path handling
v10.4.4
Fix
- Remove
save_observationfrom MCP tool surface — This tool was exposed as an MCP tool available to Claude, but it's an internal API-only feature. Removing it from the MCP server prevents unintended tool invocation and keeps the tool surface clean.
v10.4.3
Bug Fixes
- Fix PostToolUse hook crashes and 5-second latency (#1220): Added missing
breakstatements to all 7 switch cases inworker-service.tspreventing fall-through execution, added.catch()onmain()to handle unhandled promise rejections, and removed redundantstartcommands from hook groups that triggered the 5-secondcollectStdin()timeout - Fix CLAUDE_PLUGIN_ROOT fallback for Stop hooks (#1215): Added POSIX shell-level
CLAUDE_PLUGIN_ROOTfallback inhooks.jsonfor environments where the variable isn't injected, added script-level self-resolution viaimport.meta.urlinbun-runner.js, and regression test added inplugin-distribution.test.ts
Maintenance
- Synced all version files (plugin.json was stuck at 10.4.0)
v10.4.2
Bug Fixes
- Fix PostToolUse hook crashes and 5-second latency (#1220): Added missing
breakstatements to all 7 switch cases inworker-service.tspreventing fall-through execution, added.catch()onmain()to handle unhandled promise rejections, and removed redundantstartcommands from hook groups that triggered the 5-secondcollectStdin()timeout - Fix CLAUDE_PLUGIN_ROOT fallback for Stop hooks (#1215): Added POSIX shell-level
CLAUDE_PLUGIN_ROOTfallback inhooks.jsonfor environments where the variable isn't injected, added script-level self-resolution viaimport.meta.urlinbun-runner.js, and regression test added inplugin-distribution.test.ts - Sync plugin.json version: Fixed
plugin.jsonbeing stuck at 10.4.0 while other version files were at 10.4.1
v10.4.1
Refactor
- Skills Conversion: Converted
/make-planand/docommands into first-class skills inplugin/skills/. - Organization: Centralized planning and execution instructions alongside
mem-search. - Compatibility: Added symlinks for
openclaw/skills/to ensure seamless integration with OpenClaw.
Chore
- Version Bump: Aligned all package and plugin manifests to v10.4.1.
v10.4.0
v10.4.0 — Stability & Platform Hardening
Massive reliability release: 30+ root-cause bug fixes across 10 triage phases, plus new features for agent attribution, Chroma control, and broader platform support.
New Features
- Session custom titles — Agents can now set
custom_titleon sessions for attribution (migration 23, new endpoint) - Chroma toggle —
CLAUDE_MEM_CHROMA_ENABLEDsetting allows SQLite-only fallback mode (#707) - Plugin disabled state — Early exit check in all hook entry points when plugin is disabled (#781)
- Context re-injection guard —
contextInjectedsession flag prevents re-injecting context on every UserPromptSubmit turn (#1079)
Bug Fixes
Data Integrity
- SHA-256 content-hash deduplication on observation INSERT (migration 22 with backfill + index)
- Project name collision fix:
getCurrentProjectName()now returnsparent/basename - Empty project string guard with cwd-derived fallback
- Stuck
isProcessingreset: pending work older than 5 minutes auto-clears
ChromaDB
- Python version pinning in uvx args for both local and remote mode (#1196, #1206, #1208)
- Windows backslash-to-forward-slash path conversion for
--data-dir(#1199) - Metadata sanitization: filter null/undefined/empty values in
addDocuments()(#1183, #1188) - Transport error auto-reconnect in
callTool()(#1162) - Stale transport retry with transparent reconnect (#1131)
Hook Lifecycle
- Suppress
process.stderr.writeinhookCommand()to prevent diagnostic output showing as error UI (#1181) - Route all
console.error()through logger instead of stderr - Verified all 7 handlers return
suppressOutput: true(#598, #784)
Worker Lifecycle
- PID file mtime guard prevents concurrent restart storms (#1145)
getInstalledPluginVersion()ENOENT/EBUSY handling (#1042)
SQLite Migrations
- Schema initialization always creates core tables via
CREATE TABLE IF NOT EXISTS - Migrations 5-7 check actual DB state instead of version tracking (fixes version collision between old/new migration systems, #979)
- Crash-safe temp table rebuilds
Platform Support
- Windows:
cmd.exe /cuvx spawn, PowerShell$_elimination with WQL filtering,windowsHide: true, FTS5 runtime probe with fallback (#1190, #1192, #1199, #1024, #1062, #1048, #791) - Cursor IDE: Adapter field fallbacks, tolerant session-init validation (#838, #1049)
- Codex CLI:
session_idfallbacks, unknown platform tolerance, undefined guard (#744)
API & Infrastructure
/api/logsOOM fix: tail-read replaces full-filereadFileSync(64KB expanding chunks, 10MB cap, #1203)- CORS: explicit methods and allowedHeaders (#1029)
- MCP type coercion for batch endpoints: string-to-array for
idsandmemorySessionIds - Defensive observation error handling returns 200 on recoverable errors instead of 500
.git/directory write guard on all 4 CLAUDE.md/AGENTS.md write sites (#1165)
Stale AbortController Fix
lastGeneratorActivitytimestamp tracking with 30s timeout (#1099)- Stale generator detection + abort + restart in
ensureGeneratorRunning AbortSignal.timeout(30000)indeleteSessionprevents indefinite hang
Installation
resolveRoot()replaces hardcoded marketplace path usingCLAUDE_PLUGIN_ROOTenv var (#1128, #1166)installCLI()path correction andverifyCriticalModules()post-install check- Build-time distribution verification for skills, hooks, and plugin manifest (#1187)
Testing
- 50+ new tests across hook lifecycle, context re-injection, plugin distribution, migration runner, data integrity, stale abort controller, logs tail-read, CORS, MCP type coercion, and smart-install
- 68 files changed, ~4200 insertions, ~900 deletions
v10.3.3
Bug Fixes
- Fixed session context footer to reference the claude-mem skill instead of MCP search tools for accessing memories