-
Notifications
You must be signed in to change notification settings - Fork 594
Merge master into feature/amazonqLSP-auth #7225
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
aws-toolkit-automation
wants to merge
171
commits into
feature/amazonqLSP-auth
Choose a base branch
from
autoMerge/feature/amazonqLSP-auth
base: feature/amazonqLSP-auth
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Merge master into feature/amazonqLSP-auth #7225
aws-toolkit-automation
wants to merge
171
commits into
feature/amazonqLSP-auth
from
autoMerge/feature/amazonqLSP-auth
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## Problem - we want a chat mode where agents are served by the local extension while the regular "Chat" is served by flare ## Solution - register mynah ui webview providers depending on lsp/normal implementation - temporarily disable the lsp (explain, fix, etc) commands, since they are also registered in the normal "agent" flow - redirect agent messages to the correct chat handler on the UI side - redirect UI messages meant for agents to the extension side - refactor main.ts so that it can be used by both the regular implementation and the lsp one ~(I'll open a seperate PR to merge this into master, since it's going to be a pain to maintain)~ - #7033 - pass in references to mynah handlers so that mynah ref injection can happen after in flare - #7046 Depends on ~#7033, #7046 Related to aws/language-servers#962 --- - Treat all work as PUBLIC. Private `feature/x` branches will not be squash-merged at release time. - Your code changes must meet the guidelines in [CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines). - License: I confirm that my contribution is made under the terms of the Apache 2.0 license.
## Problem currently tabs get added to the tabs storage when the onTabAdd handler gets called. In hybrid chat, the onTabAdd handler will never get called, because it first needs to be in the tabsStorage, which doesn't happen because the onTabAdd handler hasn't been called ## Solution in hybrid chat mode just add new tabs directly to the tabs storage --- - Treat all work as PUBLIC. Private `feature/x` branches will not be squash-merged at release time. - Your code changes must meet the guidelines in [CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines). - License: I confirm that my contribution is made under the terms of the Apache 2.0 license.
## Problem When switching between different manifests, a newly downloaded version might chronologically be older than all previously downloaded versions, even though it's marked as the latest version in its own manifest. This is why we are getting the EPIPE error when trying out the alpha manifest. The cleanup deletes the language server right after it was downloaded ## Solution In such cases, we skip the cleanup process to preserve this version. Otherwise we will get an EPIPE error. At this point the version that was downloaded shouldn't be delisted, so we don't want to make sure its not removed --- - Treat all work as PUBLIC. Private `feature/x` branches will not be squash-merged at release time. - Your code changes must meet the guidelines in [CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines). - License: I confirm that my contribution is made under the terms of the Apache 2.0 license.
## Problem - developer profiles are only synced to our local agents (/dev, /doc, etc). Now that the main chat panel is served by flare we need to update the profile information when it becomes available so that flare is using the correct profile for the request ## Solution - send profile information to flare on the initial request + subsequent changes to the active profile - refresh the webview if the profile changes --- - Treat all work as PUBLIC. Private `feature/x` branches will not be squash-merged at release time. - Your code changes must meet the guidelines in [CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines). - License: I confirm that my contribution is made under the terms of the Apache 2.0 license.
## Problem We did not utilize server side compute to help improve the quality of inline completion, chat, etc. ## Solution 1. Add server side project context support. --- - Treat all work as PUBLIC. Private `feature/x` branches will not be squash-merged at release time. - Your code changes must meet the guidelines in [CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines). - License: I confirm that my contribution is made under the terms of the Apache 2.0 license.
## Problem LSP cannot run in AL2 due to glibc compatibility. ## Solution Do not start LSP in AL2. --- - Treat all work as PUBLIC. Private `feature/x` branches will not be squash-merged at release time. - Your code changes must meet the guidelines in [CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines). - License: I confirm that my contribution is made under the terms of the Apache 2.0 license.
## Problem when the flare chat panel refreshes on log in/log out, the message listener never gets disposed of, causing the next webview instantiation to have two message listeners that are forwarding messages to the ui ## Solution dispose of the message listener when the webview gets disposed --- - Treat all work as PUBLIC. Private `feature/x` branches will not be squash-merged at release time. - Your code changes must meet the guidelines in [CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines). - License: I confirm that my contribution is made under the terms of the Apache 2.0 license.
## Problem We heard from users that auto scans are sometimes causing highlight linting issues where entire IDE is now yellow-underlined with warnings that may sometimes be irrelevant ## Solution We will disable auto scans by default, and user can re-enable in the menu. --- - Treat all work as PUBLIC. Private `feature/x` branches will not be squash-merged at release time. - Your code changes must meet the guidelines in [CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines). - License: I confirm that my contribution is made under the terms of the Apache 2.0 license.
…#7130) ## Problem When user accepts suggestion from inline completion or chat, there can be a change in the current open editor's IDE diagnostics, this can be used as a measure for code suggestion quality. Ref: aws/aws-toolkit-jetbrains#5613 This change is part of the server side workspace context. To reduce the risk of large blast radius, this change is only applied for users who are in the experiment of server side project context (both treatment and control), which is the Amzn idc users. E2E verifying request id: `97a3c4d4-0c78-4329-93ae-379d2ec66646`. ## Solution 1. Add changed IDE diagnostics after user acceptance --- - Treat all work as PUBLIC. Private `feature/x` branches will not be squash-merged at release time. - Your code changes must meet the guidelines in [CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines). - License: I confirm that my contribution is made under the terms of the Apache 2.0 license.
## Problem Flare is marked as codeowners of the following: ``` packages/core/src/codewhispererChat/ @aws/flare packages/core/src/amazonq/ @aws/flare ``` AFAIK, the flare team hasn't done significant work in these folders, and does not have bandwidth to review changes here. - `packages/core/src/codewhispererChat/ ` will be mostly deleted when we complete the migration to Flare (ex. [here](#7237)). - `packages/core/src/amazonq/ ` contains most changes to the amazon q extension, which seems out of scope for the Flare team. Having flare as codeowners requires the toolkits team to bypass their approval on any PRs touching files in these directories. This can lead to delayed merges and confusion. ## Solution - remove flare as a code owner. --- - Treat all work as PUBLIC. Private `feature/x` branches will not be squash-merged at release time. - Your code changes must meet the guidelines in [CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines). - License: I confirm that my contribution is made under the terms of the Apache 2.0 license.
## Problem Create E2E test for /review ## Solution --- - Treat all work as PUBLIC. Private `feature/x` branches will not be squash-merged at release time. - Your code changes must meet the guidelines in [CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines). - License: I confirm that my contribution is made under the terms of the Apache 2.0 license.
## Problem Misleading log message when a setting returns `null`, even if the caller specified `defaultValue`: [error] Settings (amazonQ): failed to read "workspaceIndexCacheDirPath": Unexpected type cast: got object, expected primitive String `cast()` considers `null` to be "object" type, which is misleading. If the caller passed a `defaultValue`, they have intentionally opted-in to ignoring this situation, and *don't* want this kind of log message. ## Solution If a setting returns `null|undefined`, skip `cast()` and return `defaultValue` immediately. Don't log an error message.
## Problem The default 5-minute timeout was insufficient for Amazon Q Feature Dev tests that involve code generation with multiple iterations. This was causing tests to fail prematurely before they could complete their full execution cycle. ## Solution Extended the test timeout to 15 minutes (900,000ms) specifically for the code generation test with multi-iteration scenarios. This provides adequate time for multi-iteration code generation tests to complete their execution while maintaining the existing test behavior.
…7242) ## Problem Customization will only have "1" parent profile, so theoretically we don't need another call of listAvailableCustomization to check if the new profile has access to given customization or not. Instead, we could simply switch to default customization (foundation). ## Solution --- - Treat all work as PUBLIC. Private `feature/x` branches will not be squash-merged at release time. - Your code changes must meet the guidelines in [CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines). - License: I confirm that my contribution is made under the terms of the Apache 2.0 license.
…7196) ## Problem A metric was forwarded from Flare with missing fields. This resulted in some confusion about why the metric wasn't showing up properly in Kibana. ## Solution - refactor validation to check for missingFields and log a warning. - Ideally, we would throw in CI for these, but there is currently a significant number of metrics emitted without required fields. - add tests for this validation. ## Future Work - Fix existing cases of emitting with missing required fields, so we can throw in CI when this happens. --- - Treat all work as PUBLIC. Private `feature/x` branches will not be squash-merged at release time. - Your code changes must meet the guidelines in [CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines). - License: I confirm that my contribution is made under the terms of the Apache 2.0 license.
…7246) ## Problem - IDE shows `Generate unit tests (python & java) for selected code` in quick actions but Q supports all the languages. ## Solution - Made change accordingly.  --- - Treat all work as PUBLIC. Private `feature/x` branches will not be squash-merged at release time. - Your code changes must meet the guidelines in [CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines). - License: I confirm that my contribution is made under the terms of the Apache 2.0 license.
## Problem If a users firewall is blocking downloading the zips or reaching the manifest its not clear to the user what to do ## Solution If the user: 1. doesn't have the latest version cached 2. download of the manifest failed 3. they don't have any previous language servers downloaded it might be a firewall issue. Rather than just `Unable to find a compatible version of the Language Server` we show a more descriptive message to the user <img width="454" alt="Screenshot 2025-05-07 at 2 48 39 PM" src="https://github.com/user-attachments/assets/48053a0f-7dff-4ba2-8b7d-65769b30a56f" /> --- - Treat all work as PUBLIC. Private `feature/x` branches will not be squash-merged at release time. - Your code changes must meet the guidelines in [CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines). - License: I confirm that my contribution is made under the terms of the Apache 2.0 license.
…#7254) ## Problem These errors show up in telemetry with reason `Error`. All of the `reasonDesc` are different since they include unique PID values. This makes it hard to count/quantify how often this is happening. ## Solution - attach a unique error code to these errors. For when node can't be run we have `FailedToRunNode`, and when the language server can't be started we have `FailedToStartLanguageServer`. --- - Treat all work as PUBLIC. Private `feature/x` branches will not be squash-merged at release time. - Your code changes must meet the guidelines in [CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines). - License: I confirm that my contribution is made under the terms of the Apache 2.0 license.
#7259) ## Problem This test has been very flaky, and constantly failing CI (#7187). This test is run for almost 40 different cases, and does the following: - create a text document - write it to the filesystem. - run the check on the text document. One of the core issues is that when we write the text document to the filesystem, we create a new test workspace folder for each case. This involves creating a directory with a random id for each of the almost 40 different cases. These excessive file system operations could be leading to the flakiness in CI. ## Solution - reuse the same test workspace folder across all test cases. This should cut the file systems operations in half. ## Future Work - If this doesn't reduce flakiness, we could avoid writing the text document to the fs since its not needed by the underlying test, but this involves mocking the text document which is undesirable imo. --- - Treat all work as PUBLIC. Private `feature/x` branches will not be squash-merged at release time. - Your code changes must meet the guidelines in [CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines). - License: I confirm that my contribution is made under the terms of the Apache 2.0 license.
…7252 ## Problem AmazonQ LSP needs an identifier for the IDE workspace, which should be stable and unique for each workspace, regardless of IDE restarts or system reboots. ## Solution Use [ExtensionContext.storageUri](https://code.visualstudio.com/api/references/vscode-api#ExtensionContext.storageUri) as such an identifier and pass it when initializing AmazonQ lsp.
## Problem We introduced `editorState` in data instrumentation launch. The service has a requirement of 40k character limit for the `text` field. ## Solution Implement a check on text length. If the text length exceeds 40k characters, section 20k max characters from the left and right side of current cursor position, so the final text is always less than 40k. validated prod endpoint inline working for files > 40k characters. Example request id: `57bbbe65-fbe7-47fc-81c4-c65262f47ce8` --- - Treat all work as PUBLIC. Private `feature/x` branches will not be squash-merged at release time. - Your code changes must meet the guidelines in [CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines). - License: I confirm that my contribution is made under the terms of the Apache 2.0 license.
…lableCustomization (#7242) (#7266) This reverts commit 98b0d5d. ## Problem It regress #7181 and make 7181 not working: profile will be changed, but customization will be swapped to default always. ## Solution --- - Treat all work as PUBLIC. Private `feature/x` branches will not be squash-merged at release time. - Your code changes must meet the guidelines in [CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines). - License: I confirm that my contribution is made under the terms of the Apache 2.0 license.
## Problem Inconsistent behavior when opening agent tabs (/review, /doc, etc). When the tab is reused it keeps the prompt input options visible, but when a new tab is created it doesn't. https://github.com/user-attachments/assets/2ff7264f-f7a3-46f6-9a34-e29835768833 ## Solution Set `promptInputOptions` to empty when an existing tab is reused. --- - Treat all work as PUBLIC. Private `feature/x` branches will not be squash-merged at release time. - Your code changes must meet the guidelines in [CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines). - License: I confirm that my contribution is made under the terms of the Apache 2.0 license.
## Problem clientId from `clientParams.initializationOptions?.aws?.clientInfo?.clientId` is random on every restart ## Solution use the client id from telemetry utils --- - Treat all work as PUBLIC. Private `feature/x` branches will not be squash-merged at release time. - Your code changes must meet the guidelines in [CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines). - License: I confirm that my contribution is made under the terms of the Apache 2.0 license.
When the server crashes and then restarts again, we will emit a metric to indicate it crashed. When querying look for: `metadata.metricName: languageServer_crash` & `metadata.id: AmazonQ` --- - Treat all work as PUBLIC. Private `feature/x` branches will not be squash-merged at release time. - Your code changes must meet the guidelines in [CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines). - License: I confirm that my contribution is made under the terms of the Apache 2.0 license. Signed-off-by: nkomonen-amazon <[email protected]>
|
## Problem FileCreationFailed exceptions are displayed as UnknownException in telemetry. This exception is new and we want to separate this out from other unknown exceptions. ## Solution Return API service error with `FileCreationFailedException`
## Problem Extension version sent to Q LSP is hardcoded. ## Solution Ssend the actual extension version BEFORE: aws-sdk-nodejs/2.1692.0 darwin/v23.10.0 AWS-Language-Servers AWS-CodeWhisperer/0.1.0 AmazonQ-For-VSCode/0.0.1 Visual-Studio-Code---Insiders/1.100.0-insider ClientId/c342ab45-6aba-4118-b48c-44dcedb10a78 promise AFTER aws-sdk-nodejs/2.1692.0 darwin/v23.10.0 AWS-Language-Servers AWS-CodeWhisperer/0.1.0 AmazonQ-For-VSCode/testPluginVersion Visual-Studio-Code---Insiders/1.100.0-insider ClientId/c342ab45-6aba-4118-b48c-44dcedb10a78 promise
## Problem - No logs is being emitted for telemetry events. ## Solution - Adding logs if telemetry events are emitted. --- - Treat all work as PUBLIC. Private `feature/x` branches will not be squash-merged at release time. - Your code changes must meet the guidelines in [CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines). - License: I confirm that my contribution is made under the terms of the Apache 2.0 license.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Automatic merge failed
Command line hint
To perform the merge from the command line, you could do something like the following (where "origin" is the name of the remote in your local git repo):