RAG & Semantic Search
ChromaDB-powered vector search across project files, memories, and error patterns. Semantic file ranking, hybrid error matching, and intelligent context enrichment.
RAG capabilities
Project file indexing
Background indexing embeds the first 2KB of each project file into ChromaDB using nomic-embed-text. Incremental - only re-indexes changed files.
Semantic file ranking
When building prompts, files are ranked by semantic relevance to the feature request. Narrows 500+ workspace files to the ~30 most relevant.
Memory semantic search
Search across error patterns, lessons, conventions, and facts using vector similarity. Combines global and per-project memory collections.
Hybrid error matching
When a step fails, matches against known error patterns using both regex (fast, precise) and vector search (semantic). Merged results with confidence scores.
How it integrates
Feature request enrichment
When you create a request, vector pre-filtering identifies the most relevant files. The LLM then classifies them as target (to modify) or reference (for context).
Auto-fix error recall
When a pipeline step fails, the system searches memories for similar past errors. Known solutions are included in the fix prompt for faster recovery.
Embedding model routing
Embedding inference is routed separately from code generation. Run nomic-embed-text on a different host to keep your GPU free for generation.
Graceful degradation
All RAG features are optional. If ChromaDB is down, the system falls back to text search. If embeddings fail, file lists pass through unranked.
API endpoints
POST /memory/search
Semantic search across all memories. Filter by type. Returns matches with confidence scores.
POST /memory/match-error-semantic
Hybrid regex + vector error matching. Filter by stack. Returns solutions ranked by confidence.
POST /files/rank
Re-rank a list of files by semantic relevance to a query. Used internally for prompt context selection.
POST /files/reindex
Trigger full project file re-indexing. Incremental by default - only re-embeds changed files.