jiebi/CodeConvo huggingface dataset:
Change:
"vscode-proxy-agent": "^0.12.0", "vscode-regexpp": "^3.1.0", "vscode-textmate": "8.0.0", <del> "xterm": "5.2.0-beta.19", </del> <ins> "xterm": "5.2.0-beta.20", </ins> "xterm-addon-canvas": "0.4.0-beta.7", "xterm-addon-search": "0.11.0", "xterm-addon-serialize": "0.9.0", "xterm-addon-unicode11": "0.5.0", "xterm-addon-webgl": "0.15.0-beta.4", <del> "xterm-headless": "5.2.0-beta.19", </del> <ins> "xterm-headless": "5.2.0-beta.20", </ins> "yauzl": "^2.9.2", "yazl": "^2.4.3" },

Discussion:
Terminal live output is not announced. As far as I tested on Windows with JAWS and NVDA, terminal aria-live event is not auto-announced. I typed "echo hello" in terminal, but there was no read-aloud feedback.
since the buffer will now be readonly, I think this can be closed. Voice over and NVDA are announcing as I type
Aw, I think there was a miscommunication between us. The issue that I highlight here is not the input announcement. I am talking about the auto output announcement. For example, if you open an external terminal on Mac or or on Windows outside VSCode, executing any command, such as will make your screen reader read aloud the output as soon as you hit return key. The VSCode terminal was behaving like this before the a11y terminal buffer. What you have seen is that screen-reader users want this real-time output announcement per command execution just like before. This no longer works as far as I tested with NVDA and JAWS on Windows.
Thanks for clarifying. I was confused by: Now I understand
I can repro this not working in the latest stable VS Code as well. I type and it does not read
-- Aw, that's my bad! Sorry for confusing you. I assume that attribute got broken somewhere for the terminal a11y buffer.
I have just spent the last 2 hours looking into the output not being read issue and am stumped . since I can repro in Stable, I don't think this is a regression. We're doing the right thing here and debugging showed the element's text content is updated to be the output on enter, but the browser /screen reader is not reading it
-- I would try the following: if aria-live works when terminal buffer container is marked with instead of (also need to remove role = "textbox" for this testing). works, just add textbox role and see if it works.
thanks for the suggestion. still does not work with that. I'm going to try to find the last commit where this was working - which will be at least a month ago
in version 1.72 of VS Code stable, it similarly does not work for short output, but does read the message "too much output to announce for the command for example.

also just tried reverting all of my changes (adding the accessibility buffer) and that does not fix it
navigation mode also works in 1.72
the element doesn't exist in insider's with screen reader mode on while it does exist in version 1.72 <img width="935" alt="Screenshot 2023-01-23 at 2 53 35 PM" src="https://user-"<img width="1247" alt="Screenshot 2023-01-23 at 2 53 15 PM" src="https://user-"
Change:
), actions: { primary: [ <del> new Action('copyToClipboard', localize('action.copyToClipboard', "Copy Browser Link to Clipboard"), undefined, true, () => clipboardService.writeText(linkToOpen.toString())), </del> <ins> new Action('copyToClipboard', localize('action.copyToClipboard', "Copy Browser Link to Clipboard"), undefined, true, () => clipboardService.writeText(linkToOpen.toString(true))), </ins> new Action('showExtension', localize('action.showExtension', "Show Extension"), undefined, true, () => { return commandService.executeCommand('workbench.extensions.action.showExtensionsWithIds', [remoteExtension.extensionId]); })

Discussion:
copies a url-encoded filepath copies a url-encoded filepath, e.g. becomes , which also yields a "Workspace does not exist" warning message. Originally posted by in
Candidate PR for 1.76:
Change:
const path = require('path'); // Translated over from // https://source.chromium.org/chromium/chromium/src/+/master:build/vs_toolchain.py;l=140-175 <del> const supportedVersions = ['2019', '2017']; </del> <ins> const supportedVersions = ['2022', '2019', '2017']; </ins> const availableVersions = []; for (const version of supportedVersions) {

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?: N/A <!-- 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: main @ OS Version: Windows 10 Home 21H1 .1348 Windows Feature Experience Pack 120.2212.3920.0 Steps to Reproduce: 't have Visual Studio 2019 installed anywhere prerequisites including but don't install native c++ build tools Visual Studio Build Tools 2022 separately to run Result: Receive error from : Invalid C/C++ Compiler Toolchain. Please check This is because Visual Studio Build Tools 2022 installs to , but does not consider 2022 to be a supported version, only 2019 and 2017. I would prefer to save disk space and avoid installing Visual Studio Build Tools 2019 when I already have 2022 installed.
Forwarding it to in case he'd like to update our docs to include 2022 as well. Otherwise, we close it.
I haven't tested with 2022 yet, is rest of the yarn step successful after bypassing the preinstall step ?
Adding to the array works with node-gyp version v8.4.0 or later. When I made this issue, I was on v8.3.9, where it didn't work. Upgrading node-gyp to v8.4.1 fixed install, and works without issue on VS2022. So, yes.
Thanks for testing, given that this requires node-gyp which also brings in , it won't build the native modules on the main branch correctly due to older electron version. We can add to the list once lands.
branch is now updated to Electron 16, do you want to send a PR to add to the supported list ? Thanks!
Change:
"--zoom-factor", "--test-bar-width" ] <del> } </del> <ins> } </ins>  No newline at end of file

Discussion:
I like the AI sparkle but I think its color is too strong. IMO it should be less strong and so that it blends away a little more <img width="192" alt="Screenshot 2023-11-29 at 12 46 12" src=""
for help
Hey thanks for writing about this, this is indeed a good point. I can make the opacity lower (set it for example to 0.5). With such an opacity, the icon looks as follows: ! ! What do you think ?
Looks like an improvement
Change:
import { Registry } from 'vs/platform/registry/common/platform'; import { Extensions, IWorkbenchContributionsRegistry } from 'vs/workbench/common/contributions'; import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; <ins> import { posix } from 'vs/base/common/path'; import { hash } from 'vs/base/common/hash'; </ins> class ResourcePerformanceMarks { constructor(@ITelemetryService telemetryService: ITelemetryService) { <del> type Entry = { name: string; duration: number }; </del> <ins> type Entry = { hosthash: string; name: string; duration: number; }; </ins> type EntryClassifify = { owner: 'jrieken'; comment: 'Resource performance numbers'; <del> name: { classification: 'SystemMetaData'; purpose: 'PerformanceAndHealth'; comment: 'Resource name' }; </del> <ins> hosthash: { classification: 'SystemMetaData'; purpose: 'PerformanceAndHealth'; comment: 'Hash of the hostname' }; name: { classification: 'SystemMetaData'; purpose: 'PerformanceAndHealth'; comment: 'Resource basename' }; </ins> duration: { classification: 'SystemMetaData'; purpose: 'PerformanceAndHealth'; isMeasurement: true; comment: 'Resource duration' }; }; for (const item of performance.getEntriesByType('resource')) { <del> telemetryService.publicLog2<Entry, EntryClassifify>('startup.resource.perf', { name: item.name, duration: item.duration }); </del> <ins> try { const url = new URL(item.name); const name = posix.basename(url.pathname); telemetryService.publicLog2<Entry, EntryClassifify>('startup.resource.perf', { hosthash: `H${hash(url.host).toString(16)}`, name, duration: item.duration }); } catch { // ignore } </ins> } } }

Discussion:
The resource performance markers are now PII cleansed - e.g all paths are removed which defeats the purpose of collecting them... We should do something smarter and send only selected information that isn't cleansed
cc
Adding to October for collecting the basenames-only
cc that we have this and that it is being fixed for this milestone
if I read it correct it's now fixed via
Change:
// save view state this._register(this.storageService.onWillSaveState(() => { <del> this.storageService.store(ExplorerView.TREE_VIEW_STATE_STORAGE_KEY, JSON.stringify(this.tree.getViewState()), StorageScope.WORKSPACE, StorageTarget.MACHINE); </del> <ins> this.storeTreeViewState(); </ins> })); }

Discussion:
<!-- Do Not Delete This! featurerequesttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --<!-- Describe the feature you'd like. --For example when I open a project in v, I expand the folder on the file tree. When I refresh the whole page, the default behavior now is that the folders are collapsed, which means that I need to expand the folders one by one again the last time I opened them. !
If the expansion state of the file tree folder can remember the last expansion like tabs, similar to the gif below, I think this is a better effect. !
I have fixed this problem and will mention a pr later.
The reason for this problem is that there are multiple calls to the function during the rendering of the file tree. The state will be read from the cache for the first time, but before the execution is completed for the first time, the will be executed again. At this time, the tree already has a value. However, because the file tree data is not ready (because the data on the Web side is asynchronous), the state returned by the function is empty, resulting in the final file tree returning to the default collapsed state.
Change:
this._createOrGetCommandDetection(this._terminal).handleContinuationEnd(); return true; } <ins> case VSCodeOscPt.RightPromptStart: { this._createOrGetCommandDetection(this._terminal).handleRightPromptStart(); return true; } case VSCodeOscPt.RightPromptEnd: { this._createOrGetCommandDetection(this._terminal).handleRightPromptEnd(); return true; } </ins> case VSCodeOscPt.Property: { const [key, value] = args[0].split('='); switch (key) {

Discussion:
Setup a right prompt in fish/zsh and make sure the command detected is accurate.
zsh uses for this, perhaps we should have a generic ignored ranges mechanism and combine this with the line continuation solution?
Change:
} function _format(sep: string, pathObject: ParsedPath) { <del> if (pathObject === null || typeof pathObject !== 'object') { throw new ErrorInvalidArgType('pathObject', 'Object', pathObject); } </del> <ins> validateObject(pathObject, 'pathObject'); </ins> const dir = pathObject.dir || pathObject.root; const base = pathObject.base || `${pathObject.name || ''}${pathObject.ext || ''}`;

Discussion:
We will ship Electron with to stable soon so we should also look into bringing our copy of library to the same version. Checking for the diff, it seems to be a few commits after and up until //cc
Hm, the first change is already pretty bad for us: Because it seems to depend on a new thing which is maybe defined globally and probably optimised / cached / snapshotted. Maybe we should rather look out for actual bug fixes and focus on those... Changes: I think only the 2 fix commits stand out from the others
I assume you skipped over right?
Reopening given unit test failures, I had to revert the change for now.
yes I skipped the primordials. I didn't dig into why they do this, but it seemed easy enough to just call the string functions instead. As for the test failures, new PR
Primordials are only meant for Nodejs internal code usage, external users should just replace them with corresponding JavaScript builtins. You can read more about why Nodejs does it
Change:
} override focus() { <del> this.container.focus(); </del> <ins> const active = document.activeElement; let parent = this.container.parentElement; while (parent && parent !== active) { parent = parent.parentElement; } if (parent) { // Only set focus if there is no other focued element outside this chain. // This prevents us from stealing back focus from other focused elements such as quick pick due to delayed load. this.container.focus(); } </ins> } }

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.79.0-insider Commit: Date: 2023-05-04T22:11:08.187Z Browser: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Code-Insiders/1.79.0-insider Chrome/108.0.5359.215 Electron/22.4.8 Safari/537.36 Steps to Reproduce: (Video attached) a new VS Code window and when the window is open, press to open recent folders top panel panel disappears when the page is rendered https://user-
This issue does not occur when the setting is set
I reported this as well three months ago: I don't understand why there's so few users with this issue. Opening a recent folder is basically the first thing you do after launching vscode.
May be most users have disabled the Welcome page
I have but only because of this issue
I think the welcome view grabs focus when it opens after quick open has been opened and thus quick open closes. You can configure in settings to keep quick open open in that case:
I feel like a better approach for this one is: understand why the Welcome page opens so late. understand why the Welcome page steals focus I think the first would be a better one to focus on. My expectation would be that the Welcome page opens with VS Code, rather than being delayed.
The welcome page relies on the gallery service, experiment service which could be slow to startup.

Im working on fix to only load the welcome page once all the services are readied. The issue of it stealing focus after load still needs to be fixed though.
Change:
} } <del> const message: IMarkdownString = new MarkdownString(`[Follow Link](${uri}) (${label})`, true); message.uris = { [uri]: URI.parse(uri).toJSON() }; return message; </del> <ins> return new MarkdownString(`[Follow Link](${uri}) (${label})`, true); </ins> } private get osPath(): IPath {

Discussion:
The widget does not appear when a local link has line numbers like: . This is because the URI cannot be parsed correctly and crashes here: This might happen in other cases when the URI cannot be parsed.
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.469 --<!-- potentialduplicatescomment --
Change:
if (await this.extensionService.getExtension(remoteExtension.extensionId)) { return false; } <del> const usedOnHost = this.storageService.get(REMOTE_TUNNEL_USED_STORAGE_KEY, StorageScope.APPLICATION); if (!usedOnHost) { </del> <ins> const usedOnHostMessage = this.storageService.get(REMOTE_TUNNEL_USED_STORAGE_KEY, StorageScope.APPLICATION); if (!usedOnHostMessage) { return false; } let usedOnHost: string | undefined; try { const message = JSON.parse(usedOnHostMessage); if (!isObject(message)) { return false; } const { hostName, timeStamp } = message as UsedOnHostMessage; if (!isString(hostName)! || !isNumber(timeStamp) || new Date().getTime() > timeStamp + REMOTE_TUNNEL_EXTENSION_TIMEOUT) { return false; } usedOnHost = hostName; } catch (_) { // problems parsing the message, likly the old message format </ins> return false; } const currentHostName = await this.remoteTunnelService.getHostName();

Discussion:
I switched from a testing profile to my default profile on my Windows machine, and got a message that my macOS machine turned on remote access, even though it's not even on. !
I didn't think of that, good catch. I use settings sync as a communication channel to learn about other machines connecting to a tunnel. I guess I need to add a timestamp as well.
Change:
"vscode-proxy-agent": "^0.12.0", "vscode-regexpp": "^3.1.0", "vscode-textmate": "7.0.1", <del> "xterm": "4.20.0-beta.6", "xterm-addon-search": "0.10.0-beta.1", "xterm-addon-serialize": "0.8.0-beta.1", </del> <ins> "xterm": "4.20.0-beta.12", "xterm-addon-search": "0.10.0-beta.2", "xterm-addon-serialize": "0.8.0-beta.2", </ins> "xterm-addon-unicode11": "0.4.0-beta.3", <del> "xterm-addon-webgl": "0.13.0-beta.3", "xterm-headless": "4.20.0-beta.6", </del> <ins> "xterm-addon-webgl": "0.13.0-beta.6", "xterm-headless": "4.20.0-beta.12", </ins> "yauzl": "^2.9.2", "yazl": "^2.4.3" },

Discussion:
issue This bad overlapping can occur sometimes: <img width="84" alt="Screen Shot 2022-07-07 at 10 58 29 am" src="https://user-"I think this is because the white pixels don't match the background exactly but are close enough to it that they should be treated as transparent. cc Related:
can you verify?
Not a problem.
Change:
app = this.app as Application; terminal = app.workbench.terminal; settingsEditor = app.workbench.settingsEditor; <del> await settingsEditor.addUserSetting('terminal.integrated.shellIntegration.enabled', 'true'); await setTerminalTestSettings(app); </del> <ins> await setTerminalTestSettings(app, [['terminal.integrated.shellIntegration.enabled', 'true']]); }); afterEach(async function () { await app.workbench.terminal.runCommand(TerminalCommandId.KillAll); </ins> }); after(async function () {

Discussion:
With support for for Electron tests, we should enable terminal tests: I eagerly had enabled them but since we don't know whether Electron smoke tests with are stable, I moved back to only running them in web. We should not enable these tests until we are sure, smoke tests are stable, so maybe this should only happen in May.
Failing macOS run for reference: !
Still not passing, deferring to a debt week
Change:
let listBackground = this.styles.selectListBackground ? this.styles.selectListBackground.toString() : background; this.selectDropDownListContainer.style.backgroundColor = listBackground; this.selectionDetailsPane.style.backgroundColor = listBackground; <del> const optionsBorder = this.styles.focusBorder ? this.styles.focusBorder.toString() : null; </del> <ins> const optionsBorder = this.styles.focusBorder ? this.styles.focusBorder.toString() : ''; </ins> this.selectDropDownContainer.style.outlineColor = optionsBorder; this.selectDropDownContainer.style.outlineOffset = '-1px'; }

Discussion:
DEBUG selectBox, when hover over, can't see title. Checked with latest insider build, has the same issue. While in version ! There is title ! May be caused be
do you have time to look into this?
do you see this for other dropdowns as well. For example the terminal dropdown, or the output channel name dropdown?
Terminal dropdown has no title either.
Ok, so it is a general select box issue. Let's see if has time to look into this
Absolutely. I've been a bit awol... Will look at this tomorrow.
This issue has been closed automatically because it needs more information and has not had recent activity. See also our guidelines. Happy Coding!
Change:
function validateInput(tunnelService: ITunnelService, value: string, canElevate: boolean): { content: string; severity: Severity } | null { if (!value.match(/^[0-9]+$/)) { <del> return { content: invalidPortString, severity: Severity.Error }; </del> <ins> return { content: nls.localize('remote.tunnelsView.portShouldBeNumber', "Local port should be a number."), severity: Severity.Error }; </ins> } else if (Number(value) >= maxPortNumber) { return { content: invalidPortNumberString, severity: Severity.Error }; } else if (canElevate && tunnelService.isPortPrivileged(Number(value))) {

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: Todays insider OS Version: Win11 Steps to Reproduce: ! Be in a devcontainer (here on a remote ssh host, if that matters). Try to set a new local port for an existing port forwarding. Enter -does not work Enter -does work.
Enter 5000 -does work. This is correct, we only allow you to change the port number, not the host.
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!
Hello I'm not trying to change the host - I'm just following what's outlined in the help text on change: !
Thanks the error message there is incorrect. I'm fixing the message.
Thank you very much - this is way better!