Every public page about ai-memory — README, marketing site, roadmap, architecture pages, sales decks — must source its numbers from this page or from the upstream test-hub evidence it cites. No other page invents its own counts. If a number on another page disagrees with this page, this page is correct and the other is a bug — please file an issue.
All values below are taken from the v0.7.0 release evidence published on the test-hub, or counted directly from the v0.7.0 source tree. Source links accompany each row.
| Field | Value | Source of truth |
|---|---|---|
| Current release | v0.7.1 | git tag v0.7.1 on main · 2026-05 release campaign |
MCP tools advertised (--profile full) | 74 | 73 callable memory tools + always-on memory_capabilities bootstrap. Pinned by Profile::full().expected_tool_count() in src/profile.rs · disambiguation issue #862 |
MCP tools default (--profile core) | 7 | Original 5 + memory_load_family + memory_smart_load, plus always-on memory_capabilities bootstrap. See Profile::core() in src/profile.rs |
HTTP routes (/api/v1/) | 89 / 75 | 89 production .route(…) registrations / 75 unique URL paths. SSOT consts EXPECTED_PRODUCTION_ROUTES_COUNT = 89 + EXPECTED_PRODUCTION_UNIQUE_PATHS_COUNT = 75; route-path SSOT src/handlers/routes.rs (#1558 batch 4), registered by the src/lib.rs router (plus the bare /metrics Prometheus surface). |
| CLI subcommands | 82 / 80 | 82 with --features sal or --features sal-postgres (sal-postgres implies sal), 80 in the default build (the 2-variant gap is Migrate + SchemaInit, both gated #[cfg(feature = "sal")] per src/daemon_runtime.rs::Command::{Migrate,SchemaInit}). Counted from clap top-level Command enum in src/daemon_runtime.rs (was 40 at v0.6.4). |
| Schema version (sqlite + postgres) | v57 | Constant CURRENT_SCHEMA_VERSION = 57 in src/storage/migrations.rs (sqlite) and src/store/postgres.rs (postgres). v48 added federation_push_dlq (#933); v49 added 14 nullable columns to archived_memories (#1025); v50 extended agent_quotas PRIMARY KEY from (agent_id) to (agent_id, namespace) for per-namespace K8 quota dimension (#1156); pre-v50 rows backfill to the _global sentinel. v51 added federation_nonce_cache table (#1255 / PR #1296) for peer-replay-prevention nonce persistence across daemon restarts. v52 added transcript_line_dedup (#1389) backing the sha256-keyed idempotency layer for the four-layer capture architecture (closes #1388). v53 (#1418, R5.F5.2) scoped the memories_au FTS5 sync trigger to (title, content, tags) so hot-path UPDATEs touching non-FTS columns no longer pay 2 spurious FTS5 row ops per UPDATE. v54 (#1466) backfilled tier-default expiry onto legacy NULL-expiry mid/short rows (in-code arm, no new .sql) to close the TTL-leak immortal-rows class. v55 (#1476) made the list_memories_updated_since federation-catchup query sargable and added idx_memories_updated_at on SQLite; postgres is a version-stamp no-op (its bootstrap memories_updated_at_idx (updated_at DESC) already serves the range). |
Capabilities envelope schema_version | "3" | Post-A5; v1/v2 still negotiable via accept= on memory_capabilities MCP / Accept-Capabilities HTTP header — see src/mcp/tools/capabilities.rs |
| Memory struct fields | 26 | Was 15 at v0.6.x; v0.7.0 adds recursive-learning, Batman vocabulary, Form-4 provenance, Form-5 confidence-calibration columns, plus the v45 version column for Gap-1 optimistic concurrency. See src/models/memory.rs. |
| MemoryLink relation variants | 6 | related_to, supersedes, contradicts, derived_from, reflects_on, derives_from. Enum MemoryLinkRelation in src/models/link.rs |
| Subscription dispatch | HMAC mandatory | Unsigned dispatch DISABLED post-R3-S1.HMAC (fix campaign 2026-05-13). See src/subscriptions.rs |
| TTL on access | sliding replacement | Touch sets expires_at = now + per-tier-TTL — replacement, not max-of-old-and-new extend. Create-time backstop (6h short / 7d mid) applies only until first access. See recall pipeline docs in CLAUDE.md |
| CI matrix platforms | 3 | ubuntu-latest · macos-latest · windows-latest — see .github/workflows/ci.yml |
| LongMemEval Recall@5 | 96.4–97.8% | LongMemEval-S, 500 questions. v0.7.0 binary-faithful (harness.py drives the shipped ai-memory recall): keyword/pure-FTS5 96.4%, semantic 96.8%, autonomous 95.8% (measured 2026-05-31). The historical 97.8% headline (489-question shadow harness, harness_99.py) used LLM query-expansion over FTS5 — not pure BM25 — and is reproduced at 97.2% R@5 on an OpenRouter cloud backend (Ollama-free, 0 failures). Full cross-harness matrix + per-category provenance: benchmarks/longmemeval/results.md. |
| Final-baseline regression (2026-05-31) | 15,951 / 0 | #1182 NO-FAIL-MISSION off a pristine rig restart (docker compose down -v + up -d, all volumes wiped). Domain 1 default-feature sqlite shipping build: 7,458 passed / 0 failed / 16 ignored. Domain 2 Postgres + Apache AGE SAL-parity (--features sal,sal-postgres): 8,493 passed / 0 failed / 37 ignored. Four 1:1 findings filed→fixed→closed (#1444 C8 allowlist, #1445 expand_query 3-surface envelope parity, #1446 / #1447 doc drift); three independent codegraph QC audits all ZERO-DEFECTS-CONFIRMED. Full provenance: docs/v0.7.0/regression-runs/2026-05-31-final-baseline/. Round 2 (2026-06-01) — independent re-run off a second full volume wipe — reproduced GREEN at 15,952 / 0 (Domain 1 7,458 / 0 / 16 identical; Domain 2 8,494 / 0 / 37, +1 = the #1445 regression test) with zero new defects, confirming the result is reproducible and stable: docs/v0.7.0/regression-runs/2026-06-01-round2/. |
grep #[test] includes attributes inside #[cfg(test)] guards that are not always compiled, plus benchmark scaffolding — it is not a canonical test-pass count for any era.
This is where conflicting maturity signals on other pages get resolved. Use these labels — and only these labels — when describing capability maturity in any public material.
One ai-memory instance, one consumer. SQLite + WAL + FTS5 + HNSW. No network, no peers. Used in production by the project team daily. T1 + T2 of the architectures matrix.
Adaptive blend, cross-encoder rerank, recency decay, tier boost. On LongMemEval-S (ICLR 2025, 500 questions), v0.7.0 binary-faithful R@5 measures keyword 96.4% / semantic 96.8% / autonomous (rerank) 95.8%; the 97.8% headline came from an FTS5 + LLM query-expansion path (shadow harness), reproduced at 97.2% on an OpenRouter backend. See benchmarks/longmemeval/results.md.
74 MCP tools at --profile full (7 at --profile core), 89 HTTP routes (75 unique paths) at /api/v1/, 80 CLI subcommands (default build) / 82 with --features sal or --features sal-postgres. Stable contract. Used by Claude Code, Codex, Cursor, Windsurf, Continue.dev, Grok, OpenClaw, Hermes, and Llama integrations today.
Allow / Deny / Pending policies; pending-approval queue; scope-visibility filter; immutable agent_id provenance. v0.6.2+ stable.
Code shipped in v0.6.3: 10 broadcast functions, ack tracker, vector-clock catchup, mTLS fingerprint allowlist. Used in T3 (multi-node cluster) tests on the ship-gate. Not yet recommended for self-driving production fleets without an operator-on-call. See T3 architecture for what's wired and what's not.
--features sal-postgres build flag; ai-memory serve --store-url postgres://… selects the adapter. Schema parity at v57 with Apache AGE Cypher graph support. GA at v0.7.0 — the #1182 final baseline ran the full SAL-parity suite (8,493+ tests) green against Postgres + AGE.
Query expansion, auto-tagging, contradiction detection, cross-encoder reranking via Ollama (Gemma 4 e2b/e4b). Functional and tested but performance/quality varies by host hardware. Production use should pin model versions and run baseline recall regressions.
v0.7.0 ships attestation in the memory_links table: signature, attest_level (unsigned / self_signed / peer_attested), and signed_at columns are wired through H2 (outbound self-sign), H3 (inbound verify), and H4 (memory_verify MCP tool); #626 Layer-3 verifies caller-presented store-surface signatures (attest_level = "agent_attested"). An unsigned agent_id remains a claim ("claimed") unless AI_MEMORY_REQUIRE_AGENT_ATTESTATION=1 — pair with the attestation envelope for security decisions.
No Raft, no Paxos, no global gossip/DHT. Tier 5 ("global hive") of the architectures matrix is vision — v1.0+ horizon. Don't deploy ai-memory across regions today expecting strong consistency.
ai-memory v0.7.0 holds the following internal certifications. External (third-party) audits and compliance attestations are not yet held for any release; do not represent ai-memory as SOC 2, ISO 27001, FedRAMP, or HIPAA-compliant.
| Certification | Status | Authority |
|---|---|---|
| A2A-Certified (internal) | Yes | A2A gate · v0.6.2 + v0.6.3 |
| Ship-Gate (internal) | Yes | Ship gate · 9/9 cert + 5/5 channels green at v0.6.2 cut |
| SOC 2 | No | No third-party audit. Do not represent. |
| ISO 27001 | No | No third-party audit. Do not represent. |
| FedRAMP | No | No authorization. Do not represent. |
| HIPAA | No | No BAA. Do not represent. |
test-hub/releases/vX.Y.Z/.docs/evidence.html first — the hero FROZEN badge, every row of the facts table, and every status card whose maturity has changed.grep -rE "(191|1,?[0-9]{3})\s*test|9[0-9]\.[0-9]+%\s*coverage|v0\.6\.[0-9]" docs/ README.md — every match either updates to the new canonical number or replaces with a link to evidence.html.