jiebi/CodeConvo huggingface dataset:
Change:
if (isImage(imageData) && configurationService.getValue<boolean>('chat.experimental.imageAttachments')) { quickPickItems.push({ <del> id: hash(imageData).toString(), </del> <ins> id: await imageToHash(imageData), </ins> kind: 'image', label: localize('imageFromClipboard', 'Image from Clipboard'), iconClass: ThemeIcon.asClassName(Codicon.fileMedia),

Discussion:
Testing a large image () it into chat window freezes for a few seconds Seems we spent in the !
cc. is there a compromise on what we hash for the ID? ie, maybe half of the bytes instead of the full thing, or something of the sort, since ATM we are just hashing the entire received
It looks like the function is trying to hash the Uint8Array naively as an object (hashing each key and value for each element in the array) which is going to be extraordinarily slow. should complete in millisecond(s) :)
should our detect if it's web and if crypto is available and use that if so? I can see this happening again.
Yea, I think having it check for typed arrays and arraybuffers would make sense. Unfortunately is sync and webcrypto is async, however, so it would not be a drop-in replacement.
perhaps we could have a signature like to catch at compile time and redirect that use to the async version in ?
Change:
} } <del> function getImageAttachContext(data: Uint8Array): IChatRequestVariableEntry { </del> <ins> async function getImageAttachContext(data: Uint8Array): Promise<IChatRequestVariableEntry> { </ins> return { value: data, <del> id: hash(data).toString(), </del> <ins> id: await imageToHash(data), </ins> name: localize('pastedImage', 'Pasted Image'), isImage: true, icon: Codicon.fileMedia,

Discussion:
Testing a large image () it into chat window freezes for a few seconds Seems we spent in the !
cc. is there a compromise on what we hash for the ID? ie, maybe half of the bytes instead of the full thing, or something of the sort, since ATM we are just hashing the entire received
It looks like the function is trying to hash the Uint8Array naively as an object (hashing each key and value for each element in the array) which is going to be extraordinarily slow. should complete in millisecond(s) :)
should our detect if it's web and if crypto is available and use that if so? I can see this happening again.
Yea, I think having it check for typed arrays and arraybuffers would make sense. Unfortunately is sync and webcrypto is async, however, so it would not be a drop-in replacement.
perhaps we could have a signature like to catch at compile time and redirect that use to the async version in ?
Change:
const promise = this.tree.setInput(input, viewState).then(async () => { if (Array.isArray(input)) { if (!viewState || previousInput instanceof ExplorerItem) { <del> // There is no view state for this workspace (we transitioned from a folder workspace?), expand all roots. await Promise.all(input.map(async item => { </del> <ins> // There is no view state for this workspace (we transitioned from a folder workspace?), expand up to five roots. // If there are many roots in a workspace, expanding them all would can cause performance issues #176226 for (let i = 0; i < Math.min(input.length, 5); i++) { </ins> try { <del> await this.tree.expand(item); </del> <ins> await this.tree.expand(input[i]); </ins> } catch (e) { } <del> })); </del> <ins> } </ins> } // Reloaded or transitioned from an empty workspace, but only have a single folder in the workspace. if (!previousInput && input.length === 1 && this.configurationService.getValue<IFilesConfiguration>().explorer.expandSingleFolderWorkspaces) {

Discussion:
Steps to Reproduce: Create a MR workspace file with more than one folder the MR workspace All top level folders are expanded. This is very slow if there are lot of root folders and also if the MR workspace is in remote
how are you creating your MR workspace? By composing an file directly, then opening it? Or by opening the first folder from FileOpen Folder... and then using FileAdd Folder to Workspace... to add more folders to make it MR? Or some other way? When I create a MR workspace and save it, then collapse the top-level folders, then exit VS Code, restart and reopen the MR workspace, the top-level folders remain collapsed. But if I then create a copy of that .code-workspace file and open this, the root folders get expanded (and I also get asked the trust question). Presumably the expand happens because my local storage hasn't got any collapse-state record for a workspace with this name, so it defaults to expanding the first level. I suppose VS Code could be changed so it defaults to keeping root folders collapsed for a workspace it hasn't previously seen. But some users might complain about such a change.
I think like suggested in the duplicate issue, we probably need a limit here. It's nice when you have 3-4 folders to expand but 100s+ can crash VS Code.
Yes
Change:
} get button(): SourceControlActionButton | undefined { <del> if (!this.state.HEAD || !this.state.HEAD.name) { return undefined; } </del> <ins> if (!this.state.HEAD) { return undefined; } </ins> let actionButton: SourceControlActionButton | undefined;

Discussion:
Testing [ ] Update label accordingly (deferred) [x] Remove secondary actions
Pushing this out to the next milestone as there are some things I need to investigate first related to the rebase flow.
Decided to keep the "Commit" label for the button to keep things simple. Will change it if needed, based on customer feedback.
Change:
const actionElement = dom.append(container, $(ThemeIcon.asCSSSelector(isActionIncrease ? increaseHoverVerbosityIcon : decreaseHoverVerbosityIcon))); actionElement.tabIndex = 0; const hoverDelegate = new WorkbenchHoverDelegate('mouse', false, { target: container, position: { hoverPosition: HoverPosition.LEFT } }, this._configurationService, this._hoverService); <del> if (isActionIncrease) { const kb = this._keybindingService.lookupKeybinding(INCREASE_HOVER_VERBOSITY_ACTION_ID); store.add(this._hoverService.setupUpdatableHover(hoverDelegate, actionElement, kb ? nls.localize('increaseVerbosityWithKb', "Increase Verbosity ({0})", kb.getLabel()) : nls.localize('increaseVerbosity', "Increase Verbosity"))); } else { const kb = this._keybindingService.lookupKeybinding(DECREASE_HOVER_VERBOSITY_ACTION_ID); store.add(this._hoverService.setupUpdatableHover(hoverDelegate, actionElement, kb ? nls.localize('decreaseVerbosityWithKb', "Decrease Verbosity ({0})", kb.getLabel()) : nls.localize('decreaseVerbosity', "Decrease Verbosity"))); } </del> <ins> store.add(this._hoverService.setupUpdatableHover(hoverDelegate, actionElement, labelForHoverVerbosityAction(this._keybindingService, action))); </ins> if (!actionEnabled) { actionElement.classList.add('disabled'); return store;

Discussion:
Testing the keybinding for verbosity hover over =Shows the keybinding accessibility view of the hover focus to the by clicking A hover for the action shows without the keybinding !
Change:
function getReplView(viewsService: IViewsService): Repl | undefined { return viewsService.getActiveViewWithId(REPL_VIEW_ID) as Repl ?? undefined; } <del> registerThemingParticipant((theme, collector) => { const inputBorderColor = theme.getColor(inputBorder) || Color.fromHex('#80808060'); collector.addRule(` .repl .repl-input-wrapper { border-top: 1px solid ${inputBorderColor}; } `); }); </del>

Discussion:
I stumbled over and saw that there are still many colors hard-coded. Also while at the .css file, it's good practice to qualify all rules with (or ) now that the workbench can be embedded in the web.
Thanks for great feedback. There was some unused CSS, like the .annotation in the repl, so I removed that. I have also now qualifed all with . There is still one hard coded color for in repl, but I believe tackled this with his great PR. Though I might be mistaken?
I did, indeed, add colour contribution points to the REPL as part of but eventually you asked me to defer those until later, I do not remember the reason precisely... So the REPL is still not theme-able, unfortunately.
thanks for refreshing my memory. In case you would like to contribute that part of your PR we are open to accept it now :D From the I only see a need for color, not sure if there is more.
I am working on this now. I am taking it a step further, though, and adding theming to most of the REPL elements (errors, warnings, infos, source filenames etc.). Basically I want the whole REPL view to be fully customisable.
To verify, make sure you can customise the following colors in the debug console. You can use the setting :
Change:
"onView:npm" ], "capabilities": { <del> "virtualWorkspaces": false, </del> <ins> "virtualWorkspaces": { "supported": "limited", "description": "%virtualWorkspaces%" }, </ins> "untrustedWorkspaces": { "supported": "limited", "description": "%workspaceTrust%"

Discussion:
and trust the workspace to Show Running Extensions from the extensions pane :bug: See that npm extension is activated even though it declares in its , which should disable it in all virtual workspaces !
Virtual workspace check is only considered in Desktop. In web all extensions those are web enabled are enabled irrespective of virtual workspace.
Can I ask why this is the case? The npm extension activates eagerly due to when opening a repository containing a file (e.g. extensions). I don't need this extension and today would need to manually disable it.
Virtual workspace support is only for desktop clients. In web all workspaces are virtual. CC
is right, and I agree it's a bit confusing. The npm extension has a main entry point where it contributes code completions and hovers for the in It uses online services for that, so it also works with virtual workspaces. That said, it should not say but instead just disable the functionality that doesn't work when in a virtual workspace.
What do we want to change? that is observed in the web that the npm extension does not declare ?
I would propose the following changes: extension does not declare , can we make the npm extension activate less eagerly i.e. not on ? Today the npm extension activates whenever we open a VS Code extension repo for e.g., which seems unnecessary. Maybe we could instead activate when a file is opened? (I don't believe we have an activation event for this but perhaps we could introduce one?)
is currently needed to set the context variable that is used to enable/disable the npm explorer.
I don't think we have a work around for the context value, so we need to keep the activation as is.
Change:
import { ContextKeyValue } from '../../../../platform/contextkey/common/contextkey.js'; export interface IMultiDiffEditorModel { <del> readonly documents: IValueWithChangeEvent<readonly RefCounted<IDocumentDiffItem>[]>; </del> <ins> readonly documents: IValueWithChangeEvent<readonly RefCounted<IDocumentDiffItem>[] | 'loading'>; </ins> readonly contextKeys?: Record<string, ContextKeyValue>; }

Discussion:
open a multifile diff reload window while the diff editor stores and loads it says that there are no changes yet <img width="1178" alt="Screenshot 2024-06-21 at 09 16 43" src=""
Thanks for filing! Briefly looked into it, but fixing it is a little bit more complex than I thought. The model creation is what takes a while, and during that time the multi file diff editor just has no model. It would be better if the model creation is immediate, but it has some property, that the editor could then show.
Change:
return results; } <del> private async getAllDepsAndPackExtensionsToInstall(extensionIdentifier: IExtensionIdentifier, manifest: IExtensionManifest, getOnlyNewlyAddedFromExtensionPack: boolean, installPreRelease: boolean, profile: URI | undefined): Promise<{ gallery: IGalleryExtension; manifest: IExtensionManifest }[]> { </del> <ins> private async getAllDepsAndPackExtensions(extensionIdentifier: IExtensionIdentifier, manifest: IExtensionManifest, getOnlyNewlyAddedFromExtensionPack: boolean, installPreRelease: boolean, profile: URI | undefined): Promise<{ gallery: IGalleryExtension; manifest: IExtensionManifest }[]> { </ins> if (!this.galleryService.isEnabled()) { return []; } <del> let installed = await this.getInstalled(undefined, profile); const knownIdentifiers = [extensionIdentifier, ...(installed).map(i => i.identifier)]; </del> <ins> const installed = await this.getInstalled(undefined, profile); const knownIdentifiers = [extensionIdentifier]; </ins> const allDependenciesAndPacks: { gallery: IGalleryExtension; manifest: IExtensionManifest }[] = []; const collectDependenciesAndPackExtensionsToInstall = async (extensionIdentifier: IExtensionIdentifier, manifest: IExtensionManifest): Promise<void> => {

Discussion:
VS Code Version: stable and from sources When launching the server and installing extensions using that have a common dependency, one of the extensions will fail activating, prompting to reload VS Code. For example installing, and contains which depends on also depends on installation task finishes first and then trying to activate fails as for installation which is part of installation task Steps to Reproduce: this branch in gitpod or codespaces will fail activating and a notification shows prompting to reload vscode <img width="448" alt="error_iamge" src="https://user-"cc
would you accept a PR fixing this? I took a look but it doesn't look something trivial to fix properly, I but I don't think is a good fix
PR would be always welcome. Agreed it is not trivial. Let's see if there is a simple fix that fixes this and won't cause any regressions.
Created a PR with a possible fix
ping, by any chance for July
I am sorry that I am on vacation so cannot be looked in July.
I was following this other , but it was marked as a duplicate and was therefore closed. This isse seems to be closed as well, although the issue persists. Specifically, it seems that VS Code Dev Containers installs extensions in alphabetical order, so that if an extension that comes later in the order is a pre-requisite for another that is earlier, then the installations will not behave as expected. Example, is a pre-requisite for , but comes later in alphabetical order. Thus, requires a VS Code Session restart after building the Dev Container. Is this issue fixed in VS Code Insiders, but not released yet?
The issue you reported is using the build 1.71. and this fix was pushed in 1.72.. So please update your VS Code and try.
Change:
this._terminalGroupService.activeGroup?.setVisible(visible); } } else { <ins> for (const instance of this._terminalGroupService.instances) { instance.resetFocusContextKey(); } </ins> this._terminalGroupService.activeGroup?.setVisible(false); } }));

Discussion:
https://user- As shown in the recording, when I tried to paste in the editor The terminal paste command is matched, meaning that the terminal is still "focused" based on the context keys The terminal shows a context menu for paste. We are not seeing this in the editor, the terminal should handle in the same way
As long as the terminal is opened once, I have to reload the window to get it fixed.
I think this means that this isn't happening on safari for some reason
This gets hit even when I click in the editor area !
Still reproduced on latest codespace with VS Code insider bits.
Had a call, we believe it's happening because we set when hiding the panel which caused the blur/focusout events to not fire. We also noticed this happens in terminal editors as well. So to fix we need to reset or refresh the state of the context key when the terminal panel/view is hidden as well as when the terminal editor is hidden. Something to verify when these changes are made is to make sure if you have a single terminal editor and a single terminal in the panel, toggling the panel should still keep because the terminal editor will now be focused (ie. the panel hide context key reset should happen before the terminal editor focus is handled).
Change:
- libgconf-2-4 - libglib2.0-bin - libgnome-keyring0 <ins> - libgbm1 </ins> - libgtk-3-0 - libnotify4 - libnspr4

Discussion:
<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --<!-- Also please test using the latest insiders build to make sure your issue has not already been fixed: --<!-- Use Help Report Issue to prefill these. --- VSCode Version: 1.48.2- -1.49.0- OS Version: Ubuntu 20.04.1 LTS Steps to Reproduce: -dev not installed and install code1.48.2- --VSCode works apt update; apt-upgrade VSCode to 1.49.0- --VSCode fails with: /usr/share/code/bin/../code: error while loading shared libraries: cannot open shared object file: No such file or directory install libgbm-dev --VSCode works Expected: upgrade checks for dependency and installs missing library
new Electron 9 dep needs to be declared here?
I didn't know about this dependency configuration in the codebase, yes adding should be sufficient. It is a new dependency for chromium 83 to use memory buffers in gpu code path.
This bug has been fixed in to the latest release of ! you can help us out by confirming things are working as expected in the latest Insiders release. If things look good, please leave a comment with the text to let us know. If not, please ensure you're on version of Insiders (today's or later - you can use in the command pallete to check), and leave a comment letting us know what isn't working as expected. Happy Coding!
Tested this by upgrading from 1.48.2 to 1.50.1
Change:
`function helloWorld() { return someGlobalObject.printHelloWorld("en", "utf-8"); } <del> helloWorld();`.replace(/^s+/gm, '') </del> <ins> helloWorld();`.replace(/^s+/gm, ''), `'JavaScript'`, 'parseHTML4String', '_accessor: ServicesAccessor' </ins> ], {}, (editor) => { let model = editor.getModel()!; let uppercaseAction = new UpperCaseAction();

Discussion:
<!-- 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. --- VS Code Version: 1.55 OS Version: MacOS Big Sur The unit testing readme instructions for running unit tests from node is missing the --ui tdd flag and doesn't work without it. <!-- 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 direct to the extension publisher. The 'Help Report Issue' dialog can assist with this. --
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.453 --<!-- potentialduplicatescomment --
This is about
Yeah see pull request sorry. I just lumped it into something else.
Change:
} else if (range.input2Diffs.length === 0) { newState = ModifiedBaseRangeState.base.withInputValue(1, true); handled = true; <ins> } else if (range.isEqualChange) { newState = ModifiedBaseRangeState.base.withInputValue(1, true); handled = true; </ins> } else { newState = ModifiedBaseRangeState.base; handled = false;

Discussion:
<!-- 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.73.0 OS Version: WindowsNT x64 10.0. Steps to Reproduce: a struct with some fields and functions in one branch the same struct in another branch, with a minor difference in one of the fields. the branches and open the merge editor. Accept Combination. On this example, is on the left side and on the right side. I'd expect "Accept Combination" to have only a single copy for the matching lines, and duplicate only the different line (and then I'd choose which one to keep), but it duplicates the entire struct. !
I also see that deleted/deleted is considered a conflict. I see no reason why. !
I also had duplicated code on two occasions when rebasing after the new VSCode update (and that's why I searched for this issue here). It seems that it kept the old code and the new code and didn't complain or considered a change/conflict. I still haven't used , so this duplication happened without using this new feature. In both situations, I had to manually remove the old code. If I find this situation again I will add here its screenshots.
Thanks,
Thank you!
Verification steps: Use the command to open that JSON and notice that conflicts with equal changes on both sides are auto-resolved.
Change:
mac: { primary: KeyMod.CtrlCmd | KeyMod.Alt | KeyCode.PageDown, }, weight: KeybindingWeight.WorkbenchContrib, }, <ins> // to </ins> icon: Codicon.arrowRight, menu: {

Discussion:
Testing There no documentation on signalOptions: ! There is some documentation on the leaf properties in the JSON, but it is unclear what refers to.
I think the request was to have an overall description for the setting, as right now there's nothing until a user starts to complete properties in the <img width="636" alt="image" src=""