From 58c9dc10b4977f2b786f7585d1e3b0d9ed1187a1 Mon Sep 17 00:00:00 2001 From: Daniel Riccio Date: Thu, 19 Jun 2025 12:39:51 -0500 Subject: [PATCH] feat(webview): Add marketplace checks in message handler - Check marketplace enabled state before filtering items - Check marketplace enabled state before installation - Use cached state from provider for better performance - Add console logging for disabled marketplace operations --- src/core/webview/webviewMessageHandler.ts | 32 +++++++++-------------- 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/src/core/webview/webviewMessageHandler.ts b/src/core/webview/webviewMessageHandler.ts index fd274c5073..3dc7779d33 100644 --- a/src/core/webview/webviewMessageHandler.ts +++ b/src/core/webview/webviewMessageHandler.ts @@ -1465,12 +1465,10 @@ export const webviewMessageHandler = async ( break } case "filterMarketplaceItems": { - // Check if marketplace is enabled before making API calls - const { experiments } = await provider.getState() - const config = vscode.workspace.getConfiguration("roo-cline") - const isMarketplaceDisabled = config.get("disableMarketplace", false) + // Get marketplace enabled state from provider's cached value + const state = await provider.getStateToPostToWebview() - if (!experiments.marketplace || isMarketplaceDisabled) { + if (!state.marketplaceEnabled) { console.log("Marketplace: Feature disabled, skipping API call") break } @@ -1492,12 +1490,10 @@ export const webviewMessageHandler = async ( } case "installMarketplaceItem": { - // Check if marketplace is enabled before installing - const { experiments } = await provider.getState() - const config = vscode.workspace.getConfiguration("roo-cline") - const isMarketplaceDisabled = config.get("disableMarketplace", false) + // Get marketplace enabled state from provider's cached value + const state = await provider.getStateToPostToWebview() - if (!experiments.marketplace || isMarketplaceDisabled) { + if (!state.marketplaceEnabled) { console.log("Marketplace: Feature disabled, skipping installation") break } @@ -1531,12 +1527,10 @@ export const webviewMessageHandler = async ( } case "removeInstalledMarketplaceItem": { - // Check if marketplace is enabled before removing - const { experiments } = await provider.getState() - const config = vscode.workspace.getConfiguration("roo-cline") - const isMarketplaceDisabled = config.get("disableMarketplace", false) + // Get marketplace enabled state from provider's cached value + const state = await provider.getStateToPostToWebview() - if (!experiments.marketplace || isMarketplaceDisabled) { + if (!state.marketplaceEnabled) { console.log("Marketplace: Feature disabled, skipping removal") break } @@ -1553,12 +1547,10 @@ export const webviewMessageHandler = async ( } case "installMarketplaceItemWithParameters": { - // Check if marketplace is enabled before installing with parameters - const { experiments } = await provider.getState() - const config = vscode.workspace.getConfiguration("roo-cline") - const isMarketplaceDisabled = config.get("disableMarketplace", false) + // Get marketplace enabled state from provider's cached value + const state = await provider.getStateToPostToWebview() - if (!experiments.marketplace || isMarketplaceDisabled) { + if (!state.marketplaceEnabled) { console.log("Marketplace: Feature disabled, skipping installation with parameters") break }