Skip to content

Commit a35a059

Browse files
authored
fix(dev): Include "no change required exception" for EmptyPatch (#4938)
1 parent 5c91df6 commit a35a059

File tree

7 files changed

+49
-36
lines changed

7 files changed

+49
-36
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"type" : "bugfix",
3+
"description" : "Amazon Q (/dev): provide error messaging when no code changes are required for the prompt"
4+
}

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/QLoginWebview.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import com.intellij.ui.jcef.JBCefJSQuery
2020
import org.cef.CefApp
2121
import software.aws.toolkits.core.utils.error
2222
import software.aws.toolkits.core.utils.getLogger
23+
import software.aws.toolkits.core.utils.warn
2324
import software.aws.toolkits.jetbrains.core.credentials.AwsBearerTokenConnection
2425
import software.aws.toolkits.jetbrains.core.credentials.ToolkitAuthManager
2526
import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManager

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonqFeatureDev/controller/FeatureDevController.kt

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.FeatureDevExce
3636
import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.InboundAppMessagesHandler
3737
import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.ModifySourceFolderErrorReason
3838
import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.MonthlyConversationLimitError
39+
import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.NoChangeRequiredException
3940
import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.UploadURLExpired
4041
import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.ZipFileCorruptedException
4142
import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.createUserFacingErrorMessage
@@ -351,7 +352,7 @@ class FeatureDevController(
351352
}
352353
}
353354

354-
private suspend fun newTask(tabId: String) {
355+
private suspend fun newTask(tabId: String, isException: Boolean? = false) {
355356
val session = getSessionInfo(tabId)
356357
val sessionLatency = System.currentTimeMillis() - session.sessionStartTime
357358
AmazonqTelemetry.endChat(
@@ -362,9 +363,15 @@ class FeatureDevController(
362363
chatSessionStorage.deleteSession(tabId)
363364

364365
newTabOpened(tabId)
365-
366-
messenger.sendAnswer(tabId = tabId, messageType = FeatureDevMessageType.Answer, message = message("amazonqFeatureDev.chat_message.ask_for_new_task"))
366+
if (isException != null && !isException) {
367+
messenger.sendAnswer(
368+
tabId = tabId,
369+
messageType = FeatureDevMessageType.Answer,
370+
message = message("amazonqFeatureDev.chat_message.ask_for_new_task")
371+
)
372+
}
367373
messenger.sendUpdatePlaceholder(tabId = tabId, newPlaceholder = message("amazonqFeatureDev.placeholder.new_plan"))
374+
messenger.sendChatInputEnabledMessage(tabId = tabId, enabled = true)
368375
}
369376

370377
private suspend fun closeSession(tabId: String) {
@@ -433,6 +440,16 @@ class FeatureDevController(
433440
),
434441
)
435442
}
443+
is NoChangeRequiredException -> {
444+
val isException = true
445+
messenger.sendAnswer(
446+
tabId = tabId,
447+
message = err.message,
448+
messageType = FeatureDevMessageType.Answer,
449+
canBeVoted = true
450+
)
451+
return this.newTask(message, isException)
452+
}
436453
is ZipFileCorruptedException -> {
437454
messenger.sendError(
438455
tabId = tabId,

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonqFeatureDev/session/CodeGenerationState.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.FEATURE_NAME
1414
import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.FeatureDevException
1515
import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.FeatureDevOperation
1616
import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.GuardrailsException
17+
import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.NoChangeRequiredException
1718
import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.PromptRefusalException
1819
import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.ThrottlingException
1920
import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.messages.sendAnswerPart
@@ -168,7 +169,12 @@ private suspend fun CodeGenerationState.generateCode(codeGenerationId: String, m
168169
codeGenerationResultState.codeGenerationStatusDetail()?.contains(
169170
"EmptyPatch"
170171
),
171-
-> throw EmptyPatchException(operation = FeatureDevOperation.GenerateCode.toString(), desc = "Empty patch")
172+
-> {
173+
if (codeGenerationResultState.codeGenerationStatusDetail().contains("NO_CHANGE_REQUIRED")) {
174+
throw NoChangeRequiredException(operation = FeatureDevOperation.GenerateCode.toString(), desc = "No change required")
175+
}
176+
throw EmptyPatchException(operation = FeatureDevOperation.GenerateCode.toString(), desc = "Empty patch")
177+
}
172178
codeGenerationResultState.codeGenerationStatusDetail()?.contains(
173179
"Throttling"
174180
),

plugins/amazonq/mynah-ui/src/mynah-ui/ui/quickActions/generator.ts

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
import {QuickActionCommand, QuickActionCommandGroup} from '@aws/mynah-ui-chat/dist/static'
6+
import { QuickActionCommand, QuickActionCommandGroup } from '@aws/mynah-ui-chat/dist/static'
77
import { TabType } from '../storages/tabsStorage'
88

99
export interface QuickActionGeneratorProps {
@@ -26,21 +26,20 @@ export class QuickActionGenerator {
2626
commands: [
2727
...(this.isFeatureDevEnabled
2828
? [
29-
{
30-
command: '/dev',
31-
placeholder: 'Describe your task or issue in as much detail as possible',
32-
description:
33-
'Plan and implement new functionality across multiple files in your workspace.',
34-
},
35-
]
29+
{
30+
command: '/dev',
31+
placeholder: 'Describe your task or issue in as much detail as possible',
32+
description: 'Generate code to make a change in your project',
33+
},
34+
]
3635
: []),
3736
...(this.isCodeTransformEnabled
3837
? [
39-
{
40-
command: '/transform',
41-
description: 'Transform your Java 8 or 11 Maven project to Java 17',
42-
},
43-
]
38+
{
39+
command: '/transform',
40+
description: 'Transform your Java 8 or 11 Maven project to Java 17',
41+
},
42+
]
4443
: []),
4544
],
4645
},

plugins/core/sdk-codegen/codegen-resources/codewhispererruntime/service-2.json

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -448,17 +448,7 @@
448448
},
449449
"ChatMessageInteractionType": {
450450
"type": "string",
451-
"enum": [
452-
"INSERT_AT_CURSOR",
453-
"COPY_SNIPPET",
454-
"COPY",
455-
"CLICK_LINK",
456-
"CLICK_BODY_LINK",
457-
"CLICK_FOLLOW_UP",
458-
"HOVER_REFERENCE",
459-
"UPVOTE",
460-
"DOWNVOTE"
461-
]
451+
"enum": ["INSERT_AT_CURSOR", "COPY_SNIPPET", "COPY", "CLICK_LINK", "CLICK_BODY_LINK", "CLICK_FOLLOW_UP", "HOVER_REFERENCE", "UPVOTE", "DOWNVOTE"]
462452
},
463453
"FeatureDevEvent": {
464454
"type": "structure",
@@ -1891,14 +1881,9 @@
18911881
"max":128,
18921882
"min":1
18931883
},
1894-
"UploadIntent":{
1895-
"type":"string",
1896-
"enum":[
1897-
"TRANSFORMATION",
1898-
"TASK_ASSIST_PLANNING",
1899-
"AUTOMATIC_FILE_SECURITY_SCAN",
1900-
"FULL_PROJECT_SECURITY_SCAN"
1901-
]
1884+
"UploadIntent": {
1885+
"type": "string",
1886+
"enum": ["TRANSFORMATION", "TASK_ASSIST_PLANNING", "AUTOMATIC_FILE_SECURITY_SCAN", "FULL_PROJECT_SECURITY_SCAN"]
19021887
},
19031888
"UserContext":{
19041889
"type":"structure",

plugins/toolkit/jetbrains-core/src/software/aws/toolkits/jetbrains/core/explorer/webview/ToolkitLoginWebview.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import software.aws.toolkits.core.credentials.validatedSsoIdentifierFromUrl
3636
import software.aws.toolkits.core.region.AwsRegion
3737
import software.aws.toolkits.core.utils.error
3838
import software.aws.toolkits.core.utils.getLogger
39+
import software.aws.toolkits.core.utils.warn
3940
import software.aws.toolkits.jetbrains.core.credentials.AwsBearerTokenConnection
4041
import software.aws.toolkits.jetbrains.core.credentials.Login
4142
import software.aws.toolkits.jetbrains.core.credentials.ToolkitAuthManager

0 commit comments

Comments
 (0)