Skip to content

Commit 364f6e8

Browse files
committed
Reverting the PR 5765
1 parent 781f173 commit 364f6e8

File tree

3 files changed

+7
-169
lines changed

3 files changed

+7
-169
lines changed

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

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.JsonRpcNotification
4242
import software.aws.toolkits.jetbrains.services.amazonq.lsp.JsonRpcRequest
4343
import software.aws.toolkits.jetbrains.services.amazonq.lsp.encryption.JwtEncryptionManager
4444
import software.aws.toolkits.jetbrains.services.amazonq.lsp.flareChat.AwsServerCapabilitiesProvider
45-
import software.aws.toolkits.jetbrains.services.amazonq.lsp.flareChat.ChatAsyncResultManager
4645
import software.aws.toolkits.jetbrains.services.amazonq.lsp.flareChat.ChatCommunicationManager
4746
import software.aws.toolkits.jetbrains.services.amazonq.lsp.flareChat.FlareUiMessage
4847
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.AUTH_FOLLOW_UP_CLICKED
@@ -122,7 +121,6 @@ class BrowserConnector(
122121
) {
123122
val uiReady = CompletableDeferred<Boolean>()
124123
private val chatCommunicationManager = ChatCommunicationManager.getInstance(project)
125-
private val chatAsyncResultManager = ChatAsyncResultManager.getInstance(project)
126124

127125
suspend fun connect(
128126
browser: Browser,
@@ -239,7 +237,6 @@ class BrowserConnector(
239237

240238
val tabId = requestFromUi.params.tabId
241239
val partialResultToken = chatCommunicationManager.addPartialChatMessage(tabId)
242-
chatCommunicationManager.registerPartialResultToken(partialResultToken)
243240

244241
var encryptionManager: JwtEncryptionManager? = null
245242
val result = AmazonQLspService.executeAsyncIfRunning(project) { server ->
@@ -260,7 +257,6 @@ class BrowserConnector(
260257
val tabId = requestFromUi.params.tabId
261258
val quickActionParams = node.params ?: error("empty payload")
262259
val partialResultToken = chatCommunicationManager.addPartialChatMessage(tabId)
263-
chatCommunicationManager.registerPartialResultToken(partialResultToken)
264260
var encryptionManager: JwtEncryptionManager? = null
265261
val result = AmazonQLspService.executeAsyncIfRunning(project) { server ->
266262
encryptionManager = this.encryptionManager
@@ -587,30 +583,13 @@ class BrowserConnector(
587583
chatCommunicationManager.removeInflightRequestForTab(tabId)
588584
} catch (e: CancellationException) {
589585
LOG.warn { "Cancelled chat generation" }
590-
try {
591-
chatAsyncResultManager.createRequestId(partialResultToken)
592-
chatAsyncResultManager.getResult(partialResultToken)
593-
handleCancellation(tabId, browser)
594-
} catch (ex: Exception) {
595-
LOG.warn(ex) { "An error occurred while processing cancellation" }
596-
} finally {
597-
chatAsyncResultManager.removeRequestId(partialResultToken)
598-
chatCommunicationManager.removePartialResultLock(partialResultToken)
599-
chatCommunicationManager.removeFinalResultProcessed(partialResultToken)
600-
}
601586
} catch (e: Exception) {
602587
LOG.warn(e) { "Failed to send chat message" }
603588
browser.postChat(chatCommunicationManager.getErrorUiMessage(tabId, e, partialResultToken))
604589
}
605590
}
606591
}
607592

608-
private fun handleCancellation(tabId: String, browser: Browser) {
609-
// Send a message to hide the stop button without showing an error
610-
val cancelMessage = chatCommunicationManager.getCancellationUiMessage(tabId)
611-
browser.postChat(cancelMessage)
612-
}
613-
614593
private fun updateQuickActionsInBrowser(browser: Browser) {
615594
val isFeatureDevAvailable = isFeatureDevAvailable(project)
616595
val isCodeTransformAvailable = isCodeTransformAvailable(project)

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/flareChat/ChatAsyncResultManager.kt

Lines changed: 0 additions & 74 deletions
This file was deleted.

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/flareChat/ChatCommunicationManager.kt

Lines changed: 7 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,6 @@ class ChatCommunicationManager(private val project: Project, private val cs: Cor
4343
private val inflightRequestByTabId = ConcurrentHashMap<String, CompletableFuture<String>>()
4444
private val pendingSerializedChatRequests = ConcurrentHashMap<String, CompletableFuture<GetSerializedChatResult>>()
4545
private val pendingTabRequests = ConcurrentHashMap<String, CompletableFuture<LSPAny>>()
46-
private val partialResultLocks = ConcurrentHashMap<String, Any>()
47-
private val finalResultProcessed = ConcurrentHashMap<String, Boolean>()
4846
private val openTabs = mutableSetOf<String>()
4947

5048
fun setUiReady() {
@@ -118,20 +116,6 @@ class ChatCommunicationManager(private val project: Project, private val cs: Cor
118116
fun removeTabOpenRequest(requestId: String) =
119117
pendingTabRequests.remove(requestId)
120118

121-
fun removePartialResultLock(token: String) {
122-
partialResultLocks.remove(token)
123-
}
124-
125-
fun removeFinalResultProcessed(token: String) {
126-
finalResultProcessed.remove(token)
127-
}
128-
129-
fun registerPartialResultToken(partialResultToken: String) {
130-
val lock = Any()
131-
partialResultLocks[partialResultToken] = lock
132-
finalResultProcessed[partialResultToken] = false
133-
}
134-
135119
fun handlePartialResultProgressNotification(project: Project, params: ProgressParams) {
136120
val token = ProgressNotificationUtils.getToken(params)
137121
val tabId = getPartialChatMessage(token)
@@ -147,49 +131,13 @@ class ChatCommunicationManager(private val project: Project, private val cs: Cor
147131
val encryptedPartialChatResult = getObject(params, String::class.java)
148132
if (encryptedPartialChatResult != null) {
149133
val partialChatResult = AmazonQLspService.getInstance(project).encryptionManager.decrypt(encryptedPartialChatResult)
150-
151-
// Special case: check for stop message before proceeding
152-
val partialResultMap = tryOrNull {
153-
Gson().fromJson(partialChatResult, Map::class.java)
154-
}
155-
156-
if (partialResultMap != null) {
157-
@Suppress("UNCHECKED_CAST")
158-
val additionalMessages = partialResultMap["additionalMessages"] as? List<Map<String, Any>>
159-
if (additionalMessages != null) {
160-
for (message in additionalMessages) {
161-
val messageId = message["messageId"] as? String
162-
if (messageId != null && messageId.startsWith("stopped")) {
163-
// Process stop messages immediately
164-
val uiMessage = convertToJsonToSendToChat(
165-
command = SEND_CHAT_COMMAND_PROMPT,
166-
tabId = tabId,
167-
params = partialChatResult,
168-
isPartialResult = true
169-
)
170-
AsyncChatUiListener.notifyPartialMessageUpdate(project, uiMessage)
171-
finalResultProcessed[token] = true
172-
ChatAsyncResultManager.getInstance(project).setResult(token, partialResultMap)
173-
return
174-
}
175-
}
176-
}
177-
}
178-
179-
// Normal processing for non-stop messages
180-
val lock = partialResultLocks[token] ?: return
181-
synchronized(lock) {
182-
if (finalResultProcessed[token] == true || partialResultLocks[token] == null) {
183-
return@synchronized
184-
}
185-
val uiMessage = convertToJsonToSendToChat(
186-
command = SEND_CHAT_COMMAND_PROMPT,
187-
tabId = tabId,
188-
params = partialChatResult,
189-
isPartialResult = true
190-
)
191-
AsyncChatUiListener.notifyPartialMessageUpdate(project, uiMessage)
192-
}
134+
val uiMessage = convertToJsonToSendToChat(
135+
command = SEND_CHAT_COMMAND_PROMPT,
136+
tabId = tabId,
137+
params = partialChatResult,
138+
isPartialResult = true
139+
)
140+
AsyncChatUiListener.notifyPartialMessageUpdate(project, uiMessage)
193141
}
194142
}
195143

@@ -219,21 +167,6 @@ class ChatCommunicationManager(private val project: Project, private val cs: Cor
219167
return uiMessage
220168
}
221169

222-
fun getCancellationUiMessage(tabId: String): String {
223-
// Create a minimal error params with empty error message to hide the stop button
224-
// without showing an actual error message to the user
225-
val errorParams = Gson().toJson(ErrorParams(tabId, null, "", "")).toString()
226-
227-
return """
228-
{
229-
"command":"$CHAT_ERROR_PARAMS",
230-
"tabId": "$tabId",
231-
"params": $errorParams,
232-
"isPartialResult": false
233-
}
234-
""".trimIndent()
235-
}
236-
237170
fun handleAuthFollowUpClicked(project: Project, params: AuthFollowUpClickedParams) {
238171
val incomingType = params.authFollowupType
239172
val connectionManager = ToolkitConnectionManager.getInstance(project)

0 commit comments

Comments
 (0)