From e4f4846ec742a3ff006f82bee94a6bebd7d7d1cb Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Sat, 8 Nov 2025 09:26:08 +0100 Subject: [PATCH 1/4] chat - track and apply `defaultVisibilityMarker` --- src/vs/workbench/browser/layout.ts | 13 ++++++++++++- src/vs/workbench/browser/workbench.contribution.ts | 8 ++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/browser/layout.ts b/src/vs/workbench/browser/layout.ts index c517d4fbd29de..c17ed282edb4c 100644 --- a/src/vs/workbench/browser/layout.ts +++ b/src/vs/workbench/browser/layout.ts @@ -3050,7 +3050,18 @@ class LayoutStateModel extends Disposable { } private loadKeyFromStorage(key: WorkbenchLayoutStateKey): T | undefined { - const value = this.storageService.get(`${LayoutStateModel.STORAGE_PREFIX}${key.name}`, key.scope); + let value = this.storageService.get(`${LayoutStateModel.STORAGE_PREFIX}${key.name}`, key.scope); + + // TODO@bpasero remove this code in 1y when "pre-AI" workspaces have migrated + // Refs: https://github.com/microsoft/vscode-internalbacklog/issues/6168 + if ( + key.scope === StorageScope.WORKSPACE && + key.name === LayoutStateKeys.AUXILIARYBAR_HIDDEN.name && + typeof this.configurationService.getValue('workbench.secondarySideBar.defaultVisibilityMarker') === 'string' && + this.storageService.get(this.configurationService.getValue('workbench.secondarySideBar.defaultVisibilityMarker'), StorageScope.WORKSPACE) === undefined + ) { + value = undefined; + } if (value !== undefined) { this.isNew[key.scope] = false; // remember that we had previous state for this scope diff --git a/src/vs/workbench/browser/workbench.contribution.ts b/src/vs/workbench/browser/workbench.contribution.ts index a971e7e18c79f..2f9553905904a 100644 --- a/src/vs/workbench/browser/workbench.contribution.ts +++ b/src/vs/workbench/browser/workbench.contribution.ts @@ -568,6 +568,14 @@ const registry = Registry.as(ConfigurationExtensions.Con localize('workbench.secondarySideBar.defaultVisibility.maximized', "The secondary side bar is visible and maximized by default.") ] }, + 'workbench.secondarySideBar.defaultVisibilityMarker': { + type: 'string', + 'description': localize('secondarySideBarDefaultVisibilityMarker', "A marker of state to identify if default secondary sidebar setting applied in a workspace."), + tags: ['experimental'], + experiment: { + mode: 'auto' + } + }, 'workbench.secondarySideBar.showLabels': { 'type': 'boolean', 'default': true, From 7d8348ec911e8e929f93f3e8719b0f2c072305d4 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Mon, 10 Nov 2025 12:41:45 +0100 Subject: [PATCH 2/4] simplify --- src/vs/workbench/browser/layout.ts | 4 ++-- src/vs/workbench/browser/workbench.contribution.ts | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/vs/workbench/browser/layout.ts b/src/vs/workbench/browser/layout.ts index c17ed282edb4c..7d0fcca60ea05 100644 --- a/src/vs/workbench/browser/layout.ts +++ b/src/vs/workbench/browser/layout.ts @@ -3057,8 +3057,8 @@ class LayoutStateModel extends Disposable { if ( key.scope === StorageScope.WORKSPACE && key.name === LayoutStateKeys.AUXILIARYBAR_HIDDEN.name && - typeof this.configurationService.getValue('workbench.secondarySideBar.defaultVisibilityMarker') === 'string' && - this.storageService.get(this.configurationService.getValue('workbench.secondarySideBar.defaultVisibilityMarker'), StorageScope.WORKSPACE) === undefined + this.configurationService.getValue('workbench.secondarySideBar.enableDefaultVisibilityInOldWorkspace') === true && + this.storageService.get('workbench.panel.chat.numberOfVisibleViews', StorageScope.WORKSPACE) === undefined ) { value = undefined; } diff --git a/src/vs/workbench/browser/workbench.contribution.ts b/src/vs/workbench/browser/workbench.contribution.ts index 2f9553905904a..8877551691587 100644 --- a/src/vs/workbench/browser/workbench.contribution.ts +++ b/src/vs/workbench/browser/workbench.contribution.ts @@ -568,12 +568,12 @@ const registry = Registry.as(ConfigurationExtensions.Con localize('workbench.secondarySideBar.defaultVisibility.maximized', "The secondary side bar is visible and maximized by default.") ] }, - 'workbench.secondarySideBar.defaultVisibilityMarker': { - type: 'string', - 'description': localize('secondarySideBarDefaultVisibilityMarker', "A marker of state to identify if default secondary sidebar setting applied in a workspace."), - tags: ['experimental'], - experiment: { - mode: 'auto' + 'workbench.secondarySideBar.enableDefaultVisibilityInOldWorkspace': { + 'type': 'string', + 'description': localize('enableDefaultVisibilityInOldWorkspace', "Enables the default secondary sidebar visibility in older workspaces before we had default visibility support."), + 'tags': ['advanced'], + 'experiment': { + 'mode': 'auto' } }, 'workbench.secondarySideBar.showLabels': { From 634d93b5bac362979a1b6d6ca99c876f08e77e58 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Mon, 10 Nov 2025 12:45:27 +0100 Subject: [PATCH 3/4] fix settings type --- src/vs/workbench/browser/workbench.contribution.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/browser/workbench.contribution.ts b/src/vs/workbench/browser/workbench.contribution.ts index 8877551691587..94666211f3599 100644 --- a/src/vs/workbench/browser/workbench.contribution.ts +++ b/src/vs/workbench/browser/workbench.contribution.ts @@ -569,7 +569,7 @@ const registry = Registry.as(ConfigurationExtensions.Con ] }, 'workbench.secondarySideBar.enableDefaultVisibilityInOldWorkspace': { - 'type': 'string', + 'type': 'boolean', 'description': localize('enableDefaultVisibilityInOldWorkspace', "Enables the default secondary sidebar visibility in older workspaces before we had default visibility support."), 'tags': ['advanced'], 'experiment': { From 67bb6444cbe7bb13e4d324bd5bb382b4cc5025c0 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Mon, 10 Nov 2025 12:46:34 +0100 Subject: [PATCH 4/4] set a default --- src/vs/workbench/browser/workbench.contribution.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/vs/workbench/browser/workbench.contribution.ts b/src/vs/workbench/browser/workbench.contribution.ts index 94666211f3599..d87011805bb13 100644 --- a/src/vs/workbench/browser/workbench.contribution.ts +++ b/src/vs/workbench/browser/workbench.contribution.ts @@ -570,6 +570,7 @@ const registry = Registry.as(ConfigurationExtensions.Con }, 'workbench.secondarySideBar.enableDefaultVisibilityInOldWorkspace': { 'type': 'boolean', + 'default': false, 'description': localize('enableDefaultVisibilityInOldWorkspace', "Enables the default secondary sidebar visibility in older workspaces before we had default visibility support."), 'tags': ['advanced'], 'experiment': {