Skip to content

Commit ea45aaa

Browse files
Merge branch 'main' into samgst/addTelemetryInfo
2 parents 7dc4911 + f2cb3c9 commit ea45aaa

File tree

3 files changed

+24
-5
lines changed

3 files changed

+24
-5
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class AmazonQToolWindowListener : ToolWindowManagerListener {
1212

1313
override fun toolWindowShown(toolWindow: ToolWindow) {
1414
if (toolWindow.id == AmazonQToolWindowFactory.WINDOW_ID) {
15-
TelemetryHelper.recordOpenChat()
15+
TelemetryHelper.recordOpenChat(toolWindow.project)
1616
}
1717
}
1818

@@ -26,7 +26,7 @@ class AmazonQToolWindowListener : ToolWindowManagerListener {
2626
}
2727

2828
if (changeType == ToolWindowManagerListener.ToolWindowManagerEventType.HideToolWindow) {
29-
TelemetryHelper.recordCloseChat()
29+
TelemetryHelper.recordCloseChat(toolWindow.project)
3030
}
3131
}
3232
}

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/ChatController.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ class ChatController private constructor(
9494

9595
private val messagePublisher: MessagePublisher = context.messagesFromAppToUi
9696
private val telemetryHelper = TelemetryHelper(context.project, chatSessionStorage)
97+
9798
constructor(
9899
context: AmazonQAppInitContext,
99100
) : this(
@@ -144,7 +145,11 @@ class ChatController private constructor(
144145
} else {
145146
sendOpenSettingsMessage(message.tabId)
146147
}
147-
} else if (CodeWhispererSettings.getInstance().isProjectContextEnabled() && isInternalUser) {
148+
} else if (
149+
CodeWhispererSettings.getInstance().isProjectContextEnabled() &&
150+
isInternalUser &&
151+
ProjectContextController.getInstance(context.project).getProjectContextIndexComplete()
152+
) {
148153
// if user does not have @workspace in the prompt, but user is Amazon internal
149154
// add project context by default
150155
val projectContextController = ProjectContextController.getInstance(context.project)

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/telemetry/TelemetryHelper.kt

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ import software.aws.toolkits.core.utils.debug
1414
import software.aws.toolkits.core.utils.getLogger
1515
import software.aws.toolkits.core.utils.info
1616
import software.aws.toolkits.core.utils.warn
17+
import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnection
18+
import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManager
19+
import software.aws.toolkits.jetbrains.core.credentials.pinning.QConnection
1720
import software.aws.toolkits.jetbrains.services.codewhisperer.credentials.CodeWhispererClientAdaptor
1821
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererCustomization
1922
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererModelConfigurator
@@ -29,6 +32,7 @@ import software.aws.toolkits.jetbrains.services.telemetry.TelemetryService
2932
import software.aws.toolkits.jetbrains.settings.CodeWhispererSettings
3033
import software.aws.toolkits.jetbrains.utils.notifyError
3134
import software.aws.toolkits.resources.message
35+
import software.aws.toolkits.telemetry.AuthTelemetry
3236
import software.aws.toolkits.telemetry.CwsprChatCommandType
3337
import software.aws.toolkits.telemetry.CwsprChatConversationType
3438
import software.aws.toolkits.telemetry.CwsprChatInteractionType
@@ -410,12 +414,22 @@ class TelemetryHelper(private val project: Project, private val sessionStorage:
410414
companion object {
411415
private val logger = getLogger<TelemetryHelper>()
412416

413-
fun recordOpenChat() {
417+
private fun getQConnection(project: Project): ToolkitConnection? = ToolkitConnectionManager.getInstance(
418+
project
419+
).activeConnectionForFeature(QConnection.getInstance())
420+
421+
fun recordOpenChat(project: Project) {
414422
Telemetry.amazonq.openChat.use { it.passive(true) }
423+
if (getQConnection(project) == null) {
424+
AuthTelemetry.signInPageOpened()
425+
}
415426
}
416427

417-
fun recordCloseChat() {
428+
fun recordCloseChat(project: Project) {
418429
Telemetry.amazonq.closeChat.use { it.passive(true) }
430+
if (getQConnection(project) == null) {
431+
AuthTelemetry.signInPageClosed()
432+
}
419433
}
420434

421435
fun recordTelemetryChatRunCommand(type: CwsprChatCommandType, name: String? = null, startUrl: String? = null) {

0 commit comments

Comments
 (0)