Skip to content

Conversation

@NewtonDer
Copy link
Contributor

Notes

  • feat(sagemaker): Merging Feature/sagemaker-connect-phase-2 to master

  • Treat all work as PUBLIC. Private feature/x branches will not be squash-merged at release time.
  • Your code changes must meet the guidelines in CONTRIBUTING.md.
  • License: I confirm that my contribution is made under the terms of the Apache 2.0 license.

laileni-aws and others added 30 commits July 2, 2025 17:07
…ws#2144)

## 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: Roger Zhang <[email protected]>
Co-authored-by: Reed Hamilton <[email protected]>
Co-authored-by: Jacob Chung <[email protected]>
## Problem
- DeepLink remote connections should be able to reconnect automatically
when the connection drops.

## Solution
- Reintroduced and updated logic to handle DeepLink reconnection by
redirecting the user to the Studio UI to refetch the session token.

---

- 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
When persisting selected domains/users that the customer manually
filtered, we did not take into account the region that the customer was
operating in. Thus, the filtering mechanism was incorrectly being
applied to all regions.
Example:
```
[
  [
    'arn:aws:iam:user/user1',
    ['domain1__pdx-1', 'domain1__pdx-2']
  ],
]
```

## Solution
When persisting the selected domains/users in global state, we insert
another level to track region. Example:
```
[
  [
    'us-west-2',
    [
      [
        'arn:aws:iam:user/user1',
        ['domain1__pdx-1', 'domain1__pdx-2']
      ]
    ]
  ],
  [
    'us-east-1',
    [
      [
        'arn:aws:iam:user/user1',
        ['domain1__iad-1', 'domain1__iad-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.

---------

Co-authored-by: Newton Der <[email protected]>
aws-toolkit-automation and others added 17 commits July 11, 2025 23:33
…zed space name (aws#2156)

## Problem
1. Code Editor and JupyterLab spaces support an auto-shutdown feature
that stops the space after a period of user inactivity. Currently, this
feature does not account for activity when a user connects to their
space through VS Code. We need to extend support for auto-shutdown in
this case.
2. User is unable to connect to a SageMaker Space that contains capital
letters in its name. This is because SSH automatically canonicalizes the
hostname when passing it to the ProxyCommand, which includes converting
it to lowercase and performing DNS lookups.
3. There’s a typo in refreshURL where an extra / is being added.

## Solution
1. Track user activity in VS Code using the `UserActivity` class and by
monitoring terminal input and output. Write the latest activity
timestamp to the space's local `/tmp` file so the backend auto-shutdown
system can detect recent user activity.
2. Use the %n placeholder instead of %h in the ProxyCommand. Unlike %h,
which provides the resolved and lowercased hostname, %n retains the
original, user-provided value including capital letters.
3. There’s a typo in refreshURL where an extra / is being added.

---

- 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.
…emory (aws#2157)

## Problem
When the user has not started the space before (instanceType not
defined), the extension would fall back to using `ml.t3.medium`, which
has insufficient memory.
Or if the user has attempted to restart the space with an instanceType
with insufficient memory, the request to `StartSpace` would fail.

Instance types with insufficient memory:
- `ml.t3.medium`
- `ml.c7i.large`
- `ml.c6i.large`
- `ml.c6id.large`
- `ml.c5.large`

## Solution
Show an error notification if user is attempting to start a space with
insufficient memory. Suggest the user to use an upgraded instance type
with more memory depending on the one they attempted to use. If the user
confirms, then the call to `StartSpace` will continue with the
recommended instanceType.

- `ml.t3.medium` --> `ml.t3.large`
- `ml.c7i.large` --> `ml.c7i.xlarge`
- `ml.c6i.large` --> `ml.c6i.xlarge`
- `ml.c6id.large` --> `ml.c6id.xlarge`
- `ml.c5.large` --> `ml.c5.xlarge`

---

- 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: Newton Der <[email protected]>
…s and fix deeplink reconnect (aws#2161)

## Problem

- When there are a large number of SageMaker space nodes, refreshing the
Explorer tree can take time. During this window, the underlying node
objects may be temporarily undefined, causing actions like "Connect" or
"Stop" to fail. This happens because all space nodes were previously
being refreshed whenever an action was taken on any one node, or when
the Explorer tree was refreshed.

- Deeplink reconnect can fail if the user is not logged in with the same
credentials originally used to describe the space. This is because the
Toolkit currently makes a `DescribeSpace` call using local credentials.
Ideally, Studio UI should pass the `appType` directly in the deeplink,
avoiding the need for Toolkit to make this call. However, since changes
to Studio UI can’t be deployed before the NY Summit, this update will be
handled in a future MFE release.

## Solution

- Updated the logic to **refresh only the specific space node** being
acted on, instead of refreshing all nodes. This avoids unnecessary
delays and reduces the likelihood of undefined node states during
actions.

- Added a **warning message** when the full space list is being
refreshed. If a user tries to interact with a space during this time,
they will see a message indicating that space information is still
loading and to try again shortly.

- Temporarily **hardcoded the `appType` to `JupyterLab`** in the
reconnect URI for all app types. Reconnection will still work for both
Code Editor and JupyterLab, although the URL path will always show
`/jupyterlab`. This is a temporary workaround until Studio UI can send
the correct `appType`.

- Added **telemetry for deeplink connect**


---

- 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.
…om remote workspace (aws#2158)

## Problem
When a user is connected to a remote workspace and clicks the Open
Remote Connection button, they see an error message about the Remote SSH
extension not being installed, when the real reason is that they cannot
connect remotely from a remote workspace.

## Solution
Show an error message which states clearly that they cannot connect via
deeplink when in a remote workspace.

---

- 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: Newton Der <[email protected]>
@NewtonDer NewtonDer requested a review from a team as a code owner July 15, 2025 23:32
@github-actions
Copy link

  • This pull request implements a feat or fix, so it must include a changelog entry (unless the fix is for an unreleased feature). Review the changelog guidelines.
    • Note: beta or "experiment" features that have active users should announce fixes in the changelog.
    • If this is not a feature or fix, use an appropriate type from the title guidelines. For example, telemetry-only changes should use the telemetry type.

@laileni-aws
Copy link
Contributor

/retryBuilds

1 similar comment
@yueny2020
Copy link
Contributor

/retryBuilds

@laileni-aws laileni-aws reopened this Jul 16, 2025
@ashishrp-aws ashishrp-aws reopened this Jul 16, 2025
laileni-aws added a commit that referenced this pull request Jul 16, 2025
## Notes
- feat(sagemaker): Merging Feature/sagemaker-connect-phase-2 to master
- Reference PR: #7677
---

- 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: Roger Zhang <[email protected]>
Co-authored-by: Reed Hamilton <[email protected]>
Co-authored-by: Jacob Chung <[email protected]>
Co-authored-by: aws-ides-bot <[email protected]>
Co-authored-by: aws-asolidu <[email protected]>
Co-authored-by: Newton Der <[email protected]>
Co-authored-by: Newton Der <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants