Skip to content

Conversation

@anthonyting
Copy link
Contributor

Problem

Automerge from master to feature/stepfunctions-workflow failed due to merge conflicts #6375

Solution

Merging latest changes from master into feature/stepfunctions-workflow and resolving merge conflicts.


  • 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.
  • License: I confirm that my contribution is made under the terms of the Apache 2.0 license.

ashishrp-aws and others added 30 commits January 15, 2025 15:46
## Problem
- The test generation for unsupported language files and external files
is unreliable and flaky.
- Telemetry updated to include new metadata for existing metadata.

## Solution
- Fix to add file name as fallback in case of empty prompt or no code
selection.
- Telemetry updated and values passed to it in controller and messenger.
Essentially same PR :
aws#6323 was closed last week
due to build issues.
---
Before:

https://github.com/user-attachments/assets/90ed6629-4753-41e6-9d11-b6d4dd0d6e7c

After fix:


https://github.com/user-attachments/assets/d0993345-cd2c-47ac-a8b5-1e9badf8fbac




- 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.

---------

Co-authored-by: Justin M. Keyes <[email protected]>
…ws#5991

## Problem

With the release of many Q features(Inline Suggestion, chat, inline
chat, /dev, /test, /doc, /review, /transform), we need to know the %
code written by all Q features. This requires calculating and reporting
the user written code. The reporting of the code contribution of each Q
features was already implemented.


## Solution

Calculate and report the user written code for each language by
listening to document change events while Q is not making changes to the
editor.

We add flags to know whether Q is making temporary changes for
suggestion rendering or Q suggestion is accepted, by doing so, the
document change events are coming from the user.

We ignore certain document changes when their length of new characters
exceeds 50. Previous data driven research has shown that user tend to
copy a huge file from one place to another, making the user written code
count skyrocketing but that is actually some existing code not written
by the user.

We plan to first collect data from IDEs and let it run in the background
in shadow mode before we finish the service side aggregation, fix
possible bugs and eventually present the AI code written % to the
customers.

Note: The JB PR aws/aws-toolkit-jetbrains#5215.
The JB implementation depends on a reliable JB internal message bus to
pass information. Using VSC event listener might mess up the boolean
state of Q editing or not.
## Problem
Certain customers are confused while reading the description of
workspace index settings

## Solution
As requested by product, remove the word "open" from the description of
workspace index settings


## Problem
Previously the logic of showing different messages at different
remaining iteration counts are tested manually.

## Solution
Adding tests to automate the process.
## Problem
Incorrect handling of errors for 4xx and 5xx on IDE. Proper error
messages for users and telemetry needs to differentiate between service
errors.

## Solution
- Adding 4XX vs 5XX `httpStatusCode` field to `amazonq_utgGenerateTests`
event.
- Improving error handling in unit test generation.
## Problem
Several errors that were being shown to customers did not have enough
information for them to take action on the problem.

## Solution
Audited all errors and logs shown to customers and updated them to make
them more legible and actionable.
## Problem
`setMaven` is being executed unnecessarily.

## Solution
Move the call to happen just before the local build starts.
## Problem
Code issues are grouped by severity and while this is useful in some
cases, it can be hard to navigate.

## Solution
Let the user decide how to group the issues.
Grouping strategies to start off with:
- Severity (existing behavior)
- File Location (issues in the same file are grouped together)
## Problem
Toolkit/Q slow performance is consistently reported by customers.
Toolkit/Q features can spawn processes, included many long-lived
processes such as LSP servers. The cost of these processes is hidden and
hard to troubleshoot. Any misbehaving process will not be noticed except
in a coarse "Toolkit/Q causes vscode to be slow" manner.

## Solution
- Track all running processes in a map-like data structure. 
- use a `PollingSet` to periodically "monitor" their system usage (%cpu,
memory bytes), logging warning messages when it exceeds a threshold.
- Add developer command to instantiate spawned processes via
`ChildProcess` wrapper to make this easier to test.
## Problem
- Resource fetcher currently only works on node. This causes some
implements to use got directly, some use fetch directly, some use
httpResourceFetcher depending on their use case

## Solution
- Make HttpResourceFetcher platform independent so it can run on node +
web
- Move the streaming based HttpResourceFetcher to a node specific folder

---

- 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.
## Description
Bumped MynahUI to version 4.21.4 from 4.21.5. This includes two bug
fixes, as described by the changelog commits and by the [MynahUI release
notes](https://github.com/aws/mynah-ui/releases).
refactor(core): Improve httpResourceFetcher API
…c93-9dee-5dd2019769fe.json


update Changelog to mention the particular command

Co-authored-by: Justin M. Keyes <[email protected]>
## Problem

Code fix errors are not handled correctly, only shows a generic error
notification and webview is not updated.


## Solution

Surface the server error to the UI

<img width="658" alt="image"
src="https://github.com/user-attachments/assets/6e0e72d1-7de1-415d-a4d4-891d94e6d7ea"
/>



---

- 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.
fix(amazonq): User can view file diff by file click
…n limit exceeded (aws#6395)

## Problem
When a user encounters an error while updating a README, they see a
"Retry" button, which isn't correct because the previous prompt is not
retried. Instead, the user should be able to input a new prompt.

When a user runs out of iterations in a session, the chat allows them to
continue making README update requests, which results in an "Iteration
limit exceeded error".

## Solution
If a user gets an error while updating a README, the chat input is
enabled and the user can try another prompt.

Once the user hits their iteration limit for the session, they are not
able to suggest more changes and have to accept/reject the existing set
of changes. This will reduce the "iteration limit exceeded" errors
encountered by users.


A E2E test is added to verify that prompt errors during README updates
are handled correctly with the relevant error message, and validates
that users can enter a new prompt.


Screenshots:
_Prompt enabled after error updating README_
<img width="520" alt="image"
src="https://github.com/user-attachments/assets/407109d2-3f10-4e8c-9312-ecab57e625b4"
/>

_'Make changes' button hidden once iteration limit is reached_
<img width="506" alt="image"
src="https://github.com/user-attachments/assets/acf960c0-1c43-475c-a478-c95336ab857b"
/>

---

- 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

Auto review timeout is too long


## Solution

Decrease the timeout for auto reviews from 10 to 1 minute. 

`/review` will still use 10 minute timeout.


---

- 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 currently only retry normal get requests in the httpResourceFetcher

## Solution
Retry etag get requests as well

---

- 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.
jpinkney-aws and others added 16 commits January 21, 2025 09:22
## Problem
Only 200-299 are treated as "response.ok" responses by fetch. However,
304's (content not modified) are valid response codes as well

## Solution
If the status code is 304 then don't throw

---

- 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.
This code removes nearly all cloud9 codepaths:
- Icons, readme generation, scripts
- ikp3db lambda/sam debugger support
- Cloud9 only codepaths and hacks
- Docs and comments mentioning Cloud9

Includes some follow up items as TODOs in code.

Some items were left in case they are helpful in the future (e.g. for
vscode web or similar). The items should be renamed from Cloud9 if used
again in the future. Some examples are Cloud9 runtime environment checks
(for lambda/sam), `isCloud9()` and properties/text for Cloud9 IDE, some
SAM artifacts, don't start LSP server, etc. Search cloud9 in vscode
after merging this change.

---

- 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.

---------

Co-authored-by: Justin M. Keyes <[email protected]>
## Problem
A phrase is repeated in the error message for prompt refusal when
updating a README in /doc

## Solution
Fix error message for prompt refusal

Note: changelog is not updated since error message updating already
included [in changelog for this
release](aws@bcdfcdd#diff-6edd3b49931bb5d80cf0b6d048305bb4902587900e26fea567efe8a1bca38decR3)



---

- 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

The multiple icons in the top right of our Transformation Hub were not
easily visible or sufficiently clear to users.

## Solution

Remove the icons, replacing them with a description of what the
icon/button does.

---

- 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.

---------

Co-authored-by: David Hasani <[email protected]>
## Problem
The version of the AWSK SDK v2 was outdated 1.5 years, so some newer
functionality was not available.

## Solution
Update the version of `aws-sdk` package to the latest version.

The `Response` class in AWS SDK changed the signature of the `nextPage`
method, so some tests that were mocking this method had to be updated
accordingly (changing the response from `undefined` to `null`).

The definition changed from 
```
    nextPage(callback?: (err: E, data: D) => void): Request<D, E>|void;
```
(callback optional, can return `void`)

To 
```
    nextPage(): Request<D, E> | null;
    nextPage(callback: (err: E, data: D) => void): void;
```
(can return `null` if no callback. only when a callback is passed
returns `void`)
## Problem
Right now `PollingSet` exposes both the `add` and the `start` methods.
The `start` adds the item and starts the timer, while the `add` only
adds the item.

This allows a consumer to create a non-empty `PollingSet` where the
timer never started.

## Solution
- override the add method so that a consumer is forced to start the
timer when adding items.
)

Gets rid of these


![image](https://github.com/user-attachments/assets/d0afa2c8-c8c5-43d0-82a0-1ea086be5239)

You can still dismiss by clicking the X button next to non-emergency
notifications.

---

- 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
While starting the release process we found an problem where the
endpoints couldn't be fetched because the resourceFetcher was expecting
a string but the httpResourceFetcher was returning a Resource

## Solution
If its a string then return the contents from the resource fetcher
directly, otherwise consider it as a response and get the text from the
request

---

- 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:
`withRetries` and `waitUntil` are two different interfaces for very
similar concepts.

## Solution:
- Add `backoff` and `retryOnFail` flags to `waitUntil()`.
    - `waitUntil(…, {retryOnFail:true})` returns `undefined` if it never
      properly resolves.
    - `waitUntil(…, {retryOnFail:false})` throws if it never properly
      resolves.
- Delete `withRetries()`.
@anthonyting anthonyting requested review from a team as code owners January 24, 2025 20:43
@anthonyting anthonyting changed the title Merge stepfunctions workflow Merge master into feature/stepfunctions-workflow Jan 24, 2025
@justinmk3 justinmk3 merged commit 4c47de6 into aws:feature/stepfunctions-workflow Jan 24, 2025
9 of 17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.