Iter Iter

RAG & Semantic Search

ChromaDB-powered vector search across project files, memories, and error patterns. Semantic file ranking, hybrid error matching, and intelligent context enrichment.

Memory and error matching interface

RAG capabilities

1

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.

2

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.

3

Memory semantic search

Search across error patterns, lessons, conventions, and facts using vector similarity. Combines global and per-project memory collections.

4

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.

Smarter context, better code