VisualChatGPTStudio icon indicating copy to clipboard operation
VisualChatGPTStudio copied to clipboard

Turbo refactoring

Open paymicro opened this issue 2 months ago • 48 comments

TODO

  • [ ] “Do not automatically scroll down while receiving the streaming, as it forces us to scroll up to read the beginning of the message.”
  • [x] “Reintroduce the ability to edit the chat name on the history screen.”
  • [ ] “When opening an existing chat, ideally position the scroll at the beginning of the last response, so it's not necessary to scroll up to read the last message. This is already the case in the current version.”
  • [ ] When clicking the “Copy as image” button on a mermaid diagram, provide feedback similar to the other commands that already do this.
  • [ ] “Highlight special items: ‘/’ for commands, ‘@’ for items, and API and SQL tags within the chat, just like in the current version.”
  • [ ] Referencing parts of the project using “@” stopped working. With “@” in the request field, the window to reference parts of the project is not being displayed.

  • [x] Testing / fixing bugs in history
  • [x] Testing in light theme
  • [x] Testing in VS 2019... 😒
  • [x] Use JS scripts from local resource
  • [x] Add back the buttons Apply and Copy on code blocks
  • [x] Add mermaid renderer and Copy button
  • [x] Do not automatically scroll down while receiving the streaming (or scrolling only when view already scrolled)
  • [x] Reintroduce the ability to edit the chat name on the history screen.
  • [x] Allow closing the side window by clicking outside of it, instead of always having to click the "X".
  • [x] When clicking the copy button, provide feedback for the click, for example, display a check icon for a few seconds, as happens in the current version.
  • [x] When opening an existing chat, ideally position the scroll at the beginning of the last response, so it's not necessary to scroll up to read the last message. This is already the case in the current version.
  • [x] The Apply button still doesn't work.
  • [x] Highlight special items: "/" for commands, "@" for items, and API and SQL tags within the chat, just like in the current version.
  • [x] There's a bug when adding API and database contexts to the chat - it ends up adding them to all chats.
  • [x] Chats are still not receiving a title from the AI.
  • [x] Exception when clicking delete some history them and received. Because the chat wasn't found in the database for deletion.
  • [x] Functions are not working. It seems the function definitions are not being sent.

Preview

VS 2022 image

VS 2026 image image image

paymicro avatar Oct 15 '25 15:10 paymicro

Thanks again @paymicro.

It seems you managed to resolve the indentation issue.

When I have some free time, I'll test it.

For now, please add one more task to the TODO list:

  • [ ] Add back the buttons Apply and Copy on code blocks:
image

jeffdapaz avatar Oct 15 '25 17:10 jeffdapaz

Hi @paymicro , today I had some time to download the solution and take a look, so I ask you to include the following adjustments in the TODOs:

1 - Do not automatically scroll down while receiving the streaming, as it forces us to scroll up to read the beginning of the message.

2 - Reintroduce the ability to edit the chat name on the history screen.

3 - Allow closing the side window by clicking outside of it, instead of always having to click the "X".

4 - When clicking the copy button, provide feedback for the click, for example, display a check icon for a few seconds, as happens in the current version.

5 - When opening an existing chat, ideally position the scroll at the beginning of the last response, so it's not necessary to scroll up to read the last message. This is already the case in the current version.

6 - The Apply button still doesn't work.

7 - Highlight special items: "/" for commands, "@" for items, and API and SQL tags within the chat, just like in the current version.

8 - There's a bug when adding API and database contexts to the chat — it ends up adding them to all chats.

9 - Chats are still not receiving a title from the AI.

10 - When clicking on several chats, I tried to delete some of them and received an exception because the chat wasn't found in the database for deletion.

11 - What is the purpose of the "Delete Chat" button? Does it delete the chat from the repository, or does it just clear the current chat?

12 - I didn’t investigate further, but functions are not working. It seems the function definitions are not being sent.

jeffdapaz avatar Oct 18 '25 16:10 jeffdapaz

hi @jeffdapaz Thanks for tests.

Chats are still not receiving a title from the AI.

Strange. I'll check it.


What is the purpose of the "Delete Chat" button? Does it delete the chat from the repository, or does it just clear the current chat?

Delete Chat

  • delete current chat from database
  • clear UI

I assume the behavior is that a new chat is created on the first message. It doesn't work quite like that now.


I didn’t investigate further, but functions are not working. It seems the function definitions are not being sent.

I've never used this feature. Can you provide instructions? Is this similar to MCP client?

paymicro avatar Oct 18 '25 17:10 paymicro

Strange. I'll check it.

Yeah, for me, all new chats kept the "New Chat" name, even after sending requests.

I assume the behavior is that a new chat is created on the first message. It doesn't work quite like that now.

Alright, I think it's because you're not finished yet, and that's why the chat context isn't clearing for new chats.

I've never used this feature. Can you provide instructions? Is this similar to MCP client?

You can read here.

When you request the API to execute a function, we first need to send the functions definitions. I think the issue lies here, the definitions maybe are not being sent.

Maybe you can check the current version of the code to figure out what’s going wrong and how works now.

jeffdapaz avatar Oct 18 '25 18:10 jeffdapaz

Hi @paymicro ,

Just letting you know that I'm reviewing your incoming commits, and I'm waiting for you to finish the TODOs to test again.

jeffdapaz avatar Oct 23 '25 22:10 jeffdapaz

Hi @jeffdapaz I'm ready to review.

I tried to test in VS 2019 but encountered an exception 🤷‍♂️

SetSite failed for package [VisuallChatGPTStudioPackage]
Source: VisualChatGPTStudio Description: Method not found: Microsoft.VisualStudio.Threading.JoinableTaskFactory Microsoft.VisualStudio.Shell.ThreadHelper.get_JoinableTaskFactory().
System.MissingMethodException: Method not found: Microsoft.VisualStudio.Threading.JoinableTaskFactory Microsoft.VisualStudio.Shell.ThreadHelper.get_JoinableTaskFactory().
   at JeffPires.VisualChatGPTStudio.Commands.TerminalWindowCommand.<InitializeAsync>d__8.MoveNext()
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine&amp; stateMachine)
   at JeffPires.VisualChatGPTStudio.Commands.TerminalWindowCommand.InitializeAsync(AsyncPackage package)
   at JeffPires.VisualChatGPTStudio.VisuallChatGPTStudioPackage.<InitializeAsync>d__10.MoveNext() in VisualChatGPTStudio\VisualChatGPTStudioShared\VisuallChatGPTStudioPackage.cs:line 84
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.VisualStudio.Shell.AsyncPackage.<>c__DisplayClass20_0.<<Microsoft-VisualStudio-Shell-Interop-IAsyncLoadablePackageInitialize-Initialize>b__1>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.VisualStudio.Services.VsTask.RethrowException(AggregateException e)
   at Microsoft.VisualStudio.Services.VsTask.InternalGetResult(Boolean ignoreUIThreadCheck)
   at Microsoft.VisualStudio.Services.VsTask.GetResult()

paymicro avatar Oct 24 '25 11:10 paymicro

Hi @paymicro ,

All right, I'll review and try to figure out what's going on with VS2019. I'll provide feedback later.

jeffdapaz avatar Oct 24 '25 23:10 jeffdapaz

@paymicro ,

I had the opportunity to run some tests. Here’s my feedback:

1 - What do you intend to add in Settings? Would these be different configurations from those already possible via options?

2 - In the Chat History window, add the ability to navigate between chats (list items) using the UP and DOWN keys. Additionally, allow to select with the Enter key. This way, it will be possible to navigate using only the keyboard.

3 - In the chat (selected list item), allow to choose the "Rename" and "Delete" commands with the TAB key, and confirm and execute the button with Enter.

4 - I think it would be better to be able to select the chat (list item) with just one mouse click instead of a double click.

5 - I noticed that, for example, if we have a chat open in a "dock" that has other Visual Studio windows, and we view another window, when we return to the chat window it doesn’t display the chat that was previously open, but another one. Ideally, it should return to the chat that was open.

6 - When a new message is added to the chat (whether mine or the AI’s), it would be ideal to automatically scroll to the start of that message. Sometimes the new message is hide outside the chat.

7 - I preferred it when our messages had a green background, it made them stand out more and differentiated them from the AI’s messages 🙂

8 - By the way, a suggestion for improvement regarding mermaid diagrams would be to add a new button that allows downloading the diagram as an image. The CDN itself already has a function for this. Here’s an example:

function downloadPNG() {
      const code = document.getElementById("mermaidInput").value;
      mermaid.mermaidAPI.render("graphDownload", code, (svgCode) => {
        // Converter SVG em Canvas
        const image = new Image();
        const svg = new Blob([svgCode], {type: 'image/svg+xml;charset=utf-8'});
        const url = URL.createObjectURL(svg);
        image.onload = function() {
          const canvas = document.createElement('canvas');
          canvas.width = image.width;
          canvas.height = image.height;
          const ctx = canvas.getContext('2d');
          ctx.drawImage(image, 0, 0);
          URL.revokeObjectURL(url);
          canvas.toBlob(function(blob) {
            const link = document.createElement('a');
            link.download = 'diagrama.png';
            link.href = URL.createObjectURL(blob);
            link.click();
          }, "image/png");
        };
        image.src = url;
      });
    }

9 - The shortcut CTRL+ALT+Enter for the "Send Code" command is not working.

10 - In the current version of the chat, when the "Send Code" button is pressed, it checks if the AI’s response contains a code block, and if it does, it applies this block to the active editor, and what is not a code block is printed in the chat window. If the "Send Code" command is pressed while holding the SHIFT key, it will not write the code block from the response to the editor, but rather in the chat. However, from what I tested, now it always writes the code block in the chat, regardless of whether I pressed the SHIFT key or not.

11 - The highlight for special items ("/" for commands, "@" for items, API and SQL tags within the chat and images) is still not working properly.

12 - I ran tests with the "Function" feature of SQL Server and agent APIs, and I see that the function is being returned and executed internally in VS. However, when we return the result to the AI, I get this error:

HTTP status code: BadRequest. Content: { "error": { "message": "Invalid parameter: messages with role 'tool' must be a response to a preceeding message with 'tool_calls'.", "type": "invalid_request_error", "param": "messages.[4].role", "code": null } }

13 - I did some tests with the Computer Use feature. The first time it worked, but on the second attempt I got this error:

BadRequest: { "error": { "message": "No tool output found for computer call call_1jz1ksZSCK3vk89D37bgZODb.", "type": "invalid_request_error", "param": "input", "code": null } }

It seems there’s something wrong with the "Function" and "Computer Use" requests. I haven’t investigated deeply, but I can do that when I have more time.

14 - For the "light" and "blue" themes in VS, the code and mermaid blocks still appear with the dark theme.

15 - When using the VS "blue" theme, the buttons are almost invisible.

16 - I tried testing with VS2019 but had the same error as you. When I have more time, I’ll investigate further and try to understand what’s going on.

17 - The issue with the context of APIs and SQL Server connections being shared across all chats still persists. When added, it should be exclusive to that specific chat. For example, open a chat and add a reference to an API and/or SQL Server connection. Then open another chat and try to add the same API or connection again. You’ll see a message saying that the context has already been added.

18 - If the AI has returned a Function to perform a SQL Server query, the resulting table is displayed for the chat to which it belongs. However, if we create, delete, or switch to another chat, the table with the query result continues to be displayed.

jeffdapaz avatar Oct 25 '25 01:10 jeffdapaz

@paymicro,

I tested again and tried to debug with VS2019, but I have no idea why, your code doesn't install the extension in the Experimental VS. I can only see the error if I install the VSIX directly in VS2019.

As for the error itself ("method not found"), in previous instances where I encountered this issue in both VS2022 and VS2019, it was always related to some library that had been updated and was no longer compatible with either VS2022 or VS2019.

Regarding the error with the Function feature, I noticed that the error always occurs when we try to return the result of the function execution to the AI. However, when I disabled streaming via the extension's options, the functions worked without any issues.

jeffdapaz avatar Oct 25 '25 19:10 jeffdapaz

1 - What do you intend to add in Settings? Would these be different configurations from those already possible via options?

Some fast settings or specific settings for this mode:

  • user bubble color)
  • Temperature
  • Top P
  • Model
  • System prompt
  • etc.

2-6

in progress

paymicro avatar Oct 26 '25 10:10 paymicro

Some fast settings or specific settings for this mode:

Alright, but while this feature is still incomplete, hide the button to avoid displaying it unnecessarily.

jeffdapaz avatar Oct 26 '25 10:10 jeffdapaz

8 - add a new button that allows downloading the diagram as an image. image

I'm not sure about using browser downloads. On the one hand it is simple and standard. But you can pass the SVG/PNG into the extension as byte array and save it yourself.

paymicro avatar Oct 26 '25 17:10 paymicro

8 - add a new button that allows downloading the diagram as an image.

image I'm not sure about using browser downloads. On the one hand it is simple and standard. But you can pass the SVG/PNG into the extension as byte array and save it yourself.

For example, instead of downloading the PNG, the button copies it to the clipboard? Or save somewhere?

jeffdapaz avatar Oct 26 '25 19:10 jeffdapaz

For example, instead of downloading the PNG, the button copies it to the clipboard? Or save somewhere?

I'm thinking of saving it to the clipboard. Via sending to the extension, because there were problems in the browser. And this behavior is another candidate for placement on the Settings slider.

Now you can insert PNG from the clipboard into any editor without any problems.

paymicro avatar Oct 26 '25 19:10 paymicro

For example, instead of downloading the PNG, the button copies it to the clipboard? Or save somewhere?

I'm thinking of saving it to the clipboard. Via sending to the extension, because there were problems in the browser. And this behavior is another candidate for placement on the Settings slider.

Now you can insert PNG from the clipboard into any editor without any problems.

Alright, sounds good. One button to copy the Mermaid code and another for the PNG.

jeffdapaz avatar Oct 26 '25 19:10 jeffdapaz

Hi @paymicro ,

I figureout what was the problem with VS219. You installed this package:

image

But as you can see, I downgrade the package version for the VS2019 and worked.

And I got the chance and made some tests in VS2019, and as far as I saw, in VS 2019 are working fine.

jeffdapaz avatar Oct 28 '25 02:10 jeffdapaz

It looks like the work with SQL needs to be seriously refactored. I think that in any chat there was an opportunity to turn on and off SQL functions as simply as adding and deleting an image. To make everything more obvious. I suggest adding a page with functions...

paymicro avatar Oct 29 '25 13:10 paymicro

It looks like the work with SQL needs to be seriously refactored. I think that in any chat there was an opportunity to turn on and off SQL functions as simply as adding and deleting an image. To make everything more obvious. I suggest adding a page with functions...

But basically it already works like this, for example, from the moment the user adds a SQL Server connection and/or an API context to a chat, that specific chat starts to have in its context the functions related to SQL Server and/or APIs. From that moment on, depending on what the user requests in that chat, the AI may or may not want to execute the function.

If the user does not add SQL Server connections or APIs to the context of a chat, the functions will never be executed.

It may also be that I didn’t understand what you’re suggesting. However, it’s not enough to simply enable/disable the functions, because the user will have to choose which APIs and connections they want that chat to have in its context.

Enabling and then disabling the functions, I’m not sure how that would work, because once we send the functions to the AI, it may want to execute them. Trying to remove the functions from the context (from the message array) after they’ve been added, I don’t know what the behavior would be. In this case, I think it would be easier to create a new chat without function context.

As I mentioned earlier, the context of connections and APIs is specific to each chat. One chat may have a connection in its context, another an API, another several contexts, and another none.

If what you’re suggesting is simply to refactor the way the user can add connections and APIs to the context, for better usability or simply for design reasons, I wouldn’t be against it, but I believe the way it works would remain the same.

EDIT:

Ok @paymicro, I was thinking and I believe I now understand what you mean. Before your refactoring, we had a user control instance for each chat, and now with your refactoring, it's always a single instance, what changes when switching chats is the content the browser receives.

Because of that, we now have just one SQL Server result table for "all" chats. However, I see two possible solutions:

1 – When switching chats, the result table could be hidden and only shown again if the AI requests the execution of a new query.

2 – Instead of using the DataGrid component to display the result, the records could be shown in a table within the chat itself, as part of the chat view in its own block, similar to how code blocks and mermaid diagrams are displayed. The only issue would be if the function query returns too many records.

jeffdapaz avatar Oct 29 '25 21:10 jeffdapaz

Something like... 🔽 image

I think that using the buttons SQL / API we can enable and disable tools (functions) and immediately send a task in the request. This will be a mode switch. Normal - no tools (+ filesystem to read files in current solution) API mode - added API tools SQL mode - added SQL tools

And show function calls with result (collapsed by default)

When loading a chat there will always be normal mode without enabled functions. You can connect tools in any chat.

paymicro avatar Oct 30 '25 11:10 paymicro

Hi @paymicro,

I think I now understand the direction you’re aiming for with this refactor, but I still have a few points I’d like to clarify:

  1. Would this approach still guarantee that each chat maintains its own isolated functions context, without interfering with other chats?
  2. With the new window for enabling/disabling functions, how is the user supposed to select which APIs and/or DB connections they want to add to the chat context?
  3. Are you also proposing any changes to how the function results will be displayed in the chat, or would that remain the same?
  4. I’m still a bit confused about the possibility of disabling functions once they’ve already been enabled and sent to the chat context. How do you intend to handle that scenario?

jeffdapaz avatar Oct 30 '25 14:10 jeffdapaz

  1. Would this approach still guarantee that each chat maintains its own isolated functions context, without interfering with other chats?

I assume that the set of tools can be dynamic. To use SQL tools, the user must explicitly enable them via a checkbox and select a connection If the checkbox is cleared, SQL tools are excluded from the LLM context Transparency - the user clearly understands which tools are active Security - accidental execution of SQL queries is excluded Efficiency - we don’t load LLM with unnecessary tools, we save tokens Control - the user decides when and what tools to use

Other chats will not be able to influence the current one. By default, all tools will be disabled. We can store in the database which tools are enabled for this chat in the last request.

✔️ Each chat has its own tool state ✔️ On/off status is saved for each chat ✔️ Tools are disabled by default


  1. With the new window for enabling/disabling functions, how is the user supposed to select which APIs and/or DB connections they want to add to the chat context?

There are buttons below the request textbox. We can make them behave like a checkbox. When you click on SQL button, it will remain in the clicked state and there will be a choice of connection to which queries will be sent.

✔️ Checkbox buttons under the input field - intuitive ✔️ The clicked state shows active tools


  1. Are you also proposing any changes to how the function results will be displayed in the chat, or would that remain the same?

The results of the functions will be displayed by the model + the tool calls themselves and the results will be shown as in the screenshot above

✔️ The results are displayed by the model ✔️ Tool calls and results are visible in chat


  1. I’m still a bit confused about the possibility of disabling functions once they’ve already been enabled and sent to the chat context. How do you intend to handle that scenario?

The tools list sended in EVERY user request. We can just add/remove any tool in next request. The previous tools do not affect those sent in the new request in any way. That is, each new request must contain a list of tools that the model can use.

curl https://api.openai.com/v1/chat/completions
  -H "Content-Type: application/json"
  -H "Authorization: Bearer $OPENAI_API_KEY"
  -d '{
    "model": "gpt-3.5-turbo",
    "messages": [
      {
        "role": "user",
        "content": "content"
      }
    ],
    "tools": [
      {
        "type": "function",
        "function": {
          "name": "get_current_weather",
          "description": "Get the current weather at a specified location",
          "parameters": {
            "type": "object",
            "properties": {
              "location": {
                "type": "string",
                "description": "City and state, such as San Francisco, California."
              },
              "unit": {
                "type": "string",
                "enum": ["celsius", "fahrenheit"]
              }
            },
            "required": ["location"]
          }
        }
      }
    ],
    "tool_choice": "auto"
}'

Therefore, we can open a new chat in which the tools were used and continue the chat without using them. Or we can add any in the process.

paymicro avatar Oct 30 '25 17:10 paymicro

There are buttons below the request textbox. We can make them behave like a checkbox. When you click on SQL button, it will remain in the clicked state and there will be a choice of connection to which queries will be sent.

✔️ Checkbox buttons under the input field - intuitive ✔️ The clicked state shows active tools

Ok, but will be possible to add any DB connections and/or any APIs contexts to the same chat, as is possible today, right? I'm meaning, will be possible to add as many itens to chat's context the user want?

The results of the functions will be displayed by the model + the tool calls themselves and the results will be shown as in the >screenshot above

✔️ The results are displayed by the model ✔️ Tool calls and results are visible in chat

This isn't very practical; in fact, seeing what we send and receive isn't very useful.

For example, today the results are displayed as follows:

If request any SQL action:

image

In other words, the AI ​​requests the execution of the function, we return the result of the function to the AI, and based on that, it returns another response.

However, if the AI ​​executes a query that returns data, we don't return the result to the AI, only the number of records returned, and we display the query result in a DataGrid:

image

When I said earlier that one of the problems was that the table was being displayed in all chats, this was the table I was referring to. You could switch chats, but the table would still be there.

For APIs, we have two situations. In the extension options, for each configured API, the user can choose whether or not to return the data to the AI:

image

If he agrees to send the answer to the AI, it will condense the response:

image

If not, AI only receives the status code from the APIs, without the actual responses, and you show the response directly on the chat:

image

In short, I prefer this approach because the AI ​​condenses the responses, giving the user a clearer view of the results and enabling them to make requests to the AI ​​based on the function's answers.

I accept the rest of your proposal, but the way you proposed displaying the interactions with the functions, I believe we would be taking a step backward.

jeffdapaz avatar Oct 30 '25 21:10 jeffdapaz

Ok, but will be possible to add any DB connections and/or any APIs contexts to the same chat, as is possible today, right? I'm meaning, will be possible to add as many itens to chat's context the user want?

Sure.

This isn't very practical; in fact, seeing what we send and receive isn't very useful.

I can't agree. But I think it will be possible to configure the invisibility of tool calls. Personally, I cannot trust the model with the right to execute scripts in SQL, even to the point of deleting tables without confirmation. DataGrid can be showed separately by formatting the message in the current chat as a markdown table. The design needs a little work.


I would prefer this dialog to look like it does now in LM Studio. In one request, call tool if necessary. I don't see this as a step back. It will be clearly visible what tools the LLM uses.

image

By continuing the chat, you can receive answers in the same context and receive calls to tools

calc

paymicro avatar Nov 01 '25 20:11 paymicro

But I think it will be possible to configure the invisibility of tool calls

Ok, I agree with that.

Personally, I cannot trust the model with the right to execute scripts in SQL, even to the point of deleting tables without confirmation.

It's a valid concern, but I prefer to leave the choice to the user, allowing them to decide whether or not to use a particular feature.

DataGrid can be showed separately by formatting the message in the current chat as a markdown table. The design needs a little work.

Ok, but I have a concern with this approach. Maybe it's necessary to be prepared in case the result contains hundreds or even thousands of records.

I would prefer this dialog to look like it does now in LM Studio. In one request, call tool if necessary. I don't see this as a step >back. It will be clearly visible what tools the LLM uses.

I’m not sure, but personally, I think the final result matters more. For now, though, we can check the AI’s actions through the logs if needed. Since we’ve agreed on having a parameter to control visibility, I’m fine with it.

jeffdapaz avatar Nov 02 '25 01:11 jeffdapaz

@paymicro,

Will you submit a new commit, or have you already finished all pendings?

When you're done, I'll grab the latest version to run tests again.

jeffdapaz avatar Nov 06 '25 23:11 jeffdapaz

@jeffdapaz Yes. It would be good to test again. I think there are bugs that I didn't notice

paymicro avatar Nov 09 '25 13:11 paymicro

@jeffdapaz Yes. It would be good to test again. I think there are bugs that I didn't notice

@paymicro, I tried do some tests, but I got some weird bugs:

1 - On my very first message in a new chat, I got this error:

image

Maybe it's only necessary to check if there are items in the Choices array.

2 - But, on my second message on the chat, I got this error:

image

And all subsequent messages throw the same error, even if I create a new chat.

All the other windows and features still work, so the problem is only with Turbo Chat.

jeffdapaz avatar Nov 09 '25 15:11 jeffdapaz

@paymicro, with your latest fix I was able to test. I ran a few tests and found the issues below; however, I haven’t tested the functions yet (API, SQL, and Computer User)—I’ll get to that later.

  1. [ ] “Do not automatically scroll down while receiving the streaming, as it forces us to scroll up to read the beginning of the message.”

    • It still scrolls to the end of the message.
  2. [x] “Reintroduce the ability to edit the chat name on the history screen.”

    • It’s still not possible to confirm the chat name change.
  3. [ ] “When opening an existing chat, ideally position the scroll at the beginning of the last response, so it's not necessary to scroll up to read the last message. This is already the case in the current version.”

    • It still scrolls to the end of the message.
  4. [ ] When clicking the “Copy as image” button on a mermaid diagram, provide feedback similar to the other commands that already do this.

  5. [ ] “Highlight special items: ‘/’ for commands, ‘@’ for items, and API and SQL tags within the chat, just like in the current version.”

    • Still not highlighting.
  6. [ ] Referencing parts of the project using “@” stopped working. With “@” in the request field, the window to reference parts of the project is not being displayed.

  7. [x] “In the chat (selected list item), allow choosing the ‘Rename’ and ‘Delete’ commands with the TAB key, and confirm and execute the button with Enter.”

    • It’s now possible to choose between “Rename” and “Delete” using the TAB key, but when trying to confirm one of the selected commands, pressing ENTER opens the chat instead of executing the button’s function.
  8. [x] “The shortcut CTRL+ALT+Enter for the ‘Send Code’ command is not working.”

    • Still not working.
  9. [x] “In the current version of the chat, when the ‘Send Code’ button is pressed, it checks if the AI’s response contains a code block, and if it does, it applies this block to the active editor, and what is not a code block is printed in the chat window. If the ‘Send Code’ command is pressed while holding the SHIFT key, it will not write the code block from the response to the editor, but rather in the chat. However, from what I tested, now it always writes the code block in the chat, regardless of whether I pressed the SHIFT key or not.”

    • Still not working.
  10. [x] When trying to open the Turbo Chat window in VS2019, nothing happens—the window doesn’t open and no error is triggered. However, I still can’t debug the VS2019 version, and I don’t know why. What I had to do to be able to test was install the VSIX generated in the release folder.

  11. [x] When running the extension in debug mode, I receive this error in VS2026 right at the beginning:

image

And when trying to send any message, this error is triggered:

image

These errors don't happen in VS2019.

EDIT:It seems that VS2026 received an update that broke compatibility, because before the update, the extension was working, and now even the current version doesn’t work.

  1. [ ] When selecting an API or database connection to add to the chat context, clicking the "Send" button triggers the message "Please write a request". However, to add tools to the context, there is no need to write a request.

  2. [ ] I also noticed that the progress bar, while we waiting for the AI's response, sometimes was not being displayed.

  3. [ ] Another error I noticed is that when confirming the addition of an API to the context, the combobox continues to be displayed.

  4. [ ] And API calls continues not working:

image

jeffdapaz avatar Nov 10 '25 00:11 jeffdapaz

VS 2019 Exception. It looks like the library for System.Text.Json is missing. I'll fix it soon

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Windows.Markup.XamlParseException: 'The invocation of the constructor on type 'VisualChatGPTStudioShared.ToolWindows.Turbo.TerminalTurboViewModel' that matches the specified binding constraints threw an exception.' Line number '20' and line position '10'. ---> System.IO.FileNotFoundException: Could not load file or assembly 'System.Memory, Version=4.0.1.2

You can debug VS2019 from another VS by attach to the devenv process

paymicro avatar Nov 10 '25 11:11 paymicro

9 - In the current version of the chat, when the ‘Send Code’ button is pressed, it checks if the AI’s response contains a code block, and if it does, it applies this block to the active editor, and what is not a code block is printed in the chat window. If the ‘Send Code’ command is pressed while holding the SHIFT key, it will not write the code block from the response to the editor, but rather in the chat. However, from what I tested, now it always writes the code block in the chat, regardless of whether I pressed the SHIFT key or not.

Non-obvious behavior. Let's look at the cases: Send Code button (the button below the request text)

  • when just click
    • check last response for first code block. Any - json/maraid etc. or only charp?
    • YES - send it code from response to active editor
    • NO - ignore?
  • when you click + press shift
    • write text from active editor to chat

Do I understand correctly? I Don't see this behavior in the current version

paymicro avatar Nov 10 '25 17:11 paymicro