feat(index): hybrid tree-sitter + LSP code understanding (#1551)#1555
Merged
feat(index): hybrid tree-sitter + LSP code understanding (#1551)#1555
Conversation
Implements three tasks from epic #1551 in zeph-index and zeph-core: - #1552: Replace heuristic repo map with tree-sitter ts-query. New SymbolInfo/SymbolKind/Visibility types with proper visibility parsing (pub, pub(crate), pub(super), pub(in path)). Supports Rust, Python, JS, TS, Go with graceful fallback to heuristics on query failure. generate_repo_map() wrapped in spawn_blocking for async safety. - #1553: Replace regex hover pre-filter in lsp_hooks/hover.rs with tree-sitter all-depth definition query. Removes Rust-only restriction, adds multi-language support. Regex fallback retained unconditionally. Adds strip_cat_n_prefix() for read tool output parsing. - #1554: Decouple repo map injection from Qdrant retriever. AgentBuilder gets with_repo_map() independent of with_code_retriever(). apply_config() reloads both repo_map_tokens and repo_map_ttl. apply_code_index() configures repo map before provider_has_tools check so Claude/OpenAI now receive repo map unconditionally. Remove index, lang-rust, lang-python, lang-js, lang-go, lang-config feature flags: zeph-index and all language grammars are now always-on mandatory dependencies. +59 tests (5091 total).
This was
linked to
issues
Mar 11, 2026
- zeph-index is now always-on; remove feature flag references - Describe tree-sitter ts-query repo map with SymbolInfo extraction - Document multi-language hover pre-filter (Rust, Python, JS, TS, Go) - Clarify repo map injection is unconditional across all LLM providers - Update crates/zeph-index/README.md and root README.md accordingly
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements epic #1551: hybrid tree-sitter + LSP code understanding in
zeph-index.SymbolInfo/SymbolKind/Visibilitytypes with proper visibility parsing (pub,pub(crate),pub(super),pub(in path)). Rust, Python, JS, TS, Go supported. Graceful fallback to heuristics on query failure.generate_repo_map()wrapped inspawn_blocking.strip_cat_n_prefix()for read tool output parsing.AgentBuilder::with_repo_map()independent ofwith_code_retriever().apply_code_index()configures repo map beforeprovider_has_toolscheck — Claude/OpenAI now receive repo map unconditionally.Feature flag cleanup
Removes
index,lang-rust,lang-python,lang-js,lang-go,lang-configfeature flags.zeph-indexand all tree-sitter language grammars are now always-on mandatory dependencies.Test plan
cargo +nightly fmt --check— cleancargo clippy --workspace --features full -- -D warnings— 0 warningscargo nextest run --config-file .github/nextest.toml --workspace --features full --lib --bins— 5091 passed (+59 vs baseline)