diff --git a/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.ts b/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.ts index 989405de2a5..36118f258ff 100644 --- a/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.ts +++ b/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.ts @@ -460,6 +460,10 @@ export class InlineChatWidget { return tail(requests)?.response?.response.asString(); } + get usesDefaultChatModel(): boolean { + return this.getChatModel() === this._defaultChatModel; + } + getChatModel(): IChatModel { return this._chatWidget.viewModel?.model ?? this._defaultChatModel; } diff --git a/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.ts b/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.ts index 3eb3a8a924b..ce8c9103c34 100644 --- a/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.ts +++ b/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.ts @@ -128,10 +128,16 @@ export class TerminalChatController extends Disposable implements ITerminalContr // a default chat model (unless configured) and feedback is reported against that one. This // code forwards the feedback to an actual registered provider this._register(this._chatService.onDidPerformUserAction(e => { - if (e.action.kind === 'bug') { - this.acceptFeedback(undefined); - } else if (e.action.kind === 'vote') { - this.acceptFeedback(e.action.direction === InteractiveSessionVoteDirection.Up); + // only forward feedback from the inline chat widget default model + if ( + this._chatWidget?.rawValue?.inlineChatWidget.usesDefaultChatModel + && e.sessionId === this._chatWidget?.rawValue?.inlineChatWidget.getChatModel().sessionId + ) { + if (e.action.kind === 'bug') { + this.acceptFeedback(undefined); + } else if (e.action.kind === 'vote') { + this.acceptFeedback(e.action.direction === InteractiveSessionVoteDirection.Up); + } } })); }