vscode-copilot-release icon indicating copy to clipboard operation
vscode-copilot-release copied to clipboard

Scrollbar skipping bug

Open amdcq opened this issue 8 months ago • 19 comments

  • Copilot Chat Extension Version: 1.99.3
  • VS Code Version: 0.26.7

Scrolling causes the scrollbar to teleport to random points. Resetting the scroll position to the bottom of the chat and attempting to scroll again causes the same behavior. I experience this fairly commonly. Same behaviour whether vscode is fullscreen or windowed .

Steps to Reproduce:

(Based off of assumption.) After a fairly sized chat session, keep scrolling up using mouse scroll.

https://github.com/user-attachments/assets/63ba0c63-43cf-4890-8dcf-b5fc2f933086

amdcq avatar Apr 24 '25 08:04 amdcq

Update:

After some more usage and paying more attention to this issue I've noticed that it is a lot more common, regardless of chat size. It has become borderline unusable. The behaviour is not just caused by using mouse scroll but any interaction with the scrollbar.

https://github.com/user-attachments/assets/03dda6ca-353d-4462-929b-368f30cb5d86

amdcq avatar Apr 26 '25 04:04 amdcq

@roblourens Any status regarding this? Due to it being such a core function, it is too big of a hindrance to be backlogged.

amdcq avatar May 01 '25 14:05 amdcq

We can't really be perfect here because the list is virtualized and we don't know the heights of elements until they come into view and render. I see that it's annoying but there's not much that can be done to improve it. Personally I only use the mousewheel.

roblourens avatar May 01 '25 15:05 roblourens

We can't really be perfect here because the list is virtualized and we don't know the heights of elements until they come into view and render. I see that it's annoying but there's not much that can be done to improve it. Personally I only use the mousewheel.

@roblourens

Is your impression of the issue that it's mainly a visual bug or that it is a scroll function as a whole bug? I mention this merely because you mention using the mousewheel which makes me think it's the former. Using mouse wheel does not work either.

The issue isn't the visual change / jump of the scrollbar UI element. The issue is that the expected scroll order of messages blocks is causing it to skip the next order message block entirely at random.

For example, scrolling up is expected to show the previous out of view message in chat. The issue of this bug is when scrolling up, instead of getting the next previous message in an orderly fashion, it randomly skips the next X amount of messages.

In an example scenario, assume 1 scroll brings into view the next message block.

  1. Message
  2. Message
  3. Message
  4. Message
  5. Message
  6. Message
  • Random skip to the start of message block 14 bypassing 7-13
  1. Message
  2. Message
  3. Message
  4. Message

Because I know it skipped messages I need at position 7 to 13. In an attempt to scroll back to message 6, I sometimes have to fight the scrollbar / view position for 5 to 10 seconds back and forth because it avoids showing the messages 7-13 without jumping to message 6 or message 14.

Issue is mentioned here as well https://github.com/microsoft/vscode-copilot-release/issues/8673

amdcq avatar May 01 '25 17:05 amdcq

Ok. It's pretty hard to tell that from your recording

roblourens avatar May 02 '25 17:05 roblourens

Ok. It's pretty hard to tell that from your recording

Sorry! I think I was tired and forgot to include that it isn't a visual bug in my original post. I omitted the chat section in the recording for privacy.

amdcq avatar May 02 '25 17:05 amdcq

I've also noticed this issue and it doesn't seem to matter how I scroll (mouse or dragging scrollbar). In a long running chat, I'm fighting the scrolling to get to a section I want to see.

I'm able to replicate with the below chat where it's filled with text and code blocks. If you kept adding to this, the problem becomes more and more apparent.

More details:

  • Happens in the sidebar chat or an editor chat
  • Seems to happen more easily when code blocks are included
    • I tried a chat with only textual paragraphs and it wasn't happening after 25+ messages; not to say it doesn't, but code blocks seem to matter more.

Hopefully you can import this chat: buggy_scrolling.json

Nxt3 avatar May 08 '25 17:05 Nxt3

I see that you have a lot of codeblocks in this chat, and they have this async layout behavior which is probably basically behind this

roblourens avatar May 09 '25 15:05 roblourens

I have this exact issue. Especially it skips when scroll window reaches at the beginning of the code block. It jumps to one of the previous code blocks in the chat

amnessa avatar May 23 '25 11:05 amnessa

i also have this issue!

gutbash avatar May 26 '25 01:05 gutbash

THUMBS UP IF YOU HAVE THIS ISSUE 👍

gutbash avatar May 26 '25 01:05 gutbash

THUMBS UP IF YOU HAVE THIS ISSUE 👍

You can simply upvote the main post as others have 🙏

amdcq avatar May 26 '25 01:05 amdcq

I see that you have a lot of codeblocks in this chat, and they have this async layout behavior which is probably basically behind this

@roblourens

In your opinion as far as you are aware, do you think this issue is exclusive to copilot chat?

amdcq avatar May 26 '25 03:05 amdcq

like the author said the scrollbar and mousewheel is actually unusable.

I see that you have a lot of codeblocks in this chat, and they have this async layout behavior which is probably basically behind this

i've found that i encounter this bug on even small chats too.

gutbash avatar Jun 02 '25 02:06 gutbash

@gutbash @Nxt3 @amnessa

I have suspicion that this could be related to vscode itself rather than exclusively to copilot. I might have noticed this behaviour when trying Cline and Roo, or at least it was a lot smoother and infrequent though I can't fully confirm.

If any are using extensions other than copilot such as Cline or extensions that aren't related to AI even, but do have a scrollable chat history / scroll. Could you keep an eye for this behaviour in other windowed tools?

I see that you have a lot of codeblocks in this chat, and they have this async layout behavior which is probably basically behind this

@roblourens This happens in small chats, like @gutbash mentioned, as well as small chats that are strictly text with no codeblocks.

amdcq avatar Jun 02 '25 10:06 amdcq

Please do address this, its REALLY annoying. and can we please also have the delete chats button back please too. Or else I would need 1 troubleshooting vscode window, 1 idea vscode window and 1 research window.

dhaugli avatar Aug 18 '25 18:08 dhaugli

This happens in small chats, like @gutbash mentioned, as well as small chats that are strictly text with no codeblocks.

I'd like to see a screen recording of this in a chat with no codeblocks.

can we please also have the delete chats button back please too.

Not sure what you're referring to, please open another issue

roblourens avatar Aug 18 '25 18:08 roblourens

Very annoying bug. Been there forever.

NetFlareSuperAdmin avatar Oct 21 '25 00:10 NetFlareSuperAdmin

Any Update on this bug, Since it it still annoying.

Harshcombo50548 avatar Nov 15 '25 09:11 Harshcombo50548