@@ -97,10 +97,10 @@ import { amazonQTabSuffix } from '../../../shared/constants'
9797import { OutputKind } from '../../tools/toolShared'
9898import { ToolUtils , Tool , ToolType } from '../../tools/toolUtils'
9999import { ChatStream } from '../../tools/chatStream'
100- import { ChatHistoryStorage } from '../../storages/chatHistoryStorage'
101100import { tempDirPath } from '../../../shared/filesystemUtilities'
102101import { Database } from '../../../shared/db/chatDb/chatDb'
103102import { TabBarController } from './tabBarController'
103+ import { messageToChatMessage } from '../../../shared/db/chatDb/util'
104104
105105export interface ChatControllerMessagePublishers {
106106 readonly processPromptChatMessage : MessagePublisher < PromptMessage >
@@ -175,7 +175,6 @@ export class ChatController {
175175 private readonly userIntentRecognizer : UserIntentRecognizer
176176 private readonly telemetryHelper : CWCTelemetryHelper
177177 private userPromptsWatcher : vscode . FileSystemWatcher | undefined
178- private readonly chatHistoryStorage : ChatHistoryStorage
179178 private chatHistoryDb = Database . getInstance ( )
180179 private cancelTokenSource : vscode . CancellationTokenSource = new vscode . CancellationTokenSource ( )
181180
@@ -195,7 +194,6 @@ export class ChatController {
195194 this . editorContentController = new EditorContentController ( )
196195 this . promptGenerator = new PromptsGenerator ( )
197196 this . userIntentRecognizer = new UserIntentRecognizer ( )
198- this . chatHistoryStorage = new ChatHistoryStorage ( )
199197 this . tabBarController = new TabBarController ( this . messenger )
200198
201199 onDidChangeAmazonQVisibility ( ( visible ) => {
@@ -417,7 +415,7 @@ export class ChatController {
417415 const session = this . sessionStorage . getSession ( message . tabID )
418416 session . tokenSource . cancel ( )
419417 this . messenger . sendEmptyMessage ( message . tabID , '' , undefined )
420- this . chatHistoryStorage . getTabHistory ( message . tabID ) . clearRecentHistory ( )
418+ this . chatHistoryDb . clearRecentHistory ( message . tabID )
421419 this . telemetryHelper . recordInteractionWithAgenticChat ( AgenticChatInteractionType . StopChat , message )
422420 }
423421
@@ -475,7 +473,6 @@ export class ChatController {
475473
476474 private async processTabCloseMessage ( message : TabClosedMessage ) {
477475 this . sessionStorage . deleteSession ( message . tabID )
478- this . chatHistoryStorage . deleteHistory ( message . tabID )
479476 this . triggerEventsStorage . removeTabEvents ( message . tabID )
480477 // this.telemetryHelper.recordCloseChat(message.tabID)
481478 this . chatHistoryDb . updateTabOpenState ( message . tabID , false )
@@ -1049,7 +1046,7 @@ export class ChatController {
10491046 getLogger ( ) . error ( `error: ${ errorMessage } tabID: ${ tabID } requestID: ${ requestID } ` )
10501047
10511048 this . sessionStorage . deleteSession ( tabID )
1052- this . chatHistoryStorage . getTabHistory ( tabID ) . clear ( )
1049+ this . chatHistoryDb . clearTab ( tabID )
10531050 }
10541051
10551052 private async processContextMenuCommand ( command : EditorContextCommand ) {
@@ -1171,7 +1168,6 @@ export class ChatController {
11711168 switch ( message . command ) {
11721169 case 'clear' :
11731170 this . sessionStorage . deleteSession ( message . tabID )
1174- this . chatHistoryStorage . getTabHistory ( message . tabID ) . clear ( )
11751171 this . triggerEventsStorage . removeTabEvents ( message . tabID )
11761172 recordTelemetryChatRunCommand ( 'clear' )
11771173 this . chatHistoryDb . clearTab ( message . tabID )
@@ -1463,10 +1459,6 @@ export class ChatController {
14631459 }
14641460
14651461 const session = this . sessionStorage . getSession ( tabID )
1466- if ( ! session . localHistoryHydrated ) {
1467- triggerPayload . history = this . chatHistoryDb . getMessages ( triggerEvent . tabID , 10 )
1468- session . localHistoryHydrated = true
1469- }
14701462 await this . resolveContextCommandPayload ( triggerPayload , session )
14711463 triggerPayload . useRelevantDocuments = triggerPayload . context . some (
14721464 ( context ) => typeof context !== 'string' && context . command === '@workspace'
@@ -1505,16 +1497,14 @@ export class ChatController {
15051497
15061498 const request = triggerPayloadToChatRequest ( triggerPayload )
15071499
1508- const chatHistory = this . chatHistoryStorage . getTabHistory ( tabID )
15091500 const currentMessage = request . conversationState . currentMessage
15101501 if ( currentMessage ) {
1511- chatHistory . fixHistory ( currentMessage )
1502+ this . chatHistoryDb . fixHistory ( tabID , currentMessage )
15121503 }
1513- request . conversationState . history = chatHistory . getHistory ( )
1514-
1515- const conversationId = chatHistory . getConversationId ( ) || randomUUID ( )
1516- chatHistory . setConversationId ( conversationId )
1517- request . conversationState . conversationId = conversationId
1504+ request . conversationState . history = this . chatHistoryDb
1505+ . getMessages ( tabID )
1506+ . map ( ( chat ) => messageToChatMessage ( chat ) )
1507+ request . conversationState . conversationId = session . sessionIdentifier
15181508
15191509 triggerPayload . documentReferences = this . mergeRelevantTextDocuments ( triggerPayload . relevantTextDocuments )
15201510
@@ -1573,7 +1563,6 @@ export class ChatController {
15731563 this . telemetryHelper . recordStartConversation ( triggerEvent , triggerPayload )
15741564
15751565 if ( currentMessage && session . sessionIdentifier ) {
1576- chatHistory . appendUserMessage ( currentMessage )
15771566 this . chatHistoryDb . addMessage ( tabID , 'cwc' , session . sessionIdentifier , {
15781567 body : triggerPayload . message ,
15791568 type : 'prompt' as any ,
@@ -1588,15 +1577,13 @@ export class ChatController {
15881577 response . $metadata . requestId
15891578 } metadata: ${ inspect ( response . $metadata , { depth : 12 } ) } `
15901579 )
1591-
15921580 this . cancelTokenSource = new vscode . CancellationTokenSource ( )
15931581 await this . messenger . sendAIResponse (
15941582 response ,
15951583 session ,
15961584 tabID ,
15971585 triggerID ,
15981586 triggerPayload ,
1599- chatHistory ,
16001587 this . cancelTokenSource . token
16011588 )
16021589
0 commit comments