Skip to content

Commit e113b06

Browse files
authored
CodeWhisperer: fix various VSC bugs (#4049)
* CodeWhisperer: fix various VSC bugs 1. Fixed an issue where clientCompoentLatency telemetry event would be sent every time when navigating the suggestions, where it should only be sent once when a first suggestion has been shown. 2. Fixed an issue where the requestIdList is not reset, causing a later check to not pass and stop sending the userTriggerDecisions. 3. Fixed an issue where spamming trigger will cause the invocation start time to reset to current time for each trigger action. This will cause the e2e latency to be recorded unexpectedly. * fix requestIdList reset location * fix incorrect test setup again
1 parent edb66a1 commit e113b06

File tree

6 files changed

+3
-6
lines changed

6 files changed

+3
-6
lines changed

src/codewhisperer/commands/invokeRecommendation.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import { RecommendationHandler } from '../service/recommendationHandler'
1212
import { isInlineCompletionEnabled } from '../util/commonUtil'
1313
import { InlineCompletionService } from '../service/inlineCompletionService'
1414
import { AuthUtil } from '../util/authUtil'
15-
import { TelemetryHelper } from '../util/telemetryHelper'
1615
import { ClassifierTrigger } from '../service/classifierTrigger'
1716
import { isIamConnection } from '../../auth/connection'
1817
import { session } from '../util/codeWhispererSession'
@@ -100,7 +99,6 @@ export async function invokeRecommendation(
10099
RecommendationHandler.instance.isGenerateRecommendationInProgress = false
101100
}
102101
} else if (isInlineCompletionEnabled()) {
103-
TelemetryHelper.instance.setInvokeSuggestionStartTime()
104102
ClassifierTrigger.instance.recordClassifierResultForManualTrigger(editor)
105103
await InlineCompletionService.instance.getPaginatedRecommendation(client, editor, 'OnDemand', config)
106104
}

src/codewhisperer/service/inlineCompletionItemProvider.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,6 @@ export class CWInlineCompletionItemProvider implements vscode.InlineCompletionIt
164164
ImportAdderProvider.instance.onShowRecommendation(document, this.startPos.line, r)
165165
this.nextMove = 0
166166
TelemetryHelper.instance.setFirstSuggestionShowTime()
167-
TelemetryHelper.instance.tryRecordClientComponentLatency()
168167
this._onDidShow.fire()
169168
if (matchedCount >= 2 || this.nextToken !== '') {
170169
const result = [item]

src/codewhisperer/service/inlineCompletionService.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ export class InlineCompletionService {
9494

9595
// Call report user decisions once to report recommendations leftover from last invocation.
9696
RecommendationHandler.instance.reportUserDecisions(-1)
97-
97+
TelemetryHelper.instance.setInvokeSuggestionStartTime()
9898
ClassifierTrigger.instance.recordClassifierResultForAutoTrigger(editor, autoTriggerType, event)
9999

100100
const triggerChar = event?.contentChanges[0]?.text

src/codewhisperer/service/keyStrokeHandler.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import { CodewhispererAutomatedTriggerType } from '../../shared/telemetry/teleme
1414
import { getTabSizeSetting } from '../../shared/utilities/editorUtilities'
1515
import { isInlineCompletionEnabled } from '../util/commonUtil'
1616
import { InlineCompletionService } from './inlineCompletionService'
17-
import { TelemetryHelper } from '../util/telemetryHelper'
1817
import { AuthUtil } from '../util/authUtil'
1918
import { ClassifierTrigger } from './classifierTrigger'
2019
import { isIamConnection } from '../../auth/connection'
@@ -210,7 +209,6 @@ export class KeyStrokeHandler {
210209
RecommendationHandler.instance.isGenerateRecommendationInProgress = false
211210
}
212211
} else if (isInlineCompletionEnabled()) {
213-
TelemetryHelper.instance.setInvokeSuggestionStartTime()
214212
await InlineCompletionService.instance.getPaginatedRecommendation(
215213
client,
216214
editor,

src/codewhisperer/service/recommendationHandler.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -439,6 +439,7 @@ export class RecommendationHandler {
439439
* Clear recommendation state
440440
*/
441441
clearRecommendations() {
442+
session.requestIdList = []
442443
session.recommendations = []
443444
session.suggestionStates = new Map<number, string>()
444445
session.completionTypes = new Map<number, CodewhispererCompletionType>()

src/test/codewhisperer/commands/onInlineAcceptance.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ describe('onInlineAcceptance', function () {
6161
const testStartUrl = 'testStartUrl'
6262
sinon.stub(AuthUtil.instance, 'startUrl').value(testStartUrl)
6363
const mockEditor = createMockTextEditor()
64+
session.requestIdList = ['test']
6465
RecommendationHandler.instance.requestId = 'test'
6566
session.sessionId = 'test'
6667
session.startPos = new vscode.Position(1, 0)

0 commit comments

Comments
 (0)