jiebi/CodeConvo huggingface dataset:
Change:
a repo in :bug: see this !
This is expected if the repo that you open has tasks that run on . Could you pls provide me with a repo for which this happens that doesn't have those?
seeing this dialog when I just open a folder, so wondering if something with workspace trust has changed recently. No changes with tasks recently could explain this. !
Doesn't repro in , repros in : Bad: Good:
found these task PRs in that time frame: ,
found it also happens in an empty window on desktop
Still seeing this in (and also RemoteHub on desktop) with the changes in !
This is coming from -here. perhaps we don't want to do that for the or only do that in trusted workspaces? !

Discussion:
return Promise.resolve<Task[]>([]); } <del> return this._getGroupedTasks(filter, true).then((map) => this.applyFilterToTaskMap(filter, map)); </del> <ins> return this._getGroupedTasks(filter, true, true).then((map) => this.applyFilterToTaskMap(filter, map)); </ins> } public taskTypes(): string[] {

return !definition || !definition.when || this._contextKeyService.contextMatchesRules(definition.when); } <del> private async _getGroupedTasks(filter?: ITaskFilter, waitToActivate?: boolean): Promise<TaskMap> { </del> <ins> private async _getGroupedTasks(filter?: ITaskFilter, waitToActivate?: boolean, knownOnlyOrTrusted?: boolean): Promise<TaskMap> { </ins> await this._waitForAllSupportedExecutions; const type = filter?.type; const needsRecentTasksMigration = this._needsRecentTasksMigration();

} try { <del> await Promise.all(this._getCustomTaskPromises(Array.from(await this.getWorkspaceTasks()), filter, result, contributedTasks, waitToActivate)); </del> <ins> let tasks: [string, IWorkspaceFolderTaskResult][] = []; // prevent workspace trust dialog from being shown in unexpected cases #224881 if (!knownOnlyOrTrusted || this._workspaceTrustManagementService.isWorkspaceTrusted()) { tasks = Array.from(await this.getWorkspaceTasks()); } await Promise.all(this._getCustomTaskPromises(tasks, filter, result, contributedTasks, waitToActivate)); </ins> if (needsRecentTasksMigration) { // At this point we have all the tasks and can migrate the recently used tasks. await this._migrateRecentTasks(result.all());
Change:
From the latest code I think the memory leak still exists. When there is a content change in one of the notebook document, we will trigger a recompute of diff if the new view model is the same as before, we didn't dispose the new view model if they are not equal, we will set the new view model, however the are not disposed either
Want to ensure the code doesn't leave room for such situations in the future. I.e. want to refactor slightly
Further changes Change the following code to The problem with existing code is, The ownership of is not clear, i.e. who disposes this. The caller creates the and expects the to dispose the instance of Expected: What ever creates an object will be responsible for disposing it. This simple rule will reduce leaks

Discussion:
import { CellEditState, ICellOutputViewModel, IDisplayOutputLayoutUpdateRequest, IGenericCellViewModel, IInsetRenderOutput, INotebookEditorCreationOptions, INotebookEditorOptions } from 'vs/workbench/contrib/notebook/browser/notebookBrowser'; import { DiffSide, DIFF_CELL_MARGIN, IDiffCellInfo, INotebookTextDiffEditor, INotebookDiffViewModel } from 'vs/workbench/contrib/notebook/browser/diff/notebookDiffEditorBrowser'; import { Emitter, Event } from 'vs/base/common/event'; <del> import { DisposableStore, IDisposable, toDisposable } from 'vs/base/common/lifecycle'; </del> <ins> import { DisposableStore, dispose, IDisposable, toDisposable } from 'vs/base/common/lifecycle'; </ins> import { EditorPane } from 'vs/workbench/browser/parts/editor/editorPane'; import { CellUri, INotebookDiffEditorModel, INotebookDiffResult, NOTEBOOK_DIFF_EDITOR_ID, NotebookSetting } from 'vs/workbench/contrib/notebook/common/notebookCommon'; import { URI } from 'vs/base/common/uri';

NotebookTextDiffEditor.prettyChanges(this._model, diffResult.cellsDiff); const { viewModels, firstChangeIndex } = NotebookTextDiffEditor.computeDiff(this.instantiationService, this.configurationService, this._model, this._eventDispatcher!, diffResult, this.fontInfo); <del> if (!this.notebookDiffViewModel.isEqual(viewModels)) { </del> <ins> if (this.notebookDiffViewModel.isEqual(viewModels)) { dispose(viewModels); } else { </ins> this._originalWebview?.removeInsets([...this._originalWebview?.insetMapping.keys()]); this._modifiedWebview?.removeInsets([...this._modifiedWebview?.insetMapping.keys()]); this.notebookDiffViewModel.setViewModel(viewModels);

super.dispose(); } clear() { <ins> this.disposables.clear(); </ins> dispose(Array.from(this.placeholderAndRelatedCells.keys())); this.placeholderAndRelatedCells.clear(); dispose(this.originalCellViewModels);

} setViewModel(cellViewModels: DiffElementCellViewModelBase[]) { <del> this.disposables.clear(); </del> const oldLength = this._items.length; <ins> this.clear(); </ins> this._items.splice(0, oldLength); let placeholder: DiffElementPlaceholderViewModel | undefined = undefined;
Change:
Steps to Reproduce: a new git repository a file, and create the initial commit the repository to GitHub Expected: history graph should be empty Actual: history graph contains the initial repository

Discussion:
} // If we only have one history item that contains all the labels (current, remote, base), <del> // we don't need to show it, unless it is the root commit (does not have any parents). if (historyItemsElement.length === 1 && historyItemsElement[0].parentIds.length > 0) { </del> <ins> // we don't need to show it, unless it is the root commit (does not have any parents) and // the repository has not been published yet. if (historyItemsElement.length === 1 && (historyItemsElement[0].parentIds.length > 0 || currentHistoryItemGroup.remote)) { </ins> const currentHistoryItemGroupLabels = [ currentHistoryItemGroup.name, ...currentHistoryItemGroup.remote ? [currentHistoryItemGroup.remote.name] : [],
Change:
<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Read our guide about submitting issues: --<!-- Search existing issues to avoid creating duplicates. --<!-- Test using the latest Insiders build to see if your issue has already been fixed: --<!-- Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. --<!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes/No <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version: OS Version: Steps to Reproduce: you don't have the flame graph extension installed Open a CPU profile the flame icon Extension view opens with a search for
Upstream PR

Discussion:
import { IWorkspaceContextService } from 'vs/workbench/services/workspace/common/contextService'; import { Limiter } from 'vs/base/common/async'; import Event, { Emitter } from 'vs/base/common/event'; <ins> import { manager as Settings } from 'vs/workbench/electron-main/settings'; </ins> function parseManifest(raw: string): TPromise<IExtensionManifest> { return new Promise((c, e) => {

return TPromise.wrapError(new Error(nls.localize('missingGalleryInformation', "Gallery information is missing"))); } <ins> const httpProxySettings = Settings.getValue('http.proxy'); const getAgent = url => httpProxySettings ? getProxyAgent(url, httpProxySettings) : getSystemProxyAgent(url); </ins> const url = `${ galleryInformation.galleryApiUrl }/publisher/${ extension.publisher }/extension/${ extension.name }/latest/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage?install=true`; const zipPath = path.join(tmpdir(), galleryInformation.id); const extensionPath = path.join(this.extensionsPath, `${ extension.publisher }.${ extension.name }`); const manifestPath = path.join(extensionPath, 'package.json'); <del> return download(zipPath, { url }) </del> <ins> return download(zipPath, { url: url, agent: getAgent(url) }) </ins> .then(() => validate(zipPath, extension)) .then(manifest => { this._onInstallExtension.fire(manifest); return manifest; }) .then(manifest => extract(zipPath, extensionPath, { sourcePath: 'extension', overwrite: true }).then(() => manifest))
Change:
Markdown file on Plain Text on startup: ! Same with TS in another window: ! Reproduces by reloading the window. Not sure who the right person is for this Version: 1.93.0-insider (user setup) Commit: Date: 2024-08-08T05:03:51.428Z Electron: 30.1.2 ElectronBuildId: Chromium: 124.0.6367.243 20.14.0 V8: 12.4.254.20-electron.0 OS: Windows_NT x64 10.0.
On it

Discussion:
import { firstOrDefault } from 'vs/base/common/arrays'; import { ILanguageIdCodec, TokenizationRegistry } from 'vs/editor/common/languages'; import { PLAINTEXT_LANGUAGE_ID } from 'vs/editor/common/languages/modesRegistry'; <del> import { IObservable, observableFromEvent } from 'vs/base/common/observable'; </del> export class LanguageService extends Disposable implements ILanguageService { public _serviceBrand: undefined;

} class LanguageSelection implements ILanguageSelection { <del> private readonly _value: IObservable<string>; public readonly onDidChange: Event<string>; constructor(onDidChangeLanguages: Event<void>, selector: () => string) { this._value = observableFromEvent(this, onDidChangeLanguages, () => selector()); this.onDidChange = Event.fromObservable(this._value); </del> <ins> public languageId: string; private _listener: IDisposable | null = null; private _emitter: Emitter<string> | null = null; constructor( private readonly _onDidChangeLanguages: Event<void>, private readonly _selector: () => string ) { this.languageId = this._selector(); } private _dispose(): void { if (this._listener) { this._listener.dispose(); this._listener = null; } if (this._emitter) { this._emitter.dispose(); this._emitter = null; } </ins> } <del> public get languageId(): string { return this._value.get(); } </del> <ins> public get onDidChange(): Event<string> { if (!this._listener) { this._listener = this._onDidChangeLanguages(() => this._evaluate()); } if (!this._emitter) { this._emitter = new Emitter<string>({ onDidRemoveLastListener: () => { this._dispose(); } }); } return this._emitter.event; } private _evaluate(): void { const languageId = this._selector(); if (languageId === this.languageId) { // no change return; } this.languageId = languageId; this._emitter?.fire(this.languageId); } </ins> }
Change:
[x] Flicker upon reloading VS Code Open a nb diff view Reload VS Code Immediately expand a metadata section Flicker in a few seconds [ ] Even after undoing cell changes, the cell is marked as Open a nb diff view Undo changes to a cell Close the nd diiff view Re-open the same nd diff view The reverted cell is still visible (but collapsed) as its still marked as It should be and hidden [x] After undoing cell changes, keep the cell expanded with focus on the right editor
The described behavior is how it is expected to work. If you disagree, please explain what is expected and what is not in more detail. See also our . Happy Coding!
Found that this is a pre-existing issue

Discussion:
const modifiedMedataRaw = Object.assign({}, this.modified.metadata); const originalCellMetadata = this.original.metadata; for (const key of cellMetadataKeys) { <del> modifiedMedataRaw[key] = originalCellMetadata[key]; </del> <ins> if (key in originalCellMetadata) { modifiedMedataRaw[key] = originalCellMetadata[key]; } </ins> } this.modified.textModel.metadata = modifiedMedataRaw;
Change:
Quick pick and events are disposables: is a listeners are : , , , , , A few instances of pickers or events not being disposed or registered as disposable: [x] [x] [x] [x] [x] [x] [x] [x] [x] [x] [x] [x] //cc
Thanks for catching these just taught me that there's a better way to use the quick pick API - with and that will avoid this
Interesting, curious to see how that change looks like, I have a lot more places:

Discussion:
} private _showToggleVisibilityQuickPick() { <del> const quickPick = this._quickInputService.createQuickPick(); </del> <ins> const quickPick = this._register(this._quickInputService.createQuickPick()); </ins> quickPick.hideInput = true; quickPick.hideCheckAll = true; quickPick.canSelectMany = true;

} } quickPick.selectedItems = selectedItems; <del> quickPick.onDidChangeSelection(async e => { </del> <ins> this._register(quickPick.onDidChangeSelection(async e => { </ins> let newValue: 'both' | 'gutter' | 'overviewRuler' | 'never' = 'never'; if (e.includes(gutterIcon)) { if (e.includes(overviewRulerIcon)) {

newValue = 'overviewRuler'; } await this._configurationService.updateValue(TerminalSettingId.ShellIntegrationDecorationsEnabled, newValue); <del> }); </del> <ins> })); </ins> quickPick.ok = false; quickPick.show(); }

// Create and show quick pick const pick = this._quickInputService.createQuickPick<IQuickPickItem | ITerminalLinkQuickPickItem>({ useSeparators: true }); <ins> const disposables = new DisposableStore(); disposables.add(pick); </ins> pick.items = picks; pick.placeholder = localize('terminal.integrated.openDetectedLink', "Select the link to open, type to filter all links"); pick.sortByLabel = false;

// Show all results only when filtering begins, this is done so the quick pick will show up // ASAP with only the viewport entries. let accepted = false; <del> const disposables = new DisposableStore(); </del> if (!usingAllLinks) { disposables.add(Event.once(pick.onDidChangeValue)(async () => { const allLinks = await links.all;
Change:
<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Read our guide about submitting issues: --<!-- Search existing issues to avoid creating duplicates. --<!-- Test using the latest Insiders build to see if your issue has already been fixed: --<!-- Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. --<!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version: 1.92.1 Commit: OS Version: Darwin x64 23.5.0 Steps to Reproduce: Missing profile manager buttons both on and , with the snapshots, missing , and etc. <img width="872" alt="2024-08-13 11 12 22" src=""<img width="872" alt="2024-08-13 11 12 37" src=""The number of optional profiles has decreased. However, when I try to 'Create with profile', I find that there are still plenty of other profiles available. <img width="685" alt="2024-08-13 11 13 31" src=""
I found some message in DevTools Maybe the profile and profile have same id, ,it create from different computer, after sync setting, make workbench manager broken. And the exception not be catched. How could i fix this? The button is missing, and the also not have it.
I have the same issue, but for me the console complains about the profile I have: I have two profiles: one with name and another with name . Feels like having profiles with the same name, but different casing can cause this issue. !
Managed to get back the buttons by deleting the whole folder.
Delete the whole path is not a good idea for me. First of all, I have too many profiles, and it's too much trouble to reconfigure them all. Besides, I've tried deleting these two duplicate environments, but they get synced back by the sync function.
As a workaround, you can use new Profiles UI by enabling the setting

Discussion:
private registerNewWindowAction(profile: IUserDataProfile): IDisposable { const disposables = new DisposableStore(); <del> const id = `workbench.action.openProfile.${profile.name.toLowerCase().replace('/s+/', '_')}`; </del> <ins> const id = `workbench.action.openProfile.${profile.name.replace('/s+/', '_')}`; </ins> disposables.add(registerAction2(class NewWindowAction extends Action2 {
Change:
<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Read our guide about submitting issues: --<!-- Search existing issues to avoid creating duplicates. --<!-- Test using the latest Insiders build to see if your issue has already been fixed: --<!-- Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. --<!-- Launch with to check. --Do you have a solution to prevent the window from shaking when I hover the cursor over a line? An icon appears in the scrollbar, which shifts the entire code window. This is very annoying. Is it possible to position this tooltip absolutely above the lines of code? Or add extra gutter space for handle 2 icon ? <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --Version : 1.92.1 (user setup) Validation : Date : 2024-08-07T20:16:39.455Z Electron : 30.1.2 ElectronBuildId : Chromium : 124.0.6367.243 : 20.14.0 V8 : 12.4.254.20-electron.0 Système d’exploitation : Windows_NT x64 10.0. Steps to Reproduce: click on line with glutter filled with icon the new icon decale de window !
Related to
Also
Pinging because of which extension is adding those warning triangle glyphs to your gutter?
But I really can’t do without it, it's one of the most productive extensions for VSCode.
good catch thanks! this is because my check only accounts for the built in codicon. will be fixed in the above PR to not shift the code (will follow normal lightbulb behavior)
Thank you for your quick response. Do you know when there will be an update? This behavior is really very unpleasant. In some situations, I find myself working with a flickering window; it makes me dizzy
For those wondering, I just discovered that the dates for future updates are displayed. So here is the answer to my question: September 05, 2024 !

Discussion:
const currLineEmptyOrIndented = isLineEmptyOrIndented(lineNumber); const notEmpty = !nextLineEmptyOrIndented && !prevLineEmptyOrIndented; <del> let hasDecoration = false; </del> const currLineDecorations = this._editor.getLineDecorations(lineNumber); <del> if (currLineDecorations) { for (const decoration of currLineDecorations) { if (decoration.options.glyphMarginClassName?.includes(Codicon.debugBreakpoint.id)) { hasDecoration = true; } } } </del> <ins> const hasDecoration = !!(currLineDecorations?.length); </ins> // check above and below. if both are blocked, display lightbulb in the gutter. if (!nextLineEmptyOrIndented && !prevLineEmptyOrIndented && !hasDecoration) {
Change:
Type: <bBug</bTo reproduce: using Insiders with vscode-extension-samples helloworld-sample install to change publisher to something other than "vscode-samples" (e.g. "foobar") so the next step is possible. package the VSIX a breakpoint in activate method of the extension. Command Palette in EH window to run command. that the breakpoint is hit and execution pauses indefinitely until you resume it. debug. Extensions view find the extension whose VSIX you installed earlier. this extension. debugging again and run the command in the EH window. that the breakpoint is hit but almost immediately debugging ceases because has erroneously restarted the EH. VS Code version: Code - Insiders 1.93.0-insider (, 2024-08-15T05:03:41.839Z) OS version: Windows_NT x64 10.0. Modes: <!-- generated by issue reporter --
Can we avoid autorestarting while in debug mode
We do not auto restart if there is an active debug session Is this not enough to check for an active debug session?
Yes, that is enough, but that is run in the window doing the debugging, not the window being debugged, which is where it sounds like this bug happen. I suggest not auto restarting if is true. Also, that's impressive bug hunting, John

Discussion:
} private async _doStopExtensionHostsWithVeto(reason: string, auto: boolean = false): Promise<boolean> { <ins> if (auto && this._environmentService.isExtensionDevelopment) { return false; } </ins> const vetos: (boolean | Promise<boolean>)[] = []; const vetoReasons = new Set<string>();
Change:
<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Read our guide about submitting issues: --<!-- Search existing issues to avoid creating duplicates. --<!-- Test using the latest Insiders build to see if your issue has already been fixed: --<!-- Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. --<!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes/No <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version: 1.92.2(user setup) OS Version: Windows_NT x64 10.0. Steps to Reproduce: the Remote for ssh open a folder File -Save workspace as ... a folder to save the workspace file the windows, then we can get a message 'Reloading the window is longer...' ! vscode window is hanged up and can not closed manually. only way to reopen it is force close it by Task Manager. I can give more information if it need.
Please see if you can find any logged output that could help us find the source of the issue: run from the command line reproduce the issue attach the log files you find from running the command "Open Logs Folder" Thanks!
I got those logs. Please check it .
Looks like a unhealthy connection to me:
The vscode client is on Windows_NT x64 10.0., Remote SSH server is a host which the network is same with the vscode client. such as 10.0.0.44 -10.0.1.245:ssh. The client conntected to the server by ssh with a domain name. And the domain name is valid and always avaiable for me. So it is not a ssh or network connection problem. There must be some wrong with the vscode or Remote for SSH plugin. I do not know why the log file say 'Error: Cannot resolve authority'.
Having the same experience, with the same setup. Same network, windows 10 ssh to linux client. Happens on two linux machines from my Windows machine.
I'm also encountering this (windows -linux) and have to use the task manager to close VSCode (on 1.92.2). Particularly, this happens when debugging an extension in an extension host window.

Discussion:
// We need to disconnect the management connection before killing the local extension host. // Otherwise, the local extension host might terminate the underlying tunnel before the // management connection has a chance to send its disconnection message. <del> await this._remoteAgentService.endConnection(); await this._doStopExtensionHosts(); this._remoteAgentService.getConnection()?.dispose(); </del> <ins> try { await this._remoteAgentService.endConnection(); await this._doStopExtensionHosts(); this._remoteAgentService.getConnection()?.dispose(); } catch { this._logService.warn('Error while disconnecting remote agent'); } </ins> }, { id: 'join.disconnectRemote', label: nls.localize('disconnectRemote', "Disconnect Remote Agent"),