Skip to content

Commit 783551a

Browse files
Merge branch 'main' into samgst/diskFullFailures
2 parents 5205a8f + 33bdc9b commit 783551a

File tree

18 files changed

+90
-44
lines changed

18 files changed

+90
-44
lines changed

.changes/3.39.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"date" : "2024-11-12",
3+
"version" : "3.39",
4+
"entries" : [ {
5+
"type" : "bugfix",
6+
"description" : "Fix poor inline suggestions from Amazon Q caused by improperly formatted supplemental context"
7+
} ]
8+
}

.changes/next-release/bugfix-4dc2263c-25fa-4d07-a6e1-69389f5ec001.json

Lines changed: 0 additions & 4 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
# _3.39_ (2024-11-12)
2+
- **(Bug Fix)** Fix poor inline suggestions from Amazon Q caused by improperly formatted supplemental context
3+
14
# _3.38_ (2024-11-07)
25
- **(Bug Fix)** Improve the position that inline chat shortcut hint is shown in editor
36
- **(Bug Fix)** Improve `@workspace` index start stop strategy

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# SPDX-License-Identifier: Apache-2.0
33

44
# Toolkit Version
5-
toolkitVersion=3.39-SNAPSHOT
5+
toolkitVersion=3.40-SNAPSHOT
66

77
# Publish Settings
88
publishToken=

plugins/amazonq/chat/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/amazonq/workspace/context/ProjectContextProviderTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -364,7 +364,7 @@ class ProjectContextProviderTest {
364364
.withResponseBody(
365365
Body(validQueryInlineResponse)
366366
)
367-
.withFixedDelay(51) // 10 sec
367+
.withFixedDelay(101) // 100 ms
368368
)
369369
)
370370

plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/model/CodeWhispererModel.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import com.intellij.util.concurrency.annotations.RequiresEdt
1515
import software.amazon.awssdk.services.codewhispererruntime.model.Completion
1616
import software.amazon.awssdk.services.codewhispererruntime.model.GenerateCompletionsResponse
1717
import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnection
18+
import software.aws.toolkits.jetbrains.services.amazonq.SUPPLEMENTAL_CONTEXT_TIMEOUT
1819
import software.aws.toolkits.jetbrains.services.codewhisperer.codescan.sessionconfig.PayloadContext
1920
import software.aws.toolkits.jetbrains.services.codewhisperer.language.CodeWhispererProgrammingLanguage
2021
import software.aws.toolkits.jetbrains.services.codewhisperer.popup.CodeWhispererPopupManagerNew
@@ -73,7 +74,7 @@ data class SupplementalContextInfo(
7374
}
7475

7576
val isProcessTimeout: Boolean
76-
get() = latency > CodeWhispererConstants.SUPPLEMENTAL_CONTEXT_TIMEOUT
77+
get() = latency > SUPPLEMENTAL_CONTEXT_TIMEOUT
7778

7879
companion object {
7980
fun emptyCrossFileContextInfo(targetFileName: String): SupplementalContextInfo = SupplementalContextInfo(

plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/service/CodeWhispererService.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ import software.aws.toolkits.jetbrains.core.coroutines.projectCoroutineScope
5353
import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnection
5454
import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManager
5555
import software.aws.toolkits.jetbrains.core.credentials.pinning.CodeWhispererConnection
56+
import software.aws.toolkits.jetbrains.services.amazonq.SUPPLEMENTAL_CONTEXT_TIMEOUT
5657
import software.aws.toolkits.jetbrains.services.codewhisperer.credentials.CodeWhispererClientAdaptor
5758
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererModelConfigurator
5859
import software.aws.toolkits.jetbrains.services.codewhisperer.editor.CodeWhispererEditorManager
@@ -76,7 +77,6 @@ import software.aws.toolkits.jetbrains.services.codewhisperer.telemetry.CodeWhis
7677
import software.aws.toolkits.jetbrains.services.codewhisperer.util.CaretMovement
7778
import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeInsightsSettingsFacade
7879
import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererConstants
79-
import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererConstants.SUPPLEMENTAL_CONTEXT_TIMEOUT
8080
import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererUtil.getCompletionType
8181
import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererUtil.getTelemetryOptOutPreference
8282
import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererUtil.notifyErrorCodeWhispererUsageLimit

plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/service/CodeWhispererServiceNew.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ import software.aws.toolkits.jetbrains.core.coroutines.projectCoroutineScope
5353
import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnection
5454
import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManager
5555
import software.aws.toolkits.jetbrains.core.credentials.pinning.CodeWhispererConnection
56+
import software.aws.toolkits.jetbrains.services.amazonq.SUPPLEMENTAL_CONTEXT_TIMEOUT
5657
import software.aws.toolkits.jetbrains.services.codewhisperer.credentials.CodeWhispererClientAdaptor
5758
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererModelConfigurator
5859
import software.aws.toolkits.jetbrains.services.codewhisperer.editor.CodeWhispererEditorManagerNew
@@ -78,7 +79,6 @@ import software.aws.toolkits.jetbrains.services.codewhisperer.telemetry.CodeWhis
7879
import software.aws.toolkits.jetbrains.services.codewhisperer.util.CaretMovement
7980
import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeInsightsSettingsFacade
8081
import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererConstants
81-
import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererConstants.SUPPLEMENTAL_CONTEXT_TIMEOUT
8282
import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererUtil.getCompletionType
8383
import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererUtil.getTelemetryOptOutPreference
8484
import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererUtil.notifyErrorCodeWhispererUsageLimit

plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/util/CodeWhispererConstants.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ object CodeWhispererConstants {
3030
const val POPUP_DELAY: Long = 250
3131
const val POPUP_DELAY_CHECK_INTERVAL: Long = 25
3232
const val IDLE_TIME_CHECK_INTERVAL: Long = 25
33-
const val SUPPLEMENTAL_CONTEXT_TIMEOUT = 50L
3433
const val SUPPLEMETAL_CONTEXT_BUFFER = 10L
3534

3635
val AWSTemplateKeyWordsRegex = Regex("(AWSTemplateFormatVersion|Resources|AWS::|Description)")

plugins/amazonq/codewhisperer/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/codewhisperer/CodeWhispererServiceTest.kt

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import org.junit.Test
1919
import org.mockito.kotlin.any
2020
import org.mockito.kotlin.argumentCaptor
2121
import org.mockito.kotlin.doReturn
22+
import org.mockito.kotlin.eq
2223
import org.mockito.kotlin.mock
2324
import org.mockito.kotlin.spy
2425
import org.mockito.kotlin.times
@@ -35,6 +36,7 @@ import software.aws.toolkits.jetbrains.services.codewhisperer.customization.Code
3536
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererModelConfigurator
3637
import software.aws.toolkits.jetbrains.services.codewhisperer.language.CodeWhispererProgrammingLanguage
3738
import software.aws.toolkits.jetbrains.services.codewhisperer.language.languages.CodeWhispererJava
39+
import software.aws.toolkits.jetbrains.services.codewhisperer.model.CaretContext
3840
import software.aws.toolkits.jetbrains.services.codewhisperer.model.CaretPosition
3941
import software.aws.toolkits.jetbrains.services.codewhisperer.model.Chunk
4042
import software.aws.toolkits.jetbrains.services.codewhisperer.model.FileContextInfo
@@ -93,6 +95,33 @@ class CodeWhispererServiceTest {
9395
projectRule.project.replaceService(AwsConnectionManager::class.java, mock(), disposableRule.disposable)
9496
}
9597

98+
@Test
99+
fun `getRequestContext should use correct fileContext and timeout to fetch supplementalContext`() = runTest {
100+
val fileContextProvider = FileContextProvider.getInstance(projectRule.project)
101+
val fileContextProviderSpy = spy(fileContextProvider)
102+
projectRule.project.replaceService(FileContextProvider::class.java, fileContextProviderSpy, disposableRule.disposable)
103+
104+
val requestContext = sut.getRequestContext(
105+
TriggerTypeInfo(CodewhispererTriggerType.AutoTrigger, CodeWhispererAutomatedTriggerType.Enter()),
106+
editor = projectRule.fixture.editor,
107+
project = projectRule.project,
108+
file,
109+
LatencyContext()
110+
)
111+
112+
requestContext.awaitSupplementalContext()
113+
val fileContextCaptor = argumentCaptor<FileContextInfo>()
114+
verify(fileContextProviderSpy, times(1)).extractSupplementalFileContext(eq(file), fileContextCaptor.capture(), eq(100))
115+
assertThat(fileContextCaptor.firstValue).isEqualTo(
116+
FileContextInfo(
117+
CaretContext(leftFileContext = "", rightFileContext = "public class Main {}", leftContextOnCurrentLine = ""),
118+
"main.java",
119+
CodeWhispererJava.INSTANCE,
120+
"main.java"
121+
)
122+
)
123+
}
124+
96125
@Test
97126
fun `getRequestContext should have supplementalContext and customizatioArn if they're present`() {
98127
whenever(customizationConfig.activeCustomization(projectRule.project)).thenReturn(

0 commit comments

Comments
 (0)