Skip to content

Commit 282317c

Browse files
committed
Adding Thumbs UP and Thumbs Down feedback functionality for /review and /test
1 parent 2200b15 commit 282317c

File tree

8 files changed

+44
-2
lines changed

8 files changed

+44
-2
lines changed

packages/amazonq/src/app/amazonqScan/app.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ export function init(appContext: AmazonQAppInitContext) {
3535
processResponseBodyLinkClick: new vscode.EventEmitter<any>(),
3636
fileClicked: new vscode.EventEmitter<any>(),
3737
scanCancelled: new vscode.EventEmitter<any>(),
38+
processChatItemVotedMessage: new vscode.EventEmitter<any>(),
3839
}
3940
const dispatcher = new AppToWebViewMessageDispatcher(appContext.getAppsToWebViewMessagePublisher())
4041
const messenger = new Messenger(dispatcher)

packages/amazonq/src/app/amazonqScan/chat/controller/controller.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,10 @@ export class ScanController {
9898
this.chatControllerMessageListeners.scanCancelled.event((data) => {
9999
return this.handleScanCancelled(data)
100100
})
101+
102+
this.chatControllerMessageListeners.processChatItemVotedMessage.event((data) => {
103+
// TODO: Emit the telemetry event
104+
})
101105
}
102106

103107
private async tabOpened(message: any) {

packages/amazonq/src/app/amazonqScan/chat/views/actions/uiMessageListener.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,9 @@ export class UIMessageListener {
5555
case 'file-click':
5656
this.processFileClick(msg)
5757
break
58+
case 'chat-item-voted':
59+
this.chatItemVoted(msg)
60+
break
5861
}
5962
}
6063

@@ -112,4 +115,13 @@ export class UIMessageListener {
112115
filePath: msg.filePath,
113116
})
114117
}
118+
119+
private chatItemVoted(msg: any) {
120+
this.scanControllerEventsEmitters?.processChatItemVotedMessage.fire({
121+
tabID: msg.tabID,
122+
command: msg.command,
123+
vote: msg.vote,
124+
messageId: msg.messageId,
125+
})
126+
}
115127
}

packages/core/src/amazonqScan/controller.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,5 @@ export interface ScanChatControllerEventEmitters {
3030
readonly processResponseBodyLinkClick: vscode.EventEmitter<any>
3131
readonly fileClicked: vscode.EventEmitter<any>
3232
readonly scanCancelled: vscode.EventEmitter<any>
33+
readonly processChatItemVotedMessage: vscode.EventEmitter<any>
3334
}

packages/core/src/amazonqTest/app.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ export function init(appContext: AmazonQAppInitContext) {
3232
errorThrown: new vscode.EventEmitter<any>(),
3333
insertCodeAtCursorPosition: new vscode.EventEmitter<any>(),
3434
processResponseBodyLinkClick: new vscode.EventEmitter<any>(),
35+
processChatItemVotedMessage: new vscode.EventEmitter<any>(),
3536
}
3637
const dispatcher = new AppToWebViewMessageDispatcher(appContext.getAppsToWebViewMessagePublisher())
3738
const messenger = new Messenger(dispatcher)

packages/core/src/amazonqTest/chat/controller/controller.ts

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ import {
5858
import { UserIntent } from '@amzn/codewhisperer-streaming'
5959
import { getSelectedCustomization } from '../../../codewhisperer/util/customizationUtil'
6060
import { createCodeWhispererChatStreamingClient } from '../../../shared/clients/codewhispererChatClient'
61-
import { ChatTriggerType } from '../../../codewhispererChat/controllers/chat/model'
61+
import { ChatItemVotedMessage, ChatTriggerType } from '../../../codewhispererChat/controllers/chat/model'
6262
import { triggerPayloadToChatRequest } from '../../../codewhispererChat/controllers/chat/chatRequest/converter'
6363
import { EditorContentController } from '../../../amazonq/commons/controllers/contentController'
6464
import { amazonQTabSuffix } from '../../../shared/constants'
@@ -82,6 +82,7 @@ export interface TestChatControllerEventEmitters {
8282
readonly errorThrown: vscode.EventEmitter<any>
8383
readonly insertCodeAtCursorPosition: vscode.EventEmitter<any>
8484
readonly processResponseBodyLinkClick: vscode.EventEmitter<any>
85+
readonly processChatItemVotedMessage: vscode.EventEmitter<any>
8586
}
8687

8788
type OpenDiffMessage = {
@@ -160,6 +161,12 @@ export class TestController {
160161
return this.processLink(data)
161162
})
162163

164+
this.chatControllerMessageListeners.processChatItemVotedMessage.event((data) => {
165+
this.processChatItemVotedMessage(data).catch((e) => {
166+
getLogger().error('processChatItemVotedMessage failed: %s', (e as Error).message)
167+
})
168+
})
169+
163170
this.chatControllerMessageListeners.followUpClicked.event((data) => {
164171
switch (data.followUp.type) {
165172
case FollowUpTypes.ViewDiff:
@@ -209,6 +216,10 @@ export class TestController {
209216
}
210217
}
211218

219+
private async processChatItemVotedMessage(message: ChatItemVotedMessage) {
220+
// TODO: Emit the telemetry event
221+
}
222+
212223
private async tabClosed(data: any) {
213224
getLogger().debug('Tab closed with data tab id: %s', data.tabID)
214225
await this.sessionCleanUp()

packages/core/src/amazonqTest/chat/views/actions/uiMessageListener.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,9 @@ export class UIMessageListener {
6262
case 'response-body-link-click':
6363
this.processResponseBodyLinkClick(msg)
6464
break
65+
case 'chat-item-voted':
66+
this.chatItemVoted(msg)
67+
break
6568
}
6669
}
6770

@@ -140,4 +143,13 @@ export class UIMessageListener {
140143
link: msg.link,
141144
})
142145
}
146+
147+
private chatItemVoted(msg: any) {
148+
this.testControllerEventsEmitters?.processChatItemVotedMessage.fire({
149+
tabID: msg.tabID,
150+
command: msg.command,
151+
vote: msg.vote,
152+
messageId: msg.messageId,
153+
})
154+
}
143155
}

packages/core/src/codewhisperer/commands/startTestGeneration.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ export async function startTestGenerationProcess(
4646
return
4747
}
4848
/**
49-
* Zip the project
49+
* Step 1: Zip the project
5050
*/
5151

5252
const zipUtil = new ZipUtil()

0 commit comments

Comments
 (0)