diff --git a/src/core/webview/ClineProvider.ts b/src/core/webview/ClineProvider.ts index 13121531a7..932809202e 100644 --- a/src/core/webview/ClineProvider.ts +++ b/src/core/webview/ClineProvider.ts @@ -339,7 +339,8 @@ export class ClineProvider this.view = webviewView // Set panel reference according to webview type - if ("onDidChangeViewState" in webviewView) { + const inTabMode = "onDidChangeViewState" in webviewView + if (inTabMode) { // Tag page type setPanel(webviewView, "tab") } else if ("onDidChangeVisibility" in webviewView) { @@ -441,7 +442,12 @@ export class ClineProvider // This happens when the user closes the view or when the view is closed programmatically webviewView.onDidDispose( async () => { - await this.dispose() + if (inTabMode) { + this.log("Disposing ClineProvider instance for tab view") + await this.dispose() + } else { + this.log("Preserving ClineProvider instance for sidebar view reuse") + } }, null, this.disposables,