Skip to content
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

Merge master into feature/dynamodb #5574

Open
wants to merge 170 commits into
base: feature/dynamodb
Choose a base branch
from

Conversation

aws-toolkit-automation
Copy link
Collaborator

Automatic merge failed

  • Resolve conflicts and push to this PR branch.
  • Do not squash-merge this PR. Use the "Create a merge commit" option to do a regular merge.

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):

git stash
git fetch --all
git checkout origin/feature/dynamodb
git merge origin/master
git commit
git push origin HEAD:refs/heads/autoMerge/feature/dynamodb

…ent (#5534)

## Problem

Us (QSDA) team is launching a new code generation agent.

We have conducted experiments wIth the new code generation agent, we
observed:
- Removing planning phase produces higher quality code
- Removing planning phase has general better user experience and remove
the inconsistency of code gen & plan gen

We have discussed with product that the rollout of new code generation
agent should also include planning phase removal as a whole, without an
A/B testing mechanism nor backward compatible implementation. The
endpoint for plan generation will still exist to support older toolkit
versions.

We plan to release the new code generation agent experience in the week
of September 9th.

Please squash merge this pull request, thank you!

## Solution

- Removed planning phase & refine plan in a typical /dev flow.
- Modified customer facing copies.
leigaol and others added 24 commits September 11, 2024 13:52
## Problem
There is a discrepancy between STE telemetry and toolkit telemetry in
terms of field `cwsprChatHasProjectContext` in
`AmazonqAddMessage`.

## Solution

Use same boolean field for `cwsprChatHasProjectContext`

---

<!--- REMINDER: Ensure that your PR meets the guidelines in
CONTRIBUTING.md -->

License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.

---------

Co-authored-by: Will Lo <[email protected]>
## Problem:

The original implementation of DiskCacheError can be simplified and
still achieve it's original purpose.

## Solution:

During token refresh we eventually write to the disk cache. Sometimes
this process fails due to filesystem errors.

We dont need to care about the actual file system error, but only that
the error came during a DiskCache operation (i.e when it attempts to
save the token to disk)

So instead, at the root of where the disk cache errors ocurr, we will
wrap caught errors in a DiskCacheError.
This adds context to the error and allows anything upstream to
specifically check for that context, instead of needing to parse the
error to see if it was filesystem related.

Additionally not all file system errors were guaranteed to come from the
disk cache, so this change allows us to target the right errors.

Signed-off-by: Nikolas Komonen <[email protected]>

---

<!--- REMINDER: Ensure that your PR meets the guidelines in
CONTRIBUTING.md -->

License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.

Signed-off-by: Nikolas Komonen <[email protected]>
Setup Uninstall Handler for extensions.

- [x] Telemetry and Logger needs to be verified. 

## License

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license.
Update Changelog for Amazon Q extesnion.
---

License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
… dependencies (#5594)

## Problem

The vulnerabilities include:

```
body-parser  <1.20.3 - body-parser vulnerable to denial of service when url encoding is enabled
  express  <=4.19.2 || 5.0.0-alpha.1 - 5.0.0-beta.3

path-to-regexp  <=0.1.9 || 0.2.0 - 1.8.0 || 4.0.0 - 6.2.2 - path-to-regexp outputs backtracking regular expressions
  node_modules/@koa/router/node_modules/path-to-regexp
  node_modules/express/node_modules/path-to-regexp
  node_modules/path-to-regexp

send  <0.19.0
send vulnerable to template injection that can lead to XSS
node_modules/send
  serve-static  <=1.16.0
  Depends on vulnerable versions of send
  node_modules/serve-static
```

## Solution

Just run `npm audit fix`. It doesn't look like there's any top level
dependency changes. It looks like its all related to
[express](https://github.com/expressjs/express), which is used for the
webpack dev server
## Problem
- When you build the project amazonQSessionConfigurationMessage and
ssoCacheError get removed from the amazon q package.json

## Solution
- Add them into core, which makes sure they get copied to the
package.json of amazonq
## Problem

E2E test is not up to date post approach removal

## Solution

- Removed tests related to approach
- Refactored the E2E test script
…ange (#5581)

redo of: #3663 without
formatting problems.

## Problem
when changing instance status, the node will visually update, but only
once. Thus, starting a node will leave it stuck in pending status until
another refresh from elsewhere allows it to update.
## Solution
We generalize the solution to that used in the
`./src/apprunner/explorer/apprunnerNode.ts` into
`packages/core/src/shared/utilities/pollingSet.ts`.
- keep a set of items. 
- if the set is non-empty, run some `action` every `pollingInterval`
seconds.

In the context of ec2, this means:
- when an instance enters the `pending` status, we add it to the set. 
- Every 5, we check each node in the `pending` status to see if its
status has updated. (action)
- If the node is no longer pending, remove it from the set and refresh
its corresponding node in explorer.
- Once no more nodes are pending, we cancel the timer. Only to be
restart if a new one is added.

Notes:
- When a node leaves the pending status, we only refresh that node, not
the entire subtree.
- We check every 5 seconds if the status changed, which involves an API
call for each pending node.
- We also remove the ability to start/stop an instance that is currently
pending.
<!---
    REMINDER:
    - Read CONTRIBUTING.md first.
    - Add test coverage for your changes.
    - Update the changelog using `npm run newChange`.
    - Link to related issues/commits.
    - Testing: how did you test your changes?
    - Screenshots
-->

## License

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license.
This attempts to fix our dependabot issue but I am not sure what the
best way to test this is other than committing it and seeing what
happens.

Problem (as I understand it, may be incorrect): Dependabot wants to
update deps in src.gen/, but this is managed separately and can cause
things to break. There is no exclude dirs option in dependabot. So, we
limit the dependabot to packages/core only which doesn't paint the full
picture of all of our dependencies AND since this is a monorepo where
the package-lock.json lives in the root, it cannot be updated. This
effectively bricks dependabot and makes the PRs nothing more than a
reminder.

Solution: Use this 'workaround' to exclude a directory so that
dependabot can update the deps of all of our subprojects and the root
directory without touching src.gen/.
Hack from: dependabot/dependabot-core#4364

MAY have to follow up with `versioning-strategy: 'increase'`, see
dependabot/dependabot-core#4993
## Problem
- This test started failing around sept 10th with no clear code change
- #5587

## Solution
- Until we can figure out the problem lets just disable it on mac ci
#3687)

## Problem
Potential UX Improvements. 
## Solution

![image](https://github.com/aws/aws-toolkit-vscode/assets/42325418/505b3ada-7d9c-4221-94bb-186837a9242d)

![image](https://github.com/aws/aws-toolkit-vscode/assets/42325418/76f7fac8-38eb-496a-a8db-f584b025e6b0)

<!---
    REMINDER:
    - Read CONTRIBUTING.md first.
    - Add test coverage for your changes.
    - Update the changelog using `npm run newChange`.
    - Link to related issues/commits.
    - Testing: how did you test your changes?
    - Screenshots
-->

## License

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license.

---------

Co-authored-by: JadenSimon <[email protected]>
Co-authored-by: Justin M. Keyes <[email protected]>
Co-authored-by: Weinstock <[email protected]>
## Problem
Customer not able to list the provisioned clusters in region where
serverless API's not present.
Solution


## Solution
Made a minor code change to fix the issue. Tested the change too.


---

<!--- REMINDER: Ensure that your PR meets the guidelines in
CONTRIBUTING.md -->

License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
Problem: Users can open multiple VSC sessions. If they sign out or the
connection is lost in another window, then interacting with chat or
in-line suggestions in the original window will only produce cryptic
"Profile does not exist" errors, with no clear way to get back to a
working state.

Solution: Log out once this state is detected (uses chat, invokes manual
or auto inline suggestion).

3 commits:

[fix(amazonq): user stays signed in if they log out in other
windows](270a321)
Problem: Users can open multiple VSC sessions. If they sign out or the
connection is lost in another window, then interacting with chat or
in-line suggestions in the original window will only produce cryptic
"Profile does not exist" errors, with no clear way to get back to a
working state.

Solution: Log out once this state is detected (uses chat, invokes manual
or auto inline suggestion).

[fix(amazonq): disable 'connection already exists' error for login
page](5593784)
Error would appear due to certain race conditions. If the auth page is
visible then we know that we have no connections. (for amazon q only).

[fix(auth): login state updates across
windows](ced109f)
- Uses a vscode filwatcher to detect changes to `.aws/sso/cache`.
- Try to 'reconnect' on new changes based on stored state key.
  - Global state is stored across windows.
- Login or log out will happen in all vsc instances.

---

<!--- REMINDER: Ensure that your PR meets the guidelines in
CONTRIBUTING.md -->

License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
## Problem
New version of MynahUI requires release in vscode.

## Solution
Release new version of MynahUI with the following bug fixes:

- Fix shifted chat contents
- Fix tooltip remaining on screen after closing and opening chat panel:
#5535

MynahUI v4.15.10 release notes:
https://github.com/aws/mynah-ui/releases/tag/v4.15.10

Also fixed a regression in the following MynahUI v4.15.11
Release notes: https://github.com/aws/mynah-ui/releases/tag/v4.15.11
…tests (#5540)

## Problem
Our performance tests are occasionally flaky

## Solution
- Separate the setup, execution, and verification of the tests into different steps. Only performance test the actual thing under test
- Up the test runs to 10
- Use the median performance result rather than the average of all of them

TODO verify if trimmed mean makes more sense in this case
## Problem
- Issue with loading icon in the status bar menu.

![image](https://github.com/user-attachments/assets/94564f04-265d-49df-8a68-39745c7703b3)


## Solution
- Replaced previous icon with relevant loading icon.

![image](https://github.com/user-attachments/assets/72efac08-4a10-4cf4-9dbf-626793cc8fcb)
- Did not update any logic in the PR, its just a UI icon change so
adding/updating tests is not considered.
## Problem

In AL2, node js runtime v18 is not supported due to GLIBC <= 2.26.0.
This LSP will show user facing error message, which is disturbing.

## Solution

Disable LSP in AL2. 

In the long run, we may downgrade node 18 to 16 if possible. Meanwhile,
VS Code will soon require node v18. AL2 will migrate to AL2023 which has
newer GLIBC.
andrewyuq and others added 30 commits October 10, 2024 15:51
…ification events (#5766)

1. bring back UserModification SendTelemetryEvent and track
acceptedCharacterCount and unmodifiedAcceptedCharacterCount.
2. combine some latency tracking to the session object

JB PR reference: aws/aws-toolkit-jetbrains#4955 
## Problem


## Solution


---

<!--- REMINDER: Ensure that your PR meets the guidelines in
CONTRIBUTING.md -->

License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
## Problem

Crash monitoring is reporting incorrect crash metrics.
This seems to be due to various filesystem errors such as eperm (even
though we were doing an operation on a file we created), enospc (the
user ran out of space on their machine, and other errors.

Because of this we ran in to situations where our state did not reflect
reality, and due to this certain extension
instances were seen as crashed.

## Solution

- Determine if a filesystem is reliable on a machine (try a bunch of
different filesystem flows and ensure nothing throws), if it is THEN we
start the crash monitoring process. Otherwise we do not run it since we
cannot rely it will be accurate.
- We added a `function_call` metric to allow us to determine the ratio
of successes to failures
- Add retries to critical filesystem operations such as the heartbeats
and deleting a crashed extension instance from the state.
- Other various fixes


---

<!--- REMINDER: Ensure that your PR meets the guidelines in
CONTRIBUTING.md -->

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
no metrics for notifications.

## Solution
add `toolkit_showNotification` to `showMessage` and use it in
`maybeShowMinVscodeWarning`.


Problem:
When debugging the extension, vscode tends to ignore the log-level that
was set from the `AWS Toolkit Logs` UI.

Solution:
If the dev-mode `aws.dev.logfile` path is configured, log to it at
"debug" log-level regardless of the (initial)
`vscode.LogOutputChannel.logLevel`.
## Problem
In
https://github.com/aws/aws-toolkit-vscode/blob/16aa3684f479566bfcf6a9e33f88e70039831e9a/packages/core/src/test/globalSetup.test.ts#L48,
we use our fs.fs module which accesses globals.isWeb, but globals are not initialized yet.

```
Exception has occurred: Error: ToolkitGlobals accessed before initialize()
  at Object.get (/Volumes/workplace/aws-toolkit-vscode/packages/core/src/shared/extensionGlobals.ts:109:23)
    at FileSystem.get isWeb [as isWeb] (/Volumes/workplace/aws-toolkit-vscode/packages/core/src/shared/fs/fs.ts:689:24)
    at FileSystem.mkdir (/Volumes/workplace/aws-toolkit-vscode/packages/core/src/shared/fs/fs.ts:94:63)
    at Runner.<anonymous> (/Volumes/workplace/aws-toolkit-vscode/packages/core/src/test/globalSetup.test.ts:48:18)
```

To reproduce, go into master, run any test file individually with
"Extension Tests (current file) (amazonq)".

## Solution
Use node's fs when setting up tests since we must wait for global
context to be initialized to use our fs.
…dates (#5752)

Bumps the npm_and_yarn group with 2 updates in the / directory:
[cookie](https://github.com/jshttp/cookie) and
[express](https://github.com/expressjs/express).

Updates `cookie` from 0.6.0 to 0.7.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/jshttp/cookie/releases">cookie's
releases</a>.</em></p>
<blockquote>
<h2>0.7.1</h2>
<p><strong>Fixed</strong></p>
<ul>
<li>Allow leading dot for domain (<a
href="https://redirect.github.com/jshttp/cookie/issues/174">#174</a>)
<ul>
<li>Although not permitted in the spec, some users expect this to work
and user agents ignore the leading dot according to spec</li>
</ul>
</li>
<li>Add fast path for <code>serialize</code> without options, use
<code>obj.hasOwnProperty</code> when parsing (<a
href="https://redirect.github.com/jshttp/cookie/issues/172">#172</a>)</li>
</ul>
<p><a
href="https://github.com/jshttp/cookie/compare/v0.7.0...v0.7.1">https://github.com/jshttp/cookie/compare/v0.7.0...v0.7.1</a></p>
<h2>0.7.0</h2>
<ul>
<li>perf: parse cookies ~10% faster (<a
href="https://redirect.github.com/jshttp/cookie/issues/144">#144</a> by
<a href="https://github.com/kurtextrem"><code>@​kurtextrem</code></a>
and <a
href="https://redirect.github.com/jshttp/cookie/issues/170">#170</a>)</li>
<li>fix: narrow the validation of cookies to match RFC6265 (<a
href="https://redirect.github.com/jshttp/cookie/issues/167">#167</a> by
<a href="https://github.com/bewinsnw"><code>@​bewinsnw</code></a>)</li>
<li>fix: add <code>main</code> to <code>package.json</code> for rspack
(<a href="https://redirect.github.com/jshttp/cookie/issues/166">#166</a>
by <a
href="https://github.com/proudparrot2"><code>@​proudparrot2</code></a>)</li>
</ul>
<p><a
href="https://github.com/jshttp/cookie/compare/v0.6.0...v0.7.0">https://github.com/jshttp/cookie/compare/v0.6.0...v0.7.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/jshttp/cookie/commit/cf4658f492c5bd96aeaf5693c3500f8495031014"><code>cf4658f</code></a>
0.7.1</li>
<li><a
href="https://github.com/jshttp/cookie/commit/6a8b8f5a49af7897b98ebfb29a1c4955afa3d33e"><code>6a8b8f5</code></a>
Allow leading dot for domain (<a
href="https://redirect.github.com/jshttp/cookie/issues/174">#174</a>)</li>
<li><a
href="https://github.com/jshttp/cookie/commit/58015c0b93de0b63db245cfdc5a108e511a81ad0"><code>58015c0</code></a>
Remove more code and perf wins (<a
href="https://redirect.github.com/jshttp/cookie/issues/172">#172</a>)</li>
<li><a
href="https://github.com/jshttp/cookie/commit/ab057d6c06b94a7b1e3358e69a685ae49c97b627"><code>ab057d6</code></a>
0.7.0</li>
<li><a
href="https://github.com/jshttp/cookie/commit/5f02ca87688481dbcf155e49ca8b61732f30e542"><code>5f02ca8</code></a>
Migrate history to GitHub releases</li>
<li><a
href="https://github.com/jshttp/cookie/commit/a5d591ce8447dd63821779724f96ad3c774c8579"><code>a5d591c</code></a>
Migrate history to GitHub releases</li>
<li><a
href="https://github.com/jshttp/cookie/commit/51968f94b5e820adeceef505539fa193ffe2d105"><code>51968f9</code></a>
Skip isNaN</li>
<li><a
href="https://github.com/jshttp/cookie/commit/9e7ca51ade4b325307eedd6b4dec190983e9e2cc"><code>9e7ca51</code></a>
perf(parse): cache length, return early (<a
href="https://redirect.github.com/jshttp/cookie/issues/144">#144</a>)</li>
<li><a
href="https://github.com/jshttp/cookie/commit/d6f39b0aab5521a8b118b466a515fd6eb0b9f65e"><code>d6f39b0</code></a>
Fix tests for old node</li>
<li><a
href="https://github.com/jshttp/cookie/commit/6bb701f14e59c5e768933bfae9b578db4ed26c6e"><code>6bb701f</code></a>
Remove failing scorecard</li>
<li>Additional commits viewable in <a
href="https://github.com/jshttp/cookie/compare/v0.6.0...v0.7.1">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~blakeembrey">blakeembrey</a>, a new
releaser for cookie since your current version.</p>
</details>
<br />

Updates `express` from 4.21.0 to 4.21.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/expressjs/express/releases">express's
releases</a>.</em></p>
<blockquote>
<h2>4.21.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Backport a fix for CVE-2024-47764 to the 4.x branch by <a
href="https://github.com/joshbuker"><code>@​joshbuker</code></a> in <a
href="https://redirect.github.com/expressjs/express/pull/6029">expressjs/express#6029</a></li>
<li>Release: 4.21.1 by <a
href="https://github.com/UlisesGascon"><code>@​UlisesGascon</code></a>
in <a
href="https://redirect.github.com/expressjs/express/pull/6031">expressjs/express#6031</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/expressjs/express/compare/4.21.0...4.21.1">https://github.com/expressjs/express/compare/4.21.0...4.21.1</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/expressjs/express/blob/4.21.1/History.md">express's
changelog</a>.</em></p>
<blockquote>
<h1>4.21.1 / 2024-10-08</h1>
<ul>
<li>Backported a fix for <a
href="https://nvd.nist.gov/vuln/detail/CVE-2024-47764">CVE-2024-47764</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/expressjs/express/commit/8e229f92752ad51462c868b99f6e6c2e559801b0"><code>8e229f9</code></a>
4.21.1</li>
<li><a
href="https://github.com/expressjs/express/commit/a024c8a7b658a178cbdb9bde33030b7500172815"><code>a024c8a</code></a>
fix(deps): [email protected]</li>
<li>See full diff in <a
href="https://github.com/expressjs/express/compare/4.21.0...4.21.1">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/aws/aws-toolkit-vscode/network/alerts).

</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
## Problem
It's hard to know what certain performance metrics are tracking

## Solution
Add documentation
## Problem
Performance test involve running the same code 10 times, and often its
demanding code. This should live with integ rather than unit tests to
avoid slow down.

## Solution
- Move
https://github.com/aws/aws-toolkit-vscode/blob/master/packages/core/src/test/amazonqFeatureDev/prepareRepoData.test.ts
into integ folder.
- Move
https://github.com/aws/aws-toolkit-vscode/blob/master/packages/core/src/test/codewhisperer/commands/startSecurityScan.test.ts
into integ folder.
## Problem
Follow up to: #5698
Fix: #5750

### First Problem Identified
The current tests in
https://github.com/aws/aws-toolkit-vscode/blob/master/packages/core/src/awsService/ec2/explorer/ec2ParentNode.ts
do not clear the `PollingSet` in between tests, therefore the timer
continues to run. This not only results in inconsistent state between
the items in the `PollingSet` and the items stored on the parent node
itself, but also allows the `PollingSet` action to trigger unexpectedly
in the middle of another test. When this happens, and the states don't
match, the `instanceId` from the `PollingSet` could potentially not be
found on the parent node, resulting in an undefined node. Then, calling
`updateStatus` on this node could explain the error.

For this error to happen, the `PollingSet` timer must trigger at a very
specific point (in the middle of another test), making it difficult to
debug and reproduce, and causing occasional flaky test failures.

### Second Problem Identified
The tests in
https://github.com/aws/aws-toolkit-vscode/blob/master/packages/core/src/awsService/ec2/explorer/ec2InstanceNode.ts
setup an unnatural state. The `testNode` sets its parent to the
`testParentNode`, but `testParentNode` is unaware this child exists.
This is problematic because when the child reports its status as pending
to the parent, the parent will throw an error since it can't find the
child. (example:
https://d1ihu6zq92vp9p.cloudfront.net/7b1e96c7-f2b7-4a8e-927c-b7aa84437960/report.html)
This type of state should not be allowed.
## Solution
### Solution to first problem
- clear the set, and the timer in-between each test. 

### Solution to second problem 
- make this confusing state impossible by adding the child to the parent
and parent to the child together.
- stub the resulting API call its makes. 
- Disable the polling set timer in the second tests (via sinon stubbing)
since it isn't relevant to what's being tested.

### Tangential Work included in PR:
- Throw our own error when an `instanceId` is not in map on the
parentNode. This will make it easier to catch if something goes wrong.
- Clean up test file:
`src/test/awsService/ec2/explorer/ec2ParentNode.test.ts`.

---

<!--- REMINDER: Ensure that your PR meets the guidelines in
CONTRIBUTING.md -->

License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
## Problem
Continuation of #5670

## Solution
same as previous

---

<!--- REMINDER: Ensure that your PR meets the guidelines in
CONTRIBUTING.md -->

License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
## Problem
continuation of performance test work:
#5670

## Solution
same as previous.
CPU threshold set very high because it spikes pretty wildly on this one.

![image](https://github.com/user-attachments/assets/cc8a6ce9-1be1-4504-b4de-cbafd1241016)


---

<!--- REMINDER: Ensure that your PR meets the guidelines in
CONTRIBUTING.md -->

License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
…hieve. (#5710)

## Problem
Continuation of work here:
#5670

## Solution
In this case `downloadExportResultArchieve` is reading a large
collection of objects into a buffer, then writing that buffer to a file.
We test this with varying collections of objects. We test 1x1KB,
10x100B, 100x10B, and 1000x1B.

---

<!--- REMINDER: Ensure that your PR meets the guidelines in
CONTRIBUTING.md -->

License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
Bumps [prettier](https://github.com/prettier/prettier) from 3.3.2 to
3.3.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/prettier/prettier/releases">prettier's
releases</a>.</em></p>
<blockquote>
<h2>3.3.3</h2>
<p>🔗 <a
href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md#333">Changelog</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md">prettier's
changelog</a>.</em></p>
<blockquote>
<h1>3.3.3</h1>
<p><a
href="https://github.com/prettier/prettier/compare/3.3.2...3.3.3">diff</a></p>
<h4>Add parentheses for nullish coalescing in ternary (<a
href="https://redirect.github.com/prettier/prettier/pull/16391">#16391</a>
by <a
href="https://github.com/cdignam-segment"><code>@​cdignam-segment</code></a>)</h4>
<p>This change adds clarity to operator precedence.</p>
<!-- raw HTML omitted -->
<pre lang="js"><code>// Input
foo ? bar ?? foo : baz;
foo ?? bar ? a : b;
a ? b : foo ?? bar;
<p>// Prettier 3.3.2<br />
foo ? bar ?? foo : baz;<br />
foo ?? bar ? a : b;<br />
a ? b : foo ?? bar;</p>
<p>// Prettier 3.3.3<br />
foo ? (bar ?? foo) : baz;<br />
(foo ?? bar) ? a : b;<br />
a ? b : (foo ?? bar);<br />
</code></pre></p>
<h4>Add parentheses for decorator expressions (<a
href="https://redirect.github.com/prettier/prettier/pull/16458">#16458</a>
by <a
href="https://github.com/y-schneider"><code>@​y-schneider</code></a>)</h4>
<p>Prevent parentheses around member expressions or tagged template
literals from being removed to follow the stricter parsing rules of
TypeScript 5.5.</p>
<!-- raw HTML omitted -->
<pre lang="ts"><code>// Input
@(foo`tagged template`)
class X {}
<p>// Prettier 3.3.2<br />
<a href="https://github.com/foo"><code>@​foo</code></a><code>tagged
template</code><br />
class X {}</p>
<p>// Prettier 3.3.3<br />
@(foo<code>tagged template</code>)<br />
class X {}<br />
</code></pre></p>
<h4>Support <code>@let</code> declaration syntax (<a
href="https://redirect.github.com/prettier/prettier/pull/16474">#16474</a>
by <a
href="https://github.com/sosukesuzuki"><code>@​sosukesuzuki</code></a>)</h4>
<p>Adds support for Angular v18 <code>@let</code> declaration
syntax.</p>
<p>Please see the following code example. The <code>@let</code>
declaration allows you to define local variables within the
template:</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/prettier/prettier/commit/52829385bcc4d785e58ae2602c0b098a643523c9"><code>5282938</code></a>
Release 3.3.3</li>
<li><a
href="https://github.com/prettier/prettier/commit/9102b73d8cd01795e7ba5af8a476d500c5dbcf2c"><code>9102b73</code></a>
Add parentheses for decorator expressions (<a
href="https://redirect.github.com/prettier/prettier/issues/16458">#16458</a>)</li>
<li><a
href="https://github.com/prettier/prettier/commit/6bbd46194e4db25025afd6fe2f8506a8a2d1e47e"><code>6bbd461</code></a>
chore(deps): update eslint related dependencies (<a
href="https://redirect.github.com/prettier/prettier/issues/16478">#16478</a>)</li>
<li><a
href="https://github.com/prettier/prettier/commit/04b560fc4386ee2ba1fc7c611c7a78655d6e60da"><code>04b560f</code></a>
chore(deps): update dependency browserslist to v4.23.2 (<a
href="https://redirect.github.com/prettier/prettier/issues/16475">#16475</a>)</li>
<li><a
href="https://github.com/prettier/prettier/commit/614f070ac5f8d30628cc6cbbca1dda0e080e41d9"><code>614f070</code></a>
chore(deps): update typescript-eslint to v8.0.0-alpha.41 (<a
href="https://redirect.github.com/prettier/prettier/issues/16477">#16477</a>)</li>
<li><a
href="https://github.com/prettier/prettier/commit/d59a15ded901c6dd66c07cf508e14646a6f12cd9"><code>d59a15d</code></a>
chore(deps): update dependency npm-run-all2 to v6.2.2 (<a
href="https://redirect.github.com/prettier/prettier/issues/16476">#16476</a>)</li>
<li><a
href="https://github.com/prettier/prettier/commit/5ca2fc9be8369bf8c96899e2e5e8f3264086645a"><code>5ca2fc9</code></a>
Support Angular <code>@let</code> declaration syntax (<a
href="https://redirect.github.com/prettier/prettier/issues/16474">#16474</a>)</li>
<li><a
href="https://github.com/prettier/prettier/commit/bfcfdccdf892141ce9cfbc179493557157c24e4c"><code>bfcfdcc</code></a>
chore(deps): update babel to v7.24.8 (<a
href="https://redirect.github.com/prettier/prettier/issues/16472">#16472</a>)</li>
<li><a
href="https://github.com/prettier/prettier/commit/977c161924efa328660fe1802b604de2bc2527ea"><code>977c161</code></a>
chore(deps): update dependency acorn to v8.12.1 (<a
href="https://redirect.github.com/prettier/prettier/issues/16464">#16464</a>)</li>
<li><a
href="https://github.com/prettier/prettier/commit/550606edf9f3c2e2d2c75f37f627c42030de34a3"><code>550606e</code></a>
chore(deps): update babel to v7.24.8 (<a
href="https://redirect.github.com/prettier/prettier/issues/16470">#16470</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/prettier/prettier/compare/3.3.2...3.3.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=prettier&package-manager=npm_and_yarn&previous-version=3.3.2&new-version=3.3.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Maxim Hayes <[email protected]>
## Problem
- Static `errorName` is unnecessary in feature dev error classes. It
also causes error code mismatches some of errorName which result in
wrong state.

## Solution
- Remove `errorName` from error classes
- use class name match to ensure error handled correctly.
- Add unit tests to cover all the error cases.
#5788

## Problem:

This test was flaky due to the event emitter and the test expecting 2 of
the same event to come in, but sometimes the second one was not capture.

This looks to be due to the second `captureEventOnce` call needing to do
some initial setup before it could capture an event. And I think there
was a race condition between it being setup in time and the event being
emitted before it could start listening.

## Solution:

Make a new function which does the event capture once and then listens N
amount of times. This is reliable.
…opyAtClipboard #5768

## Problem
- Client side telemetry event `interactWithMessage` is missing
`cwsprChatProgrammingLanguage` parameter which helps to understand the
language of generated code.

## Solution
- Added `cwsprChatProgrammingLanguage` parameter for insertAtCursor and
CopyAtClipboard events.
- No Test cases were added in this PR.
- Added `extractCodeBlockLanguage` function as current UTG Sync API
sends python and java in the first chunk of generated code but thats the
not case for other languages. To counter this, I am checking entire
response for generated code language and emitting those metrics.
- Added `cwsprChatProgrammingLanguage` in
[commons](https://github.com/aws/aws-toolkit-common) package:
aws/aws-toolkit-common#883
- Added `cwsprChatHasProjectContext and cwsprChatTotalCodeBlocks` in in
[commons](https://github.com/aws/aws-toolkit-common) package:
aws/aws-toolkit-common#884
Bumps
[@types/webpack-env](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/webpack-env)
from 1.18.1 to 1.18.5.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/webpack-env">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/webpack-env&package-manager=npm_and_yarn&previous-version=1.18.1&new-version=1.18.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
## Problem
https://github.com/aws/aws-toolkit-vscode/blob/0164d4145e58ae036ddf3815455ea12a159d491d/packages/core/src/test/shared/credentials/userCredentialsUtils.test.ts#L38-L39

This test is deleting my actual aws config file.

## Solution
Update the environment variable to point to a fake location before test
Then recover them after test
## Problem
Eliminate fs-extra from the codebase.

## Solution
We can use `fs.cp` since node v16.7.0+.
Note that `overwrite` is now `force` based on
https://nodejs.org/api/fs.html#fscpsyncsrc-dest-options

Bump the dependency @types/node to avoid casting (fs as any).
## Problem:

When a user does a sleep then wake of their computer, the heartbeat is
not up to date since it cannot be sent when the user's computer is
asleep.

Due to this there is a race condition on wake between the next fresh
heartbeat being sent versus when we check the heartbeats to determine if
they are stale (crash). If the crash checker runs before a new heartbeat
can be sent, it will be seen as a crash.

## Solution:

Use a TimeLag class that helps to determine when there is a time
discrepancy. It works by updating a state every second, and if we
determine that the next update to that state took longer than a second,
we determine that there was a lag. Then we simply skip the next crash
check, allowing a fresh heartbeat to be sent.

---

<!--- REMINDER: Ensure that your PR meets the guidelines in
CONTRIBUTING.md -->

License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.

---------

Signed-off-by: nkomonen-amazon <[email protected]>
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.