@@ -9,7 +9,6 @@ import com.intellij.ide.BrowserUtil
99import  com.intellij.ide.util.RunOnceUtil 
1010import  com.intellij.openapi.project.Project 
1111import  com.intellij.ui.jcef.JBCefJSQuery.Response 
12- import  fleet.multiplatform.shims.ConcurrentHashMap 
1312import  kotlinx.coroutines.CompletableDeferred 
1413import  kotlinx.coroutines.channels.awaitClose 
1514import  kotlinx.coroutines.coroutineScope 
@@ -119,7 +118,6 @@ class BrowserConnector(
119118) {
120119    var  uiReady =  CompletableDeferred <Boolean >()
121120    private  val  chatCommunicationManager =  ChatCommunicationManager .getInstance(project)
122-     private  val  inflightRequestByTabId =  ConcurrentHashMap <String , CompletableFuture <String >>() //  tab id -> cancellation token
123121
124122    suspend  fun  connect (
125123        browser :  Browser ,
@@ -254,7 +252,7 @@ class BrowserConnector(
254252
255253                //  We assume there is only one outgoing request per tab because the input is
256254                //  blocked when there is an outgoing request
257-                 inflightRequestByTabId[ tabId]  =   result
255+                 chatCommunicationManager.setInflightRequestForTab( tabId,  result) 
258256                showResult(result, partialResultToken, tabId, encryptionManager, browser)
259257            }
260258            CHAT_QUICK_ACTION  ->  {
@@ -274,7 +272,7 @@ class BrowserConnector(
274272
275273                //  We assume there is only one outgoing request per tab because the input is
276274                //  blocked when there is an outgoing request
277-                 inflightRequestByTabId[ tabId]  =   result
275+                 chatCommunicationManager.setInflightRequestForTab( tabId,  result) 
278276
279277                showResult(result, partialResultToken, tabId, encryptionManager, browser)
280278            }
@@ -431,7 +429,7 @@ class BrowserConnector(
431429            }
432430            STOP_CHAT_RESPONSE  ->  {
433431                val  stopResponseRequest =  serializer.deserializeChatMessages<StopResponseMessage >(node)
434-                 if  (inflightRequestByTabId[ stopResponseRequest.params.tabId]  ==   null ) {
432+                 if  (! chatCommunicationManager.hasInflightRequest( stopResponseRequest.params.tabId) ) {
435433                    return 
436434                }
437435                cancelInflightRequests(stopResponseRequest.params.tabId)
@@ -473,14 +471,14 @@ class BrowserConnector(
473471                isPartialResult =  false 
474472            )
475473            browser.postChat(messageToChat)
476-             inflightRequestByTabId.remove (tabId)
474+             chatCommunicationManager.removeInflightRequestForTab (tabId)
477475        }
478476    }
479477
480478    private  fun  cancelInflightRequests (tabId :  String ) {
481-         inflightRequestByTabId[ tabId] ?.let  { request -> 
479+         chatCommunicationManager.getInflightRequestForTab( tabId) ?.let  { request -> 
482480            request.cancel(true )
483-             inflightRequestByTabId.remove (tabId)
481+             chatCommunicationManager.removeInflightRequestForTab (tabId)
484482        }
485483    }
486484
0 commit comments