jiebi/CodeConvo huggingface dataset:
Change:
'PTYPID', 'PTYSHELL', 'PTYCOLS', <del> 'PTYROWS' </del> <ins> 'PTYROWS', 'PTYSHELLCMDLINE' </ins> ]; keys.forEach(function (key) { if (process.env[key]) {

Discussion:
<!-- Do you have a question? Please ask it on ---create a new terminal with the following shell args ! Executing this on a folder that contains a folder results in the following error message: Using the following args (observer the additional quote around the command) results in the same error ! Executing this in a command shell () works: ! As does on powershell (without the extra double quotes): !
Could it be that the command line somehow get changed / corrupted until it is passed to the process.
I'm guessing this is an issue with the  function in node-pty.
Could be, but please note that I pass one arg for the command line. So instead of ["dir", "test folder"] which would need proper escaping I pass [""dir "test folder"""] which is exactly one arg and already proper escaped.
I inspected the 's command line when spawned and it looks like this (removed /c to keep it alive) ! Looks like some double quotes got escaped :-)
Actually I didn't quote the command correctly. It should be quoted so the JS string in debugger looks like . Passing this to the terminal still results in  characters on the command line: ! Executing from a powershell command prompt results in ! which looks correct (no  to escape ")
I think I can reproduce this in node-pty by running the following: Output: A similar example however works fine on Linux using
Fixed upstream , still want to verify it within VS Code before pushing it.
this should be good to go now, you'll want to update node_modules/node-pty and then set as a that will be used as is. Example: Let me know if you have any issues.
why is the string option only supported under Windows. You need to escape under Mac and Linux as well. Under these OSes there are even three different kind of space escapings so the code can't simply take one (see ). IMO we need to let users control this.
I was under the impression this only really applies to cmd/Windows. From Do you have a particular use case that fails in on macOS or Linux?

may be I am not understanding it correctly but here is what I like to allow users do to for an example to run a command in a shell that takes args with spaces in it: : escpae using  for a single space : escape using weak quoting : escape using strong quoting How would I pass such a command line to a shell I start under Mac / Linux?
Aren't they all basically the same thing? Is there a reason for using anything other than ? That's all the terminal shell/shellArgs support and I haven't seen any complaints so far.
According to " and ' have a very different semantic. So is there a way for me to pass args and tell the shell to not do any quoting. So if I pass will it respect the quoting and leave the string untouched?
Is this what you mean? ! Force in dev build. Add this to !
Yes. So how would I pass this to a shellLaunchConfig in code in terms of args? Like this: ["-c", "ls -ls 'a b'"] and not one string args like under Windows ?
Yes, and map 1:1 to the and
thanks!
Change:
"win32AppUserModelId": "Microsoft.CodeOSS", "win32ShellNameShort": "C&ode - OSS", "darwinBundleIdentifier": "com.visualstudio.code.oss", <del> "linuxIconName": "com.visualstudio.code.oss", </del> <ins> "linuxIconName": "code-oss", </ins> "licenseFileName": "LICENSE.txt", "reportIssueUrl": "https://github.com/microsoft/vscode/issues/new", "urlProtocol": "code-oss",

Discussion:
OS Version: Ubuntu 22.04 LTS + Xfce 4.16 When create desktop icon, it shows generic icon instead of VSCode icon. ! When I tried to dig deeper, I observed that, the icon file is saved with name inside directory. The issue is occurring because of the file name. If I simply rename the file name to , then it works. So, adding multiple extension causes the issue. !
Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.70.0. Please try upgrading to the latest version and checking whether this issue remains. Happy Coding!
This works in most desktop managers, we'd want to verify it still works in ubuntu + gnome
Seems an easily fixable bug which hits xfce4 specifically: it can't handle 's in path.
<!-- 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!
Change:
'use strict'; <del> import { Disposable, Command, EventEmitter, Event } from 'vscode'; </del> <ins> import { Disposable, Command, EventEmitter, Event, workspace } from 'vscode'; </ins> import { Branch } from './git'; import { Repository, Operation } from './repository'; import { anyEvent, dispose } from './util';

Discussion:
Currently the sync icon will sync with pull and merge, which results in undesirable (in my case) merge commits. ! It would be helpful if there was a "Sync with rebase" option for clicking this icon. I see a PR was performed to add Sync (Rebase) command (, though I still don't even see this command in the git menu for 1.23.1 today?), but this does not apply to clicking the actual icon. A setting to change its default value would be great.
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.479 --<!-- potentialduplicatescomment --
shouldn't the setting text say something like instead of saying . If a branch is already configured to use rebase by default this setting has no effect (i.e. unchecking the box does not use merge)
Change:
try { const readFromStdinDone = new DeferredPromise<void>(); await readFromStdin(stdinFilePath, !!args.verbose, () => readFromStdinDone.complete()); <del> processCallbacks.push(() => readFromStdinDone.p); </del> <ins> if (!args.wait) { // if `--wait` is not provided, we keep this process alive // for at least as long as the stdin stream is open to // ensure that we read all the data. // the downside is that the Code CLI process will then not // terminate until stdin is closed, but users can always // pass `--wait` to prevent that from happening (this is // actually what we enforced until v1.85.x but then was // changed to not enforce it anymore). // a solution in the future would possibly be to exit, when // the Code process exits. this would require some careful // solution though in case Code is already running and this // is a second instance telling the first instance what to // open. processCallbacks.push(() => readFromStdinDone.p); } </ins> // Make sure to open tmp file as editor but ignore it in the "recently open" list addArg(argv, stdinFilePath);

Discussion:
Testing I noticed a difference in behavior. Not sure whether it's an issue. If I have a command that doesn't terminate, and I use , then I don't get a prompt after closing the editor until I ctrl+C. the editor that opens Insiders, I don't get back to the prompt until I ctrl+C in the terminal. But in stable, I do get back to the prompt at this point.
Yeah this is a good catch and it takes me a bit to understand what we should be doing here actually. I think: when is used, we should return prompt when files close (as we used to) without at least we should return prompt when the Code process terminates This "regressed" with us prolonging the CLI shutdown for as long as the piped process runs:
I decided to do 1) but not 2).
Change:
const model = this.editor.getModel(); if (model) { this.telemetryService.publicLog2<{ source: string, action: string }, SyncConflictsClassification>('sync/handleConflicts', { source: syncResource, action: isRemote ? 'acceptRemote' : 'acceptLocal' }); <del> try { await this.userDataSyncService.accept(syncResource, model.uri, model.getValue(), true); } catch (e) { if (e instanceof UserDataSyncError && e.code === UserDataSyncErrorCode.LocalPreconditionFailed) { const syncResourceCoflicts = this.userDataSyncService.conflicts.filter(syncResourceCoflicts => syncResourceCoflicts[0] === syncResource)[0]; if (syncResourceCoflicts && conflicts.some(conflict => isEqual(conflict.previewResource, model.uri) || isEqual(conflict.remoteResource, model.uri))) { this.notificationService.warn(localize('update conflicts', "Could not resolve conflicts as there is new local version available. Please try again.")); </del> <ins> const syncAreaLabel = getSyncAreaLabel(syncResource); const result = await this.dialogService.confirm({ type: 'info', title: isRemote ? localize('Sync accept remote', "Preferences Sync: {0}", acceptRemoteLabel) : localize('Sync accept merges', "Preferences Sync: {0}", acceptMergesLabel), message: isRemote ? localize('confirm replace and overwrite local', "Would you like to accept remote {0} and replace local {1}?", syncAreaLabel.toLowerCase(), syncAreaLabel.toLowerCase()) : localize('confirm replace and overwrite remote', "Would you like to accept merges and replace remote {1}?", syncAreaLabel.toLowerCase()), primaryButton: isRemote ? acceptRemoteLabel : acceptMergesLabel }); if (result.confirmed) { try { await this.userDataSyncService.accept(syncResource, model.uri, model.getValue(), true); } catch (e) { if (e instanceof UserDataSyncError && e.code === UserDataSyncErrorCode.LocalPreconditionFailed) { const syncResourceCoflicts = this.userDataSyncService.conflicts.filter(syncResourceCoflicts => syncResourceCoflicts[0] === syncResource)[0]; if (syncResourceCoflicts && conflicts.some(conflict => isEqual(conflict.previewResource, model.uri) || isEqual(conflict.remoteResource, model.uri))) { this.notificationService.warn(localize('update conflicts', "Could not resolve conflicts as there is new local version available. Please try again.")); } } else { this.notificationService.error(e); </ins> } <del> } else { this.notificationService.error(e); </del> } } }

Discussion:
! Most likely an oversight, we should create a color token for this so that it's themeable. Found .
Change:
display: flex; align-items: center; gap: 8px; <del> width: 100%; </del> } .interactive-item-container .header .username {

Discussion:
view, "What are the issues from this repo assigned to me" get a response, click on the line is cut The outline should contain the actions on the right !
Better than before -verified However the outline should be 1px or 2px larger. If you zoom in you can see how the outline cuts in the gray circle around the icon. let me know if you want a new issue for this. ! !
Pushing a fix for that
Change:
let total = 0; for (const repository of this._countBadgeRepositories.read(reader)) { <del> const count = repository.count?.read(reader); </del> <ins> const count = repository.provider.count?.read(reader); </ins> const resourceCount = repository.resourceCount.read(reader); total = total + (count ?? resourceCount);

Discussion:
Type: <bBug</bAfter updating for this new version, the Source Control tab is not showing the badge even with the option "Show badge" activated. VS Code version: Code 1.91.0 (Universal) (, 2024-07-01T18:54:18.541Z) OS version: Darwin arm64 23.4.0 Modes: <details<summarySystem Info</summary </details<details<summaryExtensions (16)</summaryExtensionVersion ------ flutter-snippets3.0.0 dart-code3.92.0 flutter3.92.0 flutter-find-unused-assets-and-dart-files1.0.2 bloc6.6.6 flutter-coverage0.0.4 kotlin0.2.34 copilot1.212.0 copilot-chat0.17.1 todo-tree0.0.226 live-server0.4.14 material-icon-theme5.4.2 vscode-coverage-gutters2.11.1 lcov-lang1.0.1 vscode-conventional-commits1.25.0 vscode-icons12.8.0 (2 theme extensions excluded) </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.91.1. Please try upgrading to the latest version and checking whether this issue remains. Happy Coding!
I've updated to latest version because of the fix and the problem persists. !
thank you very much for reporting this issue. Fix will be available in Insiders and in the next Stable release.
Change:
private readonly _ctxVisible: IContextKey<boolean>; private readonly _ctxCursorPosition: IContextKey<'above' | 'below' | ''>; private _dimension?: Dimension; <del> private _indentationWidth: number = 0; </del> <ins> private _indentationWidth: number | undefined; </ins> constructor( editor: ICodeEditor,

Discussion:
Ever since the recent changes to the indentation of inline chat, when running Code OSS from the main branch, the indentation is not correct on initial render. By looking at the code this appears to be due to the fact that the initialIndentation is now set to have a value of 0 while previously it was undefined. <img width="654" alt="Screenshot 2023-06-15 at 14 13 10" src=""
Change:
"project": "vscode-workbench" }, { <ins> "name": "vs/workbench/contrib/deprecatedExtensionMigrator", "project": "vscode-workbench" }, { </ins> "name": "vs/workbench/contrib/offline", "project": "vscode-workbench" },

Discussion:
Despite has been removed from the marketplace by the author, telemetry suggests that there are still hundred thousands of active users using the extension. Because the extension causes the extension host to freeze (degrading the entire VS Code experience) and there is both a newer version of the extension and that does not suffer performance problems (which is actually enabled by default), we should try to push users to move away from this unpublished extension. We should disable the Bracket Pair Colorizer 1 extension for all users. This should happen only once per installation, so that users can still re-enable the extension. We should also show a notification that we disabled the extension. When a user disabled the native bracket pair colorization feature, the notification should include an option to enable the native colorization feature.
Verification steps: Install Reload Verify that the extension got disabled and a notification is shown. Try out the various options of the notification. Enable the extension again and reload. Verify that the extension is not disabled again.
Change:
.scm-view .scm-input .scm-editor .scm-editor-toolbar.disabled .action-item { cursor: default; <del> opacity: 0.6; } .scm-view .scm-input .scm-editor .scm-editor-toolbar.disabled .action-label:hover { outline: unset; outline-offset: unset; background-color: unset; </del> } <ins> .scm-view .scm-input .scm-editor .scm-editor-toolbar.disabled .action-label:hover, </ins> .scm-view .scm-input .scm-editor .scm-editor-toolbar.disabled .action-item.monaco-dropdown-with-primary:hover { background-color: unset; }

Discussion:
keyboard focus to SCM generate commit message button the nice blue outline being rendered hover over the button. The outline is no longer visible
Is the button enabled or disabled? I am asking as from what I can tell the pattern is that for enabled buttons the focus outline is not persisted when the button is hovered over. Disabled buttons persist the focus outline as they do not have a hover.
Reopening as I implemented the wrong fix.
The button is enabled. I noticed that in the Find Widget for example the focus outline is persisted on hover. Which imho is the natural thing to do.
With the PR linked above, the behaviour will be consistent with the rest of the actions. We can start a separate conversation whether we want to update all actions to keep the focus border on hover.
Change:
resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.16.0-beta.2.tgz#30489ef235405255ee54077002c90553531870d8" integrity sha512-DAt4E/QI1w34ToBhcDj0vaZOAHOO+ffwMt2HGDAB7amPXRcMb0LBIjLpyZhB9sD4tbIgsE0vuqZi1R9vKxZwbg== <del> xterm-headless@5.3.0-beta.3: version "5.3.0-beta.3" resolved "https://registry.yarnpkg.com/xterm-headless/-/xterm-headless-5.3.0-beta.3.tgz#153cf330082f4b2aae64ff736ef0b62d93c30da8" integrity sha512-4i/bpFoAn4D4ZA4g8RKrJdhq2EcB1HN2E25yUg3omRbWCOZ2Gp9nAn+62LYzX5rvGqdNbpUTRJLX0lKwEFyLFw== </del> <ins> xterm-headless@5.3.0-beta.7: version "5.3.0-beta.7" resolved "https://registry.yarnpkg.com/xterm-headless/-/xterm-headless-5.3.0-beta.7.tgz#92704cecf937a18f2223b16efcab8c4e9e8a9e62" integrity sha512-8LDY/cId73q3w6jMmiGU6HtJlfIhtqu/oWlDj/9wUr8SQnCQJwPBzu6RizzQRz1lzMN+8WHdzrHjKcNtayZbdw== </ins> <del> xterm@5.3.0-beta.3: version "5.3.0-beta.3" resolved "https://registry.yarnpkg.com/xterm/-/xterm-5.3.0-beta.3.tgz#1a1aaf9a57afe4dcf86e87d8dc85e80a41d68644" integrity sha512-NGxpV25U2W/KKk6M5V2OXuLgrKY+w05ABi66ZEYuCTi7ux1Qv0z+jm7bkgzk1pGGiTVLG+90OGr2nrhbFr5Y4w== </del> <ins> xterm@5.3.0-beta.7: version "5.3.0-beta.7" resolved "https://registry.yarnpkg.com/xterm/-/xterm-5.3.0-beta.7.tgz#ee638fe60382e6b13f36dec2355c3530ff1c4c34" integrity sha512-wd+QHHfCVSZMSH7ah8WSeCu7VAqZcAD5pEAOiQxCg4VfXu+L//QOycqlWecgr0SFui2X9LshfD+cI9J3FcHRNA== </ins> y18n@^3.2.1: version "3.2.2"

Discussion:
On the latest insiders I can't click and drag the terminal scroll bar: !
Same here - but at least the terminal can actually be resized now!
I the same problem. In my case, all scrollbars (editor, explorer, ...) were. I tried and it was the same. Not sure if this is related, but Google Chrome and Slack App do not have this issue.
Same issue here, cannot scroll the terminal window. The cursor changes to text selector and is unable to scroll for the entire life of the terminal window. !
I completely shut down macOS and restarted it and it fixed it. It's strange.
Restarting vscode fixes it for me. It only happens when my cursor either hovers over a link in the terminal or I select some text from the terminal, it gets forever stuck in text selection/link click mode.
This is because of the image addon: ! cc
Upstream:
Saw that you released v1.80. In there is still 0.4.1 mentioned as version for xterm-addon-image. The patch version fixing this issue at hand is 0.4.2 - did that not work for you? Note that I was not able to repro the issue with vscode 1.79, so there is a chance that my attempt did not address it. Or did just the package update slip through?
I'm seeing this in Insiders. Restarting VSCode doesn't fix it and it only happens when I have multiple terminals open and the terminal tab sidebar is showing. Version: 1.81.0-insider (Universal) Commit: Date: 2023-07-07T19:50:58.701Z Electron: 22.3.14 ElectronBuildId: Chromium: 108.0.5359.215 16.17.1 V8: 10.8.168.25-electron.0 OS: Darwin x64 22.5.0
it came in a bit late for the release and didn't think it met the bar. I'll be updating soon
Change:
return hasMeta && e.key.toLowerCase() === 'f'; } <ins> /** * @param {KeyboardEvent} e * @return {boolean} */ function isSaveEvent(e) { const hasMeta = e.ctrlKey || e.metaKey; return hasMeta && e.key.toLowerCase() === 's'; } </ins> let isHandlingScroll = 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/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.66 OS Version: Windows 11 Steps to Reproduce: a notebook in on the notebook editor below the cell list ! +s :bug: prompted to save webpage !
thanks! The focus is in the webview but it seems the save action is not handled properly.
Change:
if (this._actionLabel) { this._actionLabel.classList.add('notebook-label'); this._actionLabel.innerText = this._action.label; <del> this._actionLabel.title = this._action.tooltip.length ? this._action.tooltip : this._action.label; </del> } } } export class UnifiedSubmenuActionView extends SubmenuEntryActionViewItem { private _actionLabel?: HTMLAnchorElement; <ins> private _hover?: ICustomHover; </ins> constructor( action: SubmenuItemAction,

Discussion:
open a notebook hover over its and actions there is the custom hover but on further move there is also the native hover (maybe because these actions combine text and icon?)
Change:
color: var(--vscode-textLink-foreground); } <ins> .settings-editor > .settings-body .settings-tree-container .setting-item-contents .setting-item-markdown a, .settings-editor > .settings-body .settings-tree-container .setting-item-contents .edit-in-settings-button { text-decoration: var(--text-link-decoration); } </ins> .settings-editor > .settings-body .settings-tree-container .setting-item-contents .setting-item-markdown a:focus, .settings-editor > .settings-body .settings-tree-container .setting-item-contents .edit-in-settings-button:focus { outline: 1px solid -webkit-focus-ring-color;

Discussion:
Testing enable link underline open settings editor and scroll to "Text Editor" section in-text links are underlines but command links aren't unsure if this should be aligned or not? <img width="759" alt="Screenshot 2024-06-25 at 09 50 40" src=""
Change:
class SyncStatusBar { private static StartState: SyncStatusBarState = { <ins> isEnabled: true, </ins> isSyncRunning: false, hasRemotes: false, HEAD: undefined

Discussion:
There doesn't appear to be an option to hide the git sync icon that appears in the status bar. It's not really a big deal but it would be nice to hide the git sync icon. Personally, coming from Vim I prefer working with the VCS outside of the editor, yet I would still like to see the current branch that is being worked on. This is why I'd like to hide just the sync button and not hide both git status bar items or disable the git extension entirely.
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.561 --<!-- potentialduplicatescomment --
I believe this is resolved via
No, hard to revert that change.
/duplicate
Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for existing issues . See also our guidelines. Happy Coding!
Change:
darwinBundleDocumentTypes: product.darwinBundleDocumentTypes, darwinCredits: darwinCreditsTemplate ? new Buffer(darwinCreditsTemplate({ commit: commit, date: new Date().toISOString() })) : void 0, winIcon: product.icons.application.ico, <del> win32ExeBasename: product.win32ExeBasename </del> <ins> win32ExeBasename: product.win32ExeBasename, token: process.env['GITHUB_TOKEN'] || void 0 </ins> }; gulp.task('electron', function () {

Discussion:
Currently seems to not set the extension tests path properly.
There are two issues: the environment attribute 'extensionTestsPath' needs to be passed properly. when running VS Code in the web UI or in a remote setup, the value of the attribute must be a valid path that exists in the filesystem. This is a problem because for historical reasons the path generated by yeoman is which does not exist in the filesystem (because it lacks the file extension ). When running tests locally, the non-existing path is not an issue because mocha will find the tests anyway. The first problem has been fixed in VS Code. The second problem requires a change in "node-debug2": we have to cope with paths that lack a ".js" extension. I've created to address this. Without the second fix a workaround is needed in order to run extension tests in the Web or remote scenarios successfully: just append the ".js" extension to the path.
Verification: open a hello world extension in the web and run its unit tests.
One issue left: the tab where the VS Code instance runs the tests is not closed automatically at the end. See bug .
I hadn't published node2 with the fix. Doing that now, we can reverify this tomorrow.
Verification is trivial: open a hello world extension in the web and run its unit tests.
Verified using and running the tests.