diff --git a/core/config/ConfigHandler.ts b/core/config/ConfigHandler.ts index 545c73723..134f79d4e 100644 --- a/core/config/ConfigHandler.ts +++ b/core/config/ConfigHandler.ts @@ -100,7 +100,7 @@ export class ConfigHandler { return `${workspaceId}:::${orgId}`; } - private async cascadeInit(reason: string) { + private async cascadeInit(reason: string, isLogin?: boolean) { const signal = this.cascadeAbortController.signal; this.workspaceDirs = null; // forces workspace dirs reload @@ -118,7 +118,12 @@ export class ConfigHandler { const workspaceId = await this.getWorkspaceId(); const selectedOrgs = this.globalContext.get("lastSelectedOrgIdForWorkspace") ?? {}; - const currentSelection = selectedOrgs[workspaceId]; + let currentSelection = selectedOrgs[workspaceId]; + + // reset personal org to first available non-personal org on login + if (isLogin && currentSelection === "personal") { + currentSelection = null; + } const firstNonPersonal = orgs.find( (org) => org.id !== this.PERSONAL_ORG_DESC.id, @@ -402,6 +407,7 @@ export class ConfigHandler { const newSession = sessionInfo; let reload = false; + let isLogin = false; if (newSession) { if (currentSession) { if ( @@ -416,6 +422,7 @@ export class ConfigHandler { } else { // log in reload = true; + isLogin = true; } } else { if (currentSession) { @@ -430,7 +437,7 @@ export class ConfigHandler { this.ide, ); this.abortCascade(); - await this.cascadeInit("Control plane session info update"); + await this.cascadeInit("Control plane session info update", isLogin); } return reload; }