Skip to content

ruvector CLI subcommands hardcode pgvector instead of detecting ruvector extensionΒ #1520

@ronmikailov

Description

@ronmikailov

Bug

The ruflo ruvector status, ruflo ruvector benchmark, and ruflo ruvector optimize subcommands assume the PostgreSQL instance uses the pgvector extension (vector type), but the official ruvnet/ruvector-postgres Docker image ships its own ruvector extension (v0.3.0) with a custom ruvector UDT β€” not pgvector's vector type.

Reproduction

# Start the official ruvector-postgres image
docker run -d --name ruvector-postgres -p 5432:5432 ruvnet/ruvector-postgres:latest

# Run status β€” reports pgvector NOT installed (false negative)
PGPASSWORD=claude-flow-test ruflo ruvector status --verbose --database claude_flow --user claude

# Run benchmark β€” fails with "type vector does not exist"
PGPASSWORD=claude-flow-test ruflo ruvector benchmark --database claude_flow --user claude

Expected

  • status should detect the ruvector extension (not just pgvector)
  • benchmark should create columns with the ruvector type (not vector)
  • optimize should analyze indexes and types compatible with the ruvector extension

Actual

  • status reports: pgvector extension not installed β€” even though ruvector 0.3.0 is installed and working
  • benchmark fails: ERROR: type "vector" does not exist
  • optimize was not tested independently but likely has the same hardcoded assumption

Evidence

-- The actual extension installed:
SELECT extname, extversion FROM pg_extension;
--  ruvector | 0.3.0

-- The actual embedding column type:
SELECT udt_name FROM information_schema.columns 
WHERE table_schema='claude_flow' AND table_name='memory_entries' AND column_name='embedding';
--  ruvector

-- Data is healthy: 129 entries, 8 tables, 21 indexes (HNSW), all valid

Suggested Fix

The CLI should check for both extensions and use whichever is present:

SELECT extname FROM pg_extension WHERE extname IN ('vector', 'ruvector');

Then use the detected extension's type for benchmark table creation, status reporting, and optimization analysis.

Environment

  • ruvnet/ruvector-postgres:latest
  • ruflo CLI (npm, latest)
  • PostgreSQL with ruvector extension 0.3.0
  • Node v20.19.6

Reported from Site360 project integration testing.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions