You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Deferred (owner call, 2026-07-26): prioritised the higher-gain B-lane; pgvector rated low-value in the epic's Phase-2 audit (Chroma/Milvus already cover the vector-store need). Kept as a specced issue.
Architecture decision recorded for pickup: implement against the async ABCs (AsyncBaseClient/AsyncBaseCollection in knowledge/backends/async_base.py) using asyncpg — which is already a declared dependency — NOT the sync BaseClient (which would add psycopg2, an undeclared dep, and violate the async-first rule). Add a skippable _pgvector_client fixture to knowledge/backends/test_async_base.py's _BACKENDS (importorskip + skip when no Postgres+pgvector reachable) so the existing async parity suite validates it. Per-collection tables (dim inferred on first add) keep each collection's vector(N) index independent. C2 (#12557) then wires it via AUTOBOT_VECTOR_BACKEND=pgvector (default chromadb) + a CREATE EXTENSION IF NOT EXISTS vector idempotent migration.
Validation blocker (2026-07-26): completing C1 responsibly requires a Postgres+pgvector instance to run the async parity suite against — this session's environment has a Postgres server that rejects connections (no pg_hba entry / creds not available) and no Docker. Rather than ship ~250 lines of never-executed asyncpg SQL (low-value per the epic audit + unvalidatable here = speculative), C1 stays deferred with the async/asyncpg design recorded above. Pickup prerequisite: a PG-with-pgvector test env (CI service container or local instance) so the test_async_base.py parity fixture actually exercises the SQL path.
Activity
mrveiss commentedon Jul 26, 2026
Deferred (owner call, 2026-07-26): prioritised the higher-gain B-lane; pgvector rated low-value in the epic's Phase-2 audit (Chroma/Milvus already cover the vector-store need). Kept as a specced issue.
Architecture decision recorded for pickup: implement against the async ABCs (
AsyncBaseClient/AsyncBaseCollectioninknowledge/backends/async_base.py) using asyncpg — which is already a declared dependency — NOT the syncBaseClient(which would addpsycopg2, an undeclared dep, and violate the async-first rule). Add a skippable_pgvector_clientfixture toknowledge/backends/test_async_base.py's_BACKENDS(importorskip + skip when no Postgres+pgvector reachable) so the existing async parity suite validates it. Per-collection tables (dim inferred on first add) keep each collection'svector(N)index independent. C2 (#12557) then wires it viaAUTOBOT_VECTOR_BACKEND=pgvector(default chromadb) + aCREATE EXTENSION IF NOT EXISTS vectoridempotent migration.mrveiss commentedon Jul 26, 2026
Validation blocker (2026-07-26): completing C1 responsibly requires a Postgres+pgvector instance to run the async parity suite against — this session's environment has a Postgres server that rejects connections (no pg_hba entry / creds not available) and no Docker. Rather than ship ~250 lines of never-executed asyncpg SQL (low-value per the epic audit + unvalidatable here = speculative), C1 stays deferred with the async/asyncpg design recorded above. Pickup prerequisite: a PG-with-pgvector test env (CI service container or local instance) so the
test_async_base.pyparity fixture actually exercises the SQL path.