From 9fb3e5d7649884f620a2bb2c36af5e9fd8dd3fcc Mon Sep 17 00:00:00 2001 From: Isaac Sanchez-Hawkins <266845420+isanchez404@users.noreply.github.com> Date: Fri, 8 May 2026 08:03:37 -0400 Subject: [PATCH] fix(electron): preserve desktop hosts when saving SSH instances (#1138) Co-authored-by: Isaac Sanchez --- packages/electron/ssh-manager.mjs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/electron/ssh-manager.mjs b/packages/electron/ssh-manager.mjs index 7a8f801d..cf86932d 100644 --- a/packages/electron/ssh-manager.mjs +++ b/packages/electron/ssh-manager.mjs @@ -579,16 +579,20 @@ export class ElectronSshManager { async setInstances(config) { const root = readJsonRoot(this.settingsFilePath); + const previousSshIds = new Set( + (Array.isArray(root.desktopSshInstances) ? root.desktopSshInstances : []) + .map((entry) => String(entry?.id || '').trim()) + .filter((id) => id && id !== LOCAL_HOST_ID) + ); const instances = Array.isArray(config?.instances) ? config.instances.map((instance) => this.sanitizeInstance(instance)) : []; root.desktopSshInstances = instances; - const previousIds = new Set((Array.isArray(root.desktopHosts) ? root.desktopHosts : []).map((entry) => String(entry?.id || '').trim()).filter(Boolean)); const hosts = Array.isArray(root.desktopHosts) ? root.desktopHosts.filter(Boolean) : []; const nextIds = new Set(instances.map((instance) => instance.id)); const filteredHosts = hosts.filter((entry) => { const id = String(entry?.id || '').trim(); - return id && !(previousIds.has(id) && !nextIds.has(id)); + return id && id !== LOCAL_HOST_ID && !(previousSshIds.has(id) && !nextIds.has(id)); }); for (const instance of instances) { @@ -605,7 +609,7 @@ export class ElectronSshManager { } root.desktopHosts = filteredHosts; - if (typeof root.desktopDefaultHostId === 'string' && previousIds.has(root.desktopDefaultHostId) && !nextIds.has(root.desktopDefaultHostId)) { + if (typeof root.desktopDefaultHostId === 'string' && previousSshIds.has(root.desktopDefaultHostId) && !nextIds.has(root.desktopDefaultHostId)) { root.desktopDefaultHostId = LOCAL_HOST_ID; }