Skip to content

Commit 6232780

Browse files
committed
fix(chat): only show context on first message
1 parent c920e68 commit 6232780

File tree

3 files changed

+39
-7
lines changed

3 files changed

+39
-7
lines changed

packages/core/src/codewhispererChat/controllers/chat/controller.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1177,9 +1177,6 @@ export class ChatController {
11771177

11781178
this.messenger.sendAsyncEventProgress(message.tabID, true, '')
11791179

1180-
// Save the context for the agentic loop
1181-
session.setContext(message.context)
1182-
11831180
await this.generateResponse(
11841181
{
11851182
message: message.message ?? '',
@@ -1480,7 +1477,12 @@ export class ChatController {
14801477
let response: MessengerResponseType | undefined = undefined
14811478
session.createNewTokenSource()
14821479
try {
1483-
this.messenger.sendInitalStream(tabID, triggerID, triggerPayload.documentReferences)
1480+
if (!session.context) {
1481+
// Only show context for the first message in the loop
1482+
this.messenger.sendContextMessage(tabID, triggerID, triggerPayload.documentReferences)
1483+
session.setContext(triggerPayload.context)
1484+
}
1485+
this.messenger.sendInitalStream(tabID, triggerID)
14841486
this.telemetryHelper.setConversationStreamStartTime(tabID)
14851487
if (isSsoConnection(AuthUtil.instance.conn)) {
14861488
const { $metadata, generateAssistantResponseResponse } = await session.chatSso(request)

packages/core/src/codewhispererChat/controllers/chat/messenger/messenger.ts

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,30 @@ export class Messenger {
103103
)
104104
}
105105

106-
public sendInitalStream(
106+
public sendInitalStream(tabID: string, triggerID: string) {
107+
this.dispatcher.sendChatMessage(
108+
new ChatMessage(
109+
{
110+
message: '',
111+
messageType: 'answer-stream',
112+
followUps: undefined,
113+
followUpsHeader: undefined,
114+
relatedSuggestions: undefined,
115+
triggerID,
116+
messageID: '',
117+
userIntent: undefined,
118+
codeBlockLanguage: undefined,
119+
contextList: undefined,
120+
buttons: undefined,
121+
fileList: undefined,
122+
canBeVoted: false,
123+
},
124+
tabID
125+
)
126+
)
127+
}
128+
129+
public sendContextMessage(
107130
tabID: string,
108131
triggerID: string,
109132
mergedRelevantDocuments: DocumentReference[] | undefined
@@ -112,7 +135,7 @@ export class Messenger {
112135
new ChatMessage(
113136
{
114137
message: '',
115-
messageType: 'answer-stream',
138+
messageType: 'answer',
116139
followUps: undefined,
117140
followUpsHeader: undefined,
118141
relatedSuggestions: undefined,
@@ -125,11 +148,13 @@ export class Messenger {
125148
buttons: undefined,
126149
fileList: undefined,
127150
canBeVoted: false,
151+
padding: false,
128152
},
129153
tabID
130154
)
131155
)
132156
}
157+
133158
/**
134159
* Tries to calculate the total number of code blocks.
135160
* NOTES:
@@ -455,6 +480,11 @@ export class Messenger {
455480
toolUse.input !== '' && { toolUses: [{ ...toolUse }] }),
456481
},
457482
})
483+
const agenticLoopEnded = !eventCounts.has('toolUseEvent')
484+
if (agenticLoopEnded) {
485+
// Reset context for the next request
486+
session.setContext(undefined)
487+
}
458488

459489
getLogger().info(
460490
`All events received. requestId=%s counts=%s`,

packages/core/src/codewhispererChat/tools/chatStream.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export class ChatStream extends Writable {
2828
) {
2929
super()
3030
this.logger.debug(`ChatStream created for tabID: ${tabID}, triggerID: ${triggerID}`)
31-
this.messenger.sendInitalStream(tabID, triggerID, undefined)
31+
this.messenger.sendInitalStream(tabID, triggerID)
3232
}
3333

3434
override _write(chunk: Buffer, encoding: BufferEncoding, callback: (error?: Error | null) => void): void {

0 commit comments

Comments
 (0)