Skip to content

Commit 167de13

Browse files
committed
Merge branch 'master' into jscpd/addHintMessage
2 parents b24070e + 151b85b commit 167de13

File tree

26 files changed

+256
-67
lines changed

26 files changed

+256
-67
lines changed

package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
"mergeReports": "ts-node ./scripts/mergeReports.ts"
4141
},
4242
"devDependencies": {
43-
"@aws-toolkits/telemetry": "^1.0.295",
43+
"@aws-toolkits/telemetry": "^1.0.296",
4444
"@playwright/browser-chromium": "^1.43.1",
4545
"@stylistic/eslint-plugin": "^2.11.0",
4646
"@types/he": "^1.2.3",
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"type": "Bug Fix",
3+
"description": "Amazon Q /test: Truncating user input to 4096 characters for unit test generation."
4+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"type": "Bug Fix",
3+
"description": "/review: Code review starts automatically when invoked from menu"
4+
}

packages/amazonq/.vscode/tasks.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@
4444
"problemMatcher": "$ts-webpack-watch",
4545
"options": {
4646
"cwd": "${workspaceFolder}/../../packages/core"
47-
}
47+
},
48+
"presentation": { "panel": "dedicated" }
4849
},
4950
{
5051
"label": "terminate",

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ export function init(appContext: AmazonQAppInitContext) {
2525
authClicked: new vscode.EventEmitter<any>(),
2626
tabOpened: new vscode.EventEmitter<any>(),
2727
tabClosed: new vscode.EventEmitter<any>(),
28-
runScan: new vscode.EventEmitter<any>(),
2928
formActionClicked: new vscode.EventEmitter<any>(),
3029
errorThrown: new vscode.EventEmitter<any>(),
3130
showSecurityScan: new vscode.EventEmitter<any>(),
@@ -35,6 +34,7 @@ export function init(appContext: AmazonQAppInitContext) {
3534
processResponseBodyLinkClick: new vscode.EventEmitter<any>(),
3635
fileClicked: new vscode.EventEmitter<any>(),
3736
scanCancelled: new vscode.EventEmitter<any>(),
37+
processChatItemVotedMessage: new vscode.EventEmitter<any>(),
3838
}
3939
const dispatcher = new AppToWebViewMessageDispatcher(appContext.getAppsToWebViewMessagePublisher())
4040
const messenger = new Messenger(dispatcher)

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

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import {
3232
scanSummaryMessage,
3333
} from '../../models/constants'
3434
import path from 'path'
35+
import { telemetry } from 'aws-core-vscode/telemetry'
3536

3637
export class ScanController {
3738
private readonly messenger: Messenger
@@ -48,7 +49,7 @@ export class ScanController {
4849
this.authController = new AuthController()
4950

5051
this.chatControllerMessageListeners.tabOpened.event((data) => {
51-
return this.tabOpened(data)
52+
return this.tabOpened(data).then(() => this.scanInitiated(data))
5253
})
5354

5455
this.chatControllerMessageListeners.tabClosed.event((data) => {
@@ -59,10 +60,6 @@ export class ScanController {
5960
this.authClicked(data)
6061
})
6162

62-
this.chatControllerMessageListeners.runScan.event((data) => {
63-
return this.scanInitiated(data)
64-
})
65-
6663
this.chatControllerMessageListeners.formActionClicked.event((data) => {
6764
return this.formActionClicked(data)
6865
})
@@ -98,6 +95,15 @@ export class ScanController {
9895
this.chatControllerMessageListeners.scanCancelled.event((data) => {
9996
return this.handleScanCancelled(data)
10097
})
98+
99+
this.chatControllerMessageListeners.processChatItemVotedMessage.event((data) => {
100+
telemetry.amazonq_feedback.emit({
101+
featureId: 'amazonQReview',
102+
amazonqConversationId: this.sessionStorage.getSession().scanUuid,
103+
credentialStartUrl: AuthUtil.instance.startUrl,
104+
interactionType: data.vote,
105+
})
106+
})
101107
}
102108

103109
private async tabOpened(message: any) {

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

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,6 @@ export class UIMessageListener {
4040
case 'auth-follow-up-was-clicked':
4141
this.authClicked(msg)
4242
break
43-
case 'review':
44-
this.scan(msg)
45-
break
4643
case 'form-action-click':
4744
this.formActionClicked(msg)
4845
break
@@ -55,15 +52,12 @@ export class UIMessageListener {
5552
case 'file-click':
5653
this.processFileClick(msg)
5754
break
55+
case 'chat-item-voted':
56+
this.chatItemVoted(msg)
57+
break
5858
}
5959
}
6060

61-
private scan(msg: UIMessage) {
62-
this.scanControllerEventsEmitters?.runScan.fire({
63-
tabID: msg.tabID,
64-
})
65-
}
66-
6761
private formActionClicked(msg: UIMessage) {
6862
this.scanControllerEventsEmitters?.formActionClicked.fire({
6963
...msg,
@@ -112,4 +106,12 @@ export class UIMessageListener {
112106
filePath: msg.filePath,
113107
})
114108
}
109+
110+
private chatItemVoted(msg: any) {
111+
this.scanControllerEventsEmitters?.processChatItemVotedMessage.fire({
112+
tabID: msg.tabID,
113+
command: msg.command,
114+
vote: msg.vote,
115+
})
116+
}
115117
}

packages/core/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -424,7 +424,7 @@
424424
"compileOnly": "tsc -p ./",
425425
"compileDev": "npm run compile -- --mode development",
426426
"webpackDev": "webpack --mode development",
427-
"serveVue": "webpack serve --config-name vue --mode development",
427+
"serveVue": "ts-node ./scripts/build/checkServerPort.ts && webpack serve --port 8080 --config-name vue --mode development",
428428
"watch": "npm run clean && npm run buildScripts && npm run compileOnly -- --watch",
429429
"lint": "ts-node ./scripts/lint/testLint.ts",
430430
"generateClients": "ts-node ./scripts/build/generateServiceClient.ts ",
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
/*!
2+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
/**
7+
* Validate that the required port used by webviews during development is not being used.
8+
*/
9+
10+
import * as net from 'net'
11+
12+
/** This must be kept up to date with the port that is being used to serve the vue files. */
13+
const portNumber = 8080
14+
15+
function checkPort(port: number): Promise<boolean> {
16+
return new Promise((resolve) => {
17+
const server = net.createServer()
18+
19+
server.once('error', (err) => {
20+
if ((err as NodeJS.ErrnoException).code === 'EADDRINUSE') {
21+
resolve(true)
22+
}
23+
})
24+
25+
server.once('listening', () => {
26+
server.close()
27+
resolve(false)
28+
})
29+
30+
server.listen(port)
31+
})
32+
}
33+
34+
async function main() {
35+
try {
36+
const isPortInUse = await checkPort(portNumber)
37+
38+
if (isPortInUse) {
39+
console.error(`
40+
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
41+
42+
ERROR: Webviews will not load as expected, meaning Q may not work.
43+
REASON: Port ${portNumber} is already in use, preventing the latest webview files from being served.
44+
SOLUTION: Kill the current process using port ${portNumber}.
45+
- Unix: "kill -9 $(lsof -t -i :${portNumber})"
46+
47+
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
48+
`)
49+
process.exit(1)
50+
}
51+
} catch (error) {
52+
console.error('Error checking port:', error)
53+
process.exit(1)
54+
}
55+
}
56+
57+
void main()

0 commit comments

Comments
 (0)