Skip to content

Commit c0ee8f2

Browse files
authored
refactor: better check for arg type in Retry action (microsoft#232645)
1 parent f058e72 commit c0ee8f2

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import { CellEditType, CellKind, NOTEBOOK_EDITOR_ID } from '../../../notebook/co
2828
import { NOTEBOOK_IS_ACTIVE_EDITOR } from '../../../notebook/common/notebookContextKeys.js';
2929
import { ChatAgentLocation, IChatAgentService } from '../../common/chatAgents.js';
3030
import { ChatContextKeys } from '../../common/chatContextKeys.js';
31-
import { applyingChatEditsFailedContextKey, IChatEditingService, WorkingSetEntryState } from '../../common/chatEditingService.js';
31+
import { applyingChatEditsFailedContextKey, IChatEditingService, isChatEditingActionContext, WorkingSetEntryState } from '../../common/chatEditingService.js';
3232
import { IParsedChatRequest } from '../../common/chatParserTypes.js';
3333
import { ChatAgentVoteDirection, ChatAgentVoteDownReason, IChatProgress, IChatService } from '../../common/chatService.js';
3434
import { isRequestVM, isResponseVM } from '../../common/chatViewModel.js';
@@ -211,7 +211,8 @@ export function registerChatTitleActions() {
211211
const chatWidgetService = accessor.get(IChatWidgetService);
212212

213213
let item = args[0];
214-
if (typeof item === 'object' && !!item && 'sessionId' in item) {
214+
if (isChatEditingActionContext(item)) {
215+
// Resolve chat editing action context to the last response VM
215216
item = chatWidgetService.getWidgetBySessionId(item.sessionId)?.viewModel?.getItems().at(-1);
216217
}
217218
if (!isResponseVM(item)) {

src/vs/workbench/contrib/chat/common/chatEditingService.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,3 +116,12 @@ export const enum ChatEditKind {
116116
Created,
117117
Modified,
118118
}
119+
120+
export interface IChatEditingActionContext {
121+
// The chat session ID that this editing session is associated with
122+
sessionId: string;
123+
}
124+
125+
export function isChatEditingActionContext(thing: unknown): thing is IChatEditingActionContext {
126+
return typeof thing === 'object' && !!thing && 'sessionId' in thing;
127+
}

0 commit comments

Comments
 (0)