Skip to content

Merge master into feature/dynamodb#5574

Open
aws-toolkit-automation wants to merge 4107 commits intofeature/dynamodbfrom
autoMerge/feature/dynamodb
Open

Merge master into feature/dynamodb#5574
aws-toolkit-automation wants to merge 4107 commits intofeature/dynamodbfrom
autoMerge/feature/dynamodb

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

@aws-toolkit-automation aws-toolkit-automation requested a review from a team as a code owner October 2, 2024 16:47
@aws-toolkit-automation aws-toolkit-automation requested a review from a team as a code owner December 3, 2024 22:16
MarcoWang3 and others added 25 commits September 10, 2025 17:39
## Problem
Currently there is no telemetry support for auto debug feature.
## Solution
Add telemetry support for auto debug feature.

---

- 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: invictus <149003065+ashishrp-aws@users.noreply.github.com>
Co-authored-by: Ashish Reddy Podduturi <ashishrp@amazon.com>
Co-authored-by: Laxman Reddy <141967714+laileni-aws@users.noreply.github.com>
…iew (#8019)

## Problem
Currently users couldn't edit code files on the diff view provided by
Amazon Q. Users have to open those files in the workspace to edit them.
This is very inconvenient.

## Solution
Copy of #7886

Enable users to edit code files directly on the diff view.


https://github.com/user-attachments/assets/464d9757-cb6f-4f0f-aa6f-de4f3104cdb5

---

- 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


## Solution


---

- Treat all work as PUBLIC. Private `feature/x` branches will not be
squash-merged at release time.
- Your code changes must meet the guidelines in
[CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines).
- License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.

---------

Co-authored-by: Lei Gao <97199248+leigaol@users.noreply.github.com>
Co-authored-by: Lei Gao <leigaol@amazon.com>
Co-authored-by: aws-toolkit-automation <43144436+aws-toolkit-automation@users.noreply.github.com>
Co-authored-by: andrewyuq <89420755+andrewyuq@users.noreply.github.com>
Co-authored-by: Will Lo <96078566+Will-ShaoHua@users.noreply.github.com>
## Problem
This merges the released changes for rc-20250911 into main.

## Solution


---

- Treat all work as PUBLIC. Private `feature/x` branches will not be
squash-merged at release time.
- Your code changes must meet the guidelines in
[CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines).
- License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.

---------

Co-authored-by: aws-toolkit-automation <>
## Problem
- Added new UX to inform user about migration of /agents.
## Solution
- Removing the migration of /agents ux but need some time to remove
entire functionality due to backward compatability issues.
- Removed unused and unnecessary code.
- Related Flare PR: aws/language-servers#2248

### Old VSC plugin behavior with new flare version


https://github.com/user-attachments/assets/c6966bdb-7bdc-41ca-ae67-acadc4f69ef9


### New VSC plugin behavior with new flare version


https://github.com/user-attachments/assets/9e76779d-6284-4ba3-b206-ddbb862c3d76

---

- 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.
…#8047)

## Problem
#8045
#8040

## Solution
fix for path parsing for windows for editable diff view


---

- 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
- Require account id to create a more complete product metric on SMUS
feature usage
## Solution
- Add domain account id metadata to smus_login metric

## Test
- on core `npm run generateTelemetry`
- `npm test`
- manually test telemetry
```
2025-09-16 01:21:25.358 [debug] telemetry: smus_login {
  Metadata: {
    metricId: '43dfab8d-d5a6-4791-9afb-b0b3454efb23',
    traceId: 'ba4dd30a-3ad6-4101-84a0-8ae558947fed',
    parentId: '4e6f9558-995e-444e-8461-d718bd6434a5',
    duration: '1763',
    result: 'Cancelled',
    reason: 'UserCancelled',
    reasonDesc: 'Failed to initiate login. | UserCancelled: User cancelled domain URL input',
    awsAccount: 'not-set',
    awsRegion: 'us-east-1'
  },
  Value: 1,
  Unit: 'None',
  Passive: false
}

2025-09-16 01:22:39.406 [debug] telemetry: smus_login {
  Metadata: {
    metricId: '4840c7e2-7a68-49a8-8bb6-710d629856ab',
    traceId: '65160024-7c03-47c8-80e3-9fdf8493047b',
    smusDomainId: 'dzd_bh80g0fbj1h7xl',
    awsRegion: 'us-east-2',
    smusDomainAccountId: '050752642559',
    duration: '34889',
    result: 'Succeeded',
    awsAccount: 'not-set'
  },
  Value: 1,
  Unit: 'None',
  Passive: false
}

2025-09-16 01:22:48.391 [debug] telemetry: smus_accessProject {
  Metadata: {
    metricId: 'fad0c4d1-49bd-4a87-aed5-72a6e4d04c3a',
    traceId: '65160024-7c03-47c8-80e3-9fdf8493047b',
    parentId: 'cda698a1-1c85-477c-9722-ca5b81ae6f63',
    smusDomainId: 'dzd_bh80g0fbj1h7xl',
    smusProjectId: 'c1wqm5rlzb150p',
    smusDomainRegion: 'us-east-2',
    smusDomainAccountId: '050752642559',
    duration: '10451',
    result: 'Succeeded',
    awsAccount: 'not-set',
    awsRegion: 'us-east-1'
  },
  Value: 1,
  Unit: 'None',
  Passive: false
}

2025-09-16 01:22:51.374 [debug] telemetry: smus_renderProjectChildrenNode {
  Metadata: {
    metricId: '0bc6e3e4-a54b-44a2-84d6-b033e656d91e',
    traceId: 'e280e0c3-54c5-4aae-8431-ef5724a20e42',
    smusToolkitEnv: 'local',
    smusDomainId: 'dzd_bh80g0fbj1h7xl',
    smusDomainAccountId: '050752642559',
    smusProjectId: 'c1wqm5rlzb150p',
    smusDomainRegion: 'us-east-2',
    duration: '2979',
    result: 'Succeeded',
    awsAccount: 'not-set',
    awsRegion: 'us-east-1'
  },
  Value: 1,
  Unit: 'None',
  Passive: true
}

2025-09-16 01:24:25.389 [debug] telemetry: smus_renderLakehouseNode {
  Metadata: {
    metricId: 'f50b2b04-ffe7-49f6-8d85-a1e5d59438cc',
    traceId: '83155b49-3d84-4896-bb04-5ed5182006e6',
    smusToolkitEnv: 'local',
    smusDomainId: 'dzd_bh80g0fbj1h7xl',
    smusDomainAccountId: '050752642559',
    smusProjectId: 'c1wqm5rlzb150p',
    smusConnectionId: 'c1pnab9bdg3qjt',
    smusConnectionType: 'LAKEHOUSE',
    smusProjectRegion: 'us-east-2',
    duration: '2321',
    result: 'Succeeded',
    awsAccount: 'not-set',
    awsRegion: 'us-east-1'
  },
  Value: 1,
  Unit: 'None',
  Passive: false
}


2025-09-16 01:24:54.443 [debug] telemetry: smus_renderS3Node {
  Metadata: {
    metricId: '74f286b6-1feb-43aa-b15e-4e0919ab272a',
    traceId: '9db37019-272f-4963-9e9e-1da9d9f9a26e',
    smusToolkitEnv: 'local',
    smusDomainId: 'dzd_bh80g0fbj1h7xl',
    smusDomainAccountId: '050752642559',
    smusProjectId: 'c1wqm5rlzb150p',
    smusConnectionId: 'c13ow7arqtblih',
    smusConnectionType: 'S3',
    smusProjectRegion: 'us-east-2',
    duration: '2',
    result: 'Succeeded',
    awsAccount: 'not-set',
    awsRegion: 'us-east-1'
  },
  Value: 1,
  Unit: 'None',
  Passive: false
}

2025-09-16 01:25:40.741 [debug] telemetry: smus_openRemoteConnection {
  Metadata: {
    metricId: '2f32a489-b013-4f47-951f-04d535bc2761',
    traceId: '1b90a3dc-f01f-40cc-b0bf-5920b7c6e9cc',
    smusSpaceKey: 'd-rxs4hhmzrnho__ce',
    smusDomainRegion: 'us-east-2',
    smusDomainId: 'dzd_bh80g0fbj1h7xl',
    smusDomainAccountId: '050752642559',
    smusProjectId: 'c1wqm5rlzb150p',
    duration: '18000',
    result: 'Succeeded',
    awsAccount: 'not-set',
    awsRegion: 'us-east-1'
  },
  Value: 1,
  Unit: 'None',
  Passive: false
}

2025-09-16 01:26:52.258 [debug] telemetry: smus_stopSpace {
  Metadata: {
    metricId: 'b0903fd5-ffb5-4a9a-b131-99baf11cb3a7',
    traceId: 'c5ec5f41-ae58-46b3-af8e-47c1d8fb737d',
    smusSpaceKey: 'd-rxs4hhmzrnho__ce',
    smusDomainRegion: 'us-east-2',
    smusDomainId: 'dzd_bh80g0fbj1h7xl',
    smusDomainAccountId: '050752642559',
    smusProjectId: 'c1wqm5rlzb150p',
    duration: '2308',
    result: 'Succeeded',
    awsAccount: 'not-set',
    awsRegion: 'us-east-1'
  },
  Value: 1,
  Unit: 'None',
  Passive: false
}

2025-09-16 01:27:22.027 [debug] telemetry: smus_signOut {
  Metadata: {
    metricId: 'e41138b8-9949-4088-b175-73c4d48110cc',
    traceId: 'b6a34176-e2a2-47f1-b170-d092488c0d00',
    parentId: '51f87fa9-fc1c-4351-914b-c0ce077b8f1b',
    smusDomainId: 'dzd_bh80g0fbj1h7xl',
    awsRegion: 'us-east-2',
    smusDomainAccountId: '050752642559',
    duration: '476',
    result: 'Succeeded',
    awsAccount: 'not-set'
  },
  Value: 1,
  Unit: 'None',
  Passive: false
}

```

---

- 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
Customers complained about missing the old deterministic message.

## Solution
As the agent to include this message at the start of its explain
response. It was stored in the recommendation.text field.

The agent does some paraphrasing, so the deterministic message

`We detected that this code sets key specifications more than once, key
size more than once, or sets both. To make your code more secure, we
recommend that you set either KeySpec or NumberOfBytes once. Do not set
both.`

Gets turned into

`The CWE-327,328,326,208,1240 - Insecure cryptography issue at line 63
in CsvIterator.java occurs because the code sets both KeySpec and
NumberOfBytes parameters on the same GenerateDataKeyRequest object,
which are mutually exclusive in AWS KMS.`

There is more information in the explanation after this, but this is the
part related to the deterministic recommendation.text

---

- 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: Blake Lazarine <blakelaz@amazon.com>
Co-authored-by: Laxman Reddy <141967714+laileni-aws@users.noreply.github.com>
…r and added buffer time in cred validation (#8070)

## Problem
- IAM credentials is not updating in Sagemaker instances due to
incorrect comparison logic which prevents credential refresh and hence
users cant interact with Q chat after the initial expiration time
- 
<img width="2513" height="1284" alt="image"
src="https://github.com/user-attachments/assets/0dc8d158-00ef-4c86-aff8-7e147a101881"
/>


## Solution
- Add custom comparator logic and method to properly compare credentials
by their actual values (accessKeyId,
secretAccessKey, sessionToken) instead of string comparison
- Added 60-second expiration buffer to credential validation. similar to
SSO token logic
[here](https://github.com/aws/aws-toolkit-vscode/blob/c3685274fc4e09e72c98db4c43b7959634bc63b0/packages/core/src/auth/sso/model.ts#L158)
for grace-time
- Tested by building a debug artefact on a SMUS CodeEditor instance and
verified q chat is triggering refresh credentials
- ```npm run package && npm run test``` succeeded
-
https://drive.corp.amazon.com/documents/parameja@/PR-8070/IAM-Credentials-Refresh-Q-Chat.mov
---

- 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.
…Event api (#8080)

## Problem
- update aws sdk
- sendTelemetryEvent API is missing pluginVersion
- sendTelemetryEvent.userTriggerEvent is missing suggestionType

## Solution


---

- Treat all work as PUBLIC. Private `feature/x` branches will not be
squash-merged at release time.
- Your code changes must meet the guidelines in
[CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines).
- License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
…gger (#8085)

…

## Problem
previously UTD will be delayed until next service call, which means it
doesn't gurantee service team will collect all the datapoints

## Solution


---

- Treat all work as PUBLIC. Private `feature/x` branches will not be
squash-merged at release time.
- Your code changes must meet the guidelines in
[CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines).
- License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
…or manual trigger 8085 (#8087)

This reverts commit 00ffeb3.

## Problem


## Solution


---

- Treat all work as PUBLIC. Private `feature/x` branches will not be
squash-merged at release time.
- Your code changes must meet the guidelines in
[CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines).
- License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
## Problem
The project account id and region was missing from data connection and
space action telemetry.

## Solution
The project account id and region are added to data connection and space
action telemetry.

Telemetry for a cross-account example:
```
2025-09-23 15:42:29.674 [debug] telemetry: smus_login {
  Metadata: {
    metricId: 'fdbf85ac-a093-4ab9-ac47-add57a5901cc',
    traceId: '7ee3db34-3f9b-41b7-aa16-824290fa0719',
    parentId: '5c66c1e2-09ba-4308-8e28-a47bfc4acdda',
    smusDomainId: 'dzd_64o7tjjv1cm9gp',
    awsRegion: 'us-east-2',
    smusDomainAccountId: '730335272067',
    duration: '24121',
    result: 'Succeeded',
    awsAccount: 'not-set'
  },
  Value: 1,
  Unit: 'None',
  Passive: false
}

2025-09-23 15:42:32.466 [debug] telemetry: smus_accessProject {
  Metadata: {
    metricId: 'cc75867d-cb7c-4392-b7d7-cda1f7ba627c',
    traceId: '7ee3db34-3f9b-41b7-aa16-824290fa0719',
    parentId: 'da7fad30-0aee-4f31-8962-00ef50b408b8',
    smusDomainId: 'dzd_64o7tjjv1cm9gp',
    smusProjectId: 'cxtwtxb6e3ly95',
    smusDomainRegion: 'us-east-2',
    smusDomainAccountId: '730335272067',
    duration: '3994',
    result: 'Succeeded',
    awsAccount: 'not-set',
    awsRegion: 'us-east-1'
  },
  Value: 1,
  Unit: 'None',
  Passive: false
}

2025-09-23 15:42:43.475 [debug] telemetry: smus_renderLakehouseNode {
  Metadata: {
    metricId: 'dc09a62e-9f18-45c5-bd8b-c113c6a8c5c9',
    traceId: '58ea5647-a29a-45dc-9e6c-fb4175a34a6d',
    smusToolkitEnv: 'local',
    smusDomainId: 'dzd_64o7tjjv1cm9gp',
    smusDomainAccountId: '730335272067',
    smusProjectId: 'cxtwtxb6e3ly95',
    smusConnectionId: '4r6iscfi0rih0p',
    smusConnectionType: 'LAKEHOUSE',
    smusProjectRegion: 'us-east-1',
    smusProjectAccountId: '976193268201',
    duration: '965',
    result: 'Succeeded',
    awsAccount: 'not-set',
    awsRegion: 'us-east-1'
  },
  Value: 1,
  Unit: 'None',
  Passive: false
}


2025-09-23 15:42:46.623 [debug] telemetry: smus_renderS3Node {
  Metadata: {
    metricId: 'be029b31-6111-48f1-8e66-99121dd48484',
    traceId: 'a3698692-e948-4ec4-881a-17a0443e109d',
    smusToolkitEnv: 'local',
    smusDomainId: 'dzd_64o7tjjv1cm9gp',
    smusDomainAccountId: '730335272067',
    smusProjectId: 'cxtwtxb6e3ly95',
    smusConnectionId: '6gy7b7go2jd50p',
    smusConnectionType: 'S3',
    smusProjectRegion: 'us-east-1',
    smusProjectAccountId: '976193268201',
    duration: '1',
    result: 'Succeeded',
    awsAccount: 'not-set',
    awsRegion: 'us-east-1'
  },
  Value: 1,
  Unit: 'None',
  Passive: false
}

2025-09-23 15:43:04.774 [debug] telemetry: smus_openRemoteConnection {
  Metadata: {
    metricId: '7f2c4573-b681-4e81-bc34-84509aac1f46',
    traceId: 'fc5d6674-7042-4634-b7aa-1098aee2b540',
    smusSpaceKey: 'd-uyehbqjlnjl0__ce',
    smusDomainRegion: 'us-east-1',
    smusDomainId: 'dzd_64o7tjjv1cm9gp',
    smusDomainAccountId: '730335272067',
    smusProjectId: 'cxtwtxb6e3ly95',
    smusProjectAccountId: '976193268201',
    smusProjectRegion: 'us-east-1',
    duration: '6969',
    result: 'Succeeded',
    awsAccount: 'not-set',
    awsRegion: 'us-east-1'
  },
  Value: 1,
  Unit: 'None',
  Passive: false
}
```
---

- 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: Laxman Reddy <141967714+laileni-aws@users.noreply.github.com>
…r Linux/Ubuntu in web/container env as AL2 (#8073)

## Problem

PR: #7270 introduced a bug
where the `isAmazonLinux2()` function incorrectly identifies regular
Linux/Ubuntu systems in web/container environments as Amazon Linux 2.
This happens because:

1. The function checks `os.release()` for `.amzn2.` or `.amzn2int.`
patterns
2. In containerized environments (like VS Code web/remote),
`os.release()` returns the __host's kernel version__, not the
container's OS
3. If the host is Amazon Linux 2 but the container is Ubuntu/Linux, the
function incorrectly returns `true`
4. This prevents Amazon Q LSP from starting because it thinks it's on
AL2 without the required GLIBC patch


## Solution
- __Skip AL2 detection for web environments__ - Returns `false`
immediately since web mode runs in a browser

- __Check `/etc/os-release` first__ - In containerized environments,
this file contains the actual container OS, not the host OS

- __Trust container OS over kernel version__ - If `/etc/os-release`
shows it's not AL2 (e.g., Ubuntu), return `false` regardless of kernel
version

- __Fall back to kernel check only when necessary__ - Only use
`os.release()` if we can't read `/etc/os-release` or if it confirms AL2
- Prioritized container OS detection over kernel version detection

- Maintained backward compatibility for actual AL2 systems

- Added comprehensive test coverage for the new scenarios



---

- 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 merges the released changes for rc-20250925 into main.
MCM-135176338

---------

Co-authored-by: aws-toolkit-automation <>
## Problem
1. timestamp used in LSP path is cross-process, which requires a common
starting point, so should use epoch based time instead of
`peformance.now()` which starts at process starting point.

## Solution
1. replace all `performance.now` with `Date.now()`

---

- 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.
…le (#8099)

## Problem

We need to remove the notifcation pop-up for data sharing toggle in
Amazon Q settings


## Solution

- removed the toggle



https://github.com/user-attachments/assets/6a56de02-26a0-4d28-8190-88d238740e22



---

- 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: Tai Lai <ctlai95@gmail.com>
## Problem
Typo in log statement for Sagemaker Update IAM Credential logic
currently prints expiration time

## Solution
- Fix typo to show availability of field in credentials
- `npm run compile && npm run test` succeeded

---

- 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 removed `/agents` in this PR but the security.scan command was not
removed:
- #8026

<img width="1206" height="56" alt="Screenshot 2025-09-29 at 10 45 22 AM"
src="https://github.com/user-attachments/assets/70db455a-8efe-43f3-94a9-629d094c6d29"
/>



## Solution
Remove left over code


## Testing

Tested and command was removed

---

- Treat all work as PUBLIC. Private `feature/x` branches will not be
squash-merged at release time.
- Your code changes must meet the guidelines in
[CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines).
- License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
This merges the released changes for rc-20250929 into main.
MCM-135435238

---------

Co-authored-by: aws-toolkit-automation <>
## Problem


## Solution


---

- Treat all work as PUBLIC. Private `feature/x` branches will not be
squash-merged at release time.
- Your code changes must meet the guidelines in
[CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines).
- License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
## Problem

The Toolkit login webview throws an error when calling `setUiReady()`
because `loadMetadata` is undefined:

```
[error] webviewId="aws.toolkit.AmazonCommonAuth": Error: Webview error
-> Error: Webview backend command failed: "setUiReady()"
-> TypeError: Cannot read properties of undefined (reading 'start')
```

This occurs because `supportsLoadTelemetry` defaults to false in the
base `VueWebview` class, preventing the initialization of `loadMetadata`
during webview setup. Without `loadMetadata`, the webview cannot track
load timing or emit load telemetry.

## Solution

Added one line to enable load telemetry in `ToolkitLoginWebview`.

This flag was originally introduced in
[e7b7307](e7b7307)
to track Amazon Q webview load times and failures. We're now extending
this functionality to the Toolkit login webview for consistent telemetry
across both implementations.




### Before fix:
<img width="2108" height="1109" alt="before-toolkit-auth-webview-error"
src="https://github.com/user-attachments/assets/e53fb12b-6966-45ca-bee5-645e48a09cd4"
/>




Toolkit login webview error showing loadMetadata undefined. This occurs
because `supportsLoadTelemetry` defaults to false in the base
`VueWebview` class, preventing the initialization of `loadMetadata`
during webview setup. Without `loadMetadata`, the webview cannot track
load timing or emit load telemetry. The error happens
[here](https://github.com/aws/aws-toolkit-vscode/blob/da8fc990bc50689e043ff1d7cbde3615d2d7571e/packages/core/src/webviews/main.ts#L401)
when trying to calculate duration:

```typescript
const duration = globals.clock.Date.now() - this.loadMetadata!.start
```

### After fix:

Toolkit login webview successfully loading with duration metrics.

<img width="2107" height="1115"
alt="after-toolkit-auth-webview-with-load-duration"
src="https://github.com/user-attachments/assets/0f9d5bf4-dc5b-49de-a76e-776670ef683d"
/>

---

- 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.
…nced payload management (#8068)

## Problem
Few UI feedback: 
- Payload is not intuitive
- Open Handler should be a button
Inconsistent layer behavior

## UI before
<img width="921" height="653" alt="image"
src="https://github.com/user-attachments/assets/0d7c2f27-78f6-453d-91fb-02ac00f2b043"
/>


## Solution
This PR refactors the Lambda Remote Invoke UI to follow VSCode's native
design patterns, optimizes the codebase by removing unused components,
and enhances the payload management experience with integrated quickpick
functionality for remote test events.

<img width="857" height="899" alt="image"
src="https://github.com/user-attachments/assets/1e446174-8cea-43a6-8ef1-44c1c8008c23"
/>

Update global layer version to 2

### 🎨 UI/UX Improvements

- __Redesigned Remote Debugging section__ to follow VSCode Settings UI
pattern

  - Title with inline "Remove Debug Setup" button and timer info
- Checkbox aligned with description on same line for better visual
hierarchy

- __Redesigned Local Root Path section__ with VSCode Settings style

  - Added "Open Handler" button with disabled state and helpful tooltips
- Shortened button labels to "Browse" and "Download" for cleaner
interface
  - Enhanced descriptions with bold text to guide user actions

- __Completely redesigned Payload section__

  - Removed radio buttons for cleaner, unified interface
- Added button group: "Load sample event", "Load local file", "Load
remote event", "Save as remote event"
  - Improved textarea with monospace font and better sizing

### 🚀 New Features

- __VSCode quickpick integration for remote test events__

- `selectRemoteTestEvent()`: Shows native quickpick for loading saved
events
- `saveRemoteTestEvent()`: Quickpick with options to create new or
overwrite existing events
  - Input validation for event names
  - Confirmation dialogs for overwriting existing events

- __Enhanced error handling__

- Gracefully handles "lambda-testevent-schemas registry not found" error
  - Returns empty array instead of throwing when no test events exist
  - Helpful user messages when no events are found

- __Force flag support__ for overwriting existing test events

  - Added `force` parameter to `SamCliRemoteTestEventsParameters`
  - Automatically uses `--force` when user confirms overwrite

###


---

- 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.
keenwilson and others added 30 commits January 22, 2026 12:35
…#8514)

## Problem

Console session credentials fail to work properly in two scenarios:

1. After token refresh or profile overwrite: Users encounter "Your
session has expired" errors even after successfully running aws login,
requiring manual VS Code restart without clear guidance (reported in
#8488)

2. Immediate connection use after CLI login: When users try to use a
connection immediately after aws login completes, the credential
provider was created before the CLI wrote the new login session to disk,
causing authentication failures



## Solution

- Enhanced makeConsoleSessionCredentialsProvider() to detect stale
credential scenarios and prompt for window reload
<img width="1409" height="939" alt="final-2-after-succeeds"
src="https://github.com/user-attachments/assets/2c0b77be-ea10-4a41-9642-29d637a03110"
/>
- Added user-friendly messages showing identity ARN after successful
login

<img width="1408" height="941" alt="final-1-before-retry"
src="https://github.com/user-attachments/assets/841721be-525d-4853-8d7a-b49f7d97c272"
/>



- Improved inline documentation explaining AWS CLI vs SDK credential
handling differences
- Added handling for does not contain login_session error when provider
is created too early
- Removed try-catch wrapper when verifying that connection exists after
CLI succeeds


## Tradeoffs

Reloading the VS Code window is a heavier UX, but it is the only
deterministic way to fully reinitialize credential providers and avoid
using stale credentials. Reloading guarantees that all in0memory
credential providers, Auth state, and AWS SDK clients are fully
reinitialized. This avoids subtle, hard-to-debug states where
credentials appear refreshed on disk but stale credentials are still
used at runtime.

The reload is user-initiated via confirmation, not automatic. For future
direction, this needs a supported Auth/provider reset mechanism to
refresh credentials without requiring a window reload.

## Testing
1. Run `npm run compile` to verify build.
2. Run `npm run package`. Manual verification of end-to-end flow
- Verified token refresh flow prompts for reload and works after reload
- Tested immediate connection use after aws login triggers appropriate
reload prompt
- Confirmed profile overwrite scenarios handle credential refresh
correctly


---

- 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
- This setting is no longer used.
<img width="1276" height="242" alt="image"
src="https://github.com/user-attachments/assets/71c2a761-e849-4058-ac99-41329cd32c28"
/>


## Solution

- Removing /dev amazonq settings
---

- 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 merges the released changes for rc-20260122 into main.
MCM-XXX


---

- 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: aws-toolkit-automation <>
## Problem

After updating AWS CLI for console credentials, the success message
didn't show users which AWS CLI installation the Toolkit was actually
using. This made it unclear whether the update was successful or if
multiple CLI installations existed on the system.

This is particularly problematic for users who encountered repeated
update prompts during console credentials authentication, as they can't
verify if the correct CLI version is being used.


## Solution

- Added child process execution to run the OS-specific command (which on
Unix/macOS, where on Windows) after CLI update
- Retrieved the actual AWS CLI path that the Toolkit uses for console
credentials
- Updated the success message to display: 'AWS CLI updated successfully
to "{path}"'


This helps users immediately verify the CLI installation location and
confirms which CLI binary the Toolkit will use for console login.


### Notes

We make a display message clearer that this is about what the Toolkit
will be used going forward, not necessarily what the installer was just
installed. This helps distinguish between:
- What the installer just updated/installed
- What the Toolkit will actually use (which could be a different
installation if multiple exist)

<img width="1197" height="800" alt="cli-1-detect-need-to-update"
src="https://github.com/user-attachments/assets/f728cec2-7428-4b86-9b65-a06007a248da"
/>

<img width="1199" height="795" alt="cli-2-installer-proceeds"
src="https://github.com/user-attachments/assets/792438b6-9fae-49e7-bbd1-8c52d4a7f414"
/>

<img width="1197" height="799" alt="cli-3-show-path-in-message"
src="https://github.com/user-attachments/assets/3bf6957f-f13f-4c33-a5e3-c0515a0e173c"
/>


---

- 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: invictus <149003065+ashishrp-aws@users.noreply.github.com>
… adding region to profile (#8522)

## Problem
- If a user picks a profile that does not have region entry from the
config file, smus tries to update the profile with selected region. But
smus is only looking for the profile in credentials file.

## Solution
- Look for profile in both config and credentials files when adding
region to profile
- Use shared parsing method to handle profiles with `profile` prefix

## Test
Updating profile with `profile` prefix in config file 

before
```
[profile configWithProfilePrefix]
AWS_ACCESS_KEY_ID=xyz        
AWS_SECRET_ACCESS_KEY=xyz              
AWS_SESSION_TOKEN=xyz
```

after
```
[profile configWithProfilePrefix]
AWS_ACCESS_KEY_ID=xyz        
AWS_SECRET_ACCESS_KEY=xyz              
AWS_SESSION_TOKEN=xyz
region = ap-east-1
```

---

- 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: kzr-at-amazon <build@amazon.com>
Co-authored-by: invictus <149003065+ashishrp-aws@users.noreply.github.com>
## Problem

Toolkit is using an older Lambda SDK (3.731, latest 3.9xx) due to
compatibility issues. This caused new fields introduced in LMI/DAR to be
not available in local types and need to be manually bypassed. see:
#8392, we need to
update lambda SDK to latest version and resolve all the compatibility
issues

Below is the compatibility issue when trying to upgrade sdk lambda
client
```
npm error src/shared/clients/lambdaClient.ts(327,9): error TS2741: Property 'config' is missing in type 'AwsClient' but required in type 'LambdaClient'.
npm error src/shared/clients/lambdaClient.ts(328,13): error TS2419: Types of construct signatures are incompatible.
npm error   Type 'new (...[configuration]: [] | [LambdaClientConfig]) => LambdaClient' is not assignable to type 'new (o: AwsClientOptions) => AwsClient'.
npm error     Construct signature return types 'LambdaClient' and 'AwsClient' are incompatible.
npm error       The types of 'middlewareStack.add' are incompatible between these types.
npm error         Type '{ (middleware: InitializeMiddleware<ServiceInputTypes, ServiceOutputTypes>, options?: (InitializeHandlerOptions & AbsoluteLocation) | undefined): void; (middleware: SerializeMiddleware<...>, options: SerializeHandlerOptions & AbsoluteLocation): void; (middleware: BuildMiddleware<...>, options: BuildHandlerOptions & ...' is not assignable to type '{ (middleware: InitializeMiddleware<any, MetadataBearer>, options?: (InitializeHandlerOptions & AbsoluteLocation) | undefined): void; (middleware: SerializeMiddleware<...>, options: SerializeHandlerOptions & AbsoluteLocation): void; (middleware: BuildMiddleware<...>, options: BuildHandlerOptions & AbsoluteLocation):...'.
npm error           Types of parameters 'middleware' and 'middleware' are incompatible.
npm error             Types of parameters 'context' and 'context' are incompatible.
npm error               Type 'import("/Users/ruojiazh/proj/aws-toolkit-vscode/node_modules/@aws-sdk/middleware-host-header/node_modules/@smithy/types/dist-types/middleware").HandlerExecutionContext' is not assignable to type 'import("/Users/ruojiazh/proj/aws-toolkit-vscode/node_modules/@smithy/types/dist-types/middleware").HandlerExecutionContext'.
npm error                 Types of property '[SMITHY_CONTEXT_KEY]' are incompatible.
npm error                   Type '{ [key: string]: unknown; service?: string | undefined; operation?: string | undefined; commandInstance?: import("/Users/ruojiazh/proj/aws-toolkit-vscode/node_modules/@aws-sdk/middleware-host-header/node_modules/@smithy/types/dist-types/command").Command<any, any, any, any, any> | undefined; selectedHttpAuthScheme?:...' is not assignable to type '{ [key: string]: unknown; service?: string | undefined; operation?: string | undefined; commandInstance?: import("/Users/ruojiazh/proj/aws-toolkit-vscode/node_modules/@smithy/types/dist-types/command").Command<any, any, any, any, any> | undefined; selectedHttpAuthScheme?: import("/Users/ruojiazh/proj/aws-toolkit-vsc...'.
npm error                     Type '{ [key: string]: unknown; service?: string | undefined; operation?: string | undefined; commandInstance?: import("/Users/ruojiazh/proj/aws-toolkit-vscode/node_modules/@aws-sdk/middleware-host-header/node_modules/@smithy/types/dist-types/command").Command<any, any, any, any, any> | undefined; selectedHttpAuthScheme?:...' is not assignable to type '{ [key: string]: unknown; service?: string | undefined; operation?: string | undefined; commandInstance?: import("/Users/ruojiazh/proj/aws-toolkit-vscode/node_modules/@smithy/types/dist-types/command").Command<any, any, any, any, any> | undefined; selectedHttpAuthScheme?: import("/Users/ruojiazh/proj/aws-toolkit-vsc...'.
npm error                       Types of property 'commandInstance' are incompatible.
npm error                         Type 'import("/Users/ruojiazh/proj/aws-toolkit-vscode/node_modules/@aws-sdk/middleware-host-header/node_modules/@smithy/types/dist-types/command").Command<any, any, any, any, any> | undefined' is not assignable to type 'import("/Users/ruojiazh/proj/aws-toolkit-vscode/node_modules/@smithy/types/dist-types/command").Command<any, any, any, any, any> | undefined'.
npm error                           Type 'import("/Users/ruojiazh/proj/aws-toolkit-vscode/node_modules/@aws-sdk/middleware-host-header/node_modules/@smithy/types/dist-types/command").Command<any, any, any, any, any>' is not assignable to type 'import("/Users/ruojiazh/proj/aws-toolkit-vscode/node_modules/@smithy/types/dist-types/command").Command<any, any, any, any, any>'.
npm error                             The types of 'middlewareStack.add' are incompatible between these types.
npm error                               Type '{ (middleware: import("/Users/ruojiazh/proj/aws-toolkit-vscode/node_modules/@aws-sdk/middleware-host-header/node_modules/@smithy/types/dist-types/middleware").InitializeMiddleware<any, any>, options?: (import("/Users/ruojiazh/proj/aws-toolkit-vscode/node_modules/@aws-sdk/middleware-host-header/node_modules/@smithy/t...' is not assignable to type '{ (middleware: import("/Users/ruojiazh/proj/aws-toolkit-vscode/node_modules/@smithy/types/dist-types/middleware").InitializeMiddleware<any, any>, options?: (import("/Users/ruojiazh/proj/aws-toolkit-vscode/node_modules/@smithy/types/dist-types/middleware").InitializeHandlerOptions & import("/Users/ruojiazh/proj/aws-t...'.
npm error                                 Types of parameters 'options' and 'options' are incompatible.
npm error                                   Type 'SerializeHandlerOptions & AbsoluteLocation' is not assignable to type '(InitializeHandlerOptions & AbsoluteLocation) | undefined'.
npm error                                     Type 'SerializeHandlerOptions & AbsoluteLocation' is not assignable to type 'InitializeHandlerOptions & AbsoluteLocation'.
npm error                                       Type 'SerializeHandlerOptions & AbsoluteLocation' is not assignable to type 'InitializeHandlerOptions'.
npm error                                         Types of property 'step' are incompatible.
npm error                                           Type '"serialize"' is not assignable to type '"initialize"'.
```

## Reason for Compatibility Error
Upgrading @aws-sdk/client-lambda to version 3.953.0+ (which uses Smithy
v4) causes TypeScript compilation errors due to module path conflicts.
The toolkit's awsClientBuilderV3 uses Smithy v3 types, while the new
Lambda client uses Smithy v4 types. Even though the types are
structurally identical, TypeScript treats them as incompatible because
they're imported from different module paths.

## Solution
Added type assertions (as any and as LambdaSdkClient) in lambdaClient.ts
to bypass TypeScript's type checking when creating the Lambda client.
This allows the new SDK version to work while maintaining runtime
compatibility.

No new tests are required for the lambdaClient.ts changes because there
is no behavior change - The type assertions don't change runtime
behavior, only bypass compile-time type checking. The Lambda client
functions identically before and after.

---

- 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: Chengjun Li <>
…8537)

## Problem

- Users without pre-configured credentials encounter authentication
errors when opening Lambda functions from console
- Credential mismatches between console account and local profile cause
errors even when function is accessible in console:
- `ResourceNotFoundException` when function exists in console account
but not in local profile account
- `AccessDeniedException` when local credentials lack
`lambda:GetFunction` permission but console credentials have access


## Solution
- Add `setupConsoleConnection()` to encapsulate browser-based AWS CLI
`aws login` authentication and use the new connection
- Add `getFunctionWithFallback()` to retrieve Lambda configuration with
automatic console login fallback
- Integrate fallback into `openLambdaFolderForEdit()` to handle missing
credentials and credential mismatches
- Improve error handling to distinguish credential mismatches and
resource access issues
- Handle `ResourceNotFoundException` by showing account-specific error
message before fallback
- Handle `AccessDeniedException` by showing permission error message
before fallback

### Screenshots
#### Show warning message when Lambda GetFunction API returns
ResourceNotFoundException, then automatically proceed with console login
flow
 

<img width="461" height="90" alt="Screenshot 2026-01-29 at 12 29 00 AM"
src="https://github.com/user-attachments/assets/1c1c700f-5585-4684-bcae-9daa43add315"
/>


#### Show warning message when Lambda GetFunction API returns
AccessDeniedException, then automatically proceed with console login
flow


<img width="463" height="91" alt="Screenshot 2026-01-29 at 12 28 07 AM"
src="https://github.com/user-attachments/assets/dce48127-1cca-406e-b966-ebc615ef5fa6"
/>



## Background

The Lambda `load-function` URI handler enables a seamless workflow where
users can click "Open in Visual Studio Code" from the AWS Lambda console
to view, edit, and deploy their Lambda functions directly in their
preferred IDE. This feature downloads the function code locally, opens
it in VS Code, and allows users to make changes and deploy updates back
to AWS—all without leaving their development environment.




## Testing

- [X] Tested with no local credentials configured
- [X] Tested credential mismatch scenarios:
- ResourceNotFoundException (function in console account but not local
profile account)
- AccessDeniedException (local credentials lack permission, console
credentials have access)
- [X] Tested user cancellation flow
- [X] Test with SSO connection active

---

- 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
- `Amazon Q: Fix all Errors` feature does not work on warning issues.


## Solution

- If user click on `Amazon Q: Fix all Issue` feature from warning issue,
Q should fix both errors and warnings.
- If user click on `Amazon Q: Fix all Issue` feature from error issue, Q
should fix only errors.


---

- 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 merges the released changes for rc-20260129 into main.
MCM-143408862

---------

Co-authored-by: aws-toolkit-automation <>
…8520)

Add support for multi-tenant Lambda functions by introducing a Tenant ID
input field in the Local Invoke configuration panel. The field appears
conditionally when the SAM template contains TenancyConfig (either at
function-level or in Globals section).

The tenant ID value is saved in launch.json and passed to SAM CLI when
invoking Lambda functions locally.

<img width="619" height="862" alt="Screenshot 2026-01-29 at 10 16 29 AM"
src="https://github.com/user-attachments/assets/985e01ce-cbcd-4204-a1ce-37ea9c1fca70"
/>

---------

Co-authored-by: Chengjun Li <>
## Problem
Need to add support for AWS SigV4 for the WebSocket URL used to open a
remote connection. These parameters, including the cell-number, can
contain special characters and must be properly handled.

## Solution
Encode all URI query parameters and extract and append AWS signature
parameters to the WebSocket URL.

---

- 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
This is to support the Lambda multi-tenancy feature in toolkit.

## Solution
Add conditional Tenant ID field to Remote Invoke panel for multi-tenant
Lambda functions. The field appears when function has TenancyConfig and
passes the value to AWS Lambda Invoke API.

<img width="333" height="381" alt="Screenshot 2026-01-29 at 10 08 54 AM"
src="https://github.com/user-attachments/assets/b7048c07-2919-48e9-9bd0-ddfa89660f79"
/>

---

- 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: Chengjun Li <>
## Notes:
- Adding change log for
aws/language-servers#2610


---

- 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**
Added a local cache that will list the last 10 recently used domains
during login.

The data is stored in the memento storage, which is VSCode's SQLite DB
abstraction for storing metadata for extensions.

**Motivation**
Better UX for login for customers who use multiple domains

**Testing Done**

Tested locally and also added unit tests

## Problem


## Solution


---

- Treat all work as PUBLIC. Private `feature/x` branches will not be
squash-merged at release time.
- Your code changes must meet the guidelines in
[CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines).
- License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.

Co-authored-by: Bhargava Varadharajan <vabharga@amazon.com>
This merges the released changes for rc-20260212 into main.
MCM-144328882


---

- 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: aws-toolkit-automation <>
…8586)

## Problem


## Solution

`includePlatform` will append a platform surfix `Visual-Studil-Code`


---

- 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
This PR adds support for Cursor IDE by dynamically detecting the editor
and using the appropriate Remote SSH extension.

## Changes
- Detect Cursor IDE and use appropriate Remote SSH extension
(`anysphere.remote-ssh` for Cursor vs `ms-vscode-remote.remote-ssh` for
VS Code)
- Refactor `VSCODE_EXTENSION_ID.remotessh` to include both `id` and
`minVersion` properties
- Update all references to use `remotessh.id` instead of direct string
access
- Remove deprecated `vscodeExtensionMinVersion` object

## Testing
- Tested with Cursor IDE
- Existing VS Code functionality remains unchanged

---------

Co-authored-by: Arkaprava De <arkaprav@amazon.com>
Co-authored-by: Newton Der <dernewtz@amazon.com>
Co-authored-by: invictus <149003065+ashishrp-aws@users.noreply.github.com>
Co-authored-by: msgupta <mgupta@onemedical.com>
Co-authored-by: Newton Der <newton.der@gmail.com>
…r fails (#8580)

## Problem

- #8537 introduced
setupConsoleConnection() and getFunctionWithFallback() to handle
authentication fallback for Lambda console-to-IDE transitions.
- When developers click "Open in VSCode" and their local AWS profile is
invalid, toolkit automatically triggers browser-based console login as a
fallback. However, console login requires prerequisites that not all
developers can complete. When developers cancel console login, the CLI
never writes the connection profile to disk. The Toolkit then attempts
to use this non-existent connection, resulting in "Connection does not
exist" errors.






<img width="471" height="265"
alt="problem-before-the-fix-connection-does-not-exist"
src="https://github.com/user-attachments/assets/fd973ce1-7b28-4474-8b55-b0408c67e0ce"
/>


## Solution

- Verify connection exists in `setupConsoleConnection()` after
"aws.toolkit.auth.consoleLogin" completes
- Show warning message with link to [prerequisites
documentation](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sign-in.html#cli-configure-sign-in-prerequisites)
when connection verification fails
- Throw ToolkitError to halt execution and prevent downstream connection
usage

<img width="1293" height="302" alt="update-message-with-learnmore"
src="https://github.com/user-attachments/assets/a1d35f14-4c42-43c1-8417-b6532ed00e9a"
/>

<img width="1042" height="625" alt="click-learnmore-show-dialog"
src="https://github.com/user-attachments/assets/aace3330-4ea8-4bd8-ad24-e8e956f09c45"
/>


### Background

The Lambda load-function URI handler enables a seamless workflow where
users can click "Open in Visual Studio Code" from the AWS Lambda console
to view, edit, and deploy their Lambda functions directly in their
preferred IDE. This feature downloads the function code locally, opens
it in VS Code, and allows users to make changes and deploy updates back
to AWS—all without leaving their development environment.



---

- 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
Right now, we don't support reconnection from toolkit for hyperpod
spaces.

##Solution
This PR will add the reconnection functionality which leads to seamless
user experience.


The duplicate check is failing but we need that code at 2 places, one
for initial connection and in detached-server so that when the user
closes the main window, detached server is able to provide the seamless
user experience.

##Notes
Tested the unit test cases and reconnection use cases end to end
locally.

---

- 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: msgupta <mgupta@onemedical.com>
Co-authored-by: Laxman Reddy <141967714+laileni-aws@users.noreply.github.com>
Co-authored-by: invictus <149003065+ashishrp-aws@users.noreply.github.com>
## Problem

SageMaker Studio currently supports the ability for customers to connect
their local VS Code IDE to SageMaker Spaces from the AWS Toolkit
extension, but this is not supported for the Kiro IDE due to the Remote
SSH extension for VS Code not being supported.

## Solution

Merge staged feature enhancement which allows SageMaker Studio customers
to connect to Spaces from the Kiro IDE. This includes the
sagemaker-ssh-kiro sidecar extension as a scoped-down replacement for
the Remote SSH for specifically SageMaker use cases, which will be
installed on-demand with user consent when needed during the remote
access ingress.

This PR includes a changelog entry.

---

- 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: aws-ides-bot <github-aws-toolkit-automation@amazon.com>
Co-authored-by: aws-toolkit-automation <43144436+aws-toolkit-automation@users.noreply.github.com>
Co-authored-by: Bhargav <bhargavavaradh@gmail.com>
Co-authored-by: Bhargava Varadharajan <vabharga@amazon.com>
Co-authored-by: kzr <kzr@amazon.com>
Co-authored-by: Laxman Reddy <141967714+laileni-aws@users.noreply.github.com>
Co-authored-by: Sherry Lu <xiaoluk@amazon.com>
Co-authored-by: Sherry Lu <75588211+XiaoxuanLu@users.noreply.github.com>
Co-authored-by: Dylan Ross <90357952+dylanraws@users.noreply.github.com>
Co-authored-by: zulil <31738836+liuzulin@users.noreply.github.com>
Co-authored-by: Zulin Liu <zulil@amazon.com>
Co-authored-by: Bhavya Sharma <bhavya2109sharma@gmail.com>
Co-authored-by: David <60020664+dhasani23@users.noreply.github.com>
Co-authored-by: David Hasani <davhasan@amazon.com>
Co-authored-by: Arkaprava De <arkaprava08@gmail.com>
Co-authored-by: Arkaprava De <arkaprav@amazon.com>
Co-authored-by: Keyu Wu <Keyu.Wu.Wky@gmail.com>
Co-authored-by: chungjac <chungjac@amazon.com>
Co-authored-by: aws-asolidu <asolidu@amazon.com>
Co-authored-by: Newton Der <dernewtz@amazon.com>
Co-authored-by: Newton Der <newton.der@gmail.com>
Co-authored-by: Will Lo <96078566+Will-ShaoHua@users.noreply.github.com>
Co-authored-by: Boyu <wangby56@gmail.com>
Co-authored-by: atontb <104926752+atonaamz@users.noreply.github.com>
Co-authored-by: Richard Li <742829+rli@users.noreply.github.com>
Co-authored-by: Shruti Sinha <44882001+shruti0085@users.noreply.github.com>
Co-authored-by: Roger Zhang <ruojiazh@amazon.com>
Co-authored-by: Tai Lai <ctlai95@gmail.com>
Co-authored-by: invictus <149003065+ashishrp-aws@users.noreply.github.com>
Co-authored-by: BlakeLazarine <blake.l.lazarine@gmail.com>
Co-authored-by: Blake Lazarine <blakelaz@amazon.com>
Co-authored-by: tobixlea <tobixlea@amazon.com>
Co-authored-by: seshubaws <116689586+seshubaws@users.noreply.github.com>
Co-authored-by: Keen Wilson <40321520+keenwilson@users.noreply.github.com>
Co-authored-by: Bhavya Sharma <bhavyssh@amazon.com>
Co-authored-by: satyaki <208557303+satyakigh@users.noreply.github.com>
Co-authored-by: Chris Mendoza <chrisqm@amazon.com>
Co-authored-by: Kevin DeJong <kddejong@amazon.com>
Co-authored-by: Akila Tennakoon <akila.n.tennakoon@gmail.com>
Co-authored-by: Akila Tennakoon <tennakoo@amazon.com>
Co-authored-by: Deep Furiya <79759607+deepfuriya@users.noreply.github.com>
Co-authored-by: Deep Furiya <dfuriya@amazon.com>
Co-authored-by: vicheey <181402101+vicheey@users.noreply.github.com>
Co-authored-by: Renato Valenzuela <37676028+valerena@users.noreply.github.com>
Co-authored-by: Aseem sharma <198968351+aseemxs@users.noreply.github.com>
Co-authored-by: Reed Hamilton <reedham@amazon.com>
Co-authored-by: Zeeshan Ahmed <37942674+Zee2413@users.noreply.github.com>
Co-authored-by: kzr-at-amazon <build@amazon.com>
Co-authored-by: Ziwei Ba <ziwikiwi@amazon.com>
…8598)

## Problem

When users click “Open in VS Code” from the Lambda console and the
request reaches Toolkit without an active connection or with mismatched
credentials, Toolkit currently falls back to console credential login
(`aws login`) immediately. This triggers a browser-based authentication
flow without prior notice.



## Solution

This change adds a modal confirmation dialog before invoking `aws login`
in these cases. The dialog explains that Toolkit will sign in using
browser-based authentication and states the required prerequisites.
Users must explicitly choose to continue before the console login flow
starts.



The prompt:
- Explains that signing in is required to open the Lambda function
locally
- Informs users that browser-based authentication will occur
- States the AWS CLI and permission prerequisites
- Allows users to explicitly choose whether to proceed

This makes the flow intentional, reduces surprise browser redirects, and
helps distinguish between informed cancellation and setup issues.

## Screenshots



<img width="1197" height="800" alt="Screenshot 2026-02-23 at 3 53 57 PM"
src="https://github.com/user-attachments/assets/8e7d0c64-7506-4e13-8ec5-322ca720003f"
/>


---

- 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


## Solution


---

- Treat all work as PUBLIC. Private `feature/x` branches will not be
squash-merged at release time.
- Your code changes must meet the guidelines in
[CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines).
- License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.

Co-authored-by: David Hasani <davhasan@amazon.com>
Co-authored-by: Laxman Reddy <141967714+laileni-aws@users.noreply.github.com>
… prompt a warning (#8610)

## Problem

The SMUS agent context prompt was displayed as an information
notification that users were easily overlooking or ignoring.
Additionally, there was no telemetry to track how users responded to the
prompt (accepted, declined, or dismissed), making it impossible to
measure engagement.

## Solution

Changed the prompt from showInformationMessage to showWarningMessage for
higher visibility. Added telemetry using smus_acceptAgentsNotification
to track whether users accept, decline, or dismiss the prompt.
---

- 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: Ziwei Ba <ziwikiwi@amazon.com>
… for MCP servers (#8608)

## Problem
Kiro struggles to troubleshoot credential issues when MCP server doesn't
have the proper credentials environment variable, even though it's
mentioned in the smus-context file.


## Solution
Add a prompt to smus-context.md to include credentials provider uri in
MCP server env block.

---

- 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: kzr-at-amazon <build@amazon.com>
… user choice (#8611)

## Problem
Previously, we emitted a metric when a user chooses Yes, No, or closes
out of the prompt. However, sometimes the notification is buried or goes
to the little notification bell. We also want to see if users will
actually see the prompt.

## Solution

- Changed existing agent context metric to two metrics:
  - smus_agentContextShowPrompt — emitted when the prompt is displayed
- smus_agentContextUserChoice — emitted when the user accepts, declines,
or dismisses the prompt
- Both metrics include rich context: domain ID, account ID, region,
project ID, project account ID, project region, space key, and auth
mode.

---

- 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: Ziwei Ba <ziwikiwi@amazon.com>
…#8620)

## Problem
The `sagemaker-ssh-kiro` extension VSIX is showing up in the release
artifacts for prerelease, but we don't want it to show there. It's
intended only to be embedded inside of the toolkit VSIX.

## Solution
Remove the `sagemaker-ssh-kiro` extension VSIX from the top level file
system during the GitHub Action workflow step which packages the VSIX
files.

---

- 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
Did not include "Result: Success" in the emitted metric for showing the
AGENTS.md prompt, which resulted in a warning when logging the metric.

## Solution
Added this missing field.

---

- 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: Ziwei Ba <ziwikiwi@amazon.com>
Co-authored-by: Will Lo <96078566+Will-ShaoHua@users.noreply.github.com>
…state (#8599)

## Problem


## Solution
simply revert to whatever document initial content is

---

- 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


## Solution


---

- Treat all work as PUBLIC. Private `feature/x` branches will not be
squash-merged at release time.
- Your code changes must meet the guidelines in
[CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines).
- License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.

---------

Co-authored-by: aws-toolkit-automation <>
Co-authored-by: Laxman Reddy <141967714+laileni-aws@users.noreply.github.com>
)

## Problem


## Solution


---

- Treat all work as PUBLIC. Private `feature/x` branches will not be
squash-merged at release time.
- Your code changes must meet the guidelines in
[CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines).
- License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.

Co-authored-by: invictus <149003065+ashishrp-aws@users.noreply.github.com>
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.