Skip to content

Commit 17d1585

Browse files
committed
try opt in implicit @workspace context once for users assigned to treatment group
1 parent a7f2fe4 commit 17d1585

File tree

3 files changed

+14
-2
lines changed

3 files changed

+14
-2
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManager
1919
import software.aws.toolkits.jetbrains.core.credentials.pinning.QConnection
2020
import software.aws.toolkits.jetbrains.core.credentials.sono.isInternalUser
2121
import software.aws.toolkits.jetbrains.core.gettingstarted.emitUserState
22+
import software.aws.toolkits.jetbrains.services.amazonq.CodeWhispererFeatureConfigService
2223
import software.aws.toolkits.jetbrains.services.amazonq.project.ProjectContextController
2324
import software.aws.toolkits.jetbrains.services.amazonq.toolwindow.AmazonQToolWindow
2425
import software.aws.toolkits.jetbrains.services.amazonq.toolwindow.AmazonQToolWindowFactory
@@ -36,7 +37,7 @@ class AmazonQStartupActivity : ProjectActivity {
3637
if (ApplicationManager.getApplication().isUnitTestMode) return
3738

3839
ToolkitConnectionManager.getInstance(project).activeConnectionForFeature(QConnection.getInstance())?.let {
39-
if (it is AwsBearerTokenConnection && isInternalUser(it.startUrl)) {
40+
if (it is AwsBearerTokenConnection && CodeWhispererFeatureConfigService.getInstance().getChatWSContext()) {
4041
CodeWhispererSettings.getInstance().toggleProjectContextEnabled(value = true, passive = true)
4142
}
4243
}

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/CodeWhispererFeatureConfigService.kt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,8 @@ class CodeWhispererFeatureConfigService {
117117

118118
fun getInlineCompletion(): Boolean = getFeatureValueForKey(INLINE_COMPLETION).stringValue() == "TREATMENT"
119119

120+
fun getChatWSContext(): Boolean = getFeatureValueForKey(CHAT_WS_CONTEXT).stringValue() == "TREATMENT"
121+
120122
// Get the feature value for the given key.
121123
// In case of a misconfiguration, it will return a default feature value of Boolean false.
122124
private fun getFeatureValueForKey(name: String): FeatureValue =
@@ -136,6 +138,7 @@ class CodeWhispererFeatureConfigService {
136138
private const val CUSTOMIZATION_ARN_OVERRIDE_NAME = "customizationArnOverride"
137139
private const val HIGHLIGHT_COMMAND_NAME = "highlightCommand"
138140
private const val NEW_AUTO_TRIGGER_UX = "newAutoTriggerUX"
141+
private const val CHAT_WS_CONTEXT = "WorkspaceContext"
139142
private val LOG = getLogger<CodeWhispererFeatureConfigService>()
140143

141144
// Also serve as default values in case server-side config isn't there yet
@@ -160,7 +163,12 @@ class CodeWhispererFeatureConfigService {
160163
INLINE_COMPLETION,
161164
"CONTROL",
162165
FeatureValue.builder().stringValue("CONTROL").build()
163-
)
166+
),
167+
CHAT_WS_CONTEXT to FeatureContext(
168+
CHAT_WS_CONTEXT,
169+
"CONTROL",
170+
FeatureValue.builder().stringValue("CONTROL").build()
171+
),
164172
)
165173
}
166174
}

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/settings/CodeWhispererSettings.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ import com.intellij.openapi.components.State
1010
import com.intellij.openapi.components.Storage
1111
import com.intellij.openapi.components.service
1212
import com.intellij.util.xmlb.annotations.Property
13+
import software.aws.toolkits.jetbrains.services.codewhisperer.actions.CodeWhispererShowSettingsAction
14+
import software.aws.toolkits.jetbrains.utils.notifyInfo
1315

1416
@Service
1517
@State(name = "codewhispererSettings", storages = [Storage("aws.xml")])
@@ -48,6 +50,7 @@ class CodeWhispererSettings : PersistentStateComponent<CodeWhispererConfiguratio
4850
if (!hasEnabledProjectContextOnce()) {
4951
toggleEnabledProjectContextOnce(true)
5052
state.value[CodeWhispererConfigurationType.IsProjectContextEnabled] = value
53+
notifyInfo("Amazon Q", "Workspace index is now enabled. You can disable it from Amazon Q settings.", notificationActions = listOf(CodeWhispererShowSettingsAction()))
5154
}
5255
} else {
5356
state.value[CodeWhispererConfigurationType.IsProjectContextEnabled] = value

0 commit comments

Comments
 (0)