Evolution: Symbol Index Multi-Language Extension (#03)#172
Merged
laynepenney merged 7 commits intomainfrom Jan 26, 2026
Merged
Conversation
**Critical Fixes:** - Delete legacy WebSearchTool (replaced by EnhancedWebSearchTool) - Delete legacy web-search.test.ts test file **Code Quality Improvements:** - Extract magic numbers to named constants (RELEVANCE_SCORES, RATE_LIMITS) - Remove unused 'sort' property from template configuration - Update relevance scoring to use constants for maintainability - Update rate limiting to use constants for consistency **Test Coverage Enhancements:** - Add test: should enforce rate limiting for engines - Add test: should reset rate limits after time period - Verify rate limit behavior with 5 requests/minute per engine - Verify automatic reset after 60-second timeout period **Changes Summary:** - Deleted: src/tools/web-search.ts (legacy implementation) - Deleted: tests/web-search.test.ts (legacy tests) - Modified: src/tools/enhanced-web-search.ts (constants, removed unused props) - Modified: tests/enhanced-web-search.test.ts (+2 new tests) **Test Results:** 8/8 tests passing (including 2 new rate limiting tests) Wingman: Codi <codi@layne.pro>
Document web search tool migration from WebSearchTool to EnhancedWebSearchTool. Wingman: Codi <codi@layne.pro>
Mark implementation as complete with updated status, goals, and success criteria. Reflect current state in documentation references. Wingman: Codi <codi@layne.pro>
Added comprehensive implementation summary covering: - Phase 1 & 2 deliverables - Code quality enhancements - Documentation updates - Beyond-scope improvements - Phase 3 readiness assessment Updated document version to 1.3 and date to 2026-01-26. Wingman: Codi <codi@layne.pro>
Create detailed evolution document for Language Server Protocol integration: - Symbol navigation (, ) - Code completion and IntelliSense - Semantic code understanding - Multi-language server support - AI-enhanced code analysis Proposed implementation in 3 phases over 4 weeks. Updated evolution README with current proposal status. Wingman: Codi <codi@layne.pro>
Based on thorough review, reoriented proposal from full LSP integration to extending the existing symbol index for multi-language support. Key changes: - Removed full LSP integration proposal - Added comprehensive Symbol Index vs LSP comparison table - Proposed extending existing symbol index for Python, Rust, Go - Added LSP as optional completion-only feature (hybrid approach) - Recognized existing symbol index capabilities (TS, Kotlin support) - Updated README with new proposal name and details - Reduced timeline from 4 weeks to 2-4 weeks The symbol index already provides: - goto_definition, find_references, find_symbol - get_dependency_graph, get_inheritance, get_call_graph - SQLite-based fast navigation - Background indexer - TypeScript and Kotlin support New approach focuses on adding Python, Rust, Go extractors + optional completion. Wingman: Codi <codi@layne.pro>
Collaborator
Author
Self-Review Result ✅Based on thorough review of the original LSP integration proposal, I've made the following corrections: Critical Issues Addressed1. Missing Existing Capabilities Context ✅
2. No Clear Value Proposition ✅
3. Incomplete Alternatives Analysis ✅
4. Added Recommendation Sections ✅
Document ImprovementsNew Sections:
Files Changed:
SummaryThe proposal now:
Verdict: ✅ Ready for review and discussion |
Added comprehensive implementation details: **Import Resolution Strategies:** - Python: import/from import, resolve to .py and __init__.py - Rust: use statements, :: to / notation conversion - Go: import "package", absolute path resolution **File Extension Resolution:** - Added LANGUAGE_EXTENSIONS constant with per-language patterns - Updated tryResolveWithExtensions for language awareness **Language Detection:** - Added getLanguageByExtension() function - Maps .py, .rs, .go to appropriate languages **Symbol Kinds by Language:** - Python: module, class, function, method, variable, constant, exception - Rust: function, method, struct, trait, impl, enum, const, macro, module - Go: function, method, struct, interface, type, const, variable **Doc Comment Patterns:** - Python: """...""", '''...''' - Rust: ///, /** */ - Go: //, /* */ **Updated Implementation Plan:** - Phase 1: Python Support (1.5 weeks) - Phase 2: Rust Support (1 week) - Phase 3: Go Support (1 week) - Phase 4: Infrastructure (0.5 weeks) - Phase 5: LSP Completion (2 weeks - Optional) **Updated Timeline:** 4-6 weeks (from 2-4 weeks) **Phase-based Success Criteria:** - Phase 1-3: Language extraction, import resolution, doc extraction - Phase 4: Language detection, filtering, stats - Phase 5 (Optional): LSP integration Wingman: Codi <codi@layne.pro>
Collaborator
Author
Second Review: Implementation Details Added ✅Based on thorough code review of existing symbol-index implementation, I've enhanced the proposal with detailed implementation specifications: 🔴 Critical Gaps Addressed1. Import Resolution ✅
2. Extension Resolution ✅
3. Language Detection ✅
4. Symbol Kinds ✅
5. Doc Comment Patterns ✅
📊 Implementation Plan UpdatesTimeline: 4-6 weeks (increased from 2-4 weeks)
✅ VerificationReviewed actual codebase:
Verdict: Implementation details now complete. Proposal ready for review. |
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.
Symbol Index Multi-Language Extension
Based on thorough review, reoriented proposal from full LSP integration to extending Codi's existing Symbol Index for multi-language support.
Key Changes from Original Proposal:
Existing Symbol Index (Already Working):
goto_definition- Fast navigationfind_references- Find all usagesfind_symbol- Symbol searchget_dependency_graph- Dependency analysisget_inheritance- Type hierarchyget_call_graph- Function callsNew Proposal - Extend Symbol Index:
Why This Approach:
Implementation Plan:
Total Timeline: 2-4 weeks
See
evolution/#03-symbol-index-extension.mdfor detailed comparison tables and implementation details.Files Changed:
evolution/#03-symbol-index-extension.md- New reoriented proposalevolution/README.md- Updated proposal statusevolution/#03-lsp-integration.md- Removed (replaced)Wingman: Codi codi@layne.pro