From 5c7bf1f5abd4b51d290f4d9861d5d00ecdcb2de0 Mon Sep 17 00:00:00 2001 From: "vs-code-engineering[bot]" <122617954+vs-code-engineering[bot]@users.noreply.github.com> Date: Sun, 23 Aug 2026 05:59:37 +0000 Subject: [PATCH 1/9] fix: don't cache rejected oniguruma WASM load promise (fixes #326825) (#326830) * fix: don't cache rejected oniguruma WASM load promise (fixes #326825) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Attestation commit --------- Co-authored-by: vs-code-engineering[bot] <122617954+vs-code-engineering[bot]@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Alex Dima --- .../textMateTokenizationFeatureImpl.ts | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/vs/workbench/services/textMate/browser/textMateTokenizationFeatureImpl.ts b/src/vs/workbench/services/textMate/browser/textMateTokenizationFeatureImpl.ts index 15afd968006e15..fc7f3e7fb31065 100644 --- a/src/vs/workbench/services/textMate/browser/textMateTokenizationFeatureImpl.ts +++ b/src/vs/workbench/services/textMate/browser/textMateTokenizationFeatureImpl.ts @@ -378,14 +378,23 @@ export class TextMateTokenizationFeature extends Disposable implements ITextMate private _getVSCodeOniguruma(): Promise { if (!this._vscodeOniguruma) { this._vscodeOniguruma = (async () => { - const [vscodeOniguruma, wasm] = await Promise.all([importAMDNodeModule('vscode-oniguruma', 'release/main.js'), this._loadVSCodeOnigurumaWASM()]); - await vscodeOniguruma.loadWASM({ - data: wasm, - print: (str: string) => { - this._debugModePrintFunc(str); - } - }); - return vscodeOniguruma; + try { + const [vscodeOniguruma, wasm] = await Promise.all([importAMDNodeModule('vscode-oniguruma', 'release/main.js'), this._loadVSCodeOnigurumaWASM()]); + await vscodeOniguruma.loadWASM({ + data: wasm, + print: (str: string) => { + this._debugModePrintFunc(str); + } + }); + return vscodeOniguruma; + } catch (err) { + // Do not cache a rejected promise: loading the WASM can fail with a transient + // error (e.g. "Failed to fetch" while the window is being torn down). Caching + // the rejection would permanently break tokenization for the rest of the + // session and cause the same error to be re-reported for every language. + this._vscodeOniguruma = null; + throw err; + } })(); } return this._vscodeOniguruma; From 628de0e5f62a00172223662ae281c4878e8d2722 Mon Sep 17 00:00:00 2001 From: Lee Murray Date: Sun, 23 Aug 2026 07:01:30 +0100 Subject: [PATCH 2/9] Enhance Activitybar layout and item separation (#332002) * Enhance ActivitybarPart: add floating action gap and improve composite size calculation * activitybar: separate items with a dynamic gap in floating panels mode * activitybar: adjust composite bar layout to correctly account for leading item gap * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * activitybar: cover the measured global activity icons reservation The global bar height is measured from the DOM rather than derived from the item size, but no test exercised it. Add coverage for one and two global actions so the measured reservation, and the single gap that separates two icons, cannot silently regress. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: mrleemurray Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../lib/stylelint/vscode-known-variables.json | 1 + .../browser/media/floatingPanels.css | 9 +- .../parts/activitybar/activitybarPart.ts | 40 ++++- .../browser/parts/globalCompositeBar.ts | 4 - .../parts/activitybar/activitybarPart.test.ts | 167 +++++++++++++++++- 5 files changed, 203 insertions(+), 18 deletions(-) diff --git a/build/lib/stylelint/vscode-known-variables.json b/build/lib/stylelint/vscode-known-variables.json index 593a6366dbd202..96eefd71ed6f90 100644 --- a/build/lib/stylelint/vscode-known-variables.json +++ b/build/lib/stylelint/vscode-known-variables.json @@ -977,6 +977,7 @@ "others": [ "--action-widget-close-start-opacity", "--action-widget-close-start-transform", + "--activity-bar-action-gap", "--activity-bar-action-height", "--activity-bar-icon-size", "--activity-bar-width", diff --git a/src/vs/workbench/browser/media/floatingPanels.css b/src/vs/workbench/browser/media/floatingPanels.css index 263a02c4af5a56..f82d1a8464ebb3 100644 --- a/src/vs/workbench/browser/media/floatingPanels.css +++ b/src/vs/workbench/browser/media/floatingPanels.css @@ -194,10 +194,11 @@ margin-top: var(--vscode-spacing-size20); } -/* At the default (non-compact) size, separate the activity bar items with an 8px gap - * so they read as distinct floating targets. Compact keeps the tighter default stack. */ -.monaco-workbench.floating-panels .part.activitybar:not(.compact) > .content .monaco-action-bar .action-item + .action-item { - margin-top: var(--vscode-spacing-size80); +/* Separate the activity bar items so they read as distinct floating targets. The gap is + * published by activitybarPart.ts as `--activity-bar-action-gap` (0px at the compact size) + * so that it stays in step with the overflow computation. */ +.monaco-workbench.floating-panels .part.activitybar > .content .monaco-action-bar .action-item + .action-item { + margin-top: var(--activity-bar-action-gap, 0px); } /* Inset and vertically center status bar items within the full-width bottom rail. */ diff --git a/src/vs/workbench/browser/parts/activitybar/activitybarPart.ts b/src/vs/workbench/browser/parts/activitybar/activitybarPart.ts index f5d6a69b845fb0..3e2077339f26f4 100644 --- a/src/vs/workbench/browser/parts/activitybar/activitybarPart.ts +++ b/src/vs/workbench/browser/parts/activitybar/activitybarPart.ts @@ -55,6 +55,13 @@ export class ActivitybarPart extends Part { static readonly FLOATING_ACTIVITYBAR_WIDTH = 36; static readonly FLOATING_COMPACT_ACTIVITYBAR_WIDTH = 28; + /** + * Vertical gap between activity bar items at the default size under the floating + * panels experiment. Published to CSS as `--activity-bar-action-gap` so that the + * stylesheet and the overflow computation cannot drift apart. + */ + static readonly FLOATING_ACTION_GAP = 8; + static readonly ICON_SIZE = 24; static readonly COMPACT_ICON_SIZE = 16; @@ -85,7 +92,7 @@ export class ActivitybarPart extends Part { return this._isCompact ? ActivitybarPart.COMPACT_ACTIVITYBAR_WIDTH : ActivitybarPart.ACTIVITYBAR_WIDTH; } - /** The action (item) height that drives visible item sizing and the composite bar overflow size. */ + /** The action (item) height that drives visible item sizing. */ private get actionHeight(): number { if (this._isCompact) { return ActivitybarPart.COMPACT_ACTION_HEIGHT; @@ -93,6 +100,24 @@ export class ActivitybarPart extends Part { return this.layoutService.isFloatingPanelsEnabled() ? ActivitybarPart.FLOATING_ACTION_HEIGHT : ActivitybarPart.ACTION_HEIGHT; } + /** + * Vertical gap rendered between two adjacent items. Only the floating panels + * experiment separates items, and only at the default size. + */ + private get actionGap(): number { + return this.layoutService.isFloatingPanelsEnabled() && !this._isCompact ? ActivitybarPart.FLOATING_ACTION_GAP : 0; + } + + /** + * The vertical space a single item occupies in the bar (its height plus the gap that + * separates it from the next one). This drives the overflow computation, so it has to + * track the current activity bar size, otherwise items collapse into the overflow menu + * prematurely. + */ + private get compositeSize(): number { + return this.actionHeight + this.actionGap; + } + private get floatingHorizontalGutter(): number { if (!this.layoutService.isFloatingPanelsEnabled()) { return 0; @@ -164,6 +189,7 @@ export class ActivitybarPart extends Part { this.layoutService.mainContainer.classList.toggle('activitybar-compact', this._isCompact); this.element.style.setProperty('--activity-bar-width', `${this.baseWidth}px`); this.element.style.setProperty('--activity-bar-action-height', `${this.actionHeight}px`); + this.element.style.setProperty('--activity-bar-action-gap', `${this.actionGap}px`); this.element.style.setProperty('--activity-bar-icon-size', `${this._isCompact ? ActivitybarPart.COMPACT_ICON_SIZE : ActivitybarPart.ICON_SIZE}px`); } } @@ -184,7 +210,7 @@ export class ActivitybarPart extends Part { } private createCompositeBar(): PaneCompositeBar { - const actionHeight = this.actionHeight; + const compositeSize = this.compositeSize; const iconSize = this._isCompact ? ActivitybarPart.COMPACT_ICON_SIZE : ActivitybarPart.ICON_SIZE; return this.instantiationService.createInstance(ActivityBarCompositeBar, this.location, { @@ -201,7 +227,7 @@ export class ActivitybarPart extends Part { preventLoopNavigation: true, recomputeSizes: false, fillExtraContextMenuActions: (actions, e?: MouseEvent | GestureEvent) => { }, - compositeSize: 52, + compositeSize, colors: (theme: IColorTheme) => ({ activeForegroundColor: theme.getColor(ACTIVITY_BAR_FOREGROUND), inactiveForegroundColor: theme.getColor(ACTIVITY_BAR_INACTIVE_FOREGROUND), @@ -212,7 +238,7 @@ export class ActivitybarPart extends Part { dragAndDropBorder: theme.getColor(ACTIVITY_BAR_DRAG_AND_DROP_BORDER), activeBackgroundColor: undefined, inactiveBackgroundColor: undefined, activeBorderBottomColor: undefined, }), - overflowActionSize: actionHeight, + overflowActionSize: compositeSize, }, Parts.ACTIVITYBAR_PART, this.paneCompositePart, true); } @@ -306,8 +332,8 @@ export class ActivitybarPart extends Part { // Layout contents const contentAreaSize = super.layoutContents(contentWidth, contentHeight).contentSize; - // Layout composite bar - this.compositeBar.value?.layout(contentWidth, contentAreaSize.height); + // The first item has no preceding gap, so give one gap back to the composite bar. + this.compositeBar.value?.layout(contentWidth, contentAreaSize.height + this.actionGap); } /** @@ -502,7 +528,7 @@ export class ActivityBarCompositeBar extends PaneCompositeBar { } if (this.globalCompositeBar) { if (this.options.orientation === ActionsOrientation.VERTICAL) { - height -= (this.globalCompositeBar.size() * this.options.overflowActionSize); + height -= this.globalCompositeBar.element.clientHeight; } else { width -= this.globalCompositeBar.element.clientWidth; } diff --git a/src/vs/workbench/browser/parts/globalCompositeBar.ts b/src/vs/workbench/browser/parts/globalCompositeBar.ts index 2187088a06dcd7..6aec4cf96b3b03 100644 --- a/src/vs/workbench/browser/parts/globalCompositeBar.ts +++ b/src/vs/workbench/browser/parts/globalCompositeBar.ts @@ -133,10 +133,6 @@ export class GlobalCompositeBar extends Disposable { this.globalActivityActionBar.focus(true); } - size(): number { - return this.globalActivityActionBar.viewItems.length; - } - getContextMenuActions(): IAction[] { return [toAction({ id: 'toggleAccountsVisibility', label: localize('accounts', "Accounts"), checked: this.accountsVisibilityPreference, run: () => this.accountsVisibilityPreference = !this.accountsVisibilityPreference })]; } diff --git a/src/vs/workbench/test/browser/parts/activitybar/activitybarPart.test.ts b/src/vs/workbench/test/browser/parts/activitybar/activitybarPart.test.ts index eda6fd12cf993f..46d6d84e0e5cac 100644 --- a/src/vs/workbench/test/browser/parts/activitybar/activitybarPart.test.ts +++ b/src/vs/workbench/test/browser/parts/activitybar/activitybarPart.test.ts @@ -10,18 +10,34 @@ import { TestConfigurationService } from '../../../../../platform/configuration/ import { TestColorTheme, TestThemeService } from '../../../../../platform/theme/test/common/testThemeService.js'; import { TestStorageService } from '../../../common/workbenchTestServices.js'; import { TestHostService, TestLayoutService } from '../../workbenchTestServices.js'; -import { ActivitybarPart } from '../../../../browser/parts/activitybar/activitybarPart.js'; +import { ActivitybarPart, ActivityBarCompositeBar } from '../../../../browser/parts/activitybar/activitybarPart.js'; import { IViewSize } from '../../../../../base/browser/ui/grid/grid.js'; import { LayoutSettings, Parts, Position } from '../../../../services/layout/browser/layoutService.js'; import { mainWindow } from '../../../../../base/browser/window.js'; import { IConfigurationChangeEvent } from '../../../../../platform/configuration/common/configuration.js'; import { IPaneCompositePart } from '../../../../browser/parts/paneCompositePart.js'; +import { IPaneCompositeBarOptions } from '../../../../browser/parts/paneCompositeBar.js'; import { Event, Emitter } from '../../../../../base/common/event.js'; import { IPaneComposite } from '../../../../common/panecomposite.js'; import { Extensions, PaneCompositeDescriptor } from '../../../../browser/panecomposite.js'; import { IInstantiationService } from '../../../../../platform/instantiation/common/instantiation.js'; import { ViewContainerLocation } from '../../../../common/views.js'; import { ACTIVITY_BAR_BACKGROUND, MODERN_ACTIVITY_BAR_BACKGROUND, MODERN_ACTIVITY_BAR_INACTIVE_BACKGROUND } from '../../../../common/theme.js'; +import { ActionsOrientation } from '../../../../../base/browser/ui/actionbar/actionbar.js'; +import { Dimension } from '../../../../../base/browser/dom.js'; + +interface ILayoutTestHarness { + menuBarContainer: HTMLElement | undefined; + globalCompositeBar: { element: HTMLElement } | undefined; + options: { orientation: ActionsOrientation }; + compositeBar: { layout: (dimension: Dimension) => void }; +} + +// `super.layout()` resolves through the prototype chain, so calling the extracted method +// against a harness still runs the real `PaneCompositeBar.layout` and hands the resulting +// dimension to `compositeBar`. +const activityBarCompositeBarLayout = Reflect.get(ActivityBarCompositeBar.prototype, 'layout') as (this: ILayoutTestHarness, width: number, height: number) => void; + class StubPaneCompositePart implements IPaneCompositePart { declare readonly _serviceBrand: undefined; @@ -74,7 +90,7 @@ suite('ActivitybarPart', () => { disposables.clear(); }); - function createActivitybarPart(compact: boolean, floatingPanelsEnabled = false, sideBarPosition = Position.LEFT, colors: { [id: string]: string | undefined } = {}): { part: ActivitybarPart; configService: TestConfigurationService; layoutService: TestFloatingPanelsLayoutService; hostService: TestHostService } { + function createActivitybarPart(compact: boolean, floatingPanelsEnabled = false, sideBarPosition = Position.LEFT, colors: { [id: string]: string | undefined } = {}, instantiationService?: IInstantiationService): { part: ActivitybarPart; configService: TestConfigurationService; layoutService: TestFloatingPanelsLayoutService; hostService: TestHostService } { const configService = new TestConfigurationService({ [LayoutSettings.ACTIVITY_BAR_COMPACT]: compact, [LayoutSettings.MODERN_UI]: floatingPanelsEnabled, @@ -92,7 +108,7 @@ suite('ActivitybarPart', () => { // Stub instantiation service—createCompositeBar is only called in show(), // which we skip in unit tests focused on dimensions / style behaviour. - const stubInstantiationService = { createInstance: () => { throw new Error('not expected'); } } as unknown as IInstantiationService; + const stubInstantiationService = instantiationService ?? { createInstance: () => { throw new Error('not expected'); } } as unknown as IInstantiationService; const part = disposables.add(new ActivitybarPart( ViewContainerLocation.Sidebar, @@ -295,6 +311,7 @@ suite('ActivitybarPart', () => { assert.strictEqual(el.style.getPropertyValue('--activity-bar-width'), `${ActivitybarPart.ACTIVITYBAR_WIDTH}px`); assert.strictEqual(el.style.getPropertyValue('--activity-bar-action-height'), `${ActivitybarPart.ACTION_HEIGHT}px`); + assert.strictEqual(el.style.getPropertyValue('--activity-bar-action-gap'), '0px'); assert.strictEqual(el.style.getPropertyValue('--activity-bar-icon-size'), `${ActivitybarPart.ICON_SIZE}px`); assert.strictEqual(el.classList.contains('compact'), false); }); @@ -308,6 +325,7 @@ suite('ActivitybarPart', () => { assert.strictEqual(el.style.getPropertyValue('--activity-bar-width'), `${ActivitybarPart.COMPACT_ACTIVITYBAR_WIDTH}px`); assert.strictEqual(el.style.getPropertyValue('--activity-bar-action-height'), `${ActivitybarPart.COMPACT_ACTION_HEIGHT}px`); + assert.strictEqual(el.style.getPropertyValue('--activity-bar-action-gap'), '0px'); assert.strictEqual(el.style.getPropertyValue('--activity-bar-icon-size'), `${ActivitybarPart.COMPACT_ICON_SIZE}px`); assert.strictEqual(el.classList.contains('compact'), true); }); @@ -321,6 +339,7 @@ suite('ActivitybarPart', () => { assert.strictEqual(el.style.getPropertyValue('--activity-bar-width'), `${ActivitybarPart.FLOATING_ACTIVITYBAR_WIDTH}px`); assert.strictEqual(el.style.getPropertyValue('--activity-bar-action-height'), `${ActivitybarPart.FLOATING_ACTION_HEIGHT}px`); + assert.strictEqual(el.style.getPropertyValue('--activity-bar-action-gap'), `${ActivitybarPart.FLOATING_ACTION_GAP}px`); assert.strictEqual(el.style.getPropertyValue('--activity-bar-icon-size'), `${ActivitybarPart.ICON_SIZE}px`); assert.strictEqual(el.classList.contains('compact'), false); }); @@ -438,5 +457,147 @@ suite('ActivitybarPart', () => { }); }); + // --- composite bar item sizing ------------------------------------------- + + // The composite bar decides how many activity icons fit before collapsing the rest into + // the overflow ("Additional Views") menu, so the size it is handed has to match the + // vertical space an item actually occupies in the current mode. + function capturedCompositeBarOptions(compact: boolean, floatingPanelsEnabled: boolean): IPaneCompositeBarOptions { + let captured: IPaneCompositeBarOptions | undefined; + const stubCompositeBar = { create: () => { }, layout: () => { }, dispose: () => { } }; + const { part } = createActivitybarPart(compact, floatingPanelsEnabled, Position.LEFT, {}, { + createInstance: (_descriptor: unknown, _location: unknown, options: IPaneCompositeBarOptions) => { + captured = options; + return stubCompositeBar; + } + } as unknown as IInstantiationService); + + const el = document.createElement('div'); + fixture.appendChild(el); + part.create(el); + part.show(); + + return captured!; + } + + test('composite bar item size tracks the rendered item stride in every mode', () => { + const sizesFor = (compact: boolean, floatingPanelsEnabled: boolean) => { + const { compositeSize, overflowActionSize } = capturedCompositeBarOptions(compact, floatingPanelsEnabled); + return { compositeSize, overflowActionSize }; + }; + + assert.deepStrictEqual( + { + classicDefault: sizesFor(false, false), + classicCompact: sizesFor(true, false), + modernDefault: sizesFor(false, true), + modernCompact: sizesFor(true, true), + }, + { + // Items stack flush against each other, so the stride is just the action height. + classicDefault: { compositeSize: 48, overflowActionSize: 48 }, + classicCompact: { compositeSize: 28, overflowActionSize: 28 }, + // Modern UI separates items with an 8px gap, but only at the default size. + modernDefault: { compositeSize: 44, overflowActionSize: 44 }, + modernCompact: { compositeSize: 28, overflowActionSize: 28 }, + } + ); + }); + + // The gap is rendered *between* items, so N items occupy `N * height + (N - 1) * gap`. + // `compositeSize` bakes a trailing gap into every item, which over-counts by exactly one + // gap, so `layout()` hands that gap back to the composite bar. Without it the last item + // is pushed into the overflow menu a gap earlier than it needs to be. + function compositeBarLayoutHeight(compact: boolean, floatingPanelsEnabled: boolean): number { + let layoutHeight = -1; + const stubCompositeBar = { + create: () => { }, + layout: (_width: number, height: number) => { layoutHeight = height; }, + dispose: () => { } + }; + const { part, layoutService } = createActivitybarPart(compact, floatingPanelsEnabled, Position.LEFT, {}, { + createInstance: () => stubCompositeBar + } as unknown as IInstantiationService); + + const el = document.createElement('div'); + fixture.appendChild(el); + part.create(el); + part.show(); + + // A visible title and status bar means neither edge is a window edge. + const visible = new Set([Parts.TITLEBAR_PART, Parts.STATUSBAR_PART]); + layoutService.isVisible = (partId: Parts) => visible.has(partId); + part.layout(100, 300); + + return layoutHeight; + } + + test('composite bar is given back the leading item gap it does not render', () => { + const margin = ActivitybarPart.FLOATING_MARGIN; + + assert.deepStrictEqual( + { + classicDefault: compositeBarLayoutHeight(false, false), + classicCompact: compositeBarLayoutHeight(true, false), + modernDefault: compositeBarLayoutHeight(false, true), + modernCompact: compositeBarLayoutHeight(true, true), + }, + { + // No floating gutters and no gap between items. + classicDefault: 300, + classicCompact: 300, + // Floating reserves a bottom gutter; the 8px gap is then handed back. + modernDefault: 300 - margin + ActivitybarPart.FLOATING_ACTION_GAP, + modernCompact: 300 - margin, + } + ); + }); + + // --- global activity icons reservation ----------------------------------- + + // The global (Accounts/Manage) icons are a separate action bar stacked beneath the view + // containers, so the room they take has to be measured rather than derived from the item + // size: the gap sits only *between* items, so N icons occupy N * height + (N - 1) * gap. + function heightLeftForCompositeBar(globalActionCount: number, itemHeight: number, gap: number): number { + const globalBarElement = document.createElement('div'); + for (let i = 0; i < globalActionCount; i++) { + const item = document.createElement('div'); + item.style.height = `${itemHeight}px`; + if (i > 0) { + item.style.marginTop = `${gap}px`; + } + globalBarElement.appendChild(item); + } + fixture.appendChild(globalBarElement); + + let laidOut: Dimension | undefined; + activityBarCompositeBarLayout.call({ + menuBarContainer: undefined, + globalCompositeBar: { element: globalBarElement }, + options: { orientation: ActionsOrientation.VERTICAL }, + compositeBar: { layout: dimension => { laidOut = dimension; } }, + }, ActivitybarPart.FLOATING_ACTIVITYBAR_WIDTH, 300); + + return laidOut!.height; + } + + test('reserves the measured height of the global activity icons', () => { + const gap = ActivitybarPart.FLOATING_ACTION_GAP; + const itemHeight = ActivitybarPart.FLOATING_ACTION_HEIGHT; + + assert.deepStrictEqual( + { + oneGlobalAction: heightLeftForCompositeBar(1, itemHeight, gap), + twoGlobalActions: heightLeftForCompositeBar(2, itemHeight, gap), + }, + { + // A lone icon has no gap at all, so it occupies exactly its own height. + oneGlobalAction: 300 - itemHeight, + // Two icons share a single gap: 36 + 8 + 36 = 80, not 2 * (36 + 8) = 88. + twoGlobalActions: 300 - (itemHeight * 2 + gap), + } + ); + }); + ensureNoDisposablesAreLeakedInTestSuite(); }); From 010ee1aa74f8c8f0a12072f4766853ad71bc4014 Mon Sep 17 00:00:00 2001 From: Don Jayamanne Date: Sun, 23 Aug 2026 16:02:19 +1000 Subject: [PATCH 3/9] sessions: gate opening a session on workspace trust (#331981) * sessions: gate opening a session on workspace trust Opening a session from the sessions list (click or Alt-click open-to-the-side) now refuses when the session's mounted folder is not trusted, leaving the current session (or the empty new-session slot) untouched and offering a "Trust Folder" action. Worktrees VS Code creates off an already-trusted repo are auto-trusted so worktree sessions still open seamlessly, and the workspace folder is never mounted while untrusted so the window cannot silently enter Restricted Mode. Replaces the previous silent force-trust on session open. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * sessions: use the standard trust dialog when opening an untrusted session Opening an untrusted session from the list now surfaces VS Code's standard workspace-trust request instead of a custom "Trust Folder" notification. Because the gate runs from the imperative open path (the list handler) rather than the reactive folder-mount code, the prompt fires once per open and cannot loop. Declining leaves the current session untouched; granting trust opens the session and is remembered for next time. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * sessions: check every session folder's trust when opening The open-trust gate now verifies all of a session's working directories, not just the primary/mounted one. The agent and its tasks, terminals and other tooling can run against any working directory, so we make no assumptions that non-primary folders are harmless: a session only opens once every folder is trusted, prompting via the standard trust dialog for each untrusted one and refusing the open if the user declines any. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * sessions: test the open-trust gate and tighten its JSDoc Adds regression tests for the sessions-list open gate: proves canOpenSession=false blocks both mark-read and onSessionOpen, and that both happen only after the gate resolves true, with a control test proving the click gesture actually reaches onDidOpen. Trims the canOpenSession JSDoc to the codebase's concise style and drops the sessions-list coupling. Addresses PR review feedback. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../sessions/browser/views/sessionsList.ts | 16 +- .../sessions/browser/views/sessionsView.ts | 1 + .../test/browser/sessionsList.test.ts | 90 +++++ .../browser/workspaceFolderManagement.ts | 55 ++- .../browser/workspaceFolderManagement.test.ts | 317 ++++++++++++++++++ .../sessions/browser/sessionsService.ts | 46 ++- 6 files changed, 516 insertions(+), 9 deletions(-) create mode 100644 src/vs/sessions/contrib/workspace/test/browser/workspaceFolderManagement.test.ts diff --git a/src/vs/sessions/contrib/sessions/browser/views/sessionsList.ts b/src/vs/sessions/contrib/sessions/browser/views/sessionsList.ts index 8fad3c22b43331..e49ad5537332af 100644 --- a/src/vs/sessions/contrib/sessions/browser/views/sessionsList.ts +++ b/src/vs/sessions/contrib/sessions/browser/views/sessionsList.ts @@ -1858,6 +1858,14 @@ export interface ISessionsListControlOptions { readonly sorting: () => SessionsSorting; readonly findWidgetContainer?: HTMLElement; onSessionOpen(resource: URI, preserveFocus: boolean, sideBySide: boolean): void; + + /** + * Gate invoked before a session is opened (before mark-read, activation, and + * folder mount). Return `false` to refuse the open — e.g. the session's folder + * is not trusted — leaving the current session/empty slot untouched. When + * omitted, opens are not gated. + */ + canOpenSession?(session: ISession): Promise; } /** @@ -2187,7 +2195,7 @@ export class SessionsList extends Disposable implements ISessionsList { } )); - this._register(this.tree.onDidOpen(e => { + this._register(this.tree.onDidOpen(async e => { const element = e.element; if (!element) { return; @@ -2214,6 +2222,12 @@ export class SessionsList extends Disposable implements ISessionsList { return; } if (!isSessionSection(element) && !isSessionGroupItem(element)) { + // Gate the open on workspace trust before any side effect (mark-read, + // activation, folder mount). A refused open leaves the current + // session (or empty new-session slot) untouched. + if (this.options.canOpenSession && !(await this.options.canOpenSession(element))) { + return; + } this.markRead(element); // A deliberate left mouse click on a session should move keyboard // focus into the chat input so the user can start typing right diff --git a/src/vs/sessions/contrib/sessions/browser/views/sessionsView.ts b/src/vs/sessions/contrib/sessions/browser/views/sessionsView.ts index 010e8d7e7a63e3..e2ccbe25493dcb 100644 --- a/src/vs/sessions/contrib/sessions/browser/views/sessionsView.ts +++ b/src/vs/sessions/contrib/sessions/browser/views/sessionsView.ts @@ -230,6 +230,7 @@ export class SessionsView extends ViewPane { } this.sessionsService.openSession(resource, { preserveFocus }).then(onOpened).catch(onUnexpectedError); }, + canOpenSession: session => this.sessionsService.canOpenSession(session), })); this._register(this.onDidChangeBodyVisibility(visible => sessionsControl.setVisible(visible))); diff --git a/src/vs/sessions/contrib/sessions/test/browser/sessionsList.test.ts b/src/vs/sessions/contrib/sessions/test/browser/sessionsList.test.ts index 28861b2245a723..5b39fb6fd02806 100644 --- a/src/vs/sessions/contrib/sessions/test/browser/sessionsList.test.ts +++ b/src/vs/sessions/contrib/sessions/test/browser/sessionsList.test.ts @@ -953,4 +953,94 @@ suite('Sessions - SessionsList', () => { assert.ok(set.get('a')! > set.get('b')!); }); }); + + suite('open trust gate', () => { + + function findSessionRow(container: HTMLElement, title: string): HTMLElement { + const item = [...container.querySelectorAll('.session-item')] + .find(el => el.querySelector('.session-title')?.textContent === title); + const row = item?.closest('.monaco-list-row'); + assert.ok(row, `expected a rendered row for "${title}"`); + return row; + } + + // Mirrors the tree's open gesture (see objectTree.test.ts): a plain single + // left click opens the row under the list's single-click open mode. + function clickRow(row: HTMLElement): void { + row.dispatchEvent(new MouseEvent('mousedown', { bubbles: true, button: 0 })); + row.dispatchEvent(new MouseEvent('click', { bubbles: true, button: 0 })); + } + + // Drains the microtask queue so the asynchronous open gate settles. + async function settle(): Promise { + for (let i = 0; i < 50; i++) { + await Promise.resolve(); + } + } + + function renderGatedList(title: string, canOpenSession?: (session: ISession) => Promise) { + const { session } = createTestSession(title); + const harness = createListHarness(disposables, [session]); + const container = harness.createContainer(); + const opened: string[] = []; + const list = harness.store.add(harness.instantiationService.createInstance(SessionsList, container, { + grouping: () => SessionsGrouping.Date, + sorting: () => SessionsSorting.Created, + onSessionOpen: (resource: URI) => opened.push(resource.toString()), + canOpenSession, + })); + list.layout(300, 400); + return { session, harness, container, opened }; + } + + // Control: proves the click gesture actually reaches `onDidOpen`, so the + // "no side effects" assertions in the gated tests below are meaningful. + test('opens and marks read when no trust gate is configured', async () => { + const { session, harness, container, opened } = renderGatedList('Ungated'); + + clickRow(findSessionRow(container, 'Ungated')); + await settle(); + + assert.deepStrictEqual({ opened, markedRead: harness.managementService.readSessions.length }, { + opened: [session.resource.toString()], + markedRead: 1, + }); + }); + + test('refuses to open when the trust gate returns false: no mark-read, no open', async () => { + const { harness, container, opened } = renderGatedList('Untrusted', async () => false); + + clickRow(findSessionRow(container, 'Untrusted')); + await settle(); + + assert.deepStrictEqual({ opened, markedRead: harness.managementService.readSessions.length }, { + opened: [], + markedRead: 0, + }); + }); + + test('marks read and opens only after the trust gate resolves true', async () => { + let allowOpen: (value: boolean) => void; + const gate = new Promise(resolve => { allowOpen = resolve; }); + const { session, harness, container, opened } = renderGatedList('Deferred', () => gate); + + clickRow(findSessionRow(container, 'Deferred')); + await settle(); + + // Gate still pending — the open must not have produced any side effects. + assert.deepStrictEqual({ opened, markedRead: harness.managementService.readSessions.length }, { + opened: [], + markedRead: 0, + }); + + allowOpen!(true); + await settle(); + + // Gate resolved true — the session is now marked read and opened. + assert.deepStrictEqual({ opened, markedRead: harness.managementService.readSessions.length }, { + opened: [session.resource.toString()], + markedRead: 1, + }); + }); + }); }); diff --git a/src/vs/sessions/contrib/workspace/browser/workspaceFolderManagement.ts b/src/vs/sessions/contrib/workspace/browser/workspaceFolderManagement.ts index 13b13a8df3b34d..08944efd1f181b 100644 --- a/src/vs/sessions/contrib/workspace/browser/workspaceFolderManagement.ts +++ b/src/vs/sessions/contrib/workspace/browser/workspaceFolderManagement.ts @@ -39,10 +39,24 @@ export class WorkspaceFolderManagementContribution extends Disposable implements } private async updateWorkspaceFoldersForSession(session: ISession | undefined): Promise { - await this.manageTrustWorkspaceForSession(session); + // Auto-trust an isolated worktree VS Code created off a trusted repo, so a + // worktree session mounts without tripping the untrusted-folder backstop. + await this.ensureWorktreeTrusted(session); const activeSessionFolderData = this.getActiveSessionFolderData(session); const currentRepo = this.workspaceContextService.getWorkspace().folders[0]?.uri; + // Never mount an untrusted folder: mounting it would flip the whole Agents + // Window into Restricted Mode. Sessions opened from the list are already + // gated on trust (see `ISessionsService.canOpenSession`); this backstop + // keeps paths that bypass that gate (e.g. startup restore) safe too by + // leaving the folder unmounted rather than mounting it untrusted. + if (activeSessionFolderData && !await this.isFolderMountable(session, activeSessionFolderData.uri)) { + if (currentRepo) { + await this.workspaceEditingService.removeFolders([currentRepo], true); + } + return; + } + if (!activeSessionFolderData) { if (currentRepo) { await this.workspaceEditingService.removeFolders([currentRepo], true); @@ -83,23 +97,50 @@ export class WorkspaceFolderManagementContribution extends Disposable implements }; } - private async manageTrustWorkspaceForSession(session: ISession | undefined): Promise { + /** + * Auto-trusts the isolated git worktree of the active session, but only when + * VS Code created that worktree off a base repository the user already trusts. + * This is the sole place trust is granted on the session-open path: a plain + * (non-worktree) folder is never trusted here — it must pass the open-trust + * gate ({@link ISessionsService.canOpenSession}) or an explicit trust prompt. + * + * Gating on the base repo's trust ensures trust never flows from an untrusted + * repository into its worktree. + */ + private async ensureWorktreeTrusted(session: ISession | undefined): Promise { const workspace = session?.workspace.get(); if (!workspace?.requiresWorkspaceTrust) { return; } - const folder = workspace?.folders[0]; - if (!folder) { + const folder = workspace.folders[0]; + const gitRepository = folder?.gitRepository; + // `workTreeUri` is only set for a genuine worktree (working directory !== + // repository root); a plain folder session leaves it undefined. + if (!folder || !gitRepository?.workTreeUri) { return; } - if (!this.isUriTrusted(folder.workingDirectory)) { + const [worktreeTrust, baseRepoTrust] = await Promise.all([ + this.workspaceTrustManagementService.getUriTrustInfo(folder.workingDirectory), + this.workspaceTrustManagementService.getUriTrustInfo(gitRepository.uri), + ]); + if (!worktreeTrust.trusted && baseRepoTrust.trusted) { await this.workspaceTrustManagementService.setUrisTrust([folder.workingDirectory], true); } } - private isUriTrusted(uri: URI): boolean { - return this.workspaceTrustManagementService.getTrustedUris().some(trustedUri => this.uriIdentityService.extUri.isEqual(trustedUri, uri)); + /** + * Whether `uri` may be mounted as the workspace folder. A session that + * requires workspace trust may only mount a trusted folder; anything else is + * left unmounted so the window never enters Restricted Mode behind the user's + * back. Sessions that don't require trust (e.g. virtual/cloud) always mount. + */ + private async isFolderMountable(session: ISession | undefined, uri: URI): Promise { + const workspace = session?.workspace.get(); + if (!workspace?.requiresWorkspaceTrust) { + return true; + } + return (await this.workspaceTrustManagementService.getUriTrustInfo(uri)).trusted; } } diff --git a/src/vs/sessions/contrib/workspace/test/browser/workspaceFolderManagement.test.ts b/src/vs/sessions/contrib/workspace/test/browser/workspaceFolderManagement.test.ts new file mode 100644 index 00000000000000..c0139a37643579 --- /dev/null +++ b/src/vs/sessions/contrib/workspace/test/browser/workspaceFolderManagement.test.ts @@ -0,0 +1,317 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import assert from 'assert'; +import { constObservable, observableValue } from '../../../../../base/common/observable.js'; +import { extUri } from '../../../../../base/common/resources.js'; +import { URI } from '../../../../../base/common/uri.js'; +import { Codicon } from '../../../../../base/common/codicons.js'; +import { mock } from '../../../../../base/test/common/mock.js'; +import { ensureNoDisposablesAreLeakedInTestSuite } from '../../../../../base/test/common/utils.js'; +import { IUriIdentityService } from '../../../../../platform/uriIdentity/common/uriIdentity.js'; +import { IWorkspace, IWorkspaceContextService } from '../../../../../platform/workspace/common/workspace.js'; +import { IWorkspaceFolderCreationData } from '../../../../../platform/workspaces/common/workspaces.js'; +import { IWorkspaceTrustManagementService, IWorkspaceTrustUriInfo } from '../../../../../platform/workspace/common/workspaceTrust.js'; +import { IWorkspaceEditingService } from '../../../../../workbench/services/workspaces/common/workspaceEditing.js'; +import { IWorkspaceFolderLabelService } from '../../../../../workbench/services/workspaces/common/workspaceFolderLabelService.js'; +import { ChatInteractivity, IChat, ISessionFolder, ISessionGitRepository, ISessionWorkspace } from '../../../../services/sessions/common/session.js'; +import { IActiveSession } from '../../../../services/sessions/common/sessionsManagement.js'; +import { ISessionsService } from '../../../../services/sessions/browser/sessionsService.js'; +import { WorkspaceFolderManagementContribution } from '../../browser/workspaceFolderManagement.js'; + +const stubChat = { + resource: URI.parse('test:///chat'), + createdAt: new Date(), + title: constObservable('Chat'), + updatedAt: constObservable(new Date()), + status: constObservable(0), + changes: constObservable([]), + checkpoints: constObservable(undefined), + modelId: constObservable(undefined), + modelSource: constObservable(undefined), + mode: constObservable(undefined), + isArchived: constObservable(false), + isRead: constObservable(true), + interactivity: constObservable(ChatInteractivity.Full), + description: constObservable(undefined), + lastTurnEnd: constObservable(undefined), +} satisfies IChat; + +/** A plain in-place folder (not a worktree): `gitRepository.workTreeUri` is undefined. */ +function localFolder(path: string): ISessionFolder { + const uri = URI.file(path); + return { root: uri, workingDirectory: uri, name: path, description: undefined }; +} + +/** + * A folder whose working directory is a git worktree cut from `repoPath` + * (working directory !== repository root, so `workTreeUri` is set). + */ +function worktreeFolder(repoPath: string, worktreePath: string): ISessionFolder { + const root = URI.file(repoPath); + const workingDirectory = URI.file(worktreePath); + const gitRepository: ISessionGitRepository = { + uri: root, + workTreeUri: workingDirectory, + baseBranchName: undefined, + gitHubInfo: constObservable(undefined), + }; + return { root, workingDirectory, name: worktreePath, description: undefined, gitRepository }; +} + +function makeWorkspace(folder: ISessionFolder, requiresWorkspaceTrust: boolean): ISessionWorkspace { + return { + uri: folder.root, + label: folder.name, + icon: Codicon.folder, + folders: [folder], + requiresWorkspaceTrust, + isVirtualWorkspace: false, + }; +} + +function makeActiveSession(sessionId: string, workspace: ISessionWorkspace | undefined): IActiveSession { + return { + resource: URI.parse(`test:///${sessionId}`), + sessionId, + providerId: 'test', + sessionType: 'test', + icon: Codicon.vm, + createdAt: new Date(), + workspace: constObservable(workspace), + title: constObservable('Test'), + updatedAt: constObservable(new Date()), + status: constObservable(0), + changesets: constObservable([]), + changes: constObservable([]), + modelId: constObservable(undefined), + mode: constObservable(undefined), + loading: constObservable(false), + isArchived: constObservable(false), + isRead: constObservable(true), + description: constObservable(undefined), + lastTurnEnd: constObservable(undefined), + chats: constObservable([]), + mainChat: constObservable(stubChat), + capabilities: constObservable({ supportsMultipleChats: false }), + activeChat: constObservable(stubChat), + isCreated: constObservable(true), + sticky: constObservable(false), + openChats: constObservable([]), + closedChats: constObservable([]), + lastClosedChat: undefined, + visibleChatTabs: constObservable([]), + shouldShowChatTabs: constObservable(false), + }; +} + +class TestWorkspaceEditing extends mock() { + readonly addFoldersCalls: IWorkspaceFolderCreationData[][] = []; + readonly removeFoldersCalls: URI[][] = []; + readonly updateFoldersCalls: IWorkspaceFolderCreationData[][] = []; + /** The currently-mounted folders, read back by the context service. */ + folders: URI[] = []; + + override async addFolders(folders: IWorkspaceFolderCreationData[]): Promise { + this.addFoldersCalls.push([...folders]); + this.folders = folders.map(folder => folder.uri); + } + + override async removeFolders(folders: URI[]): Promise { + this.removeFoldersCalls.push([...folders]); + this.folders = []; + } + + override async updateFolders(_index: number, _deleteCount: number, folders: IWorkspaceFolderCreationData[] | undefined): Promise { + this.updateFoldersCalls.push(folders ? [...folders] : []); + this.folders = (folders ?? []).map(folder => folder.uri); + } +} + +class TestWorkspaceTrust extends mock() { + readonly trusted = new Set(); + readonly setUrisTrustCalls: string[][] = []; + + trust(uri: URI): void { + this.trusted.add(uri.toString()); + } + + override async getUriTrustInfo(uri: URI): Promise { + return { trusted: this.trusted.has(uri.toString()), uri }; + } + + override async setUrisTrust(uris: URI[], trusted: boolean): Promise { + this.setUrisTrustCalls.push(uris.map(uri => uri.toString())); + if (trusted) { + for (const uri of uris) { + this.trusted.add(uri.toString()); + } + } + } +} + +suite('WorkspaceFolderManagementContribution', () => { + + const disposables = ensureNoDisposablesAreLeakedInTestSuite(); + + function createContribution() { + const activeSession = observableValue('activeSession', undefined); + const workspaceEditing = new TestWorkspaceEditing(); + const workspaceTrust = new TestWorkspaceTrust(); + + const sessionsService = new class extends mock() { + override readonly activeSession = activeSession; + }; + const workspaceContextService = new class extends mock() { + override getWorkspace(): IWorkspace { + return { folders: workspaceEditing.folders.map(uri => ({ uri })) } as unknown as IWorkspace; + } + }; + const uriIdentityService = new class extends mock() { + override readonly extUri = extUri; + }; + const folderLabel = new class extends mock() { + override getWorkspaceFolderLabel(): string { return 'label'; } + }; + + const contribution = disposables.add(new WorkspaceFolderManagementContribution( + sessionsService, + uriIdentityService, + workspaceContextService, + workspaceEditing, + workspaceTrust, + folderLabel, + )); + + return { contribution, activeSession, workspaceEditing, workspaceTrust }; + } + + // Lets the reactive autorun's queued folder-management work run to completion. + async function settle(): Promise { + for (let i = 0; i < 50; i++) { + await Promise.resolve(); + } + } + + test('mounts a session that does not require workspace trust without granting trust', async () => { + const { activeSession, workspaceEditing, workspaceTrust } = createContribution(); + const folder = localFolder('/repo-virtual'); + + activeSession.set(makeActiveSession('a', makeWorkspace(folder, false)), undefined); + await settle(); + + assert.deepStrictEqual({ + added: workspaceEditing.addFoldersCalls.map(call => call.map(entry => entry.uri.toString())), + granted: workspaceTrust.setUrisTrustCalls, + }, { + added: [[folder.workingDirectory.toString()]], + granted: [], + }); + }); + + test('mounts an already-trusted folder without granting trust', async () => { + const { activeSession, workspaceEditing, workspaceTrust } = createContribution(); + const folder = localFolder('/repo-trusted'); + workspaceTrust.trust(folder.workingDirectory); + + activeSession.set(makeActiveSession('a', makeWorkspace(folder, true)), undefined); + await settle(); + + assert.deepStrictEqual({ + added: workspaceEditing.addFoldersCalls.map(call => call.map(entry => entry.uri.toString())), + granted: workspaceTrust.setUrisTrustCalls, + }, { + added: [[folder.workingDirectory.toString()]], + granted: [], + }); + }); + + test('does not mount an untrusted folder and never silently grants trust', async () => { + const { activeSession, workspaceEditing, workspaceTrust } = createContribution(); + const folder = localFolder('/repo-untrusted'); + + activeSession.set(makeActiveSession('a', makeWorkspace(folder, true)), undefined); + await settle(); + + assert.deepStrictEqual({ + added: workspaceEditing.addFoldersCalls.length, + updated: workspaceEditing.updateFoldersCalls.length, + granted: workspaceTrust.setUrisTrustCalls, + }, { + added: 0, + updated: 0, + granted: [], + }); + }); + + test('auto-trusts and mounts a worktree cut from a trusted repository', async () => { + const { activeSession, workspaceEditing, workspaceTrust } = createContribution(); + const folder = worktreeFolder('/repo', '/repo.worktrees/feature'); + // The user trusted the base repo; the worktree itself is not yet trusted. + workspaceTrust.trust(folder.root); + + activeSession.set(makeActiveSession('a', makeWorkspace(folder, true)), undefined); + await settle(); + + assert.deepStrictEqual({ + granted: workspaceTrust.setUrisTrustCalls, + added: workspaceEditing.addFoldersCalls.map(call => call.map(entry => entry.uri.toString())), + }, { + granted: [[folder.workingDirectory.toString()]], + added: [[folder.workingDirectory.toString()]], + }); + }); + + test('does not auto-trust or mount a worktree cut from an untrusted repository', async () => { + const { activeSession, workspaceEditing, workspaceTrust } = createContribution(); + const folder = worktreeFolder('/repo-untrusted', '/repo-untrusted.worktrees/feature'); + + activeSession.set(makeActiveSession('a', makeWorkspace(folder, true)), undefined); + await settle(); + + assert.deepStrictEqual({ + granted: workspaceTrust.setUrisTrustCalls, + added: workspaceEditing.addFoldersCalls.length, + }, { + granted: [], + added: 0, + }); + }); + + test('does not mount a session that has no workspace folder', async () => { + const { activeSession, workspaceEditing } = createContribution(); + + activeSession.set(makeActiveSession('a', undefined), undefined); + await settle(); + + assert.deepStrictEqual({ + added: workspaceEditing.addFoldersCalls.length, + updated: workspaceEditing.updateFoldersCalls.length, + }, { + added: 0, + updated: 0, + }); + }); + + test('unmounts the current folder when switching to an untrusted session', async () => { + const { activeSession, workspaceEditing, workspaceTrust } = createContribution(); + const trustedFolder = localFolder('/repo-trusted'); + const untrustedFolder = localFolder('/repo-untrusted'); + workspaceTrust.trust(trustedFolder.workingDirectory); + + activeSession.set(makeActiveSession('a', makeWorkspace(trustedFolder, true)), undefined); + await settle(); + activeSession.set(makeActiveSession('b', makeWorkspace(untrustedFolder, true)), undefined); + await settle(); + + assert.deepStrictEqual({ + added: workspaceEditing.addFoldersCalls.map(call => call.map(entry => entry.uri.toString())), + removed: workspaceEditing.removeFoldersCalls.map(call => call.map(uri => uri.toString())), + }, { + added: [[trustedFolder.workingDirectory.toString()]], + removed: [[trustedFolder.workingDirectory.toString()]], + }); + }); +}); diff --git a/src/vs/sessions/services/sessions/browser/sessionsService.ts b/src/vs/sessions/services/sessions/browser/sessionsService.ts index 2c627826d3427b..bed2baa348f611 100644 --- a/src/vs/sessions/services/sessions/browser/sessionsService.ts +++ b/src/vs/sessions/services/sessions/browser/sessionsService.ts @@ -15,7 +15,7 @@ import { InstantiationType, registerSingleton } from '../../../../platform/insta import { ILogService } from '../../../../platform/log/common/log.js'; import { IStorageService, StorageScope, StorageTarget } from '../../../../platform/storage/common/storage.js'; import { IUriIdentityService } from '../../../../platform/uriIdentity/common/uriIdentity.js'; -import { IWorkspaceTrustRequestService } from '../../../../platform/workspace/common/workspaceTrust.js'; +import { IWorkspaceTrustManagementService, IWorkspaceTrustRequestService } from '../../../../platform/workspace/common/workspaceTrust.js'; import { localize } from '../../../../nls.js'; import { ChatInteractivity, ChatOriginKind, IChat, ISession, SessionStatus } from '../common/session.js'; import { IActiveSession, ICreateNewChatInSessionOptions, ICreateNewSessionOptions, inheritableSessionTarget, IRecentlyOpenedSessions, ISessionsChangeEvent, ISessionsManagementService, IToggleSessionStickinessEvent } from '../common/sessionsManagement.js'; @@ -175,6 +175,13 @@ export interface ISessionsService { */ openSession(sessionResource: URI, options?: { preserveFocus?: boolean }): Promise; + /** + * Whether the given session may be opened, honoring workspace trust. Prompts + * for trust on any untrusted folder the session runs in and resolves to + * `false` if the user declines. + */ + canOpenSession(session: ISession): Promise; + /** * Open a specific chat within a session and show it in the grid. */ @@ -355,6 +362,7 @@ export class SessionsService extends Disposable implements ISessionsService { @ICustomViewService private readonly customViewService: ICustomViewService, @IInstantiationService private readonly instantiationService: IInstantiationService, @IWorkspaceTrustRequestService private readonly workspaceTrustRequestService: IWorkspaceTrustRequestService, + @IWorkspaceTrustManagementService private readonly workspaceTrustManagementService: IWorkspaceTrustManagementService, @ISessionChangesStatsCache private readonly changesStatsCache: ISessionChangesStatsCache, ) { super(); @@ -804,6 +812,42 @@ export class SessionsService extends Disposable implements ISessionsService { await this._waitForOpenSessionToLoad(sessionData, token); } + async canOpenSession(session: ISession): Promise { + // Re-focusing the already-active session is not a new open, so never gate it. + if (this.activeSession.get()?.sessionId === session.sessionId) { + return true; + } + const workspace = session.workspace.get(); + // A session that doesn't require workspace trust (virtual/cloud/quick-chat), + // or whose workspace metadata has not hydrated yet, opens without a check; a + // folder-less workspace has nothing to gate. + if (!workspace?.requiresWorkspaceTrust) { + return true; + } + // Every folder the session operates in must be trusted before it opens, not + // just the primary one: the agent — and its tasks, terminals and other + // tooling — can run against any of the session's working directories, so we + // make no assumptions about the non-primary folders being harmless. Check + // all in parallel (fast path when already trusted), then surface VS Code's + // standard workspace-trust dialog for each untrusted folder in turn. + // Declining any leaves the current session (or empty new-session slot) + // untouched. Run from this imperative open path (not the reactive mount), + // the prompt fires once per open and cannot loop. + const folders = workspace.folders.map(folder => folder.workingDirectory); + const trustInfos = await Promise.all(folders.map(folder => this.workspaceTrustManagementService.getUriTrustInfo(folder))); + const untrustedFolders = folders.filter((_, index) => !trustInfos[index].trusted); + for (const folder of untrustedFolders) { + const trusted = await this.workspaceTrustRequestService.requestResourcesTrust({ + uri: folder, + message: localize('sessionsService.trustFolderMessage', "An agent session will be able to read files, run commands, and make changes in this folder."), + }); + if (!trusted) { + return false; + } + } + return true; + } + showSession(sessionResource: URI, options?: { preserveFocus?: boolean }): void { this._cancelRestore(); this._startOpenSession(); From 9fddeff5003cbbd63241ee5d19f5c9481648e354 Mon Sep 17 00:00:00 2001 From: Robo Date: Sun, 23 Aug 2026 15:05:04 +0900 Subject: [PATCH 4/9] chore: bump inno-updater@0.23.0 (#331941) --- build/win32/Cargo.lock | 2 +- build/win32/Cargo.toml | 2 +- build/win32/inno_updater.exe | Bin 606720 -> 609280 bytes 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build/win32/Cargo.lock b/build/win32/Cargo.lock index 8e974c66a4c984..1d889690230606 100644 --- a/build/win32/Cargo.lock +++ b/build/win32/Cargo.lock @@ -242,7 +242,7 @@ dependencies = [ [[package]] name = "inno_updater" -version = "0.22.0" +version = "0.23.0" dependencies = [ "byteorder", "crc", diff --git a/build/win32/Cargo.toml b/build/win32/Cargo.toml index b9849c5257ca08..486809f83426f2 100644 --- a/build/win32/Cargo.toml +++ b/build/win32/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "inno_updater" -version = "0.22.0" +version = "0.23.0" authors = ["Microsoft "] edition = "2024" build = "build.rs" diff --git a/build/win32/inno_updater.exe b/build/win32/inno_updater.exe index b5f36ceec373b77a3cb7d3ff39d191e0c0ab6b2d..7e47fb9824753dcac7b839f7c9e0dbac44c22bf7 100644 GIT binary patch delta 183567 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 delta 181120 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

o@lF#C`FN?`s@u%)p6C)PzO8oF)F})ohA0RpR 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 From db3af97aab075a71b445363c9b290761e622506e Mon Sep 17 00:00:00 2001 From: Don Jayamanne Date: Sun, 23 Aug 2026 16:19:32 +1000 Subject: [PATCH 5/9] chat: style the prompt timeline flyout scrollbar (#331989) Fixes #331988 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../promptTimeline/media/promptTimeline.css | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/vs/workbench/contrib/chat/browser/promptTimeline/media/promptTimeline.css b/src/vs/workbench/contrib/chat/browser/promptTimeline/media/promptTimeline.css index 8afae1e7b9f8bf..4d58d6d7a13706 100644 --- a/src/vs/workbench/contrib/chat/browser/promptTimeline/media/promptTimeline.css +++ b/src/vs/workbench/contrib/chat/browser/promptTimeline/media/promptTimeline.css @@ -654,6 +654,34 @@ z-index: 20; } +.prompt-timeline-gutter-panel::-webkit-scrollbar { + width: var(--prompt-timeline-scrollbar-gutter); +} + +.prompt-timeline-gutter-panel::-webkit-scrollbar-track { + background: var(--vscode-scrollbar-background); +} + +.prompt-timeline-gutter-panel::-webkit-scrollbar-thumb { + min-height: var(--vscode-spacing-size200); + border: var(--vscode-strokeThickness) solid transparent; + border-radius: var(--vscode-cornerRadius-circle); + background: var(--vscode-scrollbarSlider-background); + background-clip: padding-box; +} + +.prompt-timeline-gutter-panel::-webkit-scrollbar-thumb:hover { + background-color: var(--vscode-scrollbarSlider-hoverBackground); +} + +.prompt-timeline-gutter-panel::-webkit-scrollbar-thumb:active { + background-color: var(--vscode-scrollbarSlider-activeBackground); +} + +.prompt-timeline-gutter-panel::-webkit-scrollbar-corner { + display: none; +} + .prompt-timeline-rail-gutter.revealed .prompt-timeline-gutter-panel { opacity: 1; transform: translateY(-50%) scale(1); From 4e6550688e4e412b5dd2865d2acf339e21c64a08 Mon Sep 17 00:00:00 2001 From: Benjamin Christopher Simmonds <44439583+benibenj@users.noreply.github.com> Date: Sun, 23 Aug 2026 08:22:31 +0200 Subject: [PATCH 6/9] Remove the workspace chat pill (#331972) sessions: remove workspace chat pill Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Dmitriy Vasyura --- .../browser/sessionChatInputToolbar.test.ts | 4 +- .../files/browser/files.contribution.ts | 1 - .../files/browser/workspaceFolderActions.ts | 191 ------------------ .../browser/workspaceFolderActions.test.ts | 77 ------- src/vs/workbench/browser/media/chatPills.css | 18 -- 5 files changed, 1 insertion(+), 290 deletions(-) delete mode 100644 src/vs/sessions/contrib/files/browser/workspaceFolderActions.ts delete mode 100644 src/vs/sessions/contrib/files/test/browser/workspaceFolderActions.test.ts diff --git a/src/vs/sessions/contrib/chat/test/browser/sessionChatInputToolbar.test.ts b/src/vs/sessions/contrib/chat/test/browser/sessionChatInputToolbar.test.ts index 0beae6ba6931a0..f8743c0f92e48f 100644 --- a/src/vs/sessions/contrib/chat/test/browser/sessionChatInputToolbar.test.ts +++ b/src/vs/sessions/contrib/chat/test/browser/sessionChatInputToolbar.test.ts @@ -15,7 +15,7 @@ import { SESSION_CUSTOMIZATIONS_PILL_ID } from '../../browser/sessionCustomizati suite('SessionChatInputToolbar', () => { ensureNoDisposablesAreLeakedInTestSuite(); - test('maps turn-status, contributed metadata and hosted pill actions onto togglable pill kinds', () => { + test('maps turn-status and hosted pill actions onto togglable pill kinds', () => { assert.deepStrictEqual([ getSessionChatPillKindForAction(CHAT_TURN_CHANGES_PILL_ID), getSessionChatPillKindForAction(VIEW_SESSION_CHANGES_COMMAND_ID), @@ -25,7 +25,6 @@ suite('SessionChatInputToolbar', () => { getSessionChatPillKindForAction(OPEN_ISSUE_ACTION_ID), getSessionChatPillKindForAction(SESSION_BROWSERS_PILL_ID), getSessionChatPillKindForAction(SESSION_SUBAGENTS_PILL_ID), - getSessionChatPillKindForAction('workbench.agentSessions.action.openFilesView'), ], [ SessionChatPillKind.Changes, SessionChatPillKind.Changes, @@ -35,7 +34,6 @@ suite('SessionChatInputToolbar', () => { SessionChatPillKind.Issues, SessionChatPillKind.Browsers, SessionChatPillKind.Subagents, - undefined, ]); }); }); diff --git a/src/vs/sessions/contrib/files/browser/files.contribution.ts b/src/vs/sessions/contrib/files/browser/files.contribution.ts index 40643c99f500c7..cd9892da0ba498 100644 --- a/src/vs/sessions/contrib/files/browser/files.contribution.ts +++ b/src/vs/sessions/contrib/files/browser/files.contribution.ts @@ -19,7 +19,6 @@ import { ViewPaneContainer } from '../../../../workbench/browser/parts/views/vie import { IViewsService } from '../../../../workbench/services/views/common/viewsService.js'; import { IsSessionsWindowContext, WorkspaceFolderCountContext } from '../../../../workbench/common/contextkeys.js'; import { SESSIONS_FILES_EMPTY_VIEW_ID, SESSIONS_FILES_VIEW_ID, SessionsExplorerEmptyView, SessionsExplorerView } from './filesView.js'; -import './workspaceFolderActions.js'; import { KeyCode, KeyMod } from '../../../../base/common/keyCodes.js'; import { SessionHasGitRepositoryContext, SessionHasGitSyncActionRunningContext, IsNewChatSessionContext, IsPhoneLayoutContext, SessionHasWorkspaceContext } from '../../../common/contextkeys.js'; import { IWorkspaceContextService } from '../../../../platform/workspace/common/workspace.js'; diff --git a/src/vs/sessions/contrib/files/browser/workspaceFolderActions.ts b/src/vs/sessions/contrib/files/browser/workspaceFolderActions.ts deleted file mode 100644 index 52bc9847437bf1..00000000000000 --- a/src/vs/sessions/contrib/files/browser/workspaceFolderActions.ts +++ /dev/null @@ -1,191 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - -import { $ } from '../../../../base/browser/dom.js'; -import { IActionViewItemOptions } from '../../../../base/browser/ui/actionbar/actionViewItems.js'; -import { IManagedHoverContent } from '../../../../base/browser/ui/hover/hover.js'; -import { Codicon } from '../../../../base/common/codicons.js'; -import { structuralEquals } from '../../../../base/common/equals.js'; -import { Emitter } from '../../../../base/common/event.js'; -import { MarkdownString } from '../../../../base/common/htmlContent.js'; -import { Disposable } from '../../../../base/common/lifecycle.js'; -import { autorun, derivedOpts, IObservable } from '../../../../base/common/observable.js'; -import { ThemeIcon } from '../../../../base/common/themables.js'; -import { localize, localize2 } from '../../../../nls.js'; -import { IActionViewItemService } from '../../../../platform/actions/browser/actionViewItemService.js'; -import { Action2, MenuItemAction, registerAction2 } from '../../../../platform/actions/common/actions.js'; -import { ICommandService } from '../../../../platform/commands/common/commands.js'; -import { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js'; -import { ServicesAccessor } from '../../../../platform/instantiation/common/instantiation.js'; -import { IWorkbenchContribution, registerWorkbenchContribution2, WorkbenchPhase } from '../../../../workbench/common/contributions.js'; -import { IViewsService } from '../../../../workbench/services/views/common/viewsService.js'; -import { IAgentWorkbenchLayoutService } from '../../../browser/workbench.js'; -import { Menus } from '../../../browser/menus.js'; -import { getSessionWorkspaceDisplayInfo, ISessionWorkspaceDisplayInfo } from '../../../browser/sessionWorkspace.js'; -import { ChatPillActionViewItem } from '../../../../workbench/browser/chatPills.js'; -import { SessionHasWorkspaceContext, IsQuickChatSessionContext } from '../../../common/contextkeys.js'; -import { NEW_FILE_TAB_COMMAND_ID } from '../../../common/sessionCommands.js'; -import { ISessionContext } from '../../../services/sessions/browser/sessionContext.js'; -import { ISessionsService } from '../../../services/sessions/browser/sessionsService.js'; -import { IActiveSession } from '../../../services/sessions/common/sessionsManagement.js'; -import { SESSIONS_FILES_VIEW_ID } from './filesView.js'; - -// --- Open Files view action - -export class OpenFilesViewAction extends Action2 { - static readonly ID = 'workbench.agentSessions.action.openFilesView'; - - constructor() { - super({ - id: OpenFilesViewAction.ID, - title: localize2('agentSessions.files', 'Files'), - icon: Codicon.folder, - f1: false, - // Workspace metadata pill, ordered before changes. - menu: { - id: Menus.SessionHeaderMeta, - group: 'navigation', - order: -10, - when: ContextKeyExpr.and( - SessionHasWorkspaceContext, - IsQuickChatSessionContext.negate(), - ) - }, - }); - } - - override async run(accessor: ServicesAccessor, session?: IActiveSession): Promise { - const sessionsService = accessor.get(ISessionsService); - const viewsService = accessor.get(IViewsService); - const commandService = accessor.get(ICommandService); - const layoutService = accessor.get(IAgentWorkbenchLayoutService); - - // The clicked pill forwards its session. Fall back to the active session - // when invoked without an explicit argument. - const targetSession = session ?? sessionsService.activeSession.get(); - if (!targetSession) { - return; - } - - if (layoutService.isSinglePaneLayoutEnabled) { - await commandService.executeCommand(NEW_FILE_TAB_COMMAND_ID); - } - - await viewsService.openView(SESSIONS_FILES_VIEW_ID, false); - } -} -registerAction2(OpenFilesViewAction); - -// --- Open Files view action view item - -/** - * Renders the session's workspace folder as a `