@@ -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 private cancelTokenSource : vscode . CancellationTokenSource = new vscode . CancellationTokenSource ( )
180179
@@ -194,7 +193,6 @@ export class ChatController {
194193 this . editorContentController = new EditorContentController ( )
195194 this . promptGenerator = new PromptsGenerator ( )
196195 this . userIntentRecognizer = new UserIntentRecognizer ( )
197- this . chatHistoryStorage = new ChatHistoryStorage ( )
198196 this . tabBarController = new TabBarController ( this . messenger )
199197
200198 onDidChangeAmazonQVisibility ( ( visible ) => {
@@ -416,7 +414,7 @@ export class ChatController {
416414 const session = this . sessionStorage . getSession ( message . tabID )
417415 session . tokenSource . cancel ( )
418416 this . messenger . sendEmptyMessage ( message . tabID , '' , undefined )
419- this . chatHistoryStorage . getTabHistory ( message . tabID ) . clearRecentHistory ( )
417+ this . chatHistoryDb . clearRecentHistory ( message . tabID )
420418 }
421419
422420 private async processTriggerTabIDReceived ( message : TriggerTabIDReceived ) {
@@ -473,7 +471,6 @@ export class ChatController {
473471
474472 private async processTabCloseMessage ( message : TabClosedMessage ) {
475473 this . sessionStorage . deleteSession ( message . tabID )
476- this . chatHistoryStorage . deleteHistory ( message . tabID )
477474 this . triggerEventsStorage . removeTabEvents ( message . tabID )
478475 // this.telemetryHelper.recordCloseChat(message.tabID)
479476 this . chatHistoryDb . updateTabOpenState ( message . tabID , false )
@@ -1023,7 +1020,7 @@ export class ChatController {
10231020 getLogger ( ) . error ( `error: ${ errorMessage } tabID: ${ tabID } requestID: ${ requestID } ` )
10241021
10251022 this . sessionStorage . deleteSession ( tabID )
1026- this . chatHistoryStorage . getTabHistory ( tabID ) . clear ( )
1023+ this . chatHistoryDb . clearRecentHistory ( tabID )
10271024 }
10281025
10291026 private async processContextMenuCommand ( command : EditorContextCommand ) {
@@ -1145,7 +1142,6 @@ export class ChatController {
11451142 switch ( message . command ) {
11461143 case 'clear' :
11471144 this . sessionStorage . deleteSession ( message . tabID )
1148- this . chatHistoryStorage . getTabHistory ( message . tabID ) . clear ( )
11491145 this . triggerEventsStorage . removeTabEvents ( message . tabID )
11501146 recordTelemetryChatRunCommand ( 'clear' )
11511147 this . chatHistoryDb . clearTab ( message . tabID )
@@ -1437,10 +1433,6 @@ export class ChatController {
14371433 }
14381434
14391435 const session = this . sessionStorage . getSession ( tabID )
1440- if ( ! session . localHistoryHydrated ) {
1441- triggerPayload . history = this . chatHistoryDb . getMessages ( triggerEvent . tabID , 10 )
1442- session . localHistoryHydrated = true
1443- }
14441436 await this . resolveContextCommandPayload ( triggerPayload , session )
14451437 triggerPayload . useRelevantDocuments = triggerPayload . context . some (
14461438 ( context ) => typeof context !== 'string' && context . command === '@workspace'
@@ -1479,16 +1471,14 @@ export class ChatController {
14791471
14801472 const request = triggerPayloadToChatRequest ( triggerPayload )
14811473
1482- const chatHistory = this . chatHistoryStorage . getTabHistory ( tabID )
14831474 const currentMessage = request . conversationState . currentMessage
14841475 if ( currentMessage ) {
1485- chatHistory . fixHistory ( currentMessage )
1476+ this . chatHistoryDb . fixHistory ( tabID , currentMessage )
14861477 }
1487- request . conversationState . history = chatHistory . getHistory ( )
1488-
1489- const conversationId = chatHistory . getConversationId ( ) || randomUUID ( )
1490- chatHistory . setConversationId ( conversationId )
1491- request . conversationState . conversationId = conversationId
1478+ request . conversationState . history = this . chatHistoryDb
1479+ . getMessages ( tabID )
1480+ . map ( ( chat ) => messageToChatMessage ( chat ) )
1481+ request . conversationState . conversationId = session . sessionIdentifier
14921482
14931483 triggerPayload . documentReferences = this . mergeRelevantTextDocuments ( triggerPayload . relevantTextDocuments )
14941484
@@ -1547,7 +1537,6 @@ export class ChatController {
15471537 this . telemetryHelper . recordStartConversation ( triggerEvent , triggerPayload )
15481538
15491539 if ( currentMessage && session . sessionIdentifier ) {
1550- chatHistory . appendUserMessage ( currentMessage )
15511540 this . chatHistoryDb . addMessage ( tabID , 'cwc' , session . sessionIdentifier , {
15521541 body : triggerPayload . message ,
15531542 type : 'prompt' as any ,
@@ -1562,15 +1551,13 @@ export class ChatController {
15621551 response . $metadata . requestId
15631552 } metadata: ${ inspect ( response . $metadata , { depth : 12 } ) } `
15641553 )
1565-
15661554 this . cancelTokenSource = new vscode . CancellationTokenSource ( )
15671555 await this . messenger . sendAIResponse (
15681556 response ,
15691557 session ,
15701558 tabID ,
15711559 triggerID ,
15721560 triggerPayload ,
1573- chatHistory ,
15741561 this . cancelTokenSource . token
15751562 )
15761563
0 commit comments