Skip to content

Commit 6269aec

Browse files
authored
Fix maxRequests "pause" button (#2579)
* Fix maxRequests "pause" button Fix #283220 * Fix test
1 parent f878728 commit 6269aec

File tree

2 files changed

+7
-8
lines changed

2 files changed

+7
-8
lines changed

src/extension/prompt/common/specialRequestTypes.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,11 @@ export interface IToolCallIterationIncrease {
1313
const isToolCallIterationIncrease = (c: unknown): c is IToolCallIterationIncrease => !!(c && typeof (c as IToolCallIterationIncrease).copilotRequestedRoundLimit === 'number');
1414

1515
export const getRequestedToolCallIterationLimit = (request: ChatRequest) => request.acceptedConfirmationData?.find(isToolCallIterationIncrease)?.copilotRequestedRoundLimit;
16+
export const getRejectedToolCallIterationLimit = (request: ChatRequest) => request.rejectedConfirmationData?.find(isToolCallIterationIncrease)?.copilotRequestedRoundLimit;
1617

1718
// todo@connor4312 improve with the choices API
1819
export const cancelText = () => l10n.t('Pause');
19-
export const isToolCallLimitCancellation = (request: ChatRequest) => !!getRequestedToolCallIterationLimit(request) && request.prompt.includes(cancelText());
20+
export const isToolCallLimitCancellation = (request: ChatRequest) => !!getRejectedToolCallIterationLimit(request);
2021
export const isToolCallLimitAcceptance = (request: ChatRequest) => !!getRequestedToolCallIterationLimit(request) && !isToolCallLimitCancellation(request);
2122
export interface IContinueOnErrorConfirmation {
2223
copilotContinueOnError: true;

src/extension/prompt/node/test/defaultIntentRequestHandler.spec.ts

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import { isObject, isUndefinedOrNull } from '../../../../util/vs/base/common/typ
2525
import { generateUuid } from '../../../../util/vs/base/common/uuid';
2626
import { SyncDescriptor } from '../../../../util/vs/platform/instantiation/common/descriptors';
2727
import { IInstantiationService } from '../../../../util/vs/platform/instantiation/common/instantiation';
28-
import { ChatLocation, ChatResponseConfirmationPart, LanguageModelTextPart, LanguageModelToolResult } from '../../../../vscodeTypes';
28+
import { ChatLocation, ChatResponseConfirmationPart, ChatResponseMarkdownPart, LanguageModelTextPart, LanguageModelToolResult } from '../../../../vscodeTypes';
2929
import { ToolCallingLoop } from '../../../intents/node/toolCallingLoop';
3030
import { ToolResultMetadata } from '../../../prompts/node/panel/toolCalling';
3131
import { createExtensionUnitTestingServices } from '../../../test/node/services';
@@ -329,16 +329,14 @@ suite('defaultIntentRequestHandler', () => {
329329
expect(last).toBeInstanceOf(ChatResponseConfirmationPart);
330330

331331
const request = new TestChatRequest();
332-
request.acceptedConfirmationData = [(last as ChatResponseConfirmationPart).data];
332+
request.rejectedConfirmationData = [(last as ChatResponseConfirmationPart).data];
333333
request.prompt = (last as ChatResponseConfirmationPart).buttons![1];
334334
const handler2 = makeHandler({ request });
335335
await handler2.getResult();
336336

337-
expect(response.at(-1)).toMatchInlineSnapshot(`
338-
ChatResponseMarkdownPart {
339-
"value": MarkdownString {},
340-
}
341-
`);
337+
const last2 = response.at(-1);
338+
expect(last2).toBeInstanceOf(ChatResponseMarkdownPart);
339+
expect((last2 as ChatResponseMarkdownPart).value.value).toMatchInlineSnapshot(`"Let me know if there's anything else I can help with!"`);
342340
});
343341
});
344342

0 commit comments

Comments
 (0)