v0.7.0 — same NHI tomorrow
ai-memory v0.7.0 — same NHI tomorrow
Persistent, governed, attested memory for any AI. Self-hosted. MCP-native. The release where a substrate-native memory system learns to reflect on what it knows, survive a crash between turns, and prove who wrote what — across SQLite and PostgreSQL+AGE, on the desktop and on-device.
Why v0.7.0 matters (read this first)
v0.6.x made ai-memory a fast, token-lean memory server. v0.7.0 makes it a substrate. Three things change the category:
- It reasons over its own memory. Recursive learning lets the system reflect on stored memories to produce higher-order insight, consolidate near-duplicates with provenance, and traverse a knowledge graph of entities and relations — with a hard, stoppable depth cap.
- It never loses context to a crash. The #1389 L1–L4 layered auto-capture architecture guarantees that a
SIGKILLbetween conversation turns no longer loses — or duplicates — what was learned. - It can prove its provenance. Every write can be attested; the audit chain is a tamper-evident, cross-row hash chain that fails closed; federation requires signatures + replay-proof nonces by secure default.
All of it runs on a single storage-abstraction layer (SAL) with two production backends — embedded SQLite and PostgreSQL + Apache AGE — behind one identical API.
TL;DR by audience
👤 If you just want your AI to remember things
Nothing to relearn. brew upgrade ai-memory (or cargo install ai-memory --force) and your existing setup keeps working. Your AI can now recover its own context after a crash and build on what it learned instead of just looking it up.
brew upgrade ai-memory && ai-memory doctor🛠️ If you build agents / NHI on top of ai-memory
- 74 MCP tools at
--profile full(7-toolcoredefault + always-onmemory_capabilitiesbootstrap); three-surface parity across MCP / HTTP / CLI. - New primitives:
memory_reflect,memory_consolidate,memory_entity_register/memory_entity_get_by_alias,memory_kg_query/memory_find_paths/memory_kg_timeline/memory_kg_invalidate,memory_capture_turn(idempotent L4),memory_offload/memory_deref,memory_persona,memory_calibrate_confidence. - Provider-agnostic: point the LLM and the embedder at any of 15 vendor aliases (or self-hosted OpenAI-compatible / Ollama). Tier no longer dictates vendor.
🏢 If you operate it in production
- PostgreSQL + Apache AGE backend at full parity with SQLite via the SAL trait (
--store-url postgres://…). - Secure-by-default posture: governance fails closed, SSRF guard fails closed, keyless-bind refusal, signed federation with per-message nonces, agent-attestation enforcement.
- Config schema v2 (sectioned
[llm]/[embeddings]/[reranker]/[storage]/[limits]) withai-memory config migrate;ai-memory doctorreachability probes for LLM + embeddings.
What's new
🧠 Substrate-native recursive learning
memory_reflectproduces reflections over source memories with a stoppable depth cap (REFLECTION_DEPTH_EXCEEDEDat the namespacemax_reflection_depth, default 3),reflects_onedges, andreflection_originlineage.memory_consolidatemerges near-duplicates, preservingderived_from+consolidated_from_agentsprovenance.
🕸️ Knowledge graph
- Recursive-CTE traversal (
find_paths,kg_query,kg_timeline) with temporal validity (valid_from/valid_until) andkg_invalidate; Apache AGE Cypher on the PostgreSQL backend. - First-class entities with alias resolution (
entity_register→entity_get_by_alias), union-idempotent re-registration.
🛟 L1–L4 layered auto-capture (#1389) — never lose context to a crash
- L1 store-first discipline + capture-lag watcher · L2
recover-previous-session(transcript rehydration afterSIGKILL) · L3 filesystem watcher · L4memory_capture_turn— host-volunteered, idempotent by(host_session_id, host_turn_index), backed by schema v52transcript_line_dedup.
🔐 Attestation, governance & a fail-closed audit chain
- V-4 cross-row hash-chained
signed_events; Ed25519-signed daemonserverInfoat the MCPinitializehandshake. - Operator-signed governance rules (R001–R004), namespace standards, K9 permission gate — all fail closed on error.
- L4 host-signature verification against an operator allowlist (
attest_level = "signed_by_peer"); federation requires signatures + nonces by secure default.
🔌 Provider-agnostic LLM and embeddings
- One client over 15 vendor aliases + generic OpenAI-compatible + Ollama, for both chat and embeddings (#1067, #1598). Switch embedding models with
ai-memory reembed.
📱 On-device build pipeline
- iOS
xcframework(device + both simulators) and AndroidjniLibs(4 ABIs) artifacts; cross-compile + runtime CI (#1068).
⚡ Performance
- Async double-buffered HNSW rebuild (search p95 held under budget during rebuild), sargable list / federation-catchup queries, PostgreSQL stored-generated
tsvector+ GIN,mmapreads, and a tuned cross-encoder rerank sequence cap.
Schema
- Current schema v57 — automatic migrations on first open; archive→restore lossless for the full v0.7.0
Memoryshape on both backends.
Full detail in
CHANGELOG.md.
Upgrade & compatibility
- Default MCP surface remains the lean
coreprofile (since v0.6.4). Opt back to everything withai-memory mcp --profile full,AI_MEMORY_PROFILE=full, or[mcp] profile = "full". - Config: the sectioned v2 schema is canonical. Legacy v0.6.x flat fields still parse (removed in v0.8) — run
ai-memory config migrateto convert. Verify wiring withai-memory doctor. - Migrations apply automatically; existing databases upgrade in place to schema v57.
Distribution channels
| Channel | Install |
|---|---|
| GitHub Release | this page — binary tarballs for 5 targets + .deb/.rpm + iOS/Android artifacts |
| crates.io | cargo install ai-memory --version 0.7.0 |
| Homebrew tap | brew install alphaonedev/tap/ai-memory |
| ghcr.io | docker pull ghcr.io/alphaonedev/ai-memory:0.7.0 |
| Fedora COPR | sudo dnf copr enable alpha-one-ai/ai-memory && sudo dnf install ai-memory |
| PyPI (Python SDK) | pip install ai-memory-mcp==0.7.0 |
| npm (TypeScript SDK) | npm install @alphaone/ai-memory@0.7.0 |
Targets: x86_64/aarch64 Linux, x86_64/aarch64 macOS, x86_64 Windows.
Verification
- Source provenance: this release is cut from commit
a2b448f1onrelease/v0.7.0; thev0.7.0tag is Ed25519-signed. - Binary integrity: verify downloaded tarballs against the
SHA256SUMSpublished on this release page.
Quality gate
8/8 CI workflows green · per-module coverage 170/170 (global 93.52%) · 3-region PostgreSQL+AGE fleet dogfood green · singleton NHI dogfood clean across all nine substrate surfaces (store · recall/search · reflect · consolidate · entity · KG · governance · capture/offload · capabilities).
Persistent memory so your AI can be the same NHI tomorrow as it is today. Self-hosted, governed, attested.
⬇️ Downloads
| Platform | Package |
|---|---|
| Linux · x86_64 | ai-memory-x86_64-unknown-linux-gnu.tar.gz |
| Linux · aarch64 | ai-memory-aarch64-unknown-linux-gnu.tar.gz |
| macOS · Apple Silicon (arm64) | ai-memory-aarch64-apple-darwin.tar.gz |
| macOS · Intel (x86_64) | ai-memory-x86_64-apple-darwin.tar.gz |
| Windows · x86_64 | ai-memory-x86_64-pc-windows-msvc.zip |
| Debian / Ubuntu · amd64 | ai-memory_0.7.0_amd64.deb |
| Debian / Ubuntu · arm64 | ai-memory_0.7.0_arm64.deb |
| Fedora / RHEL · x86_64 | ai-memory-0.7.0-1.x86_64.rpm |
| Fedora / RHEL · aarch64 | ai-memory-0.7.0-1.aarch64.rpm |
Or via package managers:
cargo install ai-memory --version 0.7.0 # crates.io
brew install alphaonedev/tap/ai-memory # Homebrew
docker pull ghcr.io/alphaonedev/ai-memory:0.7.0 # GHCR
sudo dnf copr enable alpha-one-ai/ai-memory && sudo dnf install ai-memory # Fedora COPRThe complete asset list (every binary, .deb/.rpm, the Android jniLibs bundle, and source archives) is in the Assets section at the bottom of this page.
What's Changed
- docs(release): v0.6.4 release-body rewrite — capability-surface clarity + 3-audience honesty by @alphaonedev in #540
- ci: OIDC Trusted Publishing for both SDKs by @alphaonedev in #541
- docs(readme): v0.6.4 alignment pass (drift #512) by @alphaonedev in #542
- docs(pages): v0.6.4 marketing repositioning + new whats-new-v064.html by @alphaonedev in #543
- fix(pages): move USPTO trademark notice from BLUF to footer + v0.6.3→v0.6.4 footer drift by @alphaonedev in #544
- docs(pages): make --profile full 100% knowable + Grok 4.2 NHI testimonial (closes profile-discoverability gap) by @alphaonedev in #547
- docs(pages): cortex-on-core promo — Pareto-optimal point shipping today by @alphaonedev in #548
- docs(v0.6.5): epic — cortex-fluent (Path 2 + Path 3 scope) by @alphaonedev in #549
- docs(v0.7): epic — attested-cortex (rolls v0.6.5 into v0.7.0) by @alphaonedev in #550
- feat: v0.7-f1 — v0.7.0 migration guide (draft) by @alphaonedev in #551
- feat: v0.7-c1 — schema compaction audit by @alphaonedev in #552
- feat: v0.7-a1 — capabilities v3 summary field (#545) by @alphaonedev in #553
- feat: v0.7-g1 — hooks.toml config schema with hot reload by @alphaonedev in #554
- feat: v0.7-k2 — pending_actions timeout sweeper by @alphaonedev in #555
- feat: v0.7-a2 — capabilities v3 to_describe_to_user (#545) by @alphaonedev in #556
- feat: v0.7-f6 — attested-cortex design RFC by @alphaonedev in #559
- feat: v0.7-i1 — memory_transcripts schema (zstd-3 BLOB, v22) by @alphaonedev in #557
- feat: v0.7-a3 — capabilities v3 per-tool callable_now (#545) by @alphaonedev in #560
- feat: v0.7-d2 — landing-page compatibility matrix by @alphaonedev in #561
- feat: v0.7-h1 — per-agent Ed25519 keypair CLI by @alphaonedev in #558
- feat: v0.7-a4 — capabilities v3 agent_permitted_families (#545) by @alphaonedev in #562
- feat: v0.7-g2 — 20 hook event types with payloads by @alphaonedev in #563
- feat: v0.7-a5 — bump capabilities default to v3 (#545) by @alphaonedev in #565
- feat: v0.7-j1 — AGE detection in Postgres SAL by @alphaonedev in #564
- feat: v0.7-h2 — outbound Ed25519 signing on memory_links by @alphaonedev in #566
- feat: v0.7-g3 — hook executor (subprocess JSON-stdio + daemon mode) by @alphaonedev in #567
- feat: v0.7-i2 — memory_transcript_links join table (v24) by @alphaonedev in #568
- feat: v0.7-k3 — permissions.mode actually enforced by @alphaonedev in #569
- feat: v0.7-g4 — decision types (Allow / Modify / Deny / AskUser) by @alphaonedev in #570
- feat: v0.7-b4 — detect harness from MCP clientInfo by @alphaonedev in #571
- feat: v0.7-h3 — inbound verification on federated links by @alphaonedev in #572
- feat: v0.7-f2 — whats-new-v07 landing page by @alphaonedev in #576
- feat: v0.7-i3 — transcript TTL + archive→prune lifecycle by @alphaonedev in #575
- feat: v0.7-h5 — append-only signed_events audit table (v26) by @alphaonedev in #574
- feat: v0.7-g5 — chain ordering + first-deny-wins by @alphaonedev in #573
- feat: v0.7-i4 — memory_replay MCP tool by @alphaonedev in #577
- feat: v0.7-j2 — Cypher kg_query (AGE backend) by @alphaonedev in #579
- feat: v0.7-k5 — capabilities rule_summary populated by @alphaonedev in #580
- feat: v0.7-h4 — attest_level enum + memory_verify MCP tool (re-rebased) by @alphaonedev in #581
- feat: v0.7-j3 — Cypher kg_timeline (AGE backend) by @alphaonedev in #582
- feat: v0.7-g6 — per-event-class hard timeouts by @alphaonedev in #583
- test: v0.7-h6 — identity end-to-end test by @alphaonedev in #584
- feat: v0.7-k4 — approval-event routing through subscriptions by @alphaonedev in #585
- feat: v0.7-f3 — landing-page references bumped to v0.7.0 by @alphaonedev in #588
- test: v0.7-g7 — hot reload integration test by @alphaonedev in #586
- feat: v0.7-j4 — Cypher kg_invalidate (AGE backend) + G14 audit edges by @alphaonedev in #587
- test: v0.7-e3 — Discovery Gate T1-T3 loader cells by @alphaonedev in #589
- feat: v0.7-k6 — A2A correlation IDs + ACK/retry + DLQ table by @alphaonedev in #594
- docs: v0.7-f4 — README + ADMIN_GUIDE for v0.7 features by @alphaonedev in #591
- docs: v0.7-j6 — AGE/CTE depth budget table in PERFORMANCE.md by @alphaonedev in #596
- feat: v0.7-d1 — cross-harness benchmark by @alphaonedev in #593
- feat: v0.7-i5 — R5 pre_store transcript extraction reference hook by @alphaonedev in #590
- feat: v0.7-b1 — memory_load_family always-on tool by @alphaonedev in #595
- test: v0.7-d4 — harness detection integration tests by @alphaonedev in #597
- docs: v0.7-b5 — memory_capabilities description for v3 by @alphaonedev in #598
- feat: v0.7-d3 — install-time system-prompt snippet per harness by @alphaonedev in #599
- test: v0.7-j5 — AGE vs CTE dual-path equivalence by @alphaonedev in #600
- feat: v0.7-g8 — on_index_eviction hook event by @alphaonedev in #601
- feat: v0.7-k7 — subscription reliability (replay + DLQ + HMAC) by @alphaonedev in #603
- feat: v0.7-g10 — pre_recall daemon-mode hook by @alphaonedev in #602
- feat: v0.7-g11 — R3 auto-link detector reference hook by @alphaonedev in #604
- feat: v0.7-j7 — memory_find_paths (BFS over KG, dual backend) by @alphaonedev in #605
- feat: v0.7-k9 — unified permission system (rules + modes + hooks) by @alphaonedev in #608
- ci: hard coverage floor + ratchet (top-shelf engineering) by @alphaonedev in #612
- docs(v0.7.1): seed roadmap — MTP-Gemma-4 autonomous-tier work by @alphaonedev in #613
- feat: v0.7-b2 — memory_smart_load(intent) always-on tool by @alphaonedev in #611
- feat: v0.7-b3 — pre-computed family-descriptor embeddings by @alphaonedev in #592
- fix(subscriptions): K4 dispatch_count race in approval_requested test by @alphaonedev in #615
- feat: v0.7-j8 — AGE vs CTE bench gate (depth=5, >=30% speedup) by @alphaonedev in #607
- fix(tests): serialise env-var mutations in snippet + keypair tests by @alphaonedev in #617
- feat: v0.7-k10 — approval API (HTTP + SSE + MCP, HMAC, remember=forever) by @alphaonedev in #610
- fix: clippy baseline cleanup — -D warnings -D pedantic clean by @alphaonedev in #614
- feat: v0.7-k8 — per-agent quotas (memories/storage/links + daily reset) by @alphaonedev in #606
- feat: v0.7-k11 — ai-memory governance migrate-to-permissions CLI by @alphaonedev in #609
- perf: v0.7-g9 — batched reranker for concurrent recall by @alphaonedev in #616
- feat: v0.7-c2 — tool description / docs split for token budget by @alphaonedev in #618
- fix(tests): binary-spawn flake on macOS — OnceLock + PID-scoped target by @alphaonedev in #623
- ci: v0.7-c5 — full-profile token-budget hard gate (≤3500) by @alphaonedev in #619
- feat: v0.7-c4 — optional params hidden from default schema by @alphaonedev in #620
- feat: v0.7-e1 — T0 cell orchestration script (4 LLMs) by @alphaonedev in #621
- feat: v0.7-c3 — strip inline e.g. examples from tool descriptions by @alphaonedev in #624
- feat: v0.7-e2 — post-ship convergence verification script by @alphaonedev in #622
- fix(test): C5 budget gate measures the trimmed wire form (#628 15th-blocker) by @alphaonedev in #634
- docs(drift): post-K8 + post-J7 stale-number fixes (#628) by @alphaonedev in #629
- fix(governance): K9 namespace lock + K7 SSRF loopback + K8 TOCTOU (#628 H1/H3/H4) by @alphaonedev in #630
- fix(identity): H5 invalidate_link reset + I4 replay K9 authz + I1 zstd bomb cap (#628 H5/H6/I1) by @alphaonedev in #631
- fix(governance): K10 HMAC replay window + SSE tenant filter + remember=forever (#628 C1/C2/H10) by @alphaonedev in #632
- fix(hooks): G3 daemon-mode stderr drain + ExecExecutor surfacing (#628 H9) by @alphaonedev in #633
- test(coverage v0.7.0): bring cli/rules.rs back above 95% floor by @alphaonedev in #715
- test(coverage v0.7.0): bring daemon_runtime.rs back above 86% floor by @alphaonedev in #713
- fix(test): clippy pedantic cleanups on Phase E + parity test files by @alphaonedev in #714
- fix(test): autonomy_hook tests must not depend on live Ollama daemon by @alphaonedev in #711
- fix(test): gate s75_capabilities_db_schema_version behind sal feature by @alphaonedev in #712
- ci(v0.7.0): add SAL-only feature-gate job — closes Phase D observability gap by @alphaonedev in #710
- fix(security v0.7.0): close federation red-team P2s (#238 #239) by @alphaonedev in #716
- fix(lint): gate default-features unused imports/symbols introduced in #716 by @alphaonedev in #719
- fix(test): gate 2 SAL-only endpoint tests behind sal feature by @alphaonedev in #720
- fix(fmt): canonical import order for cfg-gated imports by @alphaonedev in #721
- ci: separate release.yml from ci.yml — operator-gated publish by @alphaonedev in #722
- fix(test): gate curator daemon shutdown test unix-only (Windows libc unavailable) by @alphaonedev in #723
- fix(test): peer_attestation env-mutex + e1 Windows path tolerance by @alphaonedev in #724
- fix(test): normalise CRLF->LF in snapshot_matches_generator + .gitattributes by @alphaonedev in #725
- fix(test): normalise CRLF->LF in wire_check_sole_path_pin source reads by @alphaonedev in #726
- docs(v0.7.0 QW-4): positioning page — Tencent TencentDB Agent Memory entry by @alphaonedev in #727
- feat(v0.7.0 QW-3): context-offload substrate primitive by @alphaonedev in #741
- feat(v0.7.0 QW-1): file-backed reflection chain export by @alphaonedev in #742
- feat(v0.7.0 WT-1-A): schema v36 atomisation foundation by @alphaonedev in #743
- WT-1-B: atomiser core + curator pass (v0.7.0) by @alphaonedev in #744
- docs(v0.7.0): pin grok-4.3 + reasoning_effort=medium as canonical xAI config by @alphaonedev in #745
- feat(v0.7.0 QW-3 follow-up): register memory_offload + memory_deref in MCP tool registry by @alphaonedev in #746
- feat(v0.7.0 WT-1-F): ai-memory atomise CLI subcommand by @alphaonedev in #747
- feat(v0.7.0 WT-1-D): auto_atomise namespace policy + pre_store hook by @alphaonedev in #748
- feat(v0.7.0 WT-1-E): recall atom-preference + forensic atomisation chain by @alphaonedev in #750
- feat(v0.7.0 WT-1-C): memory_atomise MCP tool by @alphaonedev in #751
- feat(v0.7.0 WT-1-G): atomisation capabilities-v3 + cookbook + docs by @alphaonedev in #752
- feat(v0.7.0 QW-2): Persona-as-artifact substrate primitive by @alphaonedev in #749
- feat(v0.7.x 7th-form): agent-EXTERNAL Layer-4 wiring across Bash/FS/Net/Spawn (closes #760) by @alphaonedev in #761
- feat(v0.7.x Form 1+2): online dedup-and-synthesis + synchronous atomise-before-embed (closes #754, #755) by @alphaonedev in #762
- feat(v0.7.x Form 4): citations + source-as-URI + atom-grain span fact-provenance (closes #757) by @alphaonedev in #764
- feat(v0.7.x Form 3): multi-step ingest orchestrator with prompt-cache reuse + explicit-trust deterministic helpers (#756) by @alphaonedev in #763
- feat(v0.7.x Form 6): MemoryKind Batman vocabulary + recall filter + optional auto-classify (closes #759) by @alphaonedev in #765
- feat(v0.7.x Form 5): auto-confidence + shadow-mode + freshness decay + calibration tooling (closes #758) by @alphaonedev in #766
- audit(batman-6-form): adversarial procurement-grade verification — honest findings by @alphaonedev in #753
- fix(kg,entity,governance): post-NHI v0.7.0 audit fixes (F2 + F3 + F4 helper) by @alphaonedev in #636
- fix(v0.7.0 cluster-H): docs accuracy sweep — tool counts, MIGRATION, README, release-notes, 6 new docs (issue #767) by @alphaonedev in #768
- fix(v0.7.0 cluster-J): migration filename collision cleanup + uniqueness test pin (issue #767) by @alphaonedev in #769
- fix(v0.7.0 cluster-C): signed-events chain integrity + drainer DLQ + HMAC binding tests (issue #767) by @alphaonedev in #770
- fix(v0.7.0 cluster-A): Form 4 fact-provenance correctness + atomisation idempotency (issue #767) by @alphaonedev in #771
- fix(v0.7.0 cluster-E): kind-filter inversion + Skills CLI/HTTP parity (issue #767) by @alphaonedev in #772
- fix(v0.7.0 cluster-I): CI runs postgres integration tests + memory_kind backfill pinning (issue #767) by @alphaonedev in #773
- fix(v0.7.0 cluster-D): L1-6 fail-closed knob + handle_deref IDOR + matcher correctness (issue #767) by @alphaonedev in #775
- fix(v0.7.0 cluster-G): shadow-mode unboundedness + sampling cache + streaming calibration (issue #767) by @alphaonedev in #774
- fix(test): bump s75_capabilities_db_schema_version pin 37 → 41 (post-v0.7.0 grand-slam, issue #767) by @alphaonedev in #776
- fix(v0.7.0 cluster-B): Form 1 synthesis security + verdict-application + prompt-injection guard (issue #767) by @alphaonedev in #777
- fix(v0.7.0 cluster-K): QW-4 disposition + ADRs + accepted-debt + audit doc post-closeout + issue cleanup (issue #767) by @alphaonedev in #778
- fix(v0.7.0 cluster-F): memory_store + memory_recall hot-path refactor — connection threading + recall N+1 + touch batching (issue #767) by @alphaonedev in #785
- fix(v0.7-polish #780): auto_export detached-thread failure counter + capability surface by @alphaonedev in #786
- docs(v0.7-polish #784): expand 6 operator references to production-grade runbooks (~12-15K words total) by @alphaonedev in #787
- perf(v0.7-polish #779): pre-allocate synthesis candidate prompt buffer by @alphaonedev in #788
- test(v0.7-polish #783): opportunistic coverage matrix expansion — COV-15..18 by @alphaonedev in #789
- perf(v0.7-polish #782): Form 3 multistep stage content borrow + LLM truncation cap by @alphaonedev in #790
- perf(v0.7-polish #781): auto_persona indexed entity-id column replaces content LIKE scan (schema v42 sqlite / v41 postgres) by @alphaonedev in #792
- test(v0.7-polish): lift global coverage 89.61% → 93.75% via handler tests (issue #767) by @alphaonedev in #794
- test(v0.7-polish): coverage recovery — restore 9 modules above per-module thresholds (issue #767) by @alphaonedev in #795
- test(v0.7-polish): close mcp/tools/store.rs coverage gap toward 96% floor + policy update (issue #767) by @alphaonedev in #796
- fix(#797): move v36/v38/v39/v41/v42 partial indexes out of bootstrap SCHEMA by @alphaonedev in #798
- fix(#813): persona signing pipeline — close #810, #811, #812 end-to-end by @alphaonedev in #814
- fix(post-install-815-816): dispatch deadlock + #819 hermetic tests + clippy pedantic cleanup by @alphaonedev in #820
- v0.7.0 ship-readiness session 2026-05-21 — 17 Wave-2 carve-outs + #972 MCP registry split + drift sweep by @alphaonedev in #1013
- docs(#1144): MCP env-block LLM-backend wiring across install / integration / GH Pages by @alphaonedev in #1145
- feat(config) #1146: enterprise configuration standard — sectioned schema + canonical resolver + migration + doctor probe by @alphaonedev in #1147
- ci(#1148): mold linker + [profile.coverage] — fix linker-OOM on Coverage / Postgres / Per-Module Coverage gates by @alphaonedev in #1149
- docs(v0.7.0): comprehensive drift sweep + new MIGRATION_QUICKSTART + red-team migration fixes by @alphaonedev in #1150
- docs(v0.7.0) round 2: codegraph-driven full drift sweep — ~50 additional items closed by @alphaonedev in #1151
- docs(v0.7.0) round 3: codegraph-driven full drift sweep — install/config/migration 100% correct + deferred deep-content rewrites + count corrections by @alphaonedev in #1152
- feat(mcp, #1154) + docs(compliance, #1153): NSA CSI MCP Security Compliance — 10/10 structural coverage achieved by @alphaonedev in #1157
- feat(http, #1155) + docs(security, #1153): NSA CSI MCP polish — Accept-Provenance HTTP + per-primitive mapping comments + Control→Feature table + legal hardening by @alphaonedev in #1158
- ci(mobile-runtime, #1159): robust iPhone device-preference list — unblock release/v0.7.0 ship gate by @alphaonedev in #1160
- ci(mobile-runtime, #1159): drop pipefail in Android emulator script (dash compat) — final blocker-1 fix by @alphaonedev in #1161
- ci(mobile-runtime, #1159): collapse multi-line adb shell — final Android emulator fix by @alphaonedev in #1162
- style(#1159): cargo fmt across NSA CSI MCP files — final Lint blocker fix by @alphaonedev in #1163
- ci(mobile-runtime, #1159): push libc++_shared.so + LD_LIBRARY_PATH for Android runtime by @alphaonedev in #1164
- ci(mobile-runtime, #1159) RE-PUSH: libc++_shared.so + LD_LIBRARY_PATH (PR #1164 squash-merged with empty diff) by @alphaonedev in #1165
- feat(quotas, #1156): per-namespace K8 quota dimension extension (schema v50) by @alphaonedev in #1166
- docs(#1146): full v0.6.4 → v0.7.0 migrator rollout — [llm] config-first across all surfaces by @alphaonedev in #1167
- fix(config, #1168): route memory_capabilities.models.* through AppConfig resolver by @alphaonedev in #1170
- docs(#1171): heterogeneous AI NHI assessment scaffold + Claude Opus 4.7 Phase-1 report by @alphaonedev in #1173
- fix(#1172): regression suite pinning memory_reflect metadata.entity_id passthrough by @alphaonedev in #1177
- fix(config, #1169): resolver-side embedding_dim via canonical lookup table by @alphaonedev in #1178
- fix(mcp, #1176): include metadata in approval-gate pending_action payload by @alphaonedev in #1180
- docs(#1171): Claude Opus 4.7 Phase-1 report — refinement for #1172 + #1169 closures by @alphaonedev in #1179
- fix(#1175): vendor-neutral substrate source default — close heterogeneous-NHI monoculture by @alphaonedev in #1181
- refactor(#1174): pm-v3.1 PR4 — substrate "ollama" backend literal sweep by @alphaonedev in #1184
- refactor(#1174): pm-v3.1 PR3 — extract SECS_PER_HOUR/_DAY/_WEEK constants by @alphaonedev in #1185
- refactor(#1174): pm-v3.1 PR6 — sweep raw tier strings to Tier::.as_str() by @alphaonedev in #1186
- refactor(#1174): pm-v3.1 PR1 — extract 73 MCP tool names to tool_names const module by @alphaonedev in #1187
- refactor(#1174): pm-v3.1 PR2 — extract HEADER_CONTENT_TYPE + MIME_JSON constants by @alphaonedev in #1188
- refactor(#1174): pm-v3.1 PR9 — deflake test fixtures from vendor-specific "claude" literals by @alphaonedev in #1189
- refactor(#1174): pm-v3.1 PR8 — extract Class A SHOULD statics into AppState / metrics registry by @alphaonedev in #1195
- refactor(#1174): pm-v3.1 PR7 — collapse ACTIVE/OVERRIDE_PERMISSIONS_MODE dual-source-of-truth into single RwLock by @alphaonedev in #1191
- refactor(#1174): pm-v3.1 PR5 — extract DEFAULT_NAMESPACE / disambiguate from quotas::GLOBAL_NAMESPACE by @alphaonedev in #1190
- refactor(#1183): move WrapStrategy per-CLI-binary table to sibling module src/llm_cli_wrap.rs by @alphaonedev in #1199
- fix(#1194): replace polling with health-check loop in postgres-integration wait-for-ready by @alphaonedev in #1202
- fix(#1193): macOS-latest CI timing-flake — macOS-specific budget multiplier on timing-sensitive hooks tests by @alphaonedev in #1203
- fix(#1201): bypass wiremock pool + per-test path for webhook tests by @alphaonedev in #1210
- refactor(#1174): pm-v3.1 PR10 — lint-gate enforcement (clippy.toml docs + scripts/check-vendor-literals.sh + CI job) by @alphaonedev in #1200
- refactor(#1174 followup #1192 #1196): cross-surface RuntimeContext + MUST/SHOULD static extraction by @alphaonedev in #1204
- test(#1206): rewrite daemon_mode_timeout_still_trips_with_drain_task_running to fake clock by @alphaonedev in #1211
- fix(#1207): executor spawn-retry-with-backoff + macOS timing-budget multiplier by @alphaonedev in #1209
- fix(#1212): HNSW concurrent_writes test diagnostic + deterministic settling by @alphaonedev in #1214
- fix(infra, #1225): .dockerignore exclude .claude/ + .cargo-target/ by @alphaonedev in #1230
- docs(pages, #1216): schema-version drift v49 -> v50 by @alphaonedev in #1221
- docs(pages, #1224): refresh test-campaign refs to 2026-05-22-release-gate-final by @alphaonedev in #1227
- docs(pages, #1228): heterogeneous AI NHI assessment HTML render by @alphaonedev in #1229
- docs(pages, #1232): v0.7.0 architecture page + CHANGELOG synthesis by @alphaonedev in #1233
- fix(infra, #1231): entrypoint.plan-c.sh no longer overrides AI_MEMORY_AGENT_ID=daemon by @alphaonedev in #1235
- fix(identity, #1234): use shape-only validator at internal-bootstrap sites for reserved-sentinel agent_ids by @alphaonedev in #1236
- fix(#1257): close recall DTO parity gap — CLI --session-id flag by @alphaonedev in #1271
- docs(#1274): correct stale 'power (10)' family doc to (23) by @alphaonedev in #1276
- fix(tests, #1272): live_kg_*_without_age skip via backend detection by @alphaonedev in #1277
- test(#1213): pin atttypmod probe scoping to public schema (reproduces at final v0.7.0) by @alphaonedev in #1268
- sec(mcp, #1249): cap MCP stdio line length to prevent OOM DoS by @alphaonedev in #1270
- sec(forensic, #1250): harden tar parser against unchecked integer arithmetic by @alphaonedev in #1273
- sec(identity, #1251): block path-traversal in agent_id shape validator by @alphaonedev in #1275
- fix(tests, #1278): uuid-randomize postgres test ids + namespaces by @alphaonedev in #1282
- ci(#1245): pin C8 + vendor-literal lint gates as required checks by @alphaonedev in #1280
- ci(#1246): close yank.yml GHA shell-injection via env-var indirection by @alphaonedev in #1281
- docs(#1247): document consumer-signs-at-integration for mobile artifacts by @alphaonedev in #1283
- sec(subscriptions, #1253): cap subscription DLQ depth at 10_000 rows per subscription by @alphaonedev in #1284
- fix(#1213): scope memories atttypmod probes to public schema (post-#1268 production fix) by @alphaonedev in #1285
- chore(#1248): remove dead build.rs from Cargo.toml include array by @alphaonedev in #1288
- fix(offload, #1264): re-evaluate stored_at in sweep_expired DELETE by @alphaonedev in #1289
- sec(mcp, #1254): gate higher-profile tool-name leak in tools/call errors by @alphaonedev in #1290
- sec(quotas, #1256): replace unchecked + with saturating_add on quota cap checks by @alphaonedev in #1291
- chore(subscriptions, #1265): track CARGO_PKG_VERSION in webhook User-Agent by @alphaonedev in #1292
- docs(hooks, #1266): refresh executor module docstring — G5/G6 shipped by @alphaonedev in #1294
- sec(federation, #1255): persist FederationNonceCache LRU across daemon restarts by @alphaonedev in #1296
- docs(kg, #1267): clarify DEFAULT_MAX_DEPTH is a safety ceiling, not policy by @alphaonedev in #1297
- sec(#1258): zeroize secret-holder buffers on Drop + add direct zeroize dep by @alphaonedev in #1293
- test(#1259): extend test_secret_not_in_capabilities to cover V3 envelope by @alphaonedev in #1298
- sec(#1261): sanitize skills handler 500 responses + log raw error by @alphaonedev in #1300
- test(#1263): isolate list_enabled_by_kind_filters_correctly from dev-host operator key by @alphaonedev in #1303
- sec(llm, #1237): wire NetworkRequest gate into generate + generate_with_model_override by @alphaonedev in #1287
- fix(llm-cli-wrap, #1238): add claude/claude-cli rows + document gpt/grok/anthropic-cli gaps by @alphaonedev in #1295
- refactor(llm, #1243): replace 4 literal "ollama" duplicates with BACKEND_OLLAMA const by @alphaonedev in #1299
- fix(atomisation, #1244): thread curator model name into atomisation_complete signed event by @alphaonedev in #1304
- test(#1262): regression tests for Debug/Serialize redaction (orphaned PR #1301 recovery) by @alphaonedev in #1305
- fix(persona, #1241): propagate DB errors from next_version (COR-2) by @alphaonedev in #1286
- fix(models, #1242): add ConfidenceSource::CuratorDerived for engine-output rows by @alphaonedev in #1302
- fix(embeddings, #1260): honour [embeddings].backfill_batch from config.toml by @alphaonedev in #1306
- fix(#1239): synthesis verdict emits supersedes link (new -> target) by @alphaonedev in #1307
- fix(#1240): synthesis batch cycle-depth guard at cap=3 by @alphaonedev in #1308
- docs(roadmap): moonshot-aligned ROADMAP.md revision (#1309) by @alphaonedev in #1310
- fix(#1311): pin schema-pinning tests to SSOT + bump v50→v51 doc claims by @alphaonedev in #1312
- fix(#1313): add mobile.md row to docs/integrations/README.md matrix by @alphaonedev in #1314
- fix(#1321 + #1340 + #1341): unified base-CI fix — zeroize + postgres migrate + schema_parity SSOT + atttypmod mutex by @alphaonedev in #1345
- docs(#1171): replace Opus 4.7 Phase-1 report with fresh 2026-05-25 re-run + self-audit by @alphaonedev in #1322
- docs: explain why CLI omits flat reflect verb (preserves §2.6 bias-displacement architecture) by @alphaonedev in #1328
- policy(claude-md): pm-v3.3 (C5 step 7 recompile-retest) + sole-authority operator + no-external-code-injection by @alphaonedev in #1330
- test(mcp, #1315): pin memory_reflect wire-layer metadata passthrough by @alphaonedev in #1316
- chore(ci, #1343): coverage.yml docs-only short-circuit — mirror ci.yml classify pattern by @alphaonedev in #1344
- test(#1317): pin HTTP + CLI wire-layer parity for memory_reflect metadata passthrough by @alphaonedev in #1339
- fix(#1319 + #1320 + #1324): contradiction-detection two-stage filter + reranker score-floor + transcripts capabilities honesty by @alphaonedev in #1337
- fix(#1325 + #1326 + #1327): memory_reflect.depth + namespace_get_standard.governance + memory_skill_register docstring (also closes #1331 via snapshot re-bless) by @alphaonedev in #1338
- docs(#1171): add Opus 4.7 v2 Phase-1 report — curator-LLM-restored re-run, verdict SHIP by @alphaonedev in #1323
- fix(cli, TEST-5 TEST-6): curator tests env discipline + tokio runtime drop safety by @alphaonedev in #1346
- fix(atomisation, ARCH-5): add MAX_ATOMISATION_DEPTH recursion cap by @alphaonedev in #1351
- fix(storage, QUAL-3): reject u64->u32 truncation on governance metadata by @alphaonedev in #1350
- fix(governance, ARCH-1): PostgresStore pre-write governance hook parity with SQLite path by @alphaonedev in #1347
- fix(handlers, PERF-1): wrap rusqlite I/O in spawn_blocking to unblock tokio workers by @alphaonedev in #1348
- fix(recall, PERF-2): release DB mutex across HNSW search + batch decorate_memory by @alphaonedev in #1349
- test(clippy, QUAL-1): backtick SQLite in governance_pre_write_postgres_parity doc by @alphaonedev in #1352
- docs(DOC-1 DOC-2 DOC-3): README schema version + CHANGELOG v0.7.0 + CLAUDE.md env-var table by @alphaonedev in #1353
- test(ARCH-4): §2.6 bias-displacement substrate-level invariant pins by @alphaonedev in #1354
- feat(cli, ARCH-3): add CLI parity for 5 MCP tools previously CLI-less by @alphaonedev in #1357
- fix(subscriptions, PERF-3): shared dispatch pool for webhook fan-out by @alphaonedev in #1355
- refactor(handlers, ARCH-2): route get_links visibility filter via SAL trait by @alphaonedev in #1356
- feat(cli, ARCH-3): close every remaining MCP/CLI parity deferral (16 v by @alphaonedev in #1358
- fix(governance): close FX-C5 substrate pre-write hook bypass on supers by @alphaonedev in #1359
- fix(tests, FX-C6): integration curator env discipline + tokio runtime by @alphaonedev in #1360
- fix: MED/LOW batch — 30 v2-review findings closed (FX-C4 batch1+2) by @alphaonedev in #1361
- fix(llm, PERF-9): OllamaClient async client (FX-C1, rebased) by @alphaonedev in #1363
- fix(store, ARCH-2): all 21 SAL trait methods + 15 handler routings (FX-C2 final) by @alphaonedev in #1364
- fix(llm, FX-D1): OllamaClient bridge — no panic on current-thread tokio by @alphaonedev in #1365
- fix(qual, FX-D2): bump QUAL-10 module-size ceilings for postgres.rs + llm.rs by @alphaonedev in #1366
- fix(FX-E1): cascade #[cfg(feature=sal)] gate + HNSW PERF-7 sr3 pin by @alphaonedev in #1368
- fix(FX-F1): coverage closure for daemon_runtime + store/mod + hermetic #1053 + env-lock unification by @alphaonedev in #1369
- fix(tests, #1370): make SEC-2 fail-closed test hermetic on dev hosts by @alphaonedev in #1371
- ci(infra, #1373): free disk before release-build on ubuntu-latest Check by @alphaonedev in #1376
- fix(tests, #1372): normalize CRLF → LF in arch_14_route_count_invariant by @alphaonedev in #1375
- docs(claude-md, #1334): correct CLI subcommand cfg-gate framing by @alphaonedev in #1377
- docs(strategy): add CoALA prior-art citation (Sumers et al. 2024) by @alphaonedev in #1380
- docs(release-gate): 2026-05-28 ship campaign dossier + Opus 4.7 v3 AI NHI assessment by @alphaonedev in #1386
- feat(#1389): L1–L4 layered auto-capture — close #1388 systemic failure mode by @alphaonedev in #1397
- test(postgres): per-test schema isolation for 4 lan-parity-shared-container failures by @alphaonedev in #1382
- docs(release-gate, #1197 #1198): 100% v0.7.0 docs + GitHub Pages drift remediation (rebased from #1379) by @alphaonedev in #1406
- feat(config): config-driven postgres pool sizing (AI_MEMORY_PG_POOL_*) by @alphaonedev in #1489
- refactor(config): remove Gemma-only LlmModel enum; agnostic tier llm_model gate (#1490) by @alphaonedev in #1491
- docs(landing): no-GPU "any LLM" autonomous backend callout (#1460) by @alphaonedev in #1493
- refactor(#1434): SSOT named-consts for genuinely-duplicated literals (scanner-B) by @alphaonedev in #1494
- test(governance): relax forensic-SINK exact-count asserts to tolerant lower bounds (#1495) by @alphaonedev in #1496
- coverage: add fragile-floor canary + audit paper-thin pins (#1424) by @alphaonedev in #1497
- ci: add hung-test watchdog to impact-aware test step (#1492) by @alphaonedev in #1498
- ci: make #1492 hung-test watchdog portable (fix macOS/Windows regression) by @alphaonedev in #1499
- ci: gate #1492 hung-test watchdog to Linux runners only by @alphaonedev in #1500
- fix(test): hermetic offline embedder in integration suite — fixes #1501 cold-download hang by @alphaonedev in #1502
- fix(test)+ci: kill PublicSchemaLock advisory-lock leak that cancelled CI run 26998232157 by @alphaonedev in #1503
- test(hnsw): harden two coverage-runner flakes via deterministic assertions (#1504) by @alphaonedev in #1505
- test(storage): restore storage/mod.rs coverage floor to >=94% by @alphaonedev in #1506
- test(governance): bound enforce CLI/MCP subprocess waits with a deadline (#1522) by @alphaonedev in #1525
- fix(embeddings): wire sectioned [embeddings] config into daemon build_embedder (#1521) by @alphaonedev in #1524
- feat(reference-configs): EC-1 three compute-archetype config.toml + decision tree (#1526) by @alphaonedev in #1527
- docs(enterprise): 100% TOML coverage + PG18.4/AGE1.7.0/pgvector0.8.2 version pins by @alphaonedev in #1529
- docs(batman): fix stale Form-7 v0.8.0 drift + resolved keygen/enable wart by @alphaonedev in #1530
- v0.7.0: #1531 Tier-0 security hardening + test-flake hardening (11 commits) by @alphaonedev in #1532
- fix(embeddings): apply nomic-embed-text-v1.5 asymmetric task prefixes (#1520) by @alphaonedev in #1523
- feat: recursive learning + improvement frameworks on postgres (SAL coverage) + do-1461 reference architecture (#1546) by @alphaonedev in #1551
Full Changelog: v0.6.4...v0.7.0