Breaking change. The SQLite metadata backend and Chroma vector backend
are both removed — acatome-store now requires Postgres with pgvector.
- StoreConfig: vector_backend/metadata_backend/graph_backend constructor
args removed (TypeError on use); exposed as read-only properties
pinned to 'postgres'/'pgvector'/'none' for downstream UI compatibility.
- vector.py: ChromaIndex class deleted; PgVectorIndex is the sole
concrete backend. create_index() no longer branches.
- store.py: _init_db raises if db_url is not postgresql+psycopg://…;
SQLite DDL workarounds (PRAGMA, _ensure_missing_columns dual-branch,
_ensure_embedding_column Chroma fallback) all gone.
- pyproject.toml: chromadb, llama-index-core, and
llama-index-vector-stores-chroma dropped. psycopg[binary] and pgvector
promoted from optional to base deps.
- Tests: sqlite parametrization removed from conftest; Chroma-specific
test_vector.py rewritten as PgVectorIndex integration tests; old
sqlite-legacy-migration test deleted.
Migration one-liner documented in CHANGELOG.md.
145 acatome-store tests + 1361 precis-mcp tests passing against live
Postgres 18.3 + pgvector 0.8.2.