From 96f98069090a3d72fb75f0b062d14a67d5b87f36 Mon Sep 17 00:00:00 2001 From: Don Jayamanne Date: Sat, 23 May 2026 18:34:40 +1000 Subject: [PATCH] feat: Enhance logging for language model reset in ChatInputPart (#318086) * feat: Enhance logging for language model reset in ChatInputPart * feat: Improve logging for language model reset based on model list changes --- .../browser/widget/input/chatInputPart.ts | 34 ++++++++++++++++--- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.ts b/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.ts index ae9e54e5530..859b9853213 100644 --- a/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.ts +++ b/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.ts @@ -62,7 +62,7 @@ import { IInstantiationService } from '../../../../../../platform/instantiation/ import { ServiceCollection } from '../../../../../../platform/instantiation/common/serviceCollection.js'; import { IKeybindingService } from '../../../../../../platform/keybinding/common/keybinding.js'; import { WorkbenchList } from '../../../../../../platform/list/browser/listService.js'; -import { ILogService } from '../../../../../../platform/log/common/log.js'; +import { canLog, ILogService, LogLevel } from '../../../../../../platform/log/common/log.js'; import { ObservableMemento, observableMemento } from '../../../../../../platform/observable/common/observableMemento.js'; import { bindContextKey } from '../../../../../../platform/observable/common/platformObservableUtils.js'; import { IStorageService, StorageScope, StorageTarget } from '../../../../../../platform/storage/common/storage.js'; @@ -702,9 +702,35 @@ export class ChatInputPart extends Disposable implements IHistoryNavigationWidge const models = this.getModels(); if (this._currentSessionType === SessionType.CopilotCLI) { if (shouldResetOnModelListChange(modelIdentifier, models) && !models.some(m => m.metadata.id === modelIdentifier)) { - const ids = models.map(m => m.identifier).join(', '); - const metadataIds = models.map(m => m.metadata.id).join(', '); - logChangesToStateModel(this._inputModel, `resetting current language model due to model list change from ${modelIdentifier}, identifiers: ${ids}, metadataIds: ${metadataIds}`, undefined, undefined, this.logService); + if (canLog(this.logService.getLevel(), LogLevel.Debug)) { + const mergedModels = this.getAllMergedModels(); + const filteredModels = filterModelsForSession(models, this.getCurrentSessionType(), this.currentModeKind, this.location); + const messageparts: string[] = [ + `resetting current language model due to model list change from ${modelIdentifier}`, + `this._widget?.viewModel?.model.sessionResource = ${this._widget?.viewModel?.model.sessionResource?.toString()}`, + `this.getCurrentSessionType = ${this.getCurrentSessionType()}`, + `this._currentSessionType = ${this._currentSessionType}`, + `model identifiers: ${models.map(m => m.identifier).join(', ')}`, + `model target Session Types: ${models.map(m => m.metadata.targetChatSessionType || '').join(', ')}`, + `model metadataid: ${models.map(m => m.metadata.id).join(', ')}`, + `merged.model identifiers: ${mergedModels.map(m => m.identifier).join(', ')}`, + `merged.model target Session Types: ${mergedModels.map(m => m.metadata.targetChatSessionType || '').join(', ')}`, + `merged.model metadataid: ${mergedModels.map(m => m.metadata.id).join(', ')}`, + `filtered.model identifiers: ${filteredModels.map(m => m.identifier).join(', ')}`, + `filtered.model target Session Types: ${filteredModels.map(m => m.metadata.targetChatSessionType || '').join(', ')}`, + `filtered.model metadataid: ${filteredModels.map(m => m.metadata.id).join(', ')}`, + ]; + if (this.getCurrentSessionType() !== SessionType.CopilotCLI) { + const delegateSessionType = this.options.sessionTypePickerDelegate?.getActiveSessionProvider?.(); + if (delegateSessionType) { + messageparts.push(`delegateSessionType = ${delegateSessionType}`); + } + const sessionResource = this._widget?.viewModel?.model.sessionResource; + messageparts.push(`current session resource = ${sessionResource}`); + } + + logChangesToStateModel(this._inputModel, messageparts.join(', '), undefined, undefined, this.logService); + } this.setCurrentLanguageModelToDefault(); } } else if (shouldResetOnModelListChange(modelIdentifier, models)) {