jiebi/CodeConvo huggingface dataset:
Code 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. --The direct symptom is in the site , but the investigation went through (which the site uses) and ends up here. Steps to Reproduce: to This shows the "LLVM Opt Pipeline Viewer" (1) which is a diff pane created by monaco's (2). It's contents change based on the user selection in from the 'passes' list (3). ! see normal operation in action: click in order the passes "SROAPass" (first one) and "Greedy Register Allocator". Diffs are shown properly: ! reproduce the bug, click in order the passes "SROAPass", then "Debug Variable Analysis" (one above Greedy) and finally "Greedy Register Allocator". First, text diffs are not being decorated despite being present: ! and second, a console shows the error: Preliminary investigation directs attention to these lines in 's : In the (not so rare) problematic scenario, and are non-empty but is, so the code enters the loop and crashes immediately. I suspect something broke in PR , but not sure.
A monaco-playground link with a small standalone repro for the problem: This creates a diffView and populates both sides with an offending text (specifically, one with non-empty "unchangedRegions"). After two seconds it sets the left pane to the same text as it currently has, but this time the decorations disappear and a console error message as above appears. Perhaps this tidbit would be helpful: It seems that upon entering , contains ids that were already invalidated - i.e., do not appear in : ! And so returns only nulls and the resulting array is empty. My current guess is these decoration-IDs invalidation is too early, and should be moved to after .
Thank you for the prompt fix!
Please, please, please, include inline diff view in your testing. I use inline view 99.9% of the time, side by side very rarely. Regardless, I hope this Thank you for your work.
I saw this problem again today.
Can you please share the output of the dev console? Thanks!

Related discussion:
text: for (const r of newUnchangedRegions) { for (let i = 0; i < lastUnchangedRegions.regions.length; i++) { <del> if (r.originalUnchangedRange.intersectsStrict(lastUnchangedRegionsOrigRanges[i]) && r.modifiedUnchangedRange.intersectsStrict(lastUnchangedRegionsModRanges[i])) { </del> <ins> if (lastUnchangedRegionsOrigRanges[i] && r.originalUnchangedRange.intersectsStrict(lastUnchangedRegionsOrigRanges[i]!) && lastUnchangedRegionsModRanges[i] && r.modifiedUnchangedRange.intersectsStrict(lastUnchangedRegionsModRanges[i]!)) { </ins> r.setHiddenModifiedRange(lastUnchangedRegions.regions[i].getHiddenModifiedRange(undefined), tx); break; }
Code change:
Initially noticed by : <img width="780" alt="Screenshot 2023-11-17 at 13 53 45" src=""

Related discussion:
text: import { MarkdownString } from 'vs/base/common/htmlContent'; import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; import { LOCALIZED_START_INLINE_CHAT_STRING } from 'vs/workbench/contrib/inlineChat/browser/inlineChatActions'; <del> import { IBreakpoint, IDebugService } from 'vs/workbench/contrib/debug/common/debug'; </del> <ins> import { IBreakpoint, IDebugService, IDebugSession } from 'vs/workbench/contrib/debug/common/debug'; </ins> import { IPreferencesService } from 'vs/workbench/services/preferences/common/preferences'; import { URI } from 'vs/base/common/uri';
Code change:
Initially noticed by : <img width="780" alt="Screenshot 2023-11-17 at 13 53 45" src=""

Related discussion:
text: private _gutterDecorationID: string | undefined; private _inlineChatKeybinding: string | undefined; private _hasInlineChatSession: boolean = false; <ins> private _hasActiveDebugSession: boolean = false; private _debugSessions: Set<IDebugSession> = new Set(); </ins> private readonly _localToDispose = new DisposableStore(); private readonly _gutterDecorationOpaque: IModelDecorationOptions; private readonly _gutterDecorationTransparent: IModelDecorationOptions;
Code change:
Initially noticed by : <img width="780" alt="Screenshot 2023-11-17 at 13 53 45" src=""

Related discussion:
text: this._onEnablementOrModelChanged(); } })); <ins> this._register(this._debugService.onWillNewSession((session) => { this._debugSessions.add(session); if (!this._hasActiveDebugSession) { this._hasActiveDebugSession = true; this._onEnablementOrModelChanged(); } })); this._register(this._debugService.onDidEndSession((session) => { this._debugSessions.delete(session); if (this._debugSessions.size === 0) { this._hasActiveDebugSession = false; this._onEnablementOrModelChanged(); } })); </ins> this._register(this._inlineChatService.onDidChangeProviders(() => this._onEnablementOrModelChanged())); this._register(this._editor.onDidChangeModel(() => this._onEnablementOrModelChanged())); this._register(this._keybindingService.onDidUpdateKeybindings(() => {
Code change:
Initially noticed by : <img width="780" alt="Screenshot 2023-11-17 at 13 53 45" src=""

Related discussion:
text: private _onEnablementOrModelChanged(): void { // cancels the scheduler, removes editor listeners / removes decoration this._localToDispose.clear(); <del> if (!this._editor.hasModel() || this._hasInlineChatSession || this._showGutterIconMode() === ShowGutterIcon.Never || !this._hasProvider()) { </del> <ins> if (!this._editor.hasModel() || this._hasActiveDebugSession || this._hasInlineChatSession || this._showGutterIconMode() === ShowGutterIcon.Never || !this._hasProvider()) { </ins> return; } const editor = this._editor;
Code change:
Type: <bBug</bWhen reviewing outgoing changes for my tracking fork of microsoft/vscode after merging upstream/main into my local copy today. ! Also, based on I was surprised to see the magnifying glass icon still being used for "View Changes". VS Code version: Code - Insiders 1.85.0-insider (, 2023-11-22T05:35:23.085Z) OS version: Windows_NT x64 10.0. Modes: <!-- generated by issue reporter --
/assign
I'm very sure this is a duplicate of
This sounds like there was no insiders for today. Can you check you are running the build from today? The PR just got merged yesterday.
Yes, this is today's. The new codicon appears in the Timeline view, just not in the incoming/outgoing party of Source Control view: !
It does for me: !
Ah, we're not talking about the same thing. My screenshot is of the feature recently by and controlled by the and settings. It comes from here:
are you able to reproduce this consistently? Could you provide steps that that I should use to try to reproduce the issue? Thanks!
in said it was probably a known issue. Ever since Insiders got that fix I haven't had any problems opening multi-diff for outgoing changes that get listed after I merge from upstream/main into my local main prior to pushing them to origin/main (my tracking repo). So I'm closing this one.
thanks for the update!
Hmm, just happened to me again with today's Insiders: ! Reopening. I'll hold back from pushing the local changes that I merged in from upstream/main in case there are places you'd like me to look for clues while I can repro it.
Devtools console:
It's this one: ! And specifically which is of course binary: ! I guess the multi diff editor needs to handle this case gracefully instead of failing to show the diffs for the other files.
thanks! could you please take a look? Thanks!
Ahh, because it is a binary file...

Related discussion:
text: *--------------------------------------------------------------------------------------------*/ import { LazyStatefulPromise, raceTimeout } from 'vs/base/common/async'; <ins> import { onUnexpectedError } from 'vs/base/common/errors'; </ins> import { IDisposable, DisposableStore, toDisposable } from 'vs/base/common/lifecycle'; import { deepClone } from 'vs/base/common/objects'; <del> import { isObject } from 'vs/base/common/types'; </del> <ins> import { isDefined, isObject } from 'vs/base/common/types'; </ins> import { URI } from 'vs/base/common/uri'; import { ConstLazyPromise, IDocumentDiffItem, IMultiDiffEditorModel } from 'vs/editor/browser/widget/multiDiffEditorWidget/model'; import { MultiDiffEditorViewModel } from 'vs/editor/browser/widget/multiDiffEditorWidget/multiDiffEditorViewModel';
Code change:
Type: <bBug</bWhen reviewing outgoing changes for my tracking fork of microsoft/vscode after merging upstream/main into my local copy today. ! Also, based on I was surprised to see the magnifying glass icon still being used for "View Changes". VS Code version: Code - Insiders 1.85.0-insider (, 2023-11-22T05:35:23.085Z) OS version: Windows_NT x64 10.0. Modes: <!-- generated by issue reporter --
/assign
I'm very sure this is a duplicate of
This sounds like there was no insiders for today. Can you check you are running the build from today? The PR just got merged yesterday.
Yes, this is today's. The new codicon appears in the Timeline view, just not in the incoming/outgoing party of Source Control view: !
It does for me: !
Ah, we're not talking about the same thing. My screenshot is of the feature recently by and controlled by the and settings. It comes from here:
are you able to reproduce this consistently? Could you provide steps that that I should use to try to reproduce the issue? Thanks!
in said it was probably a known issue. Ever since Insiders got that fix I haven't had any problems opening multi-diff for outgoing changes that get listed after I merge from upstream/main into my local main prior to pushing them to origin/main (my tracking repo). So I'm closing this one.
thanks for the update!
Hmm, just happened to me again with today's Insiders: ! Reopening. I'll hold back from pushing the local changes that I merged in from upstream/main in case there are places you'd like me to look for clues while I can repro it.
Devtools console:
It's this one: ! And specifically which is of course binary: ! I guess the multi diff editor needs to handle this case gracefully instead of failing to show the diffs for the other files.
thanks! could you please take a look? Thanks!
Ahh, because it is a binary file...

Related discussion:
text: import { EditorInput } from 'vs/workbench/common/editor/editorInput'; import { ILanguageSupport } from 'vs/workbench/services/textfile/common/textfiles'; <ins> /* hot-reload:patch-prototype-methods */ </ins> export class MultiDiffEditorInput extends EditorInput implements ILanguageSupport { static readonly ID: string = 'workbench.input.multiDiffEditor';
Code change:
Type: <bBug</bA corrupted file is stored in CachedExtensionVSIXs and never re-downloaded, preventing extension from being installed until the file is manually deleted. Repro: Attempt to install an extension while the Azure DevOps service is not available and returning errors. Result in this comment: The corrupted vsix contains the following HTML instead of zipped data ! Shared Output: VS Code version: Code 1.84.2 (, 2023-11-09T10:52:57.054Z) OS version: Darwin arm64 23.1.0 Modes: Connection to 'SSH: ox' could not be established Canceled <details<summarySystem Info</summary Connection to 'SSH: ox' could not be established Canceled </details<details<summaryExtensions (31)</summaryExtensionVersion ------ vscode-ron0.11.0 vscode-eslint2.4.2 prettier-vscode10.1.0 kotlin0.2.32 copilot1.139.0 copilot-chat0.10.2 copilot-labs0.17.1121 vscode-github-actions0.26.2 better-cpp-syntax1.17.2 vscode-peacock4.2.2 vscode-clangd0.1.25 membrane1.6.1 vscode-dotnet-runtime2.0.0 vscode-postgresql0.3.0 remote-containers0.321.0 remote-ssh0.107.1 remote-ssh-edit0.86.0 cpptools-extension-pack1.3.0 hexeditor1.9.12 makefile-tools0.7.0 remote-explorer0.4.1 proto0.0.4 vscode-yaml1.14.0 vscode-gitweblinks2.9.3 rust-analyzer0.3.1748 even-better-toml0.19.2 shellcheck0.35.0 es6-string-html2.12.1 vscode-lldb1.10.0 vim1.27.1 clang-format1.9.0 (2 theme extensions excluded) </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
cc who was looking into this in
<!-- AUTHORVERIFICATIONREQUEST --This bug has been fixed in the latest release of ! you can help us out by commenting if things are now working as expected. If things still don't seem right, please ensure you're on version of Insiders (today's or later - you can use in the command palette to check), and leave a comment letting us know what isn't working as expected. Happy Coding!
bumping to see if this issue is still occurring and if the fix has been verified!
It's somewhat fixed. You can try again and the second time it will work. But the error message that appears doesn't indicate that. perhaps it should retry at least once if the zip is corrupted before showing this error? Note the bottom right popup asking to manually download where a retry could've sufficed. <img width="1304" alt="Screenshot 2023-12-06 at 6 14 41 PM" src=""
Thanks for the feedback. This bug is to fix not to cache corrupted VSIXs and please validate that. Regarding trying again, I do not think we should be showing this as this might be random.
Verifying with a code review

Related discussion:
text: this.logService.trace(`Extension signature verification details for ${extension.identifier.id} ${extension.version}:n${sigError.output}`); } if (verificationStatus === ExtensionSignaturetErrorCode.PackageIsInvalidZip || verificationStatus === ExtensionSignaturetErrorCode.SignatureArchiveIsInvalidZip) { <ins> try { // Delete the downloaded vsix before throwing the error await this.delete(location); } catch (error) { this.logService.error(error); } </ins> throw new ExtensionManagementError(CorruptZipMessage, ExtensionManagementErrorCode.CorruptZip); } } finally {
Code change:
Repro: an editor to a new window (or as many as you want) the original window that still contains the editor that all windows with the copied editor have input lag ! Version: 1.85.0-insider (user setup) Commit: Date: 2023-12-01T19:00:37.339Z Electron: 25.9.6 ElectronBuildId: Chromium: 114.0.5735.289 18.15.0 V8: 11.4.183.29-electron.0 OS: WindowsNT x64 10.0.
A regression from

Related discussion:
text: public static INSTANCE = new EditorRenderingCoordinator(); private _coordinatedRenderings: ICoordinatedRendering[] = []; <del> private _animationFrameRunner: IDisposable | null = null; </del> <ins> private _animationFrameRunners = new Map<CodeWindow, IDisposable>(); </ins> private constructor() { }
Code change:
Repro: an editor to a new window (or as many as you want) the original window that still contains the editor that all windows with the copied editor have input lag ! Version: 1.85.0-insider (user setup) Commit: Date: 2023-12-01T19:00:37.339Z Electron: 25.9.6 ElectronBuildId: Chromium: 114.0.5735.289 18.15.0 V8: 11.4.183.29-electron.0 OS: WindowsNT x64 10.0.
A regression from

Related discussion:
text: this._coordinatedRenderings.splice(renderingIndex, 1); if (this._coordinatedRenderings.length === 0) { <del> // There are no more renderings to coordinate => cancel animation frame if (this._animationFrameRunner !== null) { this._animationFrameRunner.dispose(); this._animationFrameRunner = null; </del> <ins> // There are no more renderings to coordinate => cancel animation frames for (const [_, disposable] of this._animationFrameRunners) { disposable.dispose(); </ins> } <ins> this._animationFrameRunners.clear(); </ins> } } }; } private _scheduleRender(window: CodeWindow): void { <del> if (this._animationFrameRunner === null) { </del> <ins> if (!this._animationFrameRunners.has(window)) { </ins> const runner = () => { <del> this._animationFrameRunner = null; </del> <ins> this._animationFrameRunners.delete(window); </ins> this._onRenderScheduled(); }; <del> this._animationFrameRunner = dom.runAtThisOrScheduleAtNextAnimationFrame(window, runner, 100); </del> <ins> this._animationFrameRunners.set(window, dom.runAtThisOrScheduleAtNextAnimationFrame(window, runner, 100)); </ins> } }
Code change:
Type: <bFeature Request</bThe notification suggesting a plugin has a cog with an option "Don't show again". It's however not clear whether this suppresses suggesting the specific plugin, or any plugin. Either this message should be clarified ("Don't show this plugin again") or a second option should be . VS Code version: Code 1.84.2 (, 2023-11-09T10:51:52.184Z) OS version: Windows_NT x64 10.0. Modes: <!-- generated by issue reporter --
<img width="485" alt="image" src=""<img width="478" alt="image" src=""
Thank you.

Related discussion:
text: const ignoreImportantExtensionRecommendationStorageKey = 'extensionsAssistant/importantRecommendationsIgnore'; const donotShowWorkspaceRecommendationsStorageKey = 'extensionsAssistant/workspaceRecommendationsIgnore'; <del> const choiceNever = localize('neverShowAgain', "Don't Show Again"); </del> type RecommendationsNotificationActions = { onDidInstallRecommendedExtensions(extensions: IExtension[]): void;
Code change:
Type: <bFeature Request</bThe notification suggesting a plugin has a cog with an option "Don't show again". It's however not clear whether this suppresses suggesting the specific plugin, or any plugin. Either this message should be clarified ("Don't show this plugin again") or a second option should be . VS Code version: Code 1.84.2 (, 2023-11-09T10:51:52.184Z) OS version: Windows_NT x64 10.0. Modes: <!-- generated by issue reporter --
<img width="485" alt="image" src=""<img width="478" alt="image" src=""
Thank you.

Related discussion:
text: searchValue = source === RecommendationSource.WORKSPACE ? '@recommended' : extensions.map(extensionId => `@id:${extensionId.identifier.id}`).join(' '); } <ins> const donotShowAgainLabel = source === RecommendationSource.WORKSPACE ? localize('donotShowAgain', "Don't Show Again for this Repository") : extensions.length > 1 ? localize('donotShowAgainExtension', "Don't Show Again for these Extensions") : localize('donotShowAgainExtensionSingle', "Don't Show Again for this Extension"); </ins> return raceCancellablePromises([ <del> this._registerP(this.showRecommendationsNotification(extensions, message, searchValue, source, recommendationsNotificationActions)), </del> <ins> this._registerP(this.showRecommendationsNotification(extensions, message, searchValue, donotShowAgainLabel, source, recommendationsNotificationActions)), </ins> this._registerP(this.waitUntilRecommendationsAreInstalled(extensions)) ]); } <del> private showRecommendationsNotification(extensions: IExtension[], message: string, searchValue: string, source: RecommendationSource, </del> <ins> private showRecommendationsNotification(extensions: IExtension[], message: string, searchValue: string, donotShowAgainLabel: string, source: RecommendationSource, </ins> { onDidInstallRecommendedExtensions, onDidShowRecommendedExtensions, onDidCancelRecommendedExtensions, onDidNeverShowRecommendedExtensionsAgain }: RecommendationsNotificationActions): CancelablePromise<RecommendationsNotificationResult> { return createCancelablePromise<RecommendationsNotificationResult>(async token => { let accepted = false;
Code change:
Type: <bFeature Request</bThe notification suggesting a plugin has a cog with an option "Don't show again". It's however not clear whether this suppresses suggesting the specific plugin, or any plugin. Either this message should be clarified ("Don't show this plugin again") or a second option should be . VS Code version: Code 1.84.2 (, 2023-11-09T10:51:52.184Z) OS version: Windows_NT x64 10.0. Modes: <!-- generated by issue reporter --
<img width="485" alt="image" src=""<img width="478" alt="image" src=""
Thank you.

Related discussion:
text: this.runAction(this.instantiationService.createInstance(SearchExtensionsAction, searchValue)); } }, { <del> label: choiceNever, </del> <ins> label: donotShowAgainLabel, </ins> isSecondary: true, run: () => { onDidNeverShowRecommendedExtensionsAgain(extensions);
Code change:
or VS Code Desktop something to make the autocompletion menu appear. the dash key (-) multiple times to zoom in a lot. Only the text in the menu gets larger while the html elements stay the same size. ! The html should resize with the text appropriately. Zooming in first and then revealing the menu produces the correct sizes on everything. It's possible that "" is the incorrect command to call in this case. Perhaps a list of commands could be provided?
To verify bind a keybinding to Editor Zoom In/out trigger suggest while it shows, use the editor zoom keybindings

Related discussion:
text: applyStatusBarStyle(); applyIconStyle(); } <ins> if (this._completionModel && (e.hasChanged(EditorOption.fontInfo) || e.hasChanged(EditorOption.suggestFontSize) || e.hasChanged(EditorOption.suggestLineHeight))) { this._list.splice(0, this._list.length, this._completionModel.items); } </ins> })); this._ctxSuggestWidgetVisible = SuggestContext.Visible.bindTo(_contextKeyService);
Code change:
or VS Code Desktop something to make the autocompletion menu appear. the dash key (-) multiple times to zoom in a lot. Only the text in the menu gets larger while the html elements stay the same size. ! The html should resize with the text appropriately. Zooming in first and then revealing the menu produces the correct sizes on everything. It's possible that "" is the incorrect command to call in this case. Perhaps a list of commands could be provided?
To verify bind a keybinding to Editor Zoom In/out trigger suggest while it shows, use the editor zoom keybindings

Related discussion:
text: readonly detailsLabel: HTMLElement; readonly readMore: HTMLElement; readonly disposables: DisposableStore; <ins> readonly configureFont: () => void; </ins> } export class ItemRenderer implements IListRenderer<CompletionItem, ISuggestionTemplateData> {
Code change:
or VS Code Desktop something to make the autocompletion menu appear. the dash key (-) multiple times to zoom in a lot. Only the text in the menu gets larger while the html elements stay the same size. ! The html should resize with the text appropriately. Zooming in first and then revealing the menu produces the correct sizes on everything. It's possible that "" is the incorrect command to call in this case. Perhaps a list of commands could be provided?
To verify bind a keybinding to Editor Zoom In/out trigger suggest while it shows, use the editor zoom keybindings

Related discussion:
text: readMore.style.width = lineHeightPx; }; <del> configureFont(); disposables.add(this._editor.onDidChangeConfiguration(e => { if (e.hasChanged(EditorOption.fontInfo) || e.hasChanged(EditorOption.suggestFontSize) || e.hasChanged(EditorOption.suggestLineHeight)) { configureFont(); } })); return { root, left, right, icon, colorspan, iconLabel, iconContainer, parametersLabel, qualifierLabel, detailsLabel, readMore, disposables }; </del> <ins> return { root, left, right, icon, colorspan, iconLabel, iconContainer, parametersLabel, qualifierLabel, detailsLabel, readMore, disposables, configureFont }; </ins> } renderElement(element: CompletionItem, index: number, data: ISuggestionTemplateData): void { <ins> data.configureFont(); </ins> const { completion } = element; data.root.id = getAriaId(index); data.colorspan.style.backgroundColor = '';