diff --git a/src/activate/registerCommands.ts b/src/activate/registerCommands.ts index ffb419ddfd..b6d2edb00d 100644 --- a/src/activate/registerCommands.ts +++ b/src/activate/registerCommands.ts @@ -3,6 +3,7 @@ import delay from "delay" import { ClineProvider } from "../core/webview/ClineProvider" import { ContextProxy } from "../core/config/ContextProxy" +import { telemetryService } from "../services/telemetry/TelemetryService" import { registerHumanRelayCallback, unregisterHumanRelayCallback, handleHumanRelayResponse } from "./humanRelay" import { handleNewTask } from "./handleTask" @@ -71,6 +72,8 @@ const getCommandsMap = ({ context, outputChannel, provider }: RegisterCommandOpt return } + telemetryService.captureTitleButtonClicked("plus") + await visibleProvider.removeClineFromStack() await visibleProvider.postStateToWebview() await visibleProvider.postMessageToWebview({ type: "action", action: "chatButtonClicked" }) @@ -82,6 +85,8 @@ const getCommandsMap = ({ context, outputChannel, provider }: RegisterCommandOpt return } + telemetryService.captureTitleButtonClicked("mcp") + visibleProvider.postMessageToWebview({ type: "action", action: "mcpButtonClicked" }) }, "roo-cline.promptsButtonClicked": () => { @@ -91,9 +96,15 @@ const getCommandsMap = ({ context, outputChannel, provider }: RegisterCommandOpt return } + telemetryService.captureTitleButtonClicked("prompts") + visibleProvider.postMessageToWebview({ type: "action", action: "promptsButtonClicked" }) }, - "roo-cline.popoutButtonClicked": () => openClineInNewTab({ context, outputChannel }), + "roo-cline.popoutButtonClicked": () => { + telemetryService.captureTitleButtonClicked("popout") + + return openClineInNewTab({ context, outputChannel }) + }, "roo-cline.openInNewTab": () => openClineInNewTab({ context, outputChannel }), "roo-cline.settingsButtonClicked": () => { const visibleProvider = getVisibleProviderOrLog(outputChannel) @@ -102,6 +113,8 @@ const getCommandsMap = ({ context, outputChannel, provider }: RegisterCommandOpt return } + telemetryService.captureTitleButtonClicked("settings") + visibleProvider.postMessageToWebview({ type: "action", action: "settingsButtonClicked" }) }, "roo-cline.historyButtonClicked": () => { @@ -111,9 +124,13 @@ const getCommandsMap = ({ context, outputChannel, provider }: RegisterCommandOpt return } + telemetryService.captureTitleButtonClicked("history") + visibleProvider.postMessageToWebview({ type: "action", action: "historyButtonClicked" }) }, "roo-cline.helpButtonClicked": () => { + telemetryService.captureTitleButtonClicked("help") + vscode.env.openExternal(vscode.Uri.parse("https://docs.roocode.com")) }, "roo-cline.showHumanRelayDialog": (params: { requestId: string; promptText: string }) => { diff --git a/src/services/telemetry/TelemetryService.ts b/src/services/telemetry/TelemetryService.ts index 031456f62e..37423542b0 100644 --- a/src/services/telemetry/TelemetryService.ts +++ b/src/services/telemetry/TelemetryService.ts @@ -145,6 +145,14 @@ class TelemetryService { this.captureEvent(PostHogClient.EVENTS.ERRORS.CONSECUTIVE_MISTAKE_ERROR, { taskId }) } + /** + * Captures a title button click event + * @param button The button that was clicked + */ + public captureTitleButtonClicked(button: string): void { + this.captureEvent("Title Button Clicked", { button }) + } + /** * Checks if telemetry is currently enabled * @returns Whether telemetry is enabled