Releases: johnhuang316/code-index-mcp
Release v2.2.1
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
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
Full Changelog: v2.1.1...v2.1.2
v2.1.1
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
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)
v2.0.1
Full Changelog: v2.0.0...v2.0.1
v2.0.0 - SCIP Architecture Migration
🚀 Major Changes
Complete architectural overhaul - This release represents a fundamental redesign of the code indexing system.
New Architecture
- Three-layer service architecture: Service → Tool → Technical Components
- Unified SCIP indexing: Replace language-specific analyzers with SCIP protobuf format
- Simplified codebase: Reduced from 40K+ to ~1K lines of core logic
Performance & Reliability
- Faster indexing: Tree-sitter AST parsing instead of regex-based analysis
- Better accuracy: SCIP provides more precise code intelligence
- Reduced memory usage: Streamlined data structures and processing
Backward Compatibility
- MCP API unchanged: All existing MCP tools work without modification
- Automatic migration: Legacy indexes are automatically migrated
- Same functionality: All user-facing features preserved
🔧 Technical Details
Removed Components
- Language-specific analyzers (C, C++, Java, JavaScript, Python, etc.)
- Legacy indexing models and relationship management
- Complex duplicate detection and qualified name systems
New Components
- SCIP-based unified indexing system
- Service-oriented business logic layer
- Composable technical tool layer
📦 Migration
Existing users can upgrade seamlessly - the system will automatically:
- Detect legacy index format
- Migrate to new SCIP format
- Maintain all existing functionality
Full Changelog: v1.2.1...v2.0.0
v1.2.1
Release Notes - v1.2.0
What's New
Enhanced File Search Capabilities
- Filename-only search: Now you can search with just the filename! Use
test_*.py
to find all test files across any directory, no need for full paths - Dual matching logic: Searches both full paths and filenames automatically for maximum convenience
- Directory tree traversal: Replaced linear search with efficient tree-based algorithm
Cross-Platform Improvements
- Unified path format: All file paths now use forward slashes consistently across Windows, macOS, and Linux
- Fixed Windows path issues: No more double backslashes in search results
Examples
Before v1.2.0:
find_files("tests/test_*.py") # Only finds files in tests/ directory
Now in v1.2.0:
find_files("test_*.py") # Finds ALL test files in any directory
find_files("tests/test_*.py") # Still works for specific paths
find_files("README.md") # Finds all README files project-wide
Breaking Changes
None - fully backward compatible
Full Changelog: v1.1.1...v1.2.0
v1.1.1
remove sys.path.append to restore uvx environment isolation
Full Changelog: v1.1.0...v1.1.1