ai-memory v0.9.0

PR #3260 — 3×7 adversarial vote + AI-NHI live assessment (2026-08-26)

Subject. External pull request #3260 proposed a pgvector-less Postgres storage mode (embeddings as raw BYTEA, cosine in-process) triggered automatically when CREATE EXTENSION vector fails. Author: a first-time contributor from a fork, single unsigned commit. This record is the durable, in-repo copy of the decision; the live discussion is on the PR.

1. Method

  1. Maintainer review of the diff and the repository state at release/v1.0.0 (ef22d020), with codegraph.
  2. 3×7 adversarial vote run against the codebase with codegraph: 7 independent lenses (data-integrity, security, Postgres-DBA realism, Rust/sqlx correctness, scale, roadmap fit, governance) → 7 adversarial refuters, one per ballot, evidence required → 7 final judges. 21 agents, 606 tool calls, 3.11 M tokens, 27 minutes.
  3. Live AI-NHI assessment: the current release was compiled (--features sal-postgres, then sal-postgres,sqlcipher) and run on the project’s native PostgreSQL 18.6 + Apache AGE 1.8.0 + pgvector 0.8.6 tier in the certified enterprise-federation configuration (posture 20/20 PASS with the boot gate armed), with the assessing AI wired in through the MCP proxy over mTLS.

2. Tally (round 3, deciding)

Question Result
Underlying need legitimate PARTIAL 7/7 — mechanism accurately described; need mis-framed
Must ai-memory fix/add something PARTIAL 7/7 — a first-party fail-closed diagnostic + docs, not a storage mode
PR as written acceptable NO 7/7
Findings F1–F7 (space gate absent; recency window not kNN; silent sticky fail-open; unbounded scans; dimension safety lost; process-wide env mutation in test; gate failures) CONFIRMED 7/7 each

Round 2 mounted 91 attacks; 16 landed (all ballots stood overall). Notably, round 2 refuted the reasoning behind the maintainer’s original F7 (the named gates would not have failed as stated); round 3 re-ran the gates and found the four actual mechanical failures (rustfmt, literal ratchet, env-var census, missing CHANGELOG). The verdict stood; the justification was replaced.

3. Established facts

4. Disposition

5. Where it is documented