Change:
Steps to Reproduce: the web UI "Open Folder" in a path that exists on disk and enter <img width="791" alt="image" src=""
This is weird. The in the quick pick don't appear to be getting updated.
Also, not just in web.
Git bisect points to
I don't see anything super obvious in , but here's the behavior I can observe: simple file picker sets the does not get reset. The old behavior is that it would get reset.
Clearing here fixes things, but I don't think that's the right fix:

Discussion:
this.ui.list.sortByLabel = this.sortByLabel; if (this.itemsUpdated) { this.itemsUpdated = false; <ins> const currentActiveItems = this._activeItems; </ins> this.ui.list.setElements(this.items); this.ui.list.filter(this.filterValue(this.ui.inputBox.value)); this.ui.checkAll.checked = this.ui.list.getAllVisibleChecked();

this.ui.count.setCount(this.ui.list.getCheckedCount()); switch (this._itemActivation) { case ItemActivation.NONE: <ins> // Handle the case where we had active items (i.e. someone chose an item) // but the initial item activation is set to none. Calling clearFocus will // not trigger the onDidFocus event because when the tree receives new elements, // it sets the focus to no elements. So we need to set & fire the active items // accordingly to reflect the state change after setting the items. if (currentActiveItems.length > 0) { this._activeItems = new Array<T>(); this.onDidChangeActiveEmitter.fire(this._activeItems); } </ins> this._itemActivation = ItemActivation.FIRST; // only valid once, then unset break; case ItemActivation.SECOND:

import { toDisposable } from 'vs/base/common/lifecycle'; import { mainWindow } from 'vs/base/browser/window'; import { QuickPick } from 'vs/platform/quickinput/browser/quickInput'; <del> import { IQuickPickItem } from 'vs/platform/quickinput/common/quickInput'; </del> <ins> import { IQuickPickItem, ItemActivation } from 'vs/platform/quickinput/common/quickInput'; </ins> import { TestInstantiationService } from 'vs/platform/instantiation/test/common/instantiationServiceMock'; import { IThemeService } from 'vs/platform/theme/common/themeService'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration';

// Since we don't select any items, the selected items should be empty assert.strictEqual(quickpick.selectedItems.length, 0); }); <ins> test('activeItems - verify onDidChangeActive is triggered after setting items', async () => { const quickpick = store.add(controller.createQuickPick()); // Setup listener for verification const activeItemsFromEvent: IQuickPickItem[] = []; store.add(quickpick.onDidChangeActive(items => activeItemsFromEvent.push(...items))); quickpick.show(); const item = { label: 'step 1' }; quickpick.items = [item]; assert.strictEqual(activeItemsFromEvent.length, 1); assert.strictEqual(activeItemsFromEvent[0], item); assert.strictEqual(quickpick.activeItems.length, 1); assert.strictEqual(quickpick.activeItems[0], item); }); test('activeItems - verify setting itemActivation to None still triggers onDidChangeActive after selection #207832', async () => { const quickpick = store.add(controller.createQuickPick()); const item = { label: 'step 1' }; quickpick.items = [item]; quickpick.show(); assert.strictEqual(quickpick.activeItems[0], item); // Setup listener for verification const activeItemsFromEvent: IQuickPickItem[] = []; store.add(quickpick.onDidChangeActive(items => activeItemsFromEvent.push(...items))); // Trigger a change quickpick.itemActivation = ItemActivation.NONE; quickpick.items = [item]; assert.strictEqual(activeItemsFromEvent.length, 0); assert.strictEqual(quickpick.activeItems.length, 0); }); </ins> });