Impact: Medium (search quality)
`server/indexer/pipeline.py:111-118` (`_build_bm25_text`) builds the sparse text from signature + docstring + source only. Annotations (e.g. `@RestController`), HTTP routes, package/module, and the symbol name are excluded — even though they are present in the payload and the dense embedding text.
Consequence: a keyword search for an annotation name or route string gets no sparse (BM25) matches.
Recommended change
Fold annotations, HTTP route, package, and symbol name into `_build_bm25_text`.
Impact: Medium (search quality)
`server/indexer/pipeline.py:111-118` (`_build_bm25_text`) builds the sparse text from signature + docstring + source only. Annotations (e.g. `@RestController`), HTTP routes, package/module, and the symbol name are excluded — even though they are present in the payload and the dense embedding text.
Consequence: a keyword search for an annotation name or route string gets no sparse (BM25) matches.
Recommended change
Fold annotations, HTTP route, package, and symbol name into `_build_bm25_text`.