This release adds 2 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+4 more
Affected surfaces
Summary
AI summaryFixed multiple correctness bugs causing empty timestamps, failed hooks, and mis‑classified memories.
Full changelog
Hotfix for v0.10.0. Post-ship forge code review found six bugs that the test suite missed (tests were mocking around the real data paths).
Correctness
memory_timelinereadmem.get("created")but the parser stores the field ascreated_at. Every timestamp was 0.0 so the "Before" section was always empty. Fixed all six call sites.pre-tool-use.shdrained stdin into$INPUTthen tried tojson.load(sys.stdin)in a heredoc — stdin was already empty, hook silently fell through to empty context.MEMEM_PRETOOL_GATING=1was a no-op for every user. Fixed by writing stdin to a tempfile and passing the path via argv.classify_layerreadmem.get("tags")but memories store their tag list underdomain_tags. Tag-based L0/L1 classification never fired. Same bug in_format_full_memory(memory_getdisplay). Both fixed todomain_tags or tags.
Performance
- O(N²) vault rescans —
classify_layer(mem, _obsidian_memories())was inside the mining loop. Hoisted the snapshot once per session. --compact-indexwas unbounded — 290 KB / ~72K tokens injected at every session start for a 1895-memory vault. Added--limit Nflag (default 500, override viaMEMEM_COMPACT_INDEX_LIMIT), ranked by importance + recency. Drops to ~20K tokens.
Graph traversal
- FTS path silently did 2-hop (
_search_memoriesexpanded, thenmemory_searchexpanded again). Addedexpand_links=Falseparameter;memory_searchnow does a single-hop expansion.memory_recallkeeps the old behavior for backward compat.
MCP schema
memory_timelinemin_length=4but_find_memoryrequires 8-char prefixes. Fixed to 8.memory_timelinescope_idwas accepted but never used. Fixed to pass through to_obsidian_memories.
Known trade-off
PreToolUse hook has ~5s cold-start latency because it spawns a fresh python -m memem.server --recall subprocess that imports the full index. That's why it's opt-in via MEMEM_PRETOOL_GATING=1. A future release will query search.db directly via a lightweight helper.
73/73 tests still green, ruff clean. Upgrade: /plugin update memem.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About TT-Wang/cortex-plugin
Persistent, self-evolving memory plugin for Claude Code. Background miner extracts durable lessons (decisions, conventions, bug fixes)
Related context
Beta — feedback welcome: [email protected]