FROZEN · v0.7.0 · 2026-05-22 release-gate-final

The single source of truth.

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.

🧪 Live test-hub → 📊 v0.6.3 release evidence (historical) → 🚢 ship-gate 🤝 A2A-gate
Frozen facts · v0.7.0

The numbers.

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.

FieldValueSource of truth
Current releasev0.7.1git tag v0.7.1 on main · 2026-05 release campaign
MCP tools advertised (--profile full)7473 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)7Original 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 / 7589 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 subcommands82 / 8082 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)v57Constant 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 fields26Was 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 variants6related_to, supersedes, contradicts, derived_from, reflects_on, derives_from. Enum MemoryLinkRelation in src/models/link.rs
Subscription dispatchHMAC mandatoryUnsigned dispatch DISABLED post-R3-S1.HMAC (fix campaign 2026-05-13). See src/subscriptions.rs
TTL on accesssliding replacementTouch 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 platforms3ubuntu-latest · macos-latest · windows-latest — see .github/workflows/ci.yml
LongMemEval Recall@596.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/.
Note on test-count framing. Public materials should lead with the newest verified baseline above: 15,951 / 0 (#1182 final baseline, 2026-05-31 — Domain 1 sqlite 7,458/0 + Domain 2 Postgres+AGE SAL-parity 8,493/0), independently reproduced at 15,952 / 0 on the 2026-06-01 round-2 volume-wipe re-run. Always cite the figure with its date and provenance link so readers can see which run produced it. Historical figures stay honest with their era attached: the 1,809 total tests figure (1,600 lib + 209 integration) is the v0.6.3-era release-gate count — still exposed as the test-hub Tier 1 row "1 600/1 600 lib tests pass" for procurement teams who want library-test isolation, but it describes v0.6.3, not v0.7.0. Older pages may reference 191 tests (~v0.6.0 era) — those are stale and should be replaced. The 1,898 figure from a raw 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.
Maturity

What is production-ready, what is not.

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.

Production-ready

Single-node operation

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.

Production-ready

Hybrid recall (FTS5 + semantic)

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.

Production-ready

MCP + HTTP + CLI surface

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.

Production-ready

Per-namespace governance

Allow / Deny / Pending policies; pending-approval queue; scope-visibility filter; immutable agent_id provenance. v0.6.2+ stable.

Beta

Federation — quorum writes (W-of-N)

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.

Production-ready

Postgres + pgvector backend

--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.

Experimental

Smart / Autonomous tier (Ollama LLM)

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.

Beta (opt-in enforcement)

Cryptographic agent attestation

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.

Unsupported (today)

Multi-region distributed consensus

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.

Reconciling the "is not a distributed system" claim in ADMIN_GUIDE.md. The admin guide is correct in spirit and historically lagged the v0.6.3 federation work. The accurate v0.6.3 framing is: ai-memory is a single-machine primitive that ships beta-quality federation primitives (quorum writes, mTLS peer mesh, vector-clock catchup) for opt-in multi-node clusters (T3). It is not a distributed database. It does not provide strong consistency, distributed consensus, or self-healing global state. Operators choosing to run a federated cluster today must accept beta-quality replication and own their consistency guarantees at the application layer.
Certification

Current certification status.

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.

CertificationStatusAuthority
A2A-Certified (internal)YesA2A gate · v0.6.2 + v0.6.3
Ship-Gate (internal)YesShip gate · 9/9 cert + 5/5 channels green at v0.6.2 cut
SOC 2NoNo third-party audit. Do not represent.
ISO 27001NoNo third-party audit. Do not represent.
FedRAMPNoNo authorization. Do not represent.
HIPAANoNo BAA. Do not represent.
Authoring rule

How to keep this page canonical.

  1. Cut a release tag.
  2. Run the full ship-gate matrix; publish a release evidence page at test-hub/releases/vX.Y.Z/.
  3. Update docs/evidence.html first — the hero FROZEN badge, every row of the facts table, and every status card whose maturity has changed.
  4. Sweep all references: 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.
  5. Open one PR for the sweep. Block release until it merges.