Skip to content

Releases: johnhuang316/code-index-mcp

2.4.1 - Search Filtering Alignment

03 Oct 02:32
Compare
Choose a tag to compare
  • Code search now shares the central FileFilter blacklist, keeping results consistent with indexing (no more node_modules noise).
  • CLI search strategies emit the appropriate exclusion flags automatically (ripgrep, ugrep, ag, grep).
  • Basic fallback search prunes excluded directories during traversal, avoiding unnecessary IO.
  • Added regression coverage for the new filtering behaviour (tests/search/test_search_filters.py).

Full Changelog: v2.4.0...v2.4.1

Shallow Index Default & Streamlined Server

02 Oct 02:51
Compare
Choose a tag to compare

Highlights

  • Shallow index by default: Projects initialize with the new JSON-based shallow index for rapid file discovery.
  • Deep index on demand: Added the build_deep_index tool so symbol extraction happens only when you request it.
  • Watcher-friendly rebuilds: File watcher callbacks now refresh the shallow index, keeping file lists current without long rebuilds.
  • Server cleanup: Removed unused structure://project resource, legacy prompts, and auxiliary documents for a leaner runtime.

Developer Experience Improvements

  • find_files now enforces true glob semantics (single * for one segment, ** for recursive matches).
  • get_file_summary responds with a needs_deep_index hint when deep symbols are unavailable.
  • Index management services split shallow vs deep rebuild paths to clarify tool behavior.
  • Repository docs (README, localized copies) highlight when to run build_deep_index.

Cleanups

  • Removed deprecated architecture and benchmarking documents.
  • Trimmed benchmark scripts and outdated tests tied to the old SCIP experiment.

Upgrade Notes

  1. After updating, call set_project_path as usual - the server will build the shallow index automatically.
  2. Run build_deep_index whenever you need symbol-level summaries (get_file_summary) or deep search capabilities.
  3. Optionally run refresh_index to refresh the shallow index if the watcher is disabled.

Compatibility

  • Tool names and signatures are unchanged.
  • Deep-index workflows remain available; they now require an explicit build_deep_index call.
  • Python 3.10+ requirement unchanged; no new third-party dependencies.

Enjoy faster cold starts and a simpler interface tailored for LLM-driven workflows.

v2.3.2 - ugrep Search Improvements

15 Sep 05:03
Compare
Choose a tag to compare

🔧 Bug Fixes

ugrep Search Tool Improvements

  • Fixed recursive search: Added flag to enable searching in subdirectories
  • Fixed path handling: Corrected relative path processing for consistent results across all search tools
  • Improved file patterns: Changed from to for better glob filtering

Impact

  • ugrep now behaves consistently with other search tools (ripgrep, ag, grep)
  • Eliminates incorrect path conversion errors when processing search results
  • Ensures complete subdirectory coverage during code searches

Technical Details

This release resolves critical integration issues where:

  1. ugrep wasn't searching subdirectories due to missing recursion flag
  2. Relative paths from ugrep output were incorrectly processed by os.path.relpath()

Both fixes are essential for proper ugrep functionality and maintain backward compatibility with existing search implementations.


Full Changelog: v2.3.1...v2.3.2

v2.3.1

11 Sep 09:20
Compare
Choose a tag to compare

Full Changelog: v2.3.0...v2.3.1

Release v2.3.0

11 Sep 03:08
Compare
Choose a tag to compare

Major Performance Optimizations

This release includes performance optimizations to the code indexing engine.

Performance Improvements

Python Strategy Optimization

  • Reduced from 3 separate AST traversals to 1 single-pass visitor

Java Strategy Optimization

  • Merged double tree-sitter traversals into single unified pass

TypeScript Strategy Optimization

  • Consolidated double traversals into single optimized pass

System-Level Parallelization

  • Implemented ThreadPoolExecutor for concurrent file processing
  • Automatic worker count optimization based on CPU cores
  • Thread-safe strategy sharing for memory efficiency

Algorithm Optimization

  • Replaced O(n²) symbol lookups with O(1) hash table operations
  • Eliminated quadratic complexity in call relationship analysis

Bug Fixes

Java Method Call Analysis

  • Improved accuracy of method call detection and relationships
  • Fixed false positives in method name matching
  • Enhanced support for obj.method() call patterns

Cross-Platform Search Support

  • Added support for Linux/Unix grep context line formats
  • Fixed grep parsing issues on different operating systems
  • Improved handling of absolute and relative paths

Search Configuration

  • Changed max_line_length default from 200 to None for backward compatibility
  • Preserved existing behavior for users who don't set explicit limits
  • Added comprehensive parameter validation

Improvements

  • Reduced computational complexity in parsing strategies
  • Parallel processing for faster indexing of large codebases
  • Optimized symbol lookup algorithms

What's Changed

  • Single-pass AST/tree-sitter parsing across all optimized strategies
  • Parallel file processing with configurable worker pools
  • Hash table-based symbol lookup indexes
  • Maintained full backward compatibility

Technical Details

  • All strategies are thread-safe and support parallel execution
  • Strategy instances remain shared and stateless for memory efficiency
  • File watcher integration uses optimized rebuilds automatically
  • No configuration changes required - improvements are transparent

Deployment

Automatic Benefits:

  • Performance improvements work immediately after update
  • Existing installations benefit without configuration changes
  • File monitoring automatically uses optimized indexing

Recommended:

  • Restart MCP server after upgrade
  • Optionally run refresh_index() for immediate optimization

Compatibility

  • All existing MCP tool interfaces unchanged
  • Existing project configurations work without modification
  • No new external dependencies required
  • Python 3.10+ requirement maintained

This release transforms code-index-mcp into a high-performance solution suitable for enterprise-scale codebases.

Release v2.2.1

25 Aug 07:08
Compare
Choose a tag to compare

Bug Fix Release

Fixed

  • File watcher auto-refresh functionality restored
  • Added missing import that was causing file watcher startup failures
  • Automatic index updates now work when files are created, modified, or deleted

Impact

  • File watcher status changes from "error" to "active"
  • No more manual refresh required after file changes
  • Real-time code intelligence restored

This patch fixes the regression introduced in v2.2.0 where file watching was completely non-functional.

Upgrade recommended for all v2.2.0 users.

v2.2.0 - Return to Simplicity

25 Aug 06:09
Compare
Choose a tag to compare

What's New

Architectural Refinement: Back to Custom Indexing

  • Direct tree-sitter imports: Eliminated fallback mechanisms for cleaner, more predictable parsing
  • Simplified architecture: Moved away from complex SCIP protocol back to efficient custom JSON indexing
  • Fail-fast approach: Clear error messages when dependencies are missing, no silent degradation
  • Enhanced performance: Streamlined indexing process with reduced overhead and faster access

Improved Language Strategy Implementation

  • 7 Specialized Languages: Python, JavaScript, TypeScript, Java, Go, Objective-C, Zig now use direct tree-sitter AST parsing
  • 50+ Fallback Languages: All other file types continue to use reliable fallback indexing
  • No Regex Fallbacks: Specialized strategies use pure AST parsing for maximum accuracy
  • Cleaner Error Handling: Dependencies issues surface immediately with actionable error messages

Enhanced Parsing Accuracy

  • Better Symbol Extraction: Improved class, method, and function detection across all supported languages
  • Accurate Call Relationships: Enhanced tracking of function calls and dependencies
  • Robust Import Analysis: Better detection of module imports and exports
  • Comprehensive Testing: Validated parsing accuracy across 67 sample files in multiple languages

Technical Improvements

Dual-Strategy Architecture

  • Specialized Parsing: Tree-sitter AST analysis for core languages with full symbol extraction
  • Universal Coverage: Fallback strategy ensures all file types are indexed with basic metadata
  • Clean Separation: Clear distinction between specialized and fallback parsing approaches

Development Experience

  • Clearer Documentation: Updated all README files to accurately reflect the dual-strategy approach
  • Better Testing: Comprehensive validation across multiple programming languages
  • Simplified Maintenance: Reduced complexity makes the codebase easier to understand and extend

Migration Notes

This release represents a return to the custom indexing approach that prioritizes:

  • Efficiency over protocol compliance
  • Simplicity over complex standards
  • Performance over theoretical extensibility
  • Clarity over abstraction

The previous SCIP-based approach (v2.0.x - v2.1.x) encountered efficiency issues and limited ecosystem support. This release refocuses on the project's core mission: providing fast, accurate code indexing for LLM applications.

Breaking Changes

None - fully backward compatible with existing MCP integrations


Full Changelog: v2.1.2...v2.2.0

v2.1.2

18 Aug 09:17
Compare
Choose a tag to compare

Full Changelog: v2.1.1...v2.1.2

v2.1.1

15 Aug 09:01
Compare
Choose a tag to compare

What's Fixed

This patch release resolves stability and performance issues in Java code analysis.

Key Improvements

  • Enhanced Stability: Fixed crashes and hangs during Java file processing
  • Better Performance: Significantly faster Java symbol analysis
  • Reduced Memory Usage: Lower memory footprint during indexing
  • Improved Reliability: More consistent analysis results

Technical Changes

  • Simplified Java SCIP strategy implementation
  • Removed complex relationship tracking that was causing issues
  • Streamlined symbol registration and extraction
  • Fixed compatibility issues with large Java codebases

Full Changelog: v2.1.0...v2.1.1

v2.1.0

13 Aug 01:38
Compare
Choose a tag to compare

Major SCIP Architecture Enhancement

This release completes the migration to SCIP-based code indexing with significant improvements to the core infrastructure and API simplification.

Core SCIP Infrastructure

  • Complete SCIP core components: Added symbol_manager, position_calculator, reference_resolver, moniker_manager
  • Two-phase SCIP analysis: Implemented symbol collection → reference resolution workflow
  • Unified index management: New index_provider and unified_index_manager for seamless index operations
  • SCIP-compliant symbol IDs: Standard symbol ID generation with cross-file reference support

Enhanced Strategy System

  • All language strategies SCIP-compliant: Refactored Python, Java, JavaScript, Objective-C strategies
  • External symbol extraction: Added dependency tracking and external symbol resolution
  • Proper SCIP classifications: Implemented symbol roles and syntax kind detection
  • Robust file handling: Enhanced encoding detection and error recovery

API Improvements

  • Simplified find_files response: Returns clean file path lists instead of complex metadata objects
  • Enhanced SCIPSymbolAnalyzer: Replaced legacy query tools with accurate symbol analysis
  • Improved logging: Comprehensive logging throughout SCIP indexing pipeline

Dependency Updates

  • pathspec integration: Better .gitignore parsing and file filtering
  • Updated requirements: Added comprehensive dependency list for cross-platform support

Technical Improvements

  • Symbol analysis tools: New inspection scripts for debugging and development
  • Enhanced error handling: Better fallback strategies and error recovery
  • Testing improvements: Updated sample projects for multilingual testing

Breaking Changes

  • find_files API: Now returns List[str] instead of complex metadata dictionary
  • Internal architecture: Significant refactoring of internal components (no user-facing impact)