Skip to content

feat(index): hybrid tree-sitter + LSP code understanding (#1551)#1555

Merged
bug-ops merged 2 commits intomainfrom
tree-sitter-lsp
Mar 11, 2026
Merged

feat(index): hybrid tree-sitter + LSP code understanding (#1551)#1555
bug-ops merged 2 commits intomainfrom
tree-sitter-lsp

Conversation

@bug-ops
Copy link
Owner

@bug-ops bug-ops commented Mar 11, 2026

Summary

Implements epic #1551: hybrid tree-sitter + LSP code understanding in zeph-index.

Feature flag cleanup

Removes index, lang-rust, lang-python, lang-js, lang-go, lang-config feature flags. zeph-index and all tree-sitter language grammars are now always-on mandatory dependencies.

Test plan

  • cargo +nightly fmt --check — clean
  • cargo clippy --workspace --features full -- -D warnings — 0 warnings
  • cargo nextest run --config-file .github/nextest.toml --workspace --features full --lib --bins — 5091 passed (+59 vs baseline)
  • Verify repo map is injected for Claude/OpenAI providers (no Qdrant required)
  • Verify hover pre-filter works for Python and JS files

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).
@github-actions github-actions bot added enhancement New feature or request size/XL Extra large PR (500+ lines) documentation Improvements or additions to documentation rust Rust code changes core zeph-core crate dependencies Dependency updates config Configuration file changes and removed size/XL Extra large PR (500+ lines) labels Mar 11, 2026
@bug-ops bug-ops enabled auto-merge (squash) March 11, 2026 15:01
- 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
@github-actions github-actions bot added the size/XL Extra large PR (500+ lines) label Mar 11, 2026
@bug-ops bug-ops merged commit 60fce68 into main Mar 11, 2026
19 checks passed
@bug-ops bug-ops deleted the tree-sitter-lsp branch March 11, 2026 15:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

config Configuration file changes core zeph-core crate dependencies Dependency updates documentation Improvements or additions to documentation enhancement New feature or request rust Rust code changes size/XL Extra large PR (500+ lines)

Projects

None yet

1 participant