code RAG — hybrid retrieval with AST chunking + rerank ingest git push webhook diff changed files tree-sitter parse 17 language grammars function/class chunk AST node boundaries LLM summary Haiku 4.5 prompt cache symbol graph edges imports / calls (kuzu) incremental: re-embed only changed chunks; push-to-search < 60s on 2M LOC fleet indexes dense Voyage-code-3 Qdrant 1.12 hybrid payload: repo+span BM25 Tantivy (Rust) field-weighted symbol x4 / body x1 symbol graph (kuzu) import edges, call edges, inheritance used at query-time for cross-repo expansion "symbol X from repo A used in repo B" query (LangGraph) retrieve: dense || BM25 top-10 fuse: reciprocal rank fusion rerank: cross-encoder top-5 synth: Claude Sonnet 4.7 1M answer gate citation parse (repo/path:start-end) anchors reject uncited claims re-ask or drop prompt cache system + reranked context eval 100 labeled cross-repo Qs MRR@10, nDCG@10 citation faithfulness rate p50 < 1.5s, p99 < 4s 10k QPS index size incremental push-to-search < 60s weekly drift rerun alert MRR drop > 5% 2M LOC, 10 repos target