jiebi/CodeConvo huggingface dataset:
Change:
Type: <bBug</bI suddenly started getting the following message when my terminal starts up: I did not install anything but I did update the application. VS Code version: Code - Insiders 1.80.0-insider (Universal) (, 2023-06-21T08:23:42.803Z) OS version: Darwin arm64 22.5.0 Modes: <details<summarySystem Info</summary </details<details<summaryExtensions (17)</summaryExtensionVersion ------ vscode-tailwindcss0.9.11 language-hugo-vscode1.3.1 vscode-eslint2.4.0 gitlens14.0.1 prettier-vscode9.15.0 vscode-github-actions0.25.8 vscode-graphql0.8.13 vscode-graphql-execution0.1.8 vscode-graphql-syntax1.2.0 endwise1.5.1 vscode-duplicate1.2.1 remote-containers0.296.0 code-spell-checker2.20.5 vscode-mdx1.3.0 simple-ruby-erb0.2.1 gistfs0.4.1 pretty-ts-errors0.4.1 (1 theme extensions excluded) </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
I also encounter this issue!
Reproduces only when fish is installed via
IE contains binary so hard to know what's going on here !
any thoughts here?
FWIW is a (if you weren't using directly, vim, maybe you were looking at it with ?) and those are binary but probably isn't. It probably isn't interesting either. As for the problem, this happens at the initial invocation of so I'd guess it runs into the branch where exists and it's trying to initialize the integration but that function isn't defined yet, and I'd guess moving that invocation from line 125 to after is defined should fix this issue.
I think the idea that this bug is only present when using brew to install fish is not quite true, I'm seeing the issue on a Windows machine using WSL2.
Thanks that fixes the error. Shell integration still doesn't work because isn't getting run, so will investigate that
For this case, when installed via brew, there is a . Moving from to fixes this.
So the repro is to have a
<!-- 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!
should I be able to repro this just by installing fish with brew and using shell integration there or is there other custom fish config required?
Yep that is how I reproduced it
I have fish installed via are and have shell integration enabled and I am not seeing any errors neither in stable nor in insiders. Is there a step I am missing here to verify?
Reproduced in 1.80.0-insiders Verified fixed in

Discussion:
end end end <del> __preserve_fish_prompt </del> # Sent whenever a new fish prompt is about to be displayed. # Updates the current working directory.

function fish_mode_prompt __vsc_fish_prompt_start __vsc_fish_mode_prompt <ins> __vsc_fish_cmd_start </ins> end function fish_prompt __vsc_fish_prompt <del> __vsc_fish_cmd_start </del> end else # No fish_mode_prompt, so put everything in fish_prompt.
Change:
Here are our headers (left) compared with GitHub's (right): <img width="649" alt="image" src=""Things to note: H2 still has a bottom border in GitHub, looks great Our H4 feels very much like plain text, GitHub is definitely larger than plain Our H5 is even smaller than plain text, GitHub is at least in bold cc
Agreed. I've wanted to update these for a while now.

Discussion:
margin-top: 0; } <del> h2, h3, h4, h5, h6 { font-weight: normal; margin-bottom: 0.2em; </del> <ins> h1, h2, h3, h4, h5, h6 { font-weight: 600; margin-top: 24px; margin-bottom: 16px; line-height: 1.25; </ins> } #code-csp-warning {

} p { <del> margin-bottom: 0.7em; </del> <ins> margin-bottom: 16px; </ins> } ul,

hr { border: 0; <del> height: 2px; border-bottom: 2px solid; </del> <ins> height: 1px; border-bottom: 1px solid; </ins> } h1 { <ins> font-size: 2em; margin-top: 0; </ins> padding-bottom: 0.3em; <del> line-height: 1.2; </del> border-bottom-width: 1px; border-bottom-style: solid; <del> font-weight: normal; </del> <ins> } h2 { font-size: 1.5em; padding-bottom: 0.3em; border-bottom-width: 1px; border-bottom-style: solid; } h3 { font-size: 1.25em; } h4 { font-size: 1em; } h5 { font-size: 0.875em; } h6 { font-size: 0.85em; </ins> } table {

} .vscode-light h1, <ins> .vscode-light h2, </ins> .vscode-light hr, .vscode-light td { border-color: rgba(0, 0, 0, 0.18); } .vscode-dark h1, <ins> .vscode-dark h2, </ins> .vscode-dark hr, .vscode-dark td { border-color: rgba(255, 255, 255, 0.18);
Change:
Needs to be fixed to reproduce the issue Repro: log level of "Pty Host" specifically to trace a terminal to verify trace logs show up in pty host channel the restart pty host command a terminal to verify trace logs show up in pty host channel, they don't show up
some help would be appreciated here. When the process is restarted the logging just stops working completely. Here's where the utility process environment is created: Here's the logger initialization on the pty host proc: If you try repro you'll need this change
I can reproduce it.
It seems pty process is creating the log file in a new folder instead in the logs home folder. <img width="386" alt="image" src=""It is because a new folder is getting passed to the pty process from main process. Fixing that would fix this.
Weird. Thanks, I'll look into that
This is causing following regression - only last 5 log sessions are being retained instead of 10. Hence moved it to current milestone and prepared a fix for it.
so the logs do show up, but the terminal doesn't seem to get created correctly - I cannot type in it. EDIT: after restarting the pty host, I cannot type in any of the terminals.
the terminal created before the pty host restarted receives input but does not display it. the one created after it restarted does not receive it.
I don't see this log
I ran it again and now can type in the terminals, but there are no logs happening when I type or create a new terminal !
As long as the regression fixed in is good, this is low priority. Will check it out again in July.
Flaky repro, but sometimes a window might not ack the restart. See the bg window correctly shows the restart and relaunches, but the fg doesn't: <img width="1008" alt="Screenshot 2023-06-30 at 8 02 18 am" src=""Restarting again fixes it, I can't repro any problem with the log not working though.
Weird, when this happens data events aren't getting fired for just one window: !
On input in the broken terminal: <img width="747" alt="Screenshot 2023-06-30 at 8 31 15 am" src=""
The 2 windows are connected to 2 different pty hosts: <img width="989" alt="Screenshot 2023-06-30 at 8 38 10 am" src=""
I'm closing this issue off again as the logging problem was fixed in the linked commit. I investigated the problem hit and created some more targeted issues to fix:

Discussion:
type: 'ptyHost', entryPoint: 'vs/platform/terminal/node/ptyHostMain', execArgv, <ins> args: ['--logsPath', this._environmentMainService.logsHome.fsPath], </ins> env: this._createPtyHostConfiguration(lastPtyId) });
Change:
In there is , which seems to be called every time the scroll event of the editor fires. That method seems to clear the dom node and reconstruct it unconditionally. When smooth scrolling is turned on, the scroll event fires many times per second and the call seems to take some time: ! I think if you would only rerender the sticky scroll widget when necessary (and generally try to minimize dom API accesses), we could improve the performance here easily. I think could have an equals method and would just do an early return if the new state equals the old state.
Thanks for this remark. It is a very good optimization point.

Discussion:
import * as dom from 'vs/base/browser/dom'; import { StandardMouseEvent } from 'vs/base/browser/mouseEvent'; import { createTrustedTypesPolicy } from 'vs/base/browser/trustedTypes'; <ins> import { equals } from 'vs/base/common/arrays'; </ins> import { Disposable, DisposableStore } from 'vs/base/common/lifecycle'; import 'vs/css!./stickyScroll'; import { ICodeEditor, IOverlayWidget, IOverlayWidgetPosition } from 'vs/editor/browser/editorBrowser';

readonly lineNumbers: number[], readonly lastLineRelativePosition: number ) { } <ins> public equals(other: StickyScrollWidgetState | undefined): boolean { return !!other && this.lastLineRelativePosition === other.lastLineRelativePosition && equals(this.lineNumbers, other.lineNumbers); } </ins> } const _ttPolicy = createTrustedTypesPolicy('stickyScrollViewLayer', { createHTML: value => value });

private _lastLineRelativePosition: number = 0; private _hoverOnLine: number = -1; private _hoverOnColumn: number = -1; <ins> private _state: StickyScrollWidgetState | undefined; </ins> constructor( private readonly _editor: ICodeEditor

} setState(state: StickyScrollWidgetState): void { <ins> if (state.equals(this._state)) { return; } this._state = state; </ins> dom.clearNode(this._rootDomNode); this._disposableStore.clear(); this._lineNumbers.length = 0;
Change:
use dummy sample have the file below on line 10 trigger inline chat and get a reply :bug: the input part has the blue background which it shouldn't have

Discussion:
override hasFocus(): boolean { return super.hasFocus() || this._diffZone.value.hasFocus() || this._previewZone.value.hasFocus(); } <ins> override getWidgetPosition(): Position | undefined { if (this._session.lastTextModelChanges.length) { return this._session.wholeRange.value.getEndPosition(); } return; } </ins> } function showSingleCreateFile(accessor: ServicesAccessor, edit: EditResponse) {
Change:
does this reproduce in insiders? There was a similar issue I looked into recently. To help diagnose, you can set the log level to trace via the command palette, hover the line with the link, then check the "Terminal" channel in the Output panel (this is new to insiders).
Yes, latest insiders version also doesn't work:
I can't reproduce this so the logging requested above might be able to identify the problem.
I found that is caused because I set: which include
As the setting description say, should only affect the word selection, but affect the link detection now.

Discussion:
default: true }, [TerminalSettingId.WordSeparators]: { <del> description: localize('terminal.integrated.wordSeparators', "A string containing all characters to be considered word separators by the double-click to select word feature."), </del> <ins> markdownDescription: localize('terminal.integrated.wordSeparators', "A string containing all characters to be considered word separators when double-clicking to select word and in the fallback 'word' link detection. Since this is used for link detection, including characters such as `:` that are used when detecting links will cause the line and column part of links like `file:10:5` to be ignored."), </ins> type: 'string', // allow-any-unicode-next-line default: ' ()[]{}',"`─‘’|'
Change:
Last year a change was to the source actions input which a max-width property The problem with this is that has no effect, unless the width of the input is over 500px. We were using this source action with an extension which looked up imports to add, and due to using a monorepo these had some quite long paths. ! Rather than using a fixed 500px max width, what would you reckon to using something that would allow users to make use of wider screens - we have been testing a patch using - since this is a max width, rather than the width always used, this width restriction only comes into effects for longer imports, so for shorter imports, this is a no-op, but for larger imports, it expands into the available space, rather than truncates. Screenshot with larger input. !

Discussion:
font-size: 13px; border-radius: 0; min-width: 160px; <del> max-width: 500px; </del> <ins> max-width: 80vw; </ins> z-index: 40; display: block; width: 100%;
Change:
Hi thank you for your reply. After start VSCode Insider with the parameters , when I try to authorize the Github Copilot the message returned at terminal is: ExtensionUrlTrustService#isExtensionUrlTrusted There are no configured trusted keys and the authentication process never ends. Originally posted by in
Can you follow these steps so that we can get more information on what's going on? Open the Command Palette Run the command To the right of , click the double check mark button. (enables trace logging as the default) Start the login, wait for the issue to happen... Open the Output pane (cmd+shift+u) drop in this issue he contents of the following: Output channel Output channel Output channel Open the Command Palette Run the command To the right of , click the double check mark button. (to set the default back to info)
same here
can you follow the steps?
You know what, this is likely fixed in this ^^ PR. Let's see what tomorrow's Insider build has
Cool! Thanks! Waiting for the next version.
I will try with the updated version and return here.
Confirm the latest version released today fixed everything!
Problem solved!!! Thank you guys.

Discussion:
} async encrypt(value: string): Promise<string> { <ins> this.logService.trace('[EncryptionMainService] Encrypting value.'); </ins> try { <del> this.logService.trace('[EncryptionMainService] Encrypting value.'); </del> const result = JSON.stringify(safeStorage.encryptString(value)); this.logService.trace('[EncryptionMainService] Encrypted value.'); return result;

const bufferToDecrypt = Buffer.from(parsedValue.data); this.logService.trace('[EncryptionMainService] Decrypting value.'); <del> return safeStorage.decryptString(bufferToDecrypt); </del> <ins> try { const result = safeStorage.decryptString(bufferToDecrypt); this.logService.trace('[EncryptionMainService] Decrypted value.'); return result; } catch (e) { this.logService.error(e); throw e; } </ins> } isEncryptionAvailable(): Promise<boolean> {

}); <del> return this._sequencer.queue(key, () => super.set(key, value)); </del> <ins> return super.set(key, value); </ins> } private notifyOfNoEncryptionOnce = once(() => this.notifyOfNoEncryption());
Change:
Testing a link in your clipboard multiple cursors in a Markdown file. Do not have anything selected. . Notice how the [Title] placeholder only gets selected at the primary cursor I would prefer if we would select all "Title" for each cursor. That way it would be more convenient for the user to change all the "Title" placeholders at once.
Because the user would have selected multiple cursors, it would be expected that each cursor has different text which is why all the placeholders are not selected. It might make sense to make it that if nothing is selected, then all the placeholders could be selected at once, however the differing functionalities might get confusing.
Hmm for multi cursor you will be pasting the same link multiple times. What scenario do you think is more common, that users would want different titles for the same link, or the same title for that link?
I tried this doing this all the time but found it strange. Here's what I found felt more natural: If the user has explicitly selected text with the cursor, make sure to preserve that. This means that each selection gets its own placeholder Otherwise give empty selections the same placeholder index. That way you can update empty selections all at once If there's a mix of the empty and non-empty selections (a difficult state to get into), fallback to using unique placeholders for each This makes the behavior less consistent but feels more correct to me

Discussion:
} const edits: vscode.SnippetTextEdit[] = []; <del> let placeHolderValue = ranges.length; </del> let insertedLinkCount = 0; let insertedImageCount = 0; let insertedAudioVideoCount = 0; <del> for (const range of ranges) { </del> <ins> // Use 1 for all empty ranges but give non-empty range unique indices starting after 1 let placeHolderStartIndex = 1 + entries.length; // Sort ranges by start position const orderedRanges = [...ranges].sort((a, b) => a.start.compareTo(b.start)); const allRangesAreEmpty = orderedRanges.every(range => range.isEmpty); for (const range of orderedRanges) { </ins> const snippet = createUriListSnippet(document.uri, entries, { <del> placeholderText: !range.isEmpty ? document.getText(range) : undefined, placeholderStartIndex: placeHolderValue, </del> <ins> placeholderText: range.isEmpty ? undefined : document.getText(range), placeholderStartIndex: allRangesAreEmpty ? 1 : placeHolderStartIndex, </ins> }); if (!snippet) { continue;

insertedImageCount += snippet.insertedImageCount; insertedAudioVideoCount += snippet.insertedAudioVideoCount; <del> placeHolderValue--; </del> <ins> placeHolderStartIndex += entries.length; </ins> edits.push(new vscode.SnippetTextEdit(range, snippet.snippet)); }
Change:
Testing When one tries to copy a link on a branch that has not been published we display a dialog asking the user whether they want to publish the branch. Based on my tests, the branch is getting published and the linked is being copied to the clipboard. I think that it makes sense to be explicit about what happens and change the label of the button to "Publish Branch & Copy Link". I also noticed that when trying to create a link for uncommited changes, the dialog contains an action to "Copy Anyways". I think actions should be consistent so we should add that action to this dialog as well.

Discussion:
// If HEAD is not published, make sure it is && !repository?.state.HEAD?.upstream ) { <del> const publishBranch = vscode.l10n.t('Publish Branch'); </del> <ins> const publishBranch = vscode.l10n.t('Publish Branch & Copy Link'); </ins> const selection = await vscode.window.showInformationMessage( vscode.l10n.t('The current branch is not published to the remote. Would you like to publish your branch before copying a link?'), { modal: true },

} const uncommittedChanges = [...repository.state.workingTreeChanges, ...repository.state.indexChanges]; <del> if (uncommittedChanges.find((c) => c.uri.toString() === file.toString())) { </del> <ins> if (uncommittedChanges.find((c) => c.uri.toString() === file.toString()) && !repository.state.HEAD?.ahead && !repository.state.HEAD?.behind) { </ins> const commitChanges = vscode.l10n.t('Commit Changes'); const copyAnyway = vscode.l10n.t('Copy Anyway'); const selection = await vscode.window.showWarningMessage(

throw new vscode.CancellationError(); } } else if (repository.state.HEAD?.ahead) { <del> const pushCommits = vscode.l10n.t('Push Commits'); </del> <ins> const pushCommits = vscode.l10n.t('Push Commits & Copy Link'); </ins> const selection = await vscode.window.showInformationMessage( vscode.l10n.t('The current branch has unpublished commits. Would you like to push your commits before copying a link?'), { modal: true },

} await repository.push(); <ins> } else if (repository.state.HEAD?.behind) { const pull = vscode.l10n.t('Pull Changes & Copy Link'); const selection = await vscode.window.showInformationMessage( vscode.l10n.t('The current branch is not up to date. Would you like to pull before copying a link?'), { modal: true }, pull ); if (selection !== pull) { throw new vscode.CancellationError(); } await repository.pull(); </ins> } await repository.status();
Change:
I find it strange that the entire area where the two action bars atop of notebooks are is focuseable: <img width="1007" alt="image" src=""Other action bars across the workbench aren't focuseable, only the actions themselves within.

Discussion:
private _createBody(parent: HTMLElement): void { this._notebookTopToolbarContainer = document.createElement('div'); this._notebookTopToolbarContainer.classList.add('notebook-toolbar-container'); <del> this._notebookTopToolbarContainer.tabIndex = 0; </del> this._notebookTopToolbarContainer.style.display = 'none'; DOM.append(parent, this._notebookTopToolbarContainer); this._body = document.createElement('div');
Change:
Testing !
I think the minimum size should me much bigger: !
Currently the minimum height is the line height plus 8 pixels, and the minimum width is 4/3 times the minimum height. Do you think the minimum width should be larger or perhaps dynamic and depending on the current width?
I think a min width of 150px could work
To verify: a hover and make sure that the hover can be sized down to a minimum width of 150px provided that the hover width is naturally above 150px a small hover with a natural width smaller than 150px, verify it can not be sized down to a smaller width than its initial width

Discussion:
private readonly _participants: IEditorHoverParticipant[]; <del> private readonly _widget = this._register(this._instantiationService.createInstance(ContentHoverWidget, this._editor)); </del> <ins> private readonly _widget: ContentHoverWidget; </ins> getWidgetContent(): string | undefined { const node = this._widget.getDomNode();

) { super(); <ins> const minimumHeight = this._editor.getOption(EditorOption.lineHeight) + 8; const minimumWidth = 4 / 3 * minimumHeight; const minimumSize = new dom.Dimension(minimumWidth, minimumHeight); this._widget = this._register(this._instantiationService.createInstance(ContentHoverWidget, this._editor, minimumSize)); </ins> // Instantiate participants and sort them by `hoverOrdinal` which is relevant for rendering order. this._participants = []; for (const participant of HoverParticipantRegistry.getAll()) {

constructor( editor: ICodeEditor, <ins> minimumSize: dom.Dimension, </ins> @IContextKeyService contextKeyService: IContextKeyService ) { <del> super(editor); </del> <ins> super(editor, minimumSize); </ins> this._hoverVisibleKey = EditorContextKeys.hoverVisible.bindTo(contextKeyService); this._hoverFocusedKey = EditorContextKeys.hoverFocused.bindTo(contextKeyService);

constructor( protected readonly _editor: ICodeEditor, <del> initialSize: dom.IDimension = new dom.Dimension(10, 10) </del> <ins> minimumSize: dom.IDimension = new dom.Dimension(10, 10) </ins> ) { super(); this._resizableNode.domNode.style.position = 'absolute'; <del> this._resizableNode.minSize = new dom.Dimension(10, 10); </del> <ins> this._resizableNode.minSize = dom.Dimension.lift(minimumSize); this._resizableNode.layout(minimumSize.height, minimumSize.width); </ins> this._resizableNode.enableSashes(true, true, true, true); <del> this._resizableNode.layout(initialSize.height, initialSize.width); </del> this._register(this._resizableNode.onDidResize(e => { this._resize(new dom.Dimension(e.dimension.width, e.dimension.height)); if (e.done) {