@@ -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 )
@@ -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 . clearTab ( 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 )
@@ -1436,10 +1432,6 @@ export class ChatController {
14361432 }
14371433
14381434 const session = this . sessionStorage . getSession ( tabID )
1439- if ( ! session . localHistoryHydrated ) {
1440- triggerPayload . history = this . chatHistoryDb . getMessages ( triggerEvent . tabID , 10 )
1441- session . localHistoryHydrated = true
1442- }
14431435 await this . resolveContextCommandPayload ( triggerPayload , session )
14441436 triggerPayload . useRelevantDocuments = triggerPayload . context . some (
14451437 ( context ) => typeof context !== 'string' && context . command === '@workspace'
@@ -1478,16 +1470,14 @@ export class ChatController {
14781470
14791471 const request = triggerPayloadToChatRequest ( triggerPayload )
14801472
1481- const chatHistory = this . chatHistoryStorage . getTabHistory ( tabID )
14821473 const currentMessage = request . conversationState . currentMessage
14831474 if ( currentMessage ) {
1484- chatHistory . fixHistory ( currentMessage )
1475+ this . chatHistoryDb . fixHistory ( tabID , currentMessage )
14851476 }
1486- request . conversationState . history = chatHistory . getHistory ( )
1487-
1488- const conversationId = chatHistory . getConversationId ( ) || randomUUID ( )
1489- chatHistory . setConversationId ( conversationId )
1490- request . conversationState . conversationId = conversationId
1477+ request . conversationState . history = this . chatHistoryDb
1478+ . getMessages ( tabID )
1479+ . map ( ( chat ) => messageToChatMessage ( chat ) )
1480+ request . conversationState . conversationId = session . sessionIdentifier
14911481
14921482 triggerPayload . documentReferences = this . mergeRelevantTextDocuments ( triggerPayload . relevantTextDocuments )
14931483
@@ -1546,7 +1536,6 @@ export class ChatController {
15461536 this . telemetryHelper . recordStartConversation ( triggerEvent , triggerPayload )
15471537
15481538 if ( currentMessage && session . sessionIdentifier ) {
1549- chatHistory . appendUserMessage ( currentMessage )
15501539 this . chatHistoryDb . addMessage ( tabID , 'cwc' , session . sessionIdentifier , {
15511540 body : triggerPayload . message ,
15521541 type : 'prompt' as any ,
@@ -1561,15 +1550,13 @@ export class ChatController {
15611550 response . $metadata . requestId
15621551 } metadata: ${ inspect ( response . $metadata , { depth : 12 } ) } `
15631552 )
1564-
15651553 this . cancelTokenSource = new vscode . CancellationTokenSource ( )
15661554 await this . messenger . sendAIResponse (
15671555 response ,
15681556 session ,
15691557 tabID ,
15701558 triggerID ,
15711559 triggerPayload ,
1572- chatHistory ,
15731560 this . cancelTokenSource . token
15741561 )
15751562
0 commit comments