-
Notifications
You must be signed in to change notification settings - Fork 422
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
aws-toolkit-automation
wants to merge
170
commits into
feature/dynamodb
Choose a base branch
from
autoMerge/feature/dynamodb
base: feature/dynamodb
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/dynamodb #5574
aws-toolkit-automation
wants to merge
170
commits into
feature/dynamodb
from
autoMerge/feature/dynamodb
Conversation
This file contains 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
…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.
## 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.
…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`.
This reverts commit 1137ac8.
## 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
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):