Skip to content

v0.4.0 — self-budgeted injection + secret redaction

Choose a tag to compare

@cremenescu cremenescu released this 15 Jun 08:23

Self-budgeted injection, secret redaction, and one-command plugin install.

Critical rules + injection budget

The biggest change is architectural. As your store grows, the SessionStart injection grows too — and past a threshold the harness truncates it blindly, which can silently drop a rule the agent must follow. Now the injection trims itself, deterministically:

  • priority: critical (mem.py pin <id> / --critical) — action-gating rules are always injected first, with their full body, outside the budget.
  • MEM_INJECT_BUDGET (default 8000 bytes) — everything else fills the budget in relevance order (current project's status/todo first, then global, then recently-touched projects); every cut is announced with the command that retrieves the omitted records. Nothing disappears silently.
  • Dashboard health row shows real injection size vs budget; the "What Claude sees" page shows the budget.

Secret redaction

Every write path redacts secrets by default (8 patterns: API keys, Bearer/GitHub/OpenAI/Slack tokens, AWS keys, private-key blocks, quoted passwords), replacing values with [REDACTED:<label>]:

  • mem.py add / propose, and the consolidate.py pipeline (transcripts are redacted before they reach the local LLM).
  • mem.py audit — read-only report of secret-like patterns already in the store (exit 1 if any).
  • Opt out per call with --no-redact, globally with MEM_REDACT=0.

Claude Code plugin packaging

claude plugin marketplace add cremenescu/mem0ry4ai
claude plugin install mem0ry4ai@mem0ry4ai

In plugin installs the data lives in ~/.mem0ry4ai (its own git repo, auto-created on first write), so plugin updates never touch your memories. MEM_DATA_DIR decouples data from code everywhere.

Also

  • Date-filtered search: mem.py search "..." --since 2026-05-01 --until ... (also on list).
  • Live git history page — updates without refresh (4s poll on store HEAD + dirty state; open diffs preserved).
  • Per-scope auto-checkpoints — the SessionEnd hook commits one checkpoint per store file, so commits never mix projects.

Full parity between the two parsers (Python mem.py + PHP web UI) verified by tests/conformance.py.