diff --git a/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.ts b/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.ts index f980b6ab2ee..f501656ede6 100644 --- a/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.ts +++ b/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.ts @@ -8,7 +8,7 @@ import { Dimension, getActiveWindow, IFocusTracker, trackFocus } from '../../../ import { CancelablePromise, createCancelablePromise, DeferredPromise } from '../../../../../base/common/async.js'; import { CancellationTokenSource } from '../../../../../base/common/cancellation.js'; import { Emitter, Event } from '../../../../../base/common/event.js'; -import { Disposable, DisposableStore, MutableDisposable, toDisposable } from '../../../../../base/common/lifecycle.js'; +import { Disposable, DisposableStore, IDisposable, MutableDisposable, toDisposable } from '../../../../../base/common/lifecycle.js'; import { autorun, observableValue, type IObservable } from '../../../../../base/common/observable.js'; import { MicrotaskDelay } from '../../../../../base/common/symbols.js'; import { localize } from '../../../../../nls.js'; @@ -82,6 +82,7 @@ export class TerminalChatWidget extends Disposable { private _terminalAgentName = 'terminal'; private readonly _model: MutableDisposable = this._register(new MutableDisposable()); + private readonly _sessionDisposables: MutableDisposable = this._register(new MutableDisposable()); private _sessionCtor: CancelablePromise | undefined; @@ -334,7 +335,7 @@ export class TerminalChatWidget extends Disposable { this._resetPlaceholder(); } }); - this._register(toDisposable(() => this._sessionCtor?.cancel())); + this._sessionDisposables.value = toDisposable(() => this._sessionCtor?.cancel()); } private _saveViewState() {