From 31fd6e1470d20aa1c26296633670af899a144d8f Mon Sep 17 00:00:00 2001 From: Matt Rubens Date: Tue, 15 Apr 2025 10:37:48 -0400 Subject: [PATCH] Capture telemetry for usage of code actions (#2650) --- src/activate/registerCodeActions.ts | 1 + src/core/webview/ClineProvider.ts | 5 +++++ src/services/telemetry/TelemetryService.ts | 7 +++++++ 3 files changed, 13 insertions(+) diff --git a/src/activate/registerCodeActions.ts b/src/activate/registerCodeActions.ts index 31f474442d..88e8e218f4 100644 --- a/src/activate/registerCodeActions.ts +++ b/src/activate/registerCodeActions.ts @@ -3,6 +3,7 @@ import * as vscode from "vscode" import { ACTION_NAMES, COMMAND_IDS } from "../core/CodeActionProvider" import { EditorUtils } from "../core/EditorUtils" import { ClineProvider } from "../core/webview/ClineProvider" +import { telemetryService } from "../services/telemetry/TelemetryService" export const registerCodeActions = (context: vscode.ExtensionContext) => { registerCodeActionPair( diff --git a/src/core/webview/ClineProvider.ts b/src/core/webview/ClineProvider.ts index 2353dff490..3184a08f5a 100644 --- a/src/core/webview/ClineProvider.ts +++ b/src/core/webview/ClineProvider.ts @@ -269,6 +269,9 @@ export class ClineProvider extends EventEmitter implements promptType: keyof typeof ACTION_NAMES, params: Record, ): Promise { + // Capture telemetry for code action usage + telemetryService.captureCodeActionUsed(promptType) + const visibleProvider = await ClineProvider.getInstance() if (!visibleProvider) { @@ -302,6 +305,8 @@ export class ClineProvider extends EventEmitter implements promptType: "TERMINAL_ADD_TO_CONTEXT" | "TERMINAL_FIX" | "TERMINAL_EXPLAIN", params: Record, ): Promise { + // Capture telemetry for terminal action usage + telemetryService.captureCodeActionUsed(promptType) const visibleProvider = await ClineProvider.getInstance() if (!visibleProvider) { return diff --git a/src/services/telemetry/TelemetryService.ts b/src/services/telemetry/TelemetryService.ts index 2bd62fd9e8..4a61bebfff 100644 --- a/src/services/telemetry/TelemetryService.ts +++ b/src/services/telemetry/TelemetryService.ts @@ -27,6 +27,7 @@ class PostHogClient { CHECKPOINT_CREATED: "Checkpoint Created", CHECKPOINT_RESTORED: "Checkpoint Restored", CHECKPOINT_DIFFED: "Checkpoint Diffed", + CODE_ACTION_USED: "Code Action Used", }, ERRORS: { SCHEMA_VALIDATION_ERROR: "Schema Validation Error", @@ -268,6 +269,12 @@ class TelemetryService { this.captureEvent(PostHogClient.EVENTS.TASK.CHECKPOINT_RESTORED, { taskId }) } + public captureCodeActionUsed(actionType: string): void { + this.captureEvent(PostHogClient.EVENTS.TASK.CODE_ACTION_USED, { + actionType, + }) + } + public captureSchemaValidationError({ schemaName, error }: { schemaName: string; error: ZodError }): void { this.captureEvent(PostHogClient.EVENTS.ERRORS.SCHEMA_VALIDATION_ERROR, { schemaName,