@@ -96,10 +96,10 @@ import { amazonQTabSuffix } from '../../../shared/constants'
9696import { OutputKind } from '../../tools/toolShared'
9797import { ToolUtils , Tool , ToolType } from '../../tools/toolUtils'
9898import { ChatStream } from '../../tools/chatStream'
99- import { ChatHistoryStorage } from '../../storages/chatHistoryStorage'
10099import { tempDirPath } from '../../../shared/filesystemUtilities'
101100import { Database } from '../../../shared/db/chatDb/chatDb'
102101import { TabBarController } from './tabBarController'
102+ import { messageToChatMessage } from '../../../shared/db/chatDb/util'
103103
104104export interface ChatControllerMessagePublishers {
105105 readonly processPromptChatMessage : MessagePublisher < PromptMessage >
@@ -174,7 +174,6 @@ export class ChatController {
174174 private readonly userIntentRecognizer : UserIntentRecognizer
175175 private readonly telemetryHelper : CWCTelemetryHelper
176176 private userPromptsWatcher : vscode . FileSystemWatcher | undefined
177- private readonly chatHistoryStorage : ChatHistoryStorage
178177 private chatHistoryDb = Database . getInstance ( )
179178
180179 public constructor (
@@ -193,7 +192,6 @@ export class ChatController {
193192 this . editorContentController = new EditorContentController ( )
194193 this . promptGenerator = new PromptsGenerator ( )
195194 this . userIntentRecognizer = new UserIntentRecognizer ( )
196- this . chatHistoryStorage = new ChatHistoryStorage ( )
197195 this . tabBarController = new TabBarController ( this . messenger )
198196
199197 onDidChangeAmazonQVisibility ( ( visible ) => {
@@ -408,7 +406,7 @@ export class ChatController {
408406 const session = this . sessionStorage . getSession ( message . tabID )
409407 session . tokenSource . cancel ( )
410408 this . messenger . sendEmptyMessage ( message . tabID , '' , undefined )
411- this . chatHistoryStorage . getTabHistory ( message . tabID ) . clearRecentHistory ( )
409+ this . chatHistoryDb . clearRecentHistory ( message . tabID )
412410 }
413411
414412 private async processTriggerTabIDReceived ( message : TriggerTabIDReceived ) {
@@ -465,7 +463,6 @@ export class ChatController {
465463
466464 private async processTabCloseMessage ( message : TabClosedMessage ) {
467465 this . sessionStorage . deleteSession ( message . tabID )
468- this . chatHistoryStorage . deleteHistory ( message . tabID )
469466 this . triggerEventsStorage . removeTabEvents ( message . tabID )
470467 // this.telemetryHelper.recordCloseChat(message.tabID)
471468 this . chatHistoryDb . updateTabOpenState ( message . tabID , false )
@@ -1000,7 +997,7 @@ export class ChatController {
1000997 getLogger ( ) . error ( `error: ${ errorMessage } tabID: ${ tabID } requestID: ${ requestID } ` )
1001998
1002999 this . sessionStorage . deleteSession ( tabID )
1003- this . chatHistoryStorage . getTabHistory ( tabID ) . clearRecentHistory ( )
1000+ this . chatHistoryDb . clearRecentHistory ( tabID )
10041001 }
10051002
10061003 private async processContextMenuCommand ( command : EditorContextCommand ) {
@@ -1121,7 +1118,6 @@ export class ChatController {
11211118 switch ( message . command ) {
11221119 case 'clear' :
11231120 this . sessionStorage . deleteSession ( message . tabID )
1124- this . chatHistoryStorage . getTabHistory ( message . tabID ) . clear ( )
11251121 this . triggerEventsStorage . removeTabEvents ( message . tabID )
11261122 recordTelemetryChatRunCommand ( 'clear' )
11271123 this . chatHistoryDb . clearTab ( message . tabID )
@@ -1193,8 +1189,6 @@ export class ChatController {
11931189 context,
11941190 } )
11951191
1196- this . messenger . sendAsyncEventProgress ( message . tabID , true , '' )
1197-
11981192 await this . generateResponse (
11991193 {
12001194 message : message . message ?? '' ,
@@ -1410,10 +1404,6 @@ export class ChatController {
14101404 }
14111405
14121406 const session = this . sessionStorage . getSession ( tabID )
1413- if ( ! session . localHistoryHydrated ) {
1414- triggerPayload . history = this . chatHistoryDb . getMessages ( triggerEvent . tabID , 10 )
1415- session . localHistoryHydrated = true
1416- }
14171407 await this . resolveContextCommandPayload ( triggerPayload , session )
14181408 triggerPayload . useRelevantDocuments = triggerPayload . context . some (
14191409 ( context ) => typeof context !== 'string' && context . command === '@workspace'
@@ -1452,16 +1442,14 @@ export class ChatController {
14521442
14531443 const request = triggerPayloadToChatRequest ( triggerPayload )
14541444
1455- const chatHistory = this . chatHistoryStorage . getTabHistory ( tabID )
14561445 const currentMessage = request . conversationState . currentMessage
14571446 if ( currentMessage ) {
1458- chatHistory . fixHistory ( currentMessage )
1447+ this . chatHistoryDb . fixHistory ( tabID , currentMessage )
14591448 }
1460- request . conversationState . history = chatHistory . getHistory ( )
1461-
1462- const conversationId = chatHistory . getConversationId ( ) || randomUUID ( )
1463- chatHistory . setConversationId ( conversationId )
1464- request . conversationState . conversationId = conversationId
1449+ request . conversationState . history = this . chatHistoryDb
1450+ . getMessages ( tabID , 100 )
1451+ . map ( ( chat ) => messageToChatMessage ( chat ) )
1452+ request . conversationState . conversationId = session . sessionIdentifier
14651453
14661454 triggerPayload . documentReferences = this . mergeRelevantTextDocuments ( triggerPayload . relevantTextDocuments )
14671455
@@ -1501,6 +1489,7 @@ export class ChatController {
15011489 session . setContext ( triggerPayload . context )
15021490 }
15031491 this . messenger . sendInitalStream ( tabID , triggerID )
1492+ this . messenger . sendAsyncEventProgress ( tabID , true , '' )
15041493 this . telemetryHelper . setConversationStreamStartTime ( tabID )
15051494 if ( isSsoConnection ( AuthUtil . instance . conn ) ) {
15061495 const { $metadata, generateAssistantResponseResponse } = await session . chatSso ( request )
@@ -1519,7 +1508,6 @@ export class ChatController {
15191508 this . telemetryHelper . recordStartConversation ( triggerEvent , triggerPayload )
15201509
15211510 if ( currentMessage && session . sessionIdentifier ) {
1522- chatHistory . appendUserMessage ( currentMessage )
15231511 this . chatHistoryDb . addMessage ( tabID , 'cwc' , session . sessionIdentifier , {
15241512 body : triggerPayload . message ,
15251513 type : 'prompt' as any ,
@@ -1534,7 +1522,7 @@ export class ChatController {
15341522 response . $metadata . requestId
15351523 } metadata: ${ inspect ( response . $metadata , { depth : 12 } ) } `
15361524 )
1537- await this . messenger . sendAIResponse ( response , session , tabID , triggerID , triggerPayload , chatHistory )
1525+ await this . messenger . sendAIResponse ( response , session , tabID , triggerID , triggerPayload )
15381526
15391527 // Turn off AgentLoop flag after sending the AI response
15401528 this . sessionStorage . setAgentLoopInProgress ( tabID , false )
0 commit comments