smallcloudai / refact-vscode

Refact AI: Open-source AI Code assistant with autocompletion, chat, refactoring and more for VS Code
https://refact.ai
BSD 3-Clause "New" or "Revised" License
68 stars 24 forks source link

[bounty] Chat overhaul #28

Closed olegklimov closed 1 week ago

olegklimov commented 1 year ago

The current chat is this:

image

The good about it:

image

The bad about it:

Epic change needed: instead of tabs, use sidebar. Make a new one, to avoid conflicting with the existing sidebar.

image Picture: history in sourcegraph UI

A good solution is:

olegklimov commented 1 year ago

/bounty $3000

algora-pbc[bot] commented 1 year ago

## 💎 $3,000 bounty • Refact.ai

### Steps to solve: 1. Start working: Comment /attempt #28 with your implementation plan 2. Submit work: Create a pull request including /claim #28 in the PR body to claim the bounty 3. Receive payment: 100% of the bounty is received 2-5 days post-reward. Make sure you are eligible for payouts

Thank you for contributing to smallcloudai/refact-vscode!

Add a bounty • Share on socials

aazam-gh commented 1 year ago

/attempt #28

Options
mnmt7 commented 1 year ago

Hey @aazam-gh, I see you are already taking care of support for LSP 3.18 InlineCompletion. Do you mind if I work on this one?

aazam-gh commented 1 year ago

Hi @mnmt7 you can go for the LSP support one instead. I'll handle this one then :)

lalitkumawat1m commented 1 year ago

Hello beautiful people, I'm a beginner in open source contributor. Could you please tell me more about this issue?

aazam-gh commented 1 year ago

@olegklimov Since we are implementing a sidebar does that mean we will be having a total of two sidebars? One for the Refact: AI toolbox and the other for the Chat? Should clicking on New Chat then open another tab or instead open another sidebar itself?

olegklimov commented 1 year ago

total of two sidebars

Yes. Eventually there should be one, but for the purpose of this task, it's better to have it separate, avoid scope drift.

clicking on New Chat .. open another sidebar itself

Should open new chat in the sidebar. The existing chat should go into history, accessible via history button.

aazam-gh commented 1 year ago

Gotcha, so first I should start by making the chat into a side bar and opening new chats in it

aazam-gh commented 1 year ago

@olegklimov According to the docs, Idont think it's possible to add views to a secondary sidebar. https://code.visualstudio.com/api/ux-guidelines/sidebars#secondary-sidebar It would be better to open the chat within the current sidebar itself in my opinion. What are your thoughts?

olegklimov commented 1 year ago

views to a secondary sidebar

Maybe another primary sidebar?

within the current sidebar itself in my opinion

It's not something we want to be stuck at. Eventually there should be 1 sidebar for the plugin, for the purpose of this task the idea is to minimize intervention to any code unrelated to chat.

Ahmadkhan02 commented 1 year ago

/attempt #28 @olegklimov

views to a secondary sidebar

Maybe another primary sidebar?

within the current sidebar itself in my opinion

It's not something we want to be stuck at. Eventually there should be 1 sidebar for the plugin, for the purpose of this task the idea is to minimize intervention to any code unrelated to chat.

VS code wont allow for direct addition to a secondary sidebar. How about we directly add chat to the plugin in the primary once the rest of the issue is solved?

Options
algora-pbc[bot] commented 1 year ago

Note: The user @Alcadeus0 is already attempting to complete issue #28 and claim the bounty. If you attempt to complete the same issue, there is a chance that @Alcadeus0 will complete the issue first, and be awarded the bounty. We recommend discussing with @Alcadeus0 and potentially collaborating on the same solution versus creating an alternate solution.

aazam-gh commented 1 year ago

@olegklimov for the autoscroll being too invasive. What is your opinion on the following change

let autoScrollTimeout;
function auto_scroll() {
  if (autoScrollTimeout) {
    return;
  }

  autoScrollTimeout = setTimeout(() => {
    input_care();
    currentHeight.scrollTop = currentHeight.scrollHeight;
    autoScrollTimeout = null;
  }, 100); 
}

This would make it scroll with a delay

feliciien commented 1 year ago

Hello, I would like to work on this if anyone wants to collaborate with and split the bounty there is my discord username feliciien /attempt #28.

Options
aazam-gh commented 1 year ago

Hi I'm already working on this and will be making a pr soon

Ahmadkhan02 commented 1 year ago

@olegklimov I am done with all tasks but the sidebar one which I am not clear about. As I stated earlier a new sidebar would not work for chat. Tell me your thoughts about it. I'll still open a pull request though

algora-pbc[bot] commented 1 year ago

💡 @Ahmadkhan02 submitted a pull request that claims the bounty. You can visit your org dashboard to reward.

algora-pbc[bot] commented 1 year ago

🎉🎈 @Ahmadkhan02 has been awarded $3,000! 🎈🎊

Ahmadkhan02 commented 1 year ago

@olegklimov Hope you liked the pr and thanks!!