Skip to content

TT-Wang/cortex-plugin

v0.10.1 Feature

This release adds 2 notable features for engineering teams evaluating rollout.

Published 1mo MCP Developer Tools
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

anthropic claude-code claude-code-plugin local-first mcp mcp-server
+4 more
memory obsidian persistent-memory python

Affected surfaces

breaking_upgrade

Summary

AI summary

Fixed 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_timeline read mem.get("created") but the parser stores the field as created_at. Every timestamp was 0.0 so the "Before" section was always empty. Fixed all six call sites.
  • pre-tool-use.sh drained stdin into $INPUT then tried to json.load(sys.stdin) in a heredoc — stdin was already empty, hook silently fell through to empty context. MEMEM_PRETOOL_GATING=1 was a no-op for every user. Fixed by writing stdin to a tempfile and passing the path via argv.
  • classify_layer read mem.get("tags") but memories store their tag list under domain_tags. Tag-based L0/L1 classification never fired. Same bug in _format_full_memory (memory_get display). Both fixed to domain_tags or tags.

Performance

  • O(N²) vault rescansclassify_layer(mem, _obsidian_memories()) was inside the mining loop. Hoisted the snapshot once per session.
  • --compact-index was unbounded — 290 KB / ~72K tokens injected at every session start for a 1895-memory vault. Added --limit N flag (default 500, override via MEMEM_COMPACT_INDEX_LIMIT), ranked by importance + recency. Drops to ~20K tokens.

Graph traversal

  • FTS path silently did 2-hop (_search_memories expanded, then memory_search expanded again). Added expand_links=False parameter; memory_search now does a single-hop expansion. memory_recall keeps the old behavior for backward compat.

MCP schema

  • memory_timeline min_length=4 but _find_memory requires 8-char prefixes. Fixed to 8.
  • memory_timeline scope_id was 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

Track TT-Wang/cortex-plugin

Get notified when new releases ship.

Sign up free

About TT-Wang/cortex-plugin

Persistent, self-evolving memory plugin for Claude Code. Background miner extracts durable lessons (decisions, conventions, bug fixes)

All releases →

Beta — feedback welcome: [email protected]