Skip to content

Commit 9cbc03b

Browse files
committed
patch
1 parent 85d3df2 commit 9cbc03b

File tree

4 files changed

+14
-0
lines changed

4 files changed

+14
-0
lines changed

packages/amazonq/test/unit/codewhisperer/service/inlineCompletionService.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ describe('inlineCompletionService', function () {
4949
const session = CodeWhispererSessionState.instance.getSession()
5050
const mockEditor = createMockTextEditor()
5151
sinon.stub(RecommendationHandler.instance, 'getRecommendations').resolves({
52+
sessionId: 'foo',
5253
result: 'Succeeded',
5354
errorMessage: undefined,
5455
recommendationCount: 1,

packages/core/src/codewhisperer/commands/onInlineAcceptance.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,9 @@ async function promoteNextSessionIfAvailable(acceptanceEntry: OnRecommendationAc
154154
CodeWhispererSessionState.instance.setSession(nextSession)
155155

156156
if (nextSession.recommendations.length && acceptanceEntry.sessionId === nextSession.sessionId) {
157+
getLogger().debug(
158+
`next session id ${nextSession.sessionId} mismatched previous session id ${acceptanceEntry.sessionId}, aborting promoteNextSession`
159+
)
157160
await RecommendationHandler.instance.tryShowRecommendation()
158161
}
159162
}

packages/core/src/codewhisperer/service/inlineCompletionService.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ export class InlineCompletionService {
8585
): Promise<GetRecommendationsResponse> {
8686
if (vsCodeState.isCodeWhispererEditing || RecommendationHandler.instance.isSuggestionVisible()) {
8787
return {
88+
sessionId: '',
8889
result: 'Failed',
8990
errorMessage: 'Amazon Q is already running',
9091
recommendationCount: 0,
@@ -104,6 +105,7 @@ export class InlineCompletionService {
104105
if (AuthUtil.instance.isConnectionExpired()) {
105106
await AuthUtil.instance.notifyReauthenticate(isAutoTrigger)
106107
return {
108+
sessionId: '',
107109
result: 'Failed',
108110
errorMessage: 'auth',
109111
recommendationCount: 0,
@@ -115,6 +117,7 @@ export class InlineCompletionService {
115117
RecommendationHandler.instance.checkAndResetCancellationTokens()
116118
RecommendationHandler.instance.documentUri = editor.document.uri
117119
let response: GetRecommendationsResponse = {
120+
sessionId: '',
118121
result: 'Failed',
119122
errorMessage: undefined,
120123
recommendationCount: 0,
@@ -140,6 +143,7 @@ export class InlineCompletionService {
140143
void showTimedMessage(response.errorMessage ? response.errorMessage : noSuggestions, 2000)
141144
}
142145
return {
146+
sessionId: '',
143147
result: 'Failed',
144148
errorMessage: 'cancelled',
145149
recommendationCount: 0,
@@ -160,6 +164,7 @@ export class InlineCompletionService {
160164
TelemetryHelper.instance.tryRecordClientComponentLatency()
161165

162166
return {
167+
sessionId: response.sessionId,
163168
result: 'Succeeded',
164169
errorMessage: undefined,
165170
recommendationCount: session.recommendations.length,

packages/core/src/codewhisperer/service/recommendationHandler.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,8 @@ export class RecommendationHandler {
288288
requestId = resp?.$response && resp?.$response?.requestId
289289
nextToken = resp?.nextToken ? resp?.nextToken : ''
290290
sessionId = resp?.$response?.httpResponse?.headers['x-amzn-sessionid']
291+
getLogger().debug(`${isNextSession ? 'current' : 'next'} session id: ${sessionId}`)
292+
291293
TelemetryHelper.instance.setFirstResponseRequestId(requestId)
292294
if (page === 0) {
293295
currentSession.setTimeToFirstRecommendation(performance.now())
@@ -743,6 +745,9 @@ export class RecommendationHandler {
743745

744746
const nextSessionId = nextResp.sessionId
745747
if (nextSessionId.length === 0 || nextSessionId !== session.sessionId) {
748+
getLogger().debug(
749+
`next session id ${nextSessionId} mismatch previous session id ${session.sessionId}, resetting next session`
750+
)
746751
CodeWhispererSessionState.instance.getNextSession().reset()
747752
}
748753
}

0 commit comments

Comments
 (0)