Skip to content

sessions: add telemetry for Agents window button interactions#307231

Merged
osortega merged 1 commit intomainfrom
copilot/parallel-tuna
Apr 1, 2026
Merged

sessions: add telemetry for Agents window button interactions#307231
osortega merged 1 commit intomainfrom
copilot/parallel-tuna

Conversation

@osortega
Copy link
Copy Markdown
Contributor

@osortega osortega commented Apr 1, 2026

Fixes https://github.com/microsoft/vscode-internalbacklog/issues/7256
Fixes https://github.com/microsoft/vscode-internalbacklog/issues/7257

Summary

Adds GDPR-compliant telemetry to track user interactions in the Agents window. All event types and logging helpers are centralized in a single file (sessionsTelemetry.ts), keeping call sites clean.

Event catalog

Titlebar buttonsvscodeAgents.interaction (button discriminator):

button Location
newSession sessionsView.ts:140
runPrimaryTask runScriptAction.ts:199
addTask runScriptAction.ts:245
generateNewTask runScriptAction.ts:269
openTerminal sessionsTerminalContribution.ts:325
openInVSCode chat.contribution.ts:66

Changes panelvscodeAgents.changesView/*:

Event Data Location
changesView/togglePanel visible changesTitleBarWidget.ts:195
changesView/versionModeChange mode changesView.ts:1838,1855,1872
changesView/viewModeChange mode changesView.ts:1756,1779
changesView/fileSelect changeType changesView.ts:1124
changesView/reviewCommentAdded hasExistingFeedback, hasSuggestion, isFromPRReview agentFeedbackService.ts:207

Already tracked via MenuWorkbenchButtonBar (telemetrySource: 'changesView' at changesView.ts:960):

  • Merge Changes button + menu options
  • Run Code Review button
  • View All Changes button

Design

  • src/vs/sessions/common/sessionsTelemetry.ts — single source of truth for all event types, classifications, and logging helpers
  • Call sites import and call a one-liner helper (e.g. logSessionsInteraction(telemetryService, 'newSession')) instead of repeating publicLog2<…>(…) with inline type params

Copilot AI review requested due to automatic review settings April 1, 2026 19:48
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a shared telemetry event (vscodeAgents.interaction) for top-level Agents window interactions, aiming to consistently capture which primary UI button/action users invoke across the Sessions (Agents) window surface.

Changes:

  • Introduces shared telemetry event + classification types in src/vs/sessions/common/sessionsTelemetry.ts.
  • Logs vscodeAgents.interaction for Agents window entry points: New Session, Run Primary Task, Add/Generate Task, Open Terminal, Open in VS Code.
  • Wires telemetry into multiple contributions/actions that back the Agents window title-bar buttons.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/vs/sessions/contrib/terminal/browser/sessionsTerminalContribution.ts Logs interaction telemetry when the “Open Terminal” title-bar action is invoked.
src/vs/sessions/contrib/sessions/browser/views/sessionsView.ts Logs interaction telemetry when the “New Session” button is clicked.
src/vs/sessions/contrib/chat/browser/runScriptAction.ts Logs interaction telemetry for “Run Primary Task”, “Add Task…”, and “Generate New Task…”.
src/vs/sessions/contrib/chat/browser/chat.contribution.ts Logs interaction telemetry for the “Open in VS Code” action.
src/vs/sessions/common/sessionsTelemetry.ts Adds shared event/classification type definitions for the new telemetry event.
Comments suppressed due to low confidence (1)

src/vs/sessions/contrib/chat/browser/chat.contribution.ts:82

  • Telemetry is logged before confirming there is an active session and a resolvable folderUri, so interactions can be recorded even when the action immediately returns due to missing state. Consider moving the telemetry call to after the activeSession/folderUri checks.
	override async run(accessor: ServicesAccessor): Promise<void> {
		const telemetryService = accessor.get(ITelemetryService);
		telemetryService.publicLog2<SessionsInteractionEvent, SessionsInteractionClassification>('vscodeAgents.interaction', { button: 'openInVSCode' });

		const openerService = accessor.get(IOpenerService);
		const productService = accessor.get(IProductService);
		const sessionsManagementService = accessor.get(ISessionsManagementService);

		const activeSession = sessionsManagementService.activeSession.get();
		if (!activeSession) {
			return;
		}

		const workspace = activeSession.workspace.get();
		const repo = workspace?.repositories[0];
		const folderUri = activeSession.sessionType === CopilotCLISessionType.id ? repo?.workingDirectory ?? repo?.uri : undefined;

		if (!folderUri) {
			return;

Add GDPR-compliant telemetry events for user interactions in the Agents
window. All event types and logging helpers are centralized in
sessionsTelemetry.ts.

Titlebar buttons (vscodeAgents.interaction): newSession, runPrimaryTask,
addTask, generateNewTask, openTerminal, openInVSCode.

Changes panel: togglePanel, versionModeChange, fileSelect,
reviewCommentAdded.

Fixes microsoft/vscode-internalbacklog#7256
Fixes microsoft/vscode-internalbacklog#7257

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@osortega osortega force-pushed the copilot/parallel-tuna branch from 6ae3e9c to 1b267ab Compare April 1, 2026 21:40
@osortega osortega marked this pull request as ready for review April 1, 2026 21:51
@osortega osortega merged commit d0d3919 into main Apr 1, 2026
19 checks passed
@osortega osortega deleted the copilot/parallel-tuna branch April 1, 2026 22:28
@vs-code-engineering vs-code-engineering bot added this to the 1.115.0 milestone Apr 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants