Content-Length: 6183 | pFad | http://github.com/coder/vscode-coder/pull/552.patch
thub.com
From 817df2b437c9af902b606125188ebb6df2d4f66f Mon Sep 17 00:00:00 2001
From: Ehab Younes
Date: Tue, 15 Jul 2025 19:14:15 +0300
Subject: [PATCH 1/4] Use primary agent for the remote authority when opening a
workspace
---
src/commands.ts | 4 ++--
src/workspacesProvider.ts | 8 ++++----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/commands.ts b/src/commands.ts
index d6734376..6d267032 100644
--- a/src/commands.ts
+++ b/src/commands.ts
@@ -440,8 +440,8 @@ export class Commands {
baseUrl,
treeItem.workspaceOwner,
treeItem.workspaceName,
- treeItem.workspaceAgent,
- treeItem.workspaceFolderPath,
+ treeItem.primaryAgentName,
+ treeItem.primaryAgentFolderPath,
true,
);
} else {
diff --git a/src/workspacesProvider.ts b/src/workspacesProvider.ts
index a77b31ad..b8a16fef 100644
--- a/src/workspacesProvider.ts
+++ b/src/workspacesProvider.ts
@@ -436,8 +436,8 @@ export class OpenableTreeItem extends vscode.TreeItem {
public readonly workspaceOwner: string,
public readonly workspaceName: string,
- public readonly workspaceAgent: string | undefined,
- public readonly workspaceFolderPath: string | undefined,
+ public readonly primaryAgentName: string | undefined,
+ public readonly primaryAgentFolderPath: string | undefined,
contextValue: CoderOpenableTreeItemType,
) {
@@ -476,7 +476,7 @@ class AgentTreeItem extends OpenableTreeItem {
}
}
-export class WorkspaceTreeItem extends OpenableTreeItem {
+class WorkspaceTreeItem extends OpenableTreeItem {
public appStatus: {
name: string;
url?: string;
@@ -509,7 +509,7 @@ export class WorkspaceTreeItem extends OpenableTreeItem {
: vscode.TreeItemCollapsibleState.Expanded,
workspace.owner_name,
workspace.name,
- undefined,
+ agents[0]?.name,
agents[0]?.expanded_directory,
agents.length > 1
? "coderWorkspaceMultipleAgents"
From 028b6477652b0750e05204fa0c39f633849e0a5b Mon Sep 17 00:00:00 2001
From: Ehab Younes
Date: Thu, 17 Jul 2025 01:31:01 +0300
Subject: [PATCH 2/4] Make workspace agent always defined
---
src/commands.ts | 34 +++++++++++++++++++++++++---------
1 file changed, 25 insertions(+), 9 deletions(-)
diff --git a/src/commands.ts b/src/commands.ts
index 6d267032..51965be6 100644
--- a/src/commands.ts
+++ b/src/commands.ts
@@ -436,6 +436,9 @@ export class Commands {
if (!baseUrl) {
throw new Error("You are not logged in");
}
+ if (treeItem.primaryAgentName === undefined) {
+ return;
+ }
await openWorkspace(
baseUrl,
treeItem.workspaceOwner,
@@ -524,6 +527,8 @@ export class Commands {
let folderPath: string | undefined;
let openRecent: boolean | undefined;
+ let workspace: Workspace | undefined;
+
const baseUrl = this.restClient.getAxiosInstance().defaults.baseURL;
if (!baseUrl) {
throw new Error("You are not logged in");
@@ -570,7 +575,7 @@ export class Commands {
});
});
quickPick.show();
- const workspace = await new Promise((resolve) => {
+ workspace = await new Promise((resolve) => {
quickPick.onDidHide(() => {
resolve(undefined);
});
@@ -589,20 +594,31 @@ export class Commands {
}
workspaceOwner = workspace.owner_name;
workspaceName = workspace.name;
+ } else {
+ workspaceOwner = args[0] as string;
+ workspaceName = args[1] as string;
+ workspaceAgent = args[2] as string | undefined;
+ folderPath = args[3] as string | undefined;
+ openRecent = args[4] as boolean | undefined;
+ }
+
+ if (!workspaceAgent) {
+ if (workspace === undefined) {
+ workspace = await this.restClient.getWorkspaceByOwnerAndName(
+ workspaceOwner,
+ workspaceName,
+ );
+ }
const agent = await this.maybeAskAgent(workspace);
if (!agent) {
// User declined to pick an agent.
return;
}
- folderPath = agent.expanded_directory;
+ if (!folderPath) {
+ folderPath = agent.expanded_directory;
+ }
workspaceAgent = agent.name;
- } else {
- workspaceOwner = args[0] as string;
- workspaceName = args[1] as string;
- workspaceAgent = args[2] as string | undefined;
- folderPath = args[3] as string | undefined;
- openRecent = args[4] as boolean | undefined;
}
await openWorkspace(
@@ -677,7 +693,7 @@ async function openWorkspace(
baseUrl: string,
workspaceOwner: string,
workspaceName: string,
- workspaceAgent: string | undefined,
+ workspaceAgent: string,
folderPath: string | undefined,
openRecent: boolean | undefined,
) {
From 730ada9907a2f9abed077d744e24e0b767e40c21 Mon Sep 17 00:00:00 2001
From: Ehab Younes
Date: Fri, 18 Jul 2025 20:29:42 +0300
Subject: [PATCH 3/4] Add changelog
---
CHANGELOG.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f07f13fb..d1607d81 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,8 @@
- Update `/openDevContainer` to support all dev container features when hostPath
and configFile are provided.
+- Fix opening a workspace restores the VS Code session (files, tabs, context)
+ of the selected agent.
## [v1.9.2](https://github.com/coder/vscode-coder/releases/tag/v1.9.2) 2025-06-25
From befecc0cccbd0aeaef3ad3b36908ca42325205ce Mon Sep 17 00:00:00 2001
From: Ehab Younes
Date: Tue, 22 Jul 2025 21:22:28 +0300
Subject: [PATCH 4/4] Update CHANGELOG.md
---
CHANGELOG.md | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d1607d81..bc8fe7f9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,10 @@
and configFile are provided.
- Fix opening a workspace restores the VS Code session (files, tabs, context)
of the selected agent.
+- Consistently use the same session for each agent. Previously,
+ depending on how you connected, it could be possible to get two
+ different sessions for an agent. Existing connections may still
+ have this problem, only new connections are fixed.
## [v1.9.2](https://github.com/coder/vscode-coder/releases/tag/v1.9.2) 2025-06-25
--- a PPN by Garber Painting Akron. With Image Size Reduction included!Fetched URL: http://github.com/coder/vscode-coder/pull/552.patch
Alternative Proxies:
Alternative Proxy
pFad Proxy
pFad v3 Proxy
pFad v4 Proxy