diff --git a/packages/core/src/amazonq/webview/ui/apps/cwChatConnector.ts b/packages/core/src/amazonq/webview/ui/apps/cwChatConnector.ts index 71946f06500..6fb36db08b9 100644 --- a/packages/core/src/amazonq/webview/ui/apps/cwChatConnector.ts +++ b/packages/core/src/amazonq/webview/ui/apps/cwChatConnector.ts @@ -125,6 +125,7 @@ export class Connector extends BaseConnector { padding: messageData.padding ?? undefined, fullWidth: messageData.fullWidth ?? undefined, codeBlockActions: messageData.codeBlockActions ?? undefined, + rootFolderTitle: messageData.rootFolderTitle ?? undefined, } if (messageData.relatedSuggestions !== undefined) { @@ -257,14 +258,15 @@ export class Connector extends BaseConnector { } if (messageData.type === 'asyncEventProgressMessage') { - const enableStopAction = true + const enableStopAction = false + const isPromptInputDisabled = true this.onAsyncEventProgress( messageData.tabID, messageData.inProgress, messageData.message ?? undefined, messageData.messageId ?? undefined, enableStopAction, - false + isPromptInputDisabled ) return } diff --git a/packages/core/src/amazonq/webview/ui/connector.ts b/packages/core/src/amazonq/webview/ui/connector.ts index 6bfd8f7c3f5..9ed46f8f58d 100644 --- a/packages/core/src/amazonq/webview/ui/connector.ts +++ b/packages/core/src/amazonq/webview/ui/connector.ts @@ -66,6 +66,7 @@ export interface CWCChatItem extends ChatItem { codeBlockLanguage?: string contextList?: Context[] title?: string + rootFolderTitle?: string } export interface Context { diff --git a/packages/core/src/amazonq/webview/ui/main.ts b/packages/core/src/amazonq/webview/ui/main.ts index 6bdb364e96a..d2d08403312 100644 --- a/packages/core/src/amazonq/webview/ui/main.ts +++ b/packages/core/src/amazonq/webview/ui/main.ts @@ -409,7 +409,7 @@ export const createMynahUI = ( fileList: { fileTreeTitle: '', filePaths: item.contextList.map((file) => file.relativeFilePath), - rootFolderTitle: item.title, + rootFolderTitle: item.rootFolderTitle, flatList: true, collapsed: true, hideFileCount: true, diff --git a/packages/core/src/codewhispererChat/controllers/chat/controller.ts b/packages/core/src/codewhispererChat/controllers/chat/controller.ts index 7a0921724c7..2241286c3c6 100644 --- a/packages/core/src/codewhispererChat/controllers/chat/controller.ts +++ b/packages/core/src/codewhispererChat/controllers/chat/controller.ts @@ -1484,7 +1484,7 @@ export class ChatController { let response: MessengerResponseType | undefined = undefined session.createNewTokenSource() try { - if (!session.context) { + if (!session.context && triggerPayload.context.length) { // Only show context for the first message in the loop this.messenger.sendContextMessage(tabID, triggerID, triggerPayload.documentReferences) session.setContext(triggerPayload.context) diff --git a/packages/core/src/codewhispererChat/controllers/chat/messenger/messenger.ts b/packages/core/src/codewhispererChat/controllers/chat/messenger/messenger.ts index c9894b04596..02569073b35 100644 --- a/packages/core/src/codewhispererChat/controllers/chat/messenger/messenger.ts +++ b/packages/core/src/codewhispererChat/controllers/chat/messenger/messenger.ts @@ -130,7 +130,7 @@ export class Messenger { new ChatMessage( { message: '', - messageType: 'answer', + messageType: 'answer-stream', followUps: undefined, followUpsHeader: undefined, relatedSuggestions: undefined, @@ -139,7 +139,8 @@ export class Messenger { userIntent: undefined, codeBlockLanguage: undefined, contextList: mergedRelevantDocuments, - title: 'Context', + title: '', + rootFolderTitle: 'Context', buttons: undefined, fileList: undefined, canBeVoted: false, @@ -452,11 +453,16 @@ export class Messenger { ) } + const agenticLoopEnded = !eventCounts.has('toolUseEvent') + if (agenticLoopEnded) { + // Reset context for the next request + session.setContext(undefined) + } this.dispatcher.sendChatMessage( new ChatMessage( { message: undefined, - messageType: 'answer', + messageType: agenticLoopEnded ? 'answer' : 'answer-stream', followUps: followUps, followUpsHeader: undefined, relatedSuggestions: undefined, @@ -480,11 +486,6 @@ export class Messenger { toolUse.input !== '' && { toolUses: [{ ...toolUse }] }), }, }) - const agenticLoopEnded = !eventCounts.has('toolUseEvent') - if (agenticLoopEnded) { - // Reset context for the next request - session.setContext(undefined) - } getLogger().info( `All events received. requestId=%s counts=%s`, diff --git a/packages/core/src/codewhispererChat/view/connector/connector.ts b/packages/core/src/codewhispererChat/view/connector/connector.ts index 51b96486fde..6f04d09cd46 100644 --- a/packages/core/src/codewhispererChat/view/connector/connector.ts +++ b/packages/core/src/codewhispererChat/view/connector/connector.ts @@ -352,6 +352,7 @@ export interface ChatMessageProps { readonly fullWidth?: boolean readonly padding?: boolean readonly codeBlockActions?: CodeBlockActions | null + readonly rootFolderTitle?: string } export class ChatMessage extends UiMessage { @@ -375,6 +376,7 @@ export class ChatMessage extends UiMessage { readonly padding?: boolean readonly codeBlockActions?: CodeBlockActions | null readonly canBeVoted?: boolean = false + readonly rootFolderTitle?: string override type = 'chatMessage' constructor(props: ChatMessageProps, tabID: string) { @@ -398,6 +400,7 @@ export class ChatMessage extends UiMessage { this.fullWidth = props.fullWidth this.padding = props.padding this.codeBlockActions = props.codeBlockActions + this.rootFolderTitle = props.rootFolderTitle } }