Repository navigation
Conversation
EhabY
force-pushed
the
feat/vsc-1-workspace-actions
branch
2 times, most recently
from
October 29, 2026 14:44
af31d97 to
fda9174
Compare
EhabY
force-pushed
the
feat/vsc-1-workspace-actions
branch
3 times, most recently
from
October 30, 2026 08:15
2db0f3d to
20f2f4e
Compare
This was referenced Oct 30, 2026
EhabY
force-pushed
the
feat/vsc-1-workspace-actions
branch
from
October 30, 2026 13:00
20f2f4e to
106d17a
Compare
EhabY
force-pushed
the
feat/vsc-1-workspace-actions
branch
from
October 30, 2026 13:45
106d17a to
d55b43c
Compare
EhabY
force-pushed
the
feat/vsc-1-workspace-actions
branch
from
October 30, 2026 21:54
d55b43c to
1f071dd
Compare
EhabY
force-pushed
the
feat/vsc-1-workspace-actions
branch
2 times, most recently
from
November 9, 2026 10:21
1c02870 to
5be65f8
Compare
EhabY
force-pushed
the
feat/vsc-1-workspace-actions
branch
from
November 9, 2026 12:18
5be65f8 to
fb9684b
Compare
EhabY
force-pushed
the
feat/vsc-1-workspace-actions
branch
from
November 9, 2026 12:20
fb9684b to
5a0015e
Compare
EhabY
force-pushed
the
feat/vsc-1-workspace-actions
branch
2 times, most recently
from
November 9, 2026 12:58
fe43d98 to
37f9ed0
Compare
EhabY
force-pushed
the
feat/vsc-1-workspace-actions
branch
3 times, most recently
from
November 9, 2026 13:59
697479d to
19e373d
Compare
EhabY
force-pushed
the
feat/vsc-1-workspace-actions
branch
from
November 12, 2026 15:07
19e373d to
064615b
Compare
EhabY
added a commit
that referenced
this pull request
Nov 13, 2026
Rebinding the API client to another deployment or account cancels its pending requests, while token refreshes for the same account keep them, in both the local client and remote windows. - `CoderApi.setCredentials` and `dispose` abort pending requests; `setSessionToken` keeps them. - `DeploymentManager` treats a token change as a refresh only when the user ID and URL match, and clears the client before announcing sign-out. - Remote windows verify the user behind a new token before keeping requests, and reset OAuth on an account change. - The auth interceptor does not refresh, prompt or retry for a canceled request. - An OAuth refresh canceled midway never overwrites the credentials that replaced it. Required by #1168.
EhabY
force-pushed
the
feat/vsc-1-workspace-actions
branch
3 times, most recently
from
November 13, 2026 15:57
b1c5924 to
49134c2
Compare
EhabY
marked this pull request as ready for review
November 13, 2026 17:51
Run Start, Stop, Restart, Update and Delete for listed workspaces over the REST API, and open the dashboard sharing page. - Each action is tied to an AbortSignal aborted on session change, so no request or wait outlives the session it started under. - runBuild queues a build with the vscode_connection reason, waits for it, streams its logs, and follows an on_success start. - waitForBuild polls the build by ID, so a delete can finish, and polls through up to 3 transient failures in a row. - Start activates dormant workspaces and cleans up failed starts; Restart refuses to start over a build that replaced its stop; Update re-reads and refuses when the workspace changed since it was confirmed. - The store tracks pending actions per workspace and re-reads just that workspace once its action ends.
EhabY
force-pushed
the
feat/vsc-1-workspace-actions
branch
from
November 13, 2026 18:43
49134c2 to
107f182
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Extension side of workspace lifecycle actions in the Workspaces panel: Start, Stop, Restart, Update, Delete and Share for listed workspaces. The UI is in #1184.
WorkspaceActionRunnerruns each action over the REST API, with no CLI. It asks first where it must, re-reads the workspace, and explains when the action no longer applies. Each action gets anAbortSignalthat aborts when the session changes; the signal is checked before every request and also ends any wait, because the API client is shared across sessions.Commandsonly gains the dashboard sharing path.runBuildhelper that queues the build with thevscode_connectionreason, waits for it ascoderdoes, streams its logs to the Coder output, warns when no provisioner can take it, and fails the action with its workspace named. When the request carrieson_success, it also waits for the start the server queues after the stop.waitForBuildpolls/api/v2/workspacebuilds/{id}, ascoder deletedoes. The by-name read 404s once a delete completes, so a Delete always reported failure. It polls through up to 3 network failures or 5xx responses in a row and fails at once on a client error. The action returns once its build settles, without waiting for a stalled log stream.coder start: it activates a dormant workspace, cleans up a failed start, and uses the active version when the workspace auto-updates or the template requires it.coder update.workspaceActions(shared) decides which actions a workspace allows. The store tracks pending actions per workspace, so actions on different workspaces run in parallel. When an action ends, the store re-reads just that workspace (the All and Shared filters don't poll), after any list already in flight, so a stale list can't undo it.node:timers/promisesthrough vitest'sfakeNodeBuiltins.Not covered
updateWorkspaceDormancyas unprobed until the server fixes this.Generated by Coder Agents for @EhabY.