Skip to content

CodeAbra/iai-mcp

v2.5.0 Breaking

This release includes 1 breaking change for platform teams planning a safe upgrade.

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

✓ No known CVEs patched in this version

Topics

agent-memory ai-memory claude claude-code codex cursor
+14 more
encrypted episodic-memory gemini llm-memory local-first long-term-memory mcp mcp-memory mcp-server model-context-protocol persistent-memory rag-alternative sqlite vector-db

Affected surfaces

breaking_upgrade

Summary

AI summary

Working memory now per‑session; upgrade requires refreshing hooks with iai-mcp capture-hooks install.

Full changelog

Upgrade note: working memory is now scoped per session. After upgrading, refresh the hooks together with the daemon so injection keeps working:

iai-mcp capture-hooks install

A hook left from an older version reads a file the new daemon no longer writes.


Changed

  • The storage stack is now ours end to end. Nearest-neighbour search and the
    record schema moved onto in-tree engines, and the hnswlib and pyarrow
    dependencies are gone. Recall is exact rather than approximate, the index
    grows on demand instead of hitting a fixed capacity wall, and a stale index is
    rebuilt from the store on first boot. Nothing is required of you — an existing
    store upgrades in place.
  • The runtime no longer needs sqlite3. The daemon runs entirely on the
    in-tree engine; the standard-library driver remains only as an explicit
    fallback. Installs are smaller and the native extension links no system
    libraries.
  • Working memory survives parallel sessions. Two conversations open at once
    shared one working task, and the per-turn injection could hand one
    conversation the other's context. Attention still holds a single focal task,
    but suspended tasks are now parked one per session: a turn from another
    session parks the current task — writing its finished results through to
    storage first — and restores that session's own. Each session reads only its
    own snapshot, so one conversation's work can no longer surface in another.
    On upgrade, refresh the hooks together with the daemon — run
    iai-mcp capture-hooks install. A hook left from an older version reads a
    file the new daemon no longer writes, and working memory silently stops being
    injected until it is refreshed.
  • Look-ahead context follows the session it belongs to rather than whichever
    conversation last held attention.
  • "Turned into knowledge" now measures real coverage — the share of moments
    actually condensed into a summary, traced through the links between them. It
    used to divide summaries by moments, a ratio pinned at a few percent no matter
    how well consolidation worked. A newer page against an older daemon falls back
    to the old number rather than breaking.
  • The brain view rests wordless. Captions appear as you zoom in; hovering or
    selecting still names a memory at any zoom. The "center the brain" button
    moved clear of the bottom edge.
  • The brain view's economy card speaks plainly: memory packs served, free
    tokens injected, fallback searches, tokens saved.

Added

  • iai-mcp idem-dedup removes exact-duplicate records left by earlier
    builds. It reports by default and only rewrites with --apply, which takes a
    store snapshot first.
  • iai-mcp edge-backfill re-links knowledge summaries to the moments they
    came from, on stores where those links were lost. A summary that still holds
    at least one link claims the rest of its group; summaries with none are
    reported and left alone rather than guessed at — they recover on their own as
    their group is summarised again. Reports by default, snapshots the store on
    --apply, safe to re-run. Optional maintenance for long-lived stores; a fresh
    install never needs it. Stop the daemon first.
  • CLAUDE_BIN points the daemon at your claude executable when the
    service manager's environment cannot find it.
  • Kill-switches for the consolidation work below:
    IAI_MCP_WAKE_COACTIVATION=0 stops recall from recording co-activations,
    IAI_MCP_REM_DISABLED=1 skips the nightly insight, and
    IAI_MCP_REM_MIN_INTERVAL_SEC sets how often it may run.

Fixed

  • Memory learns again. Consolidation built its clusters from links that were
    never created while awake, so every night found nothing to summarise and no
    knowledge was ever written — silently, since the run reported success.
    Clustering now reads the links the system actually forms, recall records which
    memories come up together, oversized groups are split rather than merged into
    one useless summary, and a group already covered by an existing summary is left
    alone until it grows. On a mature store this is the difference between a
    permanently empty knowledge layer and one that fills every night.
  • A summary is no longer swallowed by the memories it quotes. Because a
    summary repeats its own sources, the near-duplicate check treated it as a copy
    of them and merged it away. The check now compares only within the same kind of
    memory, and links left pointing at the merged-away copies clean themselves up.
  • The nightly insight runs again. The pass that writes the overnight digest
    had lost its only caller and had been silent since early June. It is wired back
    in, spaced to once a night, and can be forced or disabled.
  • The daemon can find claude under a service manager. Started by launchd or
    systemd, the daemon inherits a minimal environment and could not locate the
    executable, so every nightly insight failed with a file-not-found error while
    the same command worked from a terminal. It now looks at CLAUDE_BIN, then the
    path, then the usual install locations. If your overnight digests were never
    arriving, this is why.
  • Duplicate records stop accumulating. A record's tag index could be left
    unbuilt, hiding it from the check that prevents re-inserting the same content.
    The index now repairs itself each night, and the new idem-dedup command
    clears what earlier builds already stored.
  • The brain view shows connections again. As a store matured, three separate
    limits combined to leave the graph a field of unconnected dots: self-links
    filled the scan window, the window ended before recent memories, and the sample
    rarely held both ends of any link. Self-links are excluded, the window is far
    wider, and each sampled memory brings its strongest partners along.
  • Direct captures reach the fallback bank. Only transcript-driven captures
    were mirrored into the recent window, so recall with the daemon stopped saw
    nothing newer than the last batch. Every successful capture is mirrored now.
  • Time-scoped recall returns a valid response. memory_temporal_recall
    emitted an empty scope field on calls without a time bound, which failed
    schema validation. The field is omitted when it does not apply.
  • Pattern detection stops inventing patterns. Per-record fingerprints, unique
    by construction, were mined as if they were recurring patterns; most stored
    patterns were this noise. They are excluded, and schema-cleanup prunes what
    was already stored.
  • A correction can no longer collapse into what it corrects. If a correction
    was near-identical to the record it contradicts, the duplicate check merged the
    two and wired the record to contradict itself. This is now refused with a
    message asking for a clearer rephrase.
  • doctor distinguishes repaired history from damage and reports honest
    counts for what consolidation created versus merged.
  • A rare storage error now records its own evidence. Deleting links can
    intermittently fail on one uncommon page layout — loudly, without data loss,
    and the operation retries on the next cycle. When it happens the store image is
    copied to a bounded quarantine folder so the cause can be found. If you see an
    integrity error mentioning interior page overflow, that folder is what to send.
  • iai status no longer pins a core. The status probe was dispatching the
    full topology computation on every call, so a monitoring loop could keep the
    daemon busy indefinitely. Status now answers from a light path, topology is
    cached with a single-flight guard, and the graph pass is sampled above a size
    threshold.
  • Startup no longer replays the whole capture backlog at once. A large queue
    of deferred captures was drained in one uninterrupted pass at boot, which
    burned CPU for as long as it took. The pass is now bounded (500 records or 10
    seconds by default, tunable via IAI_MCP_CAPTURE_DRAIN_MAX_RECORDS and
    IAI_MCP_CAPTURE_DRAIN_BUDGET_SEC), reports what remains, and resumes on each
    idle window until the backlog clears.
  • Memory keeps its community structure at scale. Above a few thousand
    records the clustering pass could collapse into a single flat group, losing the
    structure recall depends on. Partitioning now holds up at full corpus size.
  • Storage corruption is reported as corruption. A damaged store surfaced as
    an opaque runtime error; disk damage, transient I/O faults, and read-only
    rejections are now distinguishable, so a caller cannot mistake one for another.
  • Deletes over large pages no longer fail. Interior tree rebalancing measures
    page fullness in bytes, so a delete cascade across byte-full pages completes.
  • Windows can start the daemon again. iai-mcp daemon install registers a
    per-user Task Scheduler task, with install, start, and uninstall parity with
    launchd and systemd.
  • Release wheels build on Linux and macOS. The native extension no longer
    pulls OpenSSL into the dependency tree, and the macOS deployment target is
    pinned so the built wheel passes its own repair step.

Breaking Changes

  • Working memory is scoped per session; after upgrade hooks must be refreshed via `iai-mcp capture-hooks install` to avoid silent loss of injected context.

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 CodeAbra/iai-mcp

Get notified when new releases ship.

Sign up free

About CodeAbra/iai-mcp

All releases →

Related context

Earlier breaking changes

  • v1.0.0 Removes previous embedded vector database, PyTorch embedding stack, and third‑party GPL/graph libraries.
  • v0.4.0 Hook log marker format changed from 'cache-hit fresh' to 'cache-hit age='
  • v0.4.0 Deferred-capture retry replaces old rename-once-and-skip behavior
  • v0.4.0 Removed 24-hour staleness cap from session-recall hook
  • v0.2.0 IAI_MCP_EMBED_QUANTIZE accepts only int8 (lowercase) or unset; other values crash daemon at startup.

Beta — feedback welcome: [email protected]