Skip to content

Commit 9082323

Browse files
authored
fix: handle dangling tool results when history is cleared due to size limits (#1527)
1 parent 0288d85 commit 9082323

File tree

1 file changed

+11
-0
lines changed
  • server/aws-lsp-codewhisperer/src/language-server/agenticChat/tools/chatDb

1 file changed

+11
-0
lines changed

server/aws-lsp-codewhisperer/src/language-server/agenticChat/tools/chatDb/chatDb.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -442,6 +442,17 @@ export class ChatDatabase {
442442
// Make sure max characters ≤ remaining Character Budget
443443
allMessages = this.trimMessagesToMaxLength(allMessages, remainingCharacterBudget)
444444

445+
// Edge case: If the history is empty and the next message contains tool results, then we have to just abandon them.
446+
if (
447+
allMessages.length === 0 &&
448+
newUserMessage.userInputMessage?.userInputMessageContext?.toolResults?.length &&
449+
newUserMessage.userInputMessage?.userInputMessageContext?.toolResults?.length > 0
450+
) {
451+
this.#features.logging.warn('History overflow: abandoning dangling toolResults.')
452+
newUserMessage.userInputMessage.userInputMessageContext.toolResults = []
453+
newUserMessage.userInputMessage.content = 'The conversation history has overflowed, clearing state'
454+
}
455+
445456
const clientType = this.#features.lsp.getClientInitializeParams()?.clientInfo?.name || 'unknown'
446457

447458
tabData.conversations = [

0 commit comments

Comments
 (0)