mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-08-28 05:27:24 +00:00
Problem: - Multiple instances of the Roo Code application were launching separate MCP server instances - This led to unnecessary resource consumption and potential conflicts between instances Solution: 1. Created new McpServerManager singleton class to manage MCP server instances: - Static getInstance() method ensures only one McpHub instance exists - Tracks registered ClineProvider instances - Handles cleanup on extension deactivation 2. Modified ClineProvider class: - Changed mcpHub from private to protected - Added getMcpHub() public getter method - Updated initialization to use McpServerManager - Added unregister logic in dispose() 3. Updated extension.ts to handle cleanup: - Added McpServerManager cleanup in deactivate() Technical Implementation: - Uses WeakRef for provider tracking to allow proper garbage collection - Maintains global state to track instance IDs - Implements proper cleanup of resources on disposal - Ensures backward compatibility with existing code This change significantly improves resource usage and prevents potential conflicts between multiple instances of the application while maintaining all existing functionality. |
||
|---|---|---|
| .. | ||
| __mocks__ | ||
| activate | ||
| api | ||
| core | ||
| exports | ||
| integrations | ||
| services | ||
| shared | ||
| test | ||
| utils | ||
| extension.ts | ||