Skip to content

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/logs
git merge origin/master
git commit
git push origin HEAD:refs/heads/autoMerge/feature/logs

@aws-toolkit-automation aws-toolkit-automation requested a review from a team as a code owner May 15, 2025 15:01
@github-actions
Copy link

  • This pull request modifies code in src/* but no tests were added/updated.
    • Confirm whether tests should be added or ensure the PR description explains why tests are not required.

@aws-toolkit-automation aws-toolkit-automation requested a review from a team as a code owner May 19, 2025 20:05
@aws-toolkit-automation aws-toolkit-automation requested a review from a team as a code owner June 19, 2025 18:32
@aws-toolkit-automation aws-toolkit-automation requested a review from a team as a code owner July 24, 2025 17:23
tsmithsz and others added 24 commits August 29, 2025 12:29
## 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.
…sec when a completion arrives (#7950)

## 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.
…ccount cases (#2209)

## Problem
1. In a cross region cross account set up. seeing error fetching space
2. The error message when cannot connect is not meaningful. I had to
check on telemetry log to see the error message

## Solution
Fixed the above issue


---

- 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: Zulin Liu <[email protected]>
## 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.
…ne requests (#7952)

## 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
Consistently reproducing a similar issue when attempting to
start/connect to a Stopped Space when remote access is initially
disabled. The Space is updated, started, and even connected to, but the
Space does not show the Connect button anymore, until the Project is
refreshed. This suggests the Space metadata is stale after the
UpdateSpace call.

## Solution
Tried to simply replace the spaceApp variable with the updated one got
from describeSpace API call, but find conflicts on variable definitions.
so update the variable names and update only remoteAccess variable to
minimize impact.

ListSpaces(original)

https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/sagemaker/command/ListSpacesCommand/

<img width="2556" height="1308" alt="Screenshot 2025-09-01 at 4 11
09 PM"
src="https://github.com/user-attachments/assets/64b4439e-4495-4822-9a56-c61470e269c6"
/>

DescribeSpace(updated)

https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sagemaker/Interface/DescribeSpaceCommandOutput/
<img width="2523" height="1299" alt="Screenshot 2025-09-01 at 5 02
24 PM"
src="https://github.com/user-attachments/assets/37860497-8116-4d16-bc08-2562d0ea25bd"
/>

- pass SpaceSettingsSummary -> SpaceSettings in spaceApp type parameter 

- update remote access 
## Test 

manually debug and unit test

---

- 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 <[email protected]>
## Problem
* SMUS users are missing the Call To Action of remotely connecting to
the spaces in ToolKit.
* Users that are added as project members via Groups were not able to
access project in toolkit.

## Solution
- Expand SageMaker Unified Studio project and compute nodes by default
to improve user experience and discoverability.
- Add description and tooltip for spaces to indicate call to action for
remote connect
- Updated test cases.
- Change project access visibility logic to now require ProjectCreds
access before
displaying compute and data nodes. Projects now only show full details
when user has appropriate ProjectCreds permissions. We moved away from
the ProjectAccess calls as the user could be in groups too and we don't
have a straight path to get groups assignments.
- Added isSMUS check for user activity monitoring

---

- 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: guntamb <[email protected]>
Co-authored-by: Laxman Reddy <[email protected]>
**Description**

Added a proactive cred check and refresh when SSH connections
are established.

Also updated the error messages to be actionable for users.

**Motivation**

Bug : Previously once cred expired, we were throwing blanket
error which did not tell user what the issue was and there
was no path to recovery as well. Now with proactive cred refresh,
user should be able to retry in ~10-15 seconds.

**Testing Done**

Tested all flows manually. Unit tests partial, needs to be updated.
## Problem
This merges the released changes for rc-20250904 into main.
MCM-133766629

## 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 <>
* SMUS needs to be activated in NodeJS environment only.
* Remove Notebook resources
* Added changelog
empty commit to trigger ci
feat(sagemakerunifiedstudio): Support for SageMaker Unified Studio
#2007

The Toolkit doesn't read the endpoint configured in an AWS profile
config.

The endpoint even before these changes is already being read from the
AWS config file, and it's included in the CredentialsProvider object,
but there wasn't a way to retrieve that. We're adding `getEndpointUrl()`
method to the different providers, and then we're retrieving that
endpoint in:
1. when loading the current profile, to add it to the credentialsCache
(`auth.ts -> createCachedCredentials()`, `loginManager.ts -> login()`).
Because of this, then we can get this endpoint alongside the credentials
when creating a new AWS client.
2. when creating the list of connections that then will be displayed for
the user to pick (`packages/core/src/auth/auth.ts ->
getIamConnection()`) (this required to make `getIamConnection` an async
…Walkthrough

Update AppBuilder Walkthrough wording and add LocalStack VS Code
extension
And general fixes when connection is to non-AWS endpoints
- Add helper function to identify when connected to LocalStack
- Make LiveTail and DocDB read endpoint URL if exists (they don't
use the generic ClientBuilder)
- Disable S3 virtual-host-style and host prefix for LocalStack
- Disable host prefixes for all services when using LocalStack
- Send telemetry for custom endpoints and for LocalStack connections
…lStack

- Add LocalStack detection for Lambda debugging webview, by refactoring into two
sub classes to handle the lifecycle of the debugging process.
- Hide and disable version publishing
- Await debugger start to slightly mitigate the race condition
- Add LocalStack Lambda Debug Mode config deletion upon stopping debugging
- Wait for function to be active before launching debugger
- Add user-agent integration
- Add temporary workaround to mitigate debugger attach timing issue
- Fix debugger attach race condition by waiting using the new GET API
- Add LDM error handling
- Handle LocalStack Lambda hot reloading gracefully
- Disable code download upon LocalStack hot reloading
- Skip file watcher for hot-reloaded Lambda function
- Disable Convert to SAM application for LocalStack
- Show message in Remote Invoke WebView when connected to Localstack
- Add telemetry for LocalStack case (including refactor some old telemetry)
The endpointUrl is only really valuable for IAMConnections, but we still
add it Optional in SsoConnections to keep TypeScript consistent.
keenwilson and others added 30 commits December 12, 2025 17:01
feat(auth): align text patterns and verify profile after command succeeded
## 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 <[email protected]>
Co-authored-by: Keen Wilson <[email protected]>
Co-authored-by: Aseem sharma <[email protected]>
## Problem
Fixes #8372.

Currently, a deploy done using the lambda client will create a new
published version of the function without any customer input. This is an
issue because a) it is not the expected action for a deploy and b)
version creation can take a long time and be expensive for Lambda
Managed Instances customers.

The cases in which this happened were: 
1. Quick deploy through either the popup or the toolkit explorer
2. Direct upload where the user clicks on the node and selects the
upload action
3. Remote invoke hot reloading, which will auto deploy code changes.

Open to reasons to keep this, but I think that versioning isn't
necessary in those cases and can end up being confusing. The original PR
that added this was in 2020 (#1269), and based on that PR it seems like
the original implementer was testing things out.

## Solution
Remove the `Publish: true` field from the `UpdateFunctionCodeCommand`.
Now, all deploys are simply updating the 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.

Co-authored-by: invictus <[email protected]>
#8414)

…nt stale data

## Problem
- stack views did not render automatically after visibility change

## Solution
- render stack views

---

- 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.
…redential refresh flow (#8432)

## Problem

- Users were blocked when AWS CLI prompted to overwrite an existing
console session, with no way to respond from VS Code
- Credential refresh flow caused hanging "Getting credentials for
profile" progress messages
- Extension activation failed with "non-passive metric emitted at
startup" error


## Solution

<img width="474" height="181" alt="overwrite"
src="https://github.com/user-attachments/assets/de836ee0-4821-4b79-9c69-4aa6168974ac"
/>

- Detect CLI overwrite prompts and show interactive dialog with exact
CLI message
- Send user's response ("y" or "n") to CLI stdin to proceed or cancel
- Invalidate cached credentials after successful login and update
connection state without triggering immediate credential fetch
- Change telemetry emission from `.run()` to `.emit()` to comply with
passive telemetry rules

## Testing
- Fresh profile creation 
- Profile overwrite with user confirmation
- User cancellation of overwrite
- Credential refresh when session expires

---

- Treat all work as PUBLIC. Private `feature/x` branches will not be
squash-merged at release time.
- Your code changes must meet the guidelines in
[CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines).
- License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
fix(auth): Add console session profile overwrite prompt and improve credential refresh flow
…8413)

## Problem
The hash algorithm using used to verify downloads is not configurable,
make it configurable but default to `sha384`

## 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.
…in webview (#8418)

## Problem
- Cx will begin to get used to the new console grouping stack events by
operation id and expect the same in the IDE

## Solution
- group stack events by operation id similar to console

---

- 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
- Hook invocations not visible in stack events

## Solution
- show Hook invocations when there is a failure caused by Hook (last
column is new and shows conditionally)
<img width="1213" height="582" alt="image"
src="https://github.com/user-attachments/assets/0e57407d-5fcc-415b-ae2a-e9e39d8d49dc"
/>

---

- 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.
build(amazonq): merge release candidate version rc-20251218
…8438)

## Problem
- Signing out did not clear the DZ client, so when user re-tries signing
in with corrected region, they cannot access the targeted domain.

## Solution
- Dispose smuAuthProvider when signing out, within authProvider dispose,
the DZ clients will also be disposed

---

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

## Solution
- Some telemetry custom variables are fetched via async calls
- This calls should gracefully handle async failures, and still being
able to record what metrics are available.

### Example 
- successful async calls
```
2025-12-29 11:38:25.994 [debug] telemetry: smus_openRemoteConnection {
  Metadata: {
    metricId: 'acc0a9b4-e642-4e4f-a2a7-949879fca73d',
    traceId: '911f58fd-9f63-4a8f-8e87-590d3f46d534',
    smusAuthMode: 'iam',
    smusSpaceKey: 'd-5eomwrxzxbim__default-ce003678-576c-4253-a65f-01ef29af4f94',
    smusDomainRegion: 'us-east-2',
    smusDomainId: 'dzd-byubiyc1bebgfd',
    smusProjectId: 'b236u0pytkd02x',
    smusDomainAccountId: '619071339486',
    smusProjectAccountId: '619071339486',
    smusProjectRegion: 'us-east-2',
    duration: '20598',
    result: 'Succeeded',
    awsAccount: 'not-set',
    awsRegion: 'us-west-2'
  },
  Value: 1,
  Unit: 'None',
  Passive: false
}
```  
```
2025-12-29 11:39:28.454 [debug] telemetry: smus_stopSpace {
  Metadata: {
    metricId: '743e4212-8d6f-40bf-b2aa-a3ab45b5aa86',
    traceId: '6bfd857d-cf53-410e-9e38-d1f8b37ec833',
    smusAuthMode: 'iam',
    smusSpaceKey: 'd-5eomwrxzxbim__default-ce003678-576c-4253-a65f-01ef29af4f94',
    smusDomainRegion: 'us-east-2',
    smusDomainId: 'dzd-byubiyc1bebgfd',
    smusProjectId: 'b236u0pytkd02x',
    smusDomainAccountId: '619071339486',
    smusProjectAccountId: '619071339486',
    smusProjectRegion: 'us-east-2',
    duration: '4430',
    result: 'Succeeded',
    awsAccount: 'not-set',
    awsRegion: 'us-west-2'
  },
  Value: 1,
  Unit: 'None',
  Passive: false
}
```
- failed async calls
```
2025-12-29 12:00:12.444 [warning] smus: Failed to get project region for telemetry: The security token included in the request is expired
```
```
2025-12-29 12:00:15.237 [debug] telemetry: smus_stopSpace {
  Metadata: {
    metricId: '52e34dd6-3016-4abc-82cb-2605c2cb7e71',
    traceId: '8288d8a9-6674-4402-901a-0ebafe57ad1d',
    smusAuthMode: 'iam',
    smusSpaceKey: 'd-5eomwrxzxbim__default-ce003678-576c-4253-a65f-01ef29af4f94',
    smusDomainRegion: 'us-east-2',
    smusDomainId: 'dzd-byubiyc1bebgfd',
    smusProjectId: 'b236u0pytkd02x',
    smusDomainAccountId: '619071339486',
    smusProjectAccountId: '619071339486',
    smusProjectRegion: 'not-set',
    duration: '2973',
    result: 'Failed',
    reason: 'ExpiredTokenException',
    reasonDesc: 'ExpiredTokenException: Failed to stop space default-ce003678-576c-4253-a65f-01ef29af4f94: The security token included in the request is expired | ExpiredTokenException: The security token included in the request is expired',
    awsAccount: 'not-set',
    awsRegion: 'us-west-2'
  },
  Value: 1,
  Unit: 'None',
  Passive: false
}
```
`smusProjectRegion` is set to 'not-set` and the rest of custom metrics
are recorded.

---

- 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 <[email protected]>
## Problem

On Windows, sometimes files cannot be deleted due to `EBUSY` errors.

## Solution

Wrap all temporary file delete logic with a try-catch, and continue the
transformation in case of any errors, because deleting the files is not
strictly necessary.

---

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

Co-authored-by: David Hasani <[email protected]>
…will not be rendered (#8470)

## Problem


## Solution

```
2025-12-29 01:20:24.853 [info] inline: found non null next token; Start pagination
2025-12-29 01:20:24.853 [info] GenerateCompletion activity:
- number of suggestions: 1
- sessionId: 584db06a-4e51-4fbf-9656-6ac590756627
- first suggestion content (next line):
// a function to find the square of a number
    public static int square(int a) {
        return a * a;
    }

- duration between trigger to before sending LSP call: 0ms
- duration between trigger to after receiving LSP response: 758ms
- duration between before sending LSP call to after receving LSP response: 758ms
- duration between trigger to completion suggestion is displayed: 759ms

2025-12-29 01:20:25.145 [info] inline: Pagination call is complete
	page 0 has 1 suggestions
	page 1 has 1 suggestions


2025-12-29 01:20:25.160 [info] inline: Done pagination; ShouldUpdate=true; updatedSuggestionCount=2
```


---

- 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-20260108 into main.


---

- 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 <>
…edentials (#8500)

## Problem

AWS CLI update process enters an infinite retry loop when outdated CLI
is detected (exit code 252), causing continuous failed authentication
attempts and poor user experience.



## Solution

#### CLI update loop - affects users with outdated CLI

- Remove automatic retry loop for AWS CLI updates to prevent infinite
recursion
- Show warning message when CLI update is attempted, requiring retry
- Remove try-catch wrapper: it was swallowing errors and allowing
profile activation to proceed despite failed CLI execution, causing
invalid credential state

<img width="1196" height="798" alt="1-need-update"
src="https://github.com/user-attachments/assets/94a038bd-4972-4202-a940-e7b16348f465"
/>

<img width="1198" height="798" alt="2-run-installer"
src="https://github.com/user-attachments/assets/343d8ad9-2fe2-4581-bbd9-68b063340441"
/>

<img width="1196" height="798" alt="3-install-successful"
src="https://github.com/user-attachments/assets/5bfdf0af-44bf-4559-8a84-672f25851827"
/>

<img width="476" height="149" alt="4-warning-to-retry"
src="https://github.com/user-attachments/assets/22d1e5dd-bd29-400a-b8ce-504e5acf1cf6"
/>

#### Testing:

- Tested AWS CLI update scenario (exit code 252) with single update
attempt and manual retry
- Confirmed no infinite loops during installation
---

- 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 <[email protected]>
# Summary
This PR migrates the SQLWorkbench custom API client from the deprecated
AWS SDK v2 generator pattern to standalone AWS SDK v3-compatible
packages. This migration is required as part of the broader AWS Toolkit
repository migration from SDK v2 to v3.

# Problem
The AWS Toolkit VSCode repository is deprecating the centralized
generateServiceClient.ts script that generates TypeScript clients from
service JSON definitions. The SageMaker Unified Studio (SMUS) team
currently uses this v2 generator for SQLWorkbench.

# Solution

* Created standalone package @amzn/sql-workbench-client
* Updated imports to use new standalone package
* Migrated from SDK v2 .promise() pattern to SDK v3 Command pattern
(client.send(command))
* Updated credential handling to use credential provider function for
auto-refresh support
* Replaced local type definitions with SDK-provided types
(DatabaseConnectionConfiguration, ParentResource, Resource, etc.)
* Removed dependency for SQLWorkbench on the deprecated
generateServiceClient.ts script
* Updated unit tests to mock SDK v3 send method instead of v2 .promise()
pattern


---

- 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 <[email protected]>
…8490)

## Description
This PR fixes a bug where space status was incorrectly displayed for
spaces with mixed-case names.

## Problem
The SageMaker ListApps API's SpaceNameEquals filter is case-sensitive,
but space names in SMUS (SageMaker Unified Studio) can have mixed case.
When a space name contained uppercase characters, the API would not find
the matching app, causing incorrect status display in the UI.

## Solution
Added listAppsForDomainMatchSpaceIgnoreCase method with an optimization:

If the space name is all lowercase, uses the efficient listAppForSpace
method with SpaceNameEquals filter (server-side filtering)
Otherwise, fetches all apps via listAppsForDomain and performs
case-insensitive client-side matching
## Changes
* packages/core/src/shared/clients/sagemaker.ts: Added
listAppsForDomainMatchSpaceIgnoreCase method
* packages/core/src/awsService/sagemaker/sagemakerSpace.ts: Updated
updateSpaceAppStatus() to use the new method
## Technical Notes: Why Batch Polling Optimization Was Not Implemented
Goal: Since listAppsForDomainMatchSpaceIgnoreCase fetches all apps in a
domain (for case-insensitive matching), ideally we could reuse this
single API response to update multiple spaces in the same domain
simultaneously, reducing redundant API calls during polling.

Why It's Difficult:

Per-Space Update Architecture: The current updateSpaceAppStatus() method
is designed to update a single space. It's called individually for each
space by the PollingSet timer.

Shared Method for Different Use Cases: The same updateSpaceAppStatus()
method serves two purposes:

Initial status refresh: Triggered by user action (e.g., clicking
"Connect"). Requires real-time data to correctly determine if the space
should be added to the polling set.
Periodic polling updates: Triggered by PollingSet timer. Could
potentially use shared/batched data.
Real-time Data Requirement: When a user triggers an action, the initial
refresh must return real-time data. If the status is stale, the space
might not be added to the polling set, causing the UI to not update
properly after user actions.

Refactoring Scope: To properly implement batch updates, we would need to
separate the initial refresh logic from polling update logic, which is a
significant architectural change beyond the scope of this bug fix.

---

- 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 <[email protected]>
## Problem
- When user connects to space, it creates a duplicate window for the
same space

## Solution
- Assign unique identifier to workspace. This will open same external
window when connecting to same workspace.

## Notes
- Test cases added in separate pr with unit tests
- Retested locally for most recent changes with new vsix
---

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

This PR migrates the DataZone custom API client from the deprecated AWS
SDK v2 generator pattern to standalone AWS SDK v3-compatible packages.
This migration is required as part of the broader AWS Toolkit repository
migration from SDK v2 to v3.

The AWS Toolkit VSCode repository is deprecating the centralized
generateServiceClient.ts script that generates TypeScript clients from
service JSON definitions. The SageMaker Unified Studio (SMUS) team
currently uses this v2 generator for DataZone Custom API.

# Solution

* Created standalone package @amzn/datazone-custom-client with SDK v3
patterns
* Updated DataZoneCustomClientHelper to use SDK v3 client initialization
and Command pattern
* Migrated from client.methodName().promise() to client.send(new
Command()) pattern
* Updated credential provider to use SDK v3 async credential provider
function
* Updated imports to use new standalone package types and commands
* Updated test files to mock SDK v3 send() method instead of v2
.promise() pattern
* Removed dependency for DataZone Custom API on the deprecated
generateServiceClient.ts script
---

- 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 <[email protected]>
Co-authored-by: invictus <[email protected]>
This merges the released changes for rc-20260115 into main.

---

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