Deferred item from #11: the 9 backend adapters written correct-by-construction
but never run against real instances — sqlite_vec, pgvector, pinecone,
weaviate, milvus, redis, elasticsearch, mongodb, turbopuffer.
Scope of this issue
Verify the 7 adapters reachable without a cloud account, against real engines:
- Docker containers: pgvector, redis, elasticsearch, weaviate, mongodb
(mongodb-atlas-local).
- Embedded Milvus Lite: milvus (same adapter code path as a Milvus server;
only the client constructor differs).
- Loadable-extension Python: sqlite_vec.
pinecone and turbopuffer remain deferred — they need cloud accounts.
Outcome
All 344 contract tests pass across 13 backends. 8 real bugs found and fixed;
see the PR. A reusable harness was added: tests/docker-compose.yml,
a reworked tests/conftest.py that TCP-probes and skips unreachable server
backends (CI stays green without them), and tests/README.md.
Still deferred (tracked in #11)
pinecone, turbopuffer — need cloud accounts.
SupportsHybrid implementations + client-side RRF fallback.
AsyncClient / AsyncCollection parallel protocols.
- LangChain adapter shims; the
F() filter builder.
Refs #11
Deferred item from #11: the 9 backend adapters written correct-by-construction
but never run against real instances —
sqlite_vec,pgvector,pinecone,weaviate,milvus,redis,elasticsearch,mongodb,turbopuffer.Scope of this issue
Verify the 7 adapters reachable without a cloud account, against real engines:
(
mongodb-atlas-local).only the client constructor differs).
pineconeandturbopufferremain deferred — they need cloud accounts.Outcome
All 344 contract tests pass across 13 backends. 8 real bugs found and fixed;
see the PR. A reusable harness was added:
tests/docker-compose.yml,a reworked
tests/conftest.pythat TCP-probes and skips unreachable serverbackends (CI stays green without them), and
tests/README.md.Still deferred (tracked in #11)
pinecone,turbopuffer— need cloud accounts.SupportsHybridimplementations + client-side RRF fallback.AsyncClient/AsyncCollectionparallel protocols.F()filter builder.Refs #11