From 3159badd1ae7785294e3862355a6cc791987771d Mon Sep 17 00:00:00 2001 From: Andrew Yu Date: Tue, 5 Aug 2025 15:25:12 -0700 Subject: [PATCH] send firstCompletionDisplayLatency in multiple reject cases --- .../src/app/inline/EditRendering/displayImage.ts | 2 ++ packages/amazonq/src/app/inline/completion.ts | 11 +++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/amazonq/src/app/inline/EditRendering/displayImage.ts b/packages/amazonq/src/app/inline/EditRendering/displayImage.ts index 810877a2025..73aecaa9b7c 100644 --- a/packages/amazonq/src/app/inline/EditRendering/displayImage.ts +++ b/packages/amazonq/src/app/inline/EditRendering/displayImage.ts @@ -352,6 +352,8 @@ export async function displaySvgDecoration( discarded: false, }, }, + totalSessionDisplayTime: Date.now() - session.requestStartTime, + firstCompletionDisplayLatency: session.firstCompletionDisplayLatency, isInlineEdit: true, } languageClient.sendNotification('aws/logInlineCompletionSessionResults', params) diff --git a/packages/amazonq/src/app/inline/completion.ts b/packages/amazonq/src/app/inline/completion.ts index 4ebe37b62cb..9e51cb09e93 100644 --- a/packages/amazonq/src/app/inline/completion.ts +++ b/packages/amazonq/src/app/inline/completion.ts @@ -170,10 +170,11 @@ export class InlineCompletionManager implements Disposable { const onInlineRejection = async () => { try { vsCodeState.isCodeWhispererEditing = true - if (this.sessionManager.getActiveSession() === undefined) { + const session = this.sessionManager.getActiveSession() + if (session === undefined) { return } - const requestStartTime = this.sessionManager.getActiveSession()!.requestStartTime + const requestStartTime = session.requestStartTime const totalSessionDisplayTime = performance.now() - requestStartTime await commands.executeCommand('editor.action.inlineSuggest.hide') // TODO: also log the seen state for other suggestions in session @@ -182,9 +183,9 @@ export class InlineCompletionManager implements Disposable { CodeWhispererConstants.platformLanguageIds, this.inlineCompletionProvider ) - const sessionId = this.sessionManager.getActiveSession()?.sessionId + const sessionId = session.sessionId const itemId = this.sessionManager.getActiveRecommendation()[0]?.itemId - if (!sessionId || !itemId) { + if (!itemId) { return } const params: LogInlineCompletionSessionResultsParams = { @@ -196,6 +197,7 @@ export class InlineCompletionManager implements Disposable { discarded: false, }, }, + firstCompletionDisplayLatency: session.firstCompletionDisplayLatency, totalSessionDisplayTime: totalSessionDisplayTime, } this.languageClient.sendNotification(this.logSessionResultMessageName, params) @@ -343,6 +345,7 @@ export class AmazonQInlineCompletionItemProvider implements InlineCompletionItem discarded: !prevSession.displayed, }, }, + firstCompletionDisplayLatency: prevSession.firstCompletionDisplayLatency, totalSessionDisplayTime: performance.now() - prevSession.requestStartTime, } this.languageClient.sendNotification(this.logSessionResultMessageName, params)