Skip to content

Commit 1f5e736

Browse files
authored
codewhisperer: dont send unknown as completion type for empty recos (#3949)
* codewhisperer: dont send unknown as completion type for empty recos * use first recommmendation completion type for user trigger decision * remove unused import
1 parent f009236 commit 1f5e736

File tree

6 files changed

+10
-20
lines changed

6 files changed

+10
-20
lines changed

jetbrains-core/src/software/aws/toolkits/jetbrains/services/codewhisperer/service/CodeWhispererService.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -440,7 +440,7 @@ class CodeWhispererService {
440440
false,
441441
false,
442442
"",
443-
CodewhispererCompletionType.Unknown
443+
CodewhispererCompletionType.Line
444444
),
445445
-1,
446446
CodewhispererSuggestionState.Empty,

jetbrains-core/src/software/aws/toolkits/jetbrains/services/codewhisperer/telemetry/CodeWhispererTelemetryService.kt

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -209,12 +209,7 @@ class CodeWhispererTelemetryService {
209209
val classifierThreshold = CodeWhispererAutoTriggerService.getThreshold()
210210

211211
val supplementalContext = requestContext.supplementalContext
212-
val completionType = if (recommendationContext.details.any {
213-
it.completionType == CodewhispererCompletionType.Block
214-
}
215-
) {
216-
CodewhispererCompletionType.Block
217-
} else CodewhispererCompletionType.Line
212+
val completionType = if (recommendationContext.details.isEmpty()) CodewhispererCompletionType.Line else recommendationContext.details[0].completionType
218213

219214
// only send if it's a pro tier user
220215
projectCoroutineScope(project).launch {

jetbrains-core/src/software/aws/toolkits/jetbrains/services/codewhisperer/util/CodeWhispererUtil.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ object CodeWhispererUtil {
146146
val nonBlankLines = content.split("\n").count { it.isNotBlank() }
147147

148148
return when {
149-
content.isEmpty() -> CodewhispererCompletionType.Unknown
149+
content.isEmpty() -> CodewhispererCompletionType.Line
150150
nonBlankLines > 1 -> CodewhispererCompletionType.Block
151151
else -> CodewhispererCompletionType.Line
152152
}

jetbrains-core/tst/software/aws/toolkits/jetbrains/services/codewhisperer/CodeWhispererTelemetryServiceTest.kt

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ import software.aws.toolkits.jetbrains.services.codewhisperer.telemetry.CodeWhis
4646
import software.aws.toolkits.jetbrains.services.telemetry.NoOpPublisher
4747
import software.aws.toolkits.jetbrains.services.telemetry.TelemetryService
4848
import software.aws.toolkits.jetbrains.settings.AwsSettings
49-
import software.aws.toolkits.telemetry.CodewhispererCompletionType
5049
import software.aws.toolkits.telemetry.CodewhispererPreviousSuggestionState
5150
import software.aws.toolkits.telemetry.CodewhispererSuggestionState
5251
import java.time.Duration
@@ -265,7 +264,7 @@ class CodeWhispererTelemetryServiceTest {
265264
1,
266265
"codewhispererSessionId" to responseContext.sessionId,
267266
"codewhispererFirstRequestId" to requestContext.latencyContext.firstRequestId,
268-
"codewhispererCompletionType" to CodewhispererCompletionType.Line,
267+
"codewhispererCompletionType" to recommendationContext.details[0].completionType,
269268
"codewhispererLanguage" to requestContext.fileContextInfo.programmingLanguage.toTelemetryType(),
270269
"codewhispererTriggerType" to requestContext.triggerTypeInfo.triggerType,
271270
"codewhispererAutomatedTriggerType" to requestContext.triggerTypeInfo.automatedTriggerType.telemetryType,
@@ -467,12 +466,7 @@ class CodeWhispererTelemetryServiceTest {
467466
val expectedSuggestionReferenceCount = 1
468467
val expectedGeneratedLineCount = 50
469468
val expectedCharCount = 100
470-
val expectedCompletionType = if (expectedRecommendationContext.details.any {
471-
it.completionType == CodewhispererCompletionType.Block
472-
}
473-
) {
474-
CodewhispererCompletionType.Block
475-
} else CodewhispererCompletionType.Line
469+
val expectedCompletionType = expectedRecommendationContext.details[0].completionType
476470
sut.sendUserTriggerDecisionEvent(
477471
expectedRequestContext,
478472
expectedResponseContext,

jetbrains-core/tst/software/aws/toolkits/jetbrains/services/codewhisperer/CodeWhispererTelemetryTest.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -819,7 +819,8 @@ class CodeWhispererTelemetryTest : CodeWhispererTestBase() {
819819
metricCaptor.allValues,
820820
userDecision,
821821
numOfEmptyRecommendations,
822-
"codewhispererSuggestionState" to CodewhispererSuggestionState.Empty.toString()
822+
"codewhispererSuggestionState" to CodewhispererSuggestionState.Empty.toString(),
823+
"codewhispererCompletionType" to CodewhispererCompletionType.Line.toString()
823824
)
824825
}
825826
}

jetbrains-core/tst/software/aws/toolkits/jetbrains/services/codewhisperer/CodeWhispererTestUtil.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -310,13 +310,13 @@ fun aRecommendationContextAndSessionContext(decisions: List<CodewhispererSuggest
310310
decisions.forEach { decision ->
311311
val toAdd = if (decision == CodewhispererSuggestionState.Empty) {
312312
val completion = aCompletion("", true, 0, 0)
313-
DetailContext(aString(), completion, completion, Random.nextBoolean(), Random.nextBoolean(), aString(), CodewhispererCompletionType.Unknown)
313+
DetailContext(aString(), completion, completion, Random.nextBoolean(), Random.nextBoolean(), aString(), CodewhispererCompletionType.Line)
314314
} else if (decision == CodewhispererSuggestionState.Discard) {
315315
val completion = aCompletion()
316-
DetailContext(aString(), completion, completion, true, Random.nextBoolean(), aString(), CodewhispererCompletionType.Unknown)
316+
DetailContext(aString(), completion, completion, true, Random.nextBoolean(), aString(), CodewhispererCompletionType.Line)
317317
} else {
318318
val completion = aCompletion()
319-
DetailContext(aString(), completion, completion, false, Random.nextBoolean(), aString(), CodewhispererCompletionType.Unknown)
319+
DetailContext(aString(), completion, completion, false, Random.nextBoolean(), aString(), CodewhispererCompletionType.Line)
320320
}
321321

322322
details.add(toAdd)

0 commit comments

Comments
 (0)