- Add proper change detection for refreshValues using deep comparison
- Increase debounce timing from 50ms to 100ms for better performance
- Add proper error handling for missing Requesty API key
- Fix apiConfiguration update to properly merge with existing state
- Remove debug console logs
- Add OpenAiHandlerOptions interface for configuration
- Extract processUsageMetrics to base class for reuse
- Update RequestyHandler to extend OpenAiHandler
- Add proper type safety for metrics handling
- Clean up code duplication across handlers
- Add RequestyHandler implementation for API integration
- Add RequestyModelPicker component for model selection
- Update shared types and messages for Requesty support
- Update API options to include Requesty provider
When the MCP server was initialized before opening RooCode, disabled servers
would not appear in the settings UI. This was fixed by:
1. Using getAllServers() instead of getServers() in ClineProvider.ts for UI
state updates, ensuring all servers (including disabled ones) are shown
2. Maintaining getServers() for operational use (AI prompts, tool calls)
where disabled servers should be filtered out
The fix maintains clean separation between UI display and operational
server filtering.
Added thread-safe initialization to the McpServerManager singleton pattern to
prevent potential race conditions when getInstance is called concurrently.
The changes include:
1. Added initializationPromise to track ongoing initialization
2. Implemented double-checked locking pattern:
- First check: Return existing instance if available
- Second check: Wait for any ongoing initialization
- Third check: Double-check inside initialization block
3. Added proper cleanup in finally block to prevent deadlocks
This ensures that:
- Only one McpHub instance is ever created
- Concurrent calls wait for initialization to complete
- Resources are properly initialized and cleaned up
- No memory leaks from incomplete initialization
The fix maintains the existing functionality while making it safe for
concurrent access in VS Code's multi-window environment.
When the MCP server was initialized before opening RooCode, the server list
would not appear in the settings. This was fixed by:
1. Adding proper server list initialization in ClineProvider.ts when the
webview launches, checking if mcpHub exists and sending its current
servers to the webview:
```typescript
if (this.mcpHub) {
this.postMessageToWebview({
type: "mcpServers",
mcpServers: this.mcpHub.getServers()
})
}
```
2. Using the public getServers() method from McpHub instead of relying on
internal state updates, ensuring consistent server list state across
the application.
The fix maintains clean separation of concerns and follows existing patterns
for state management between the extension and webview.