fix(electron): preserve desktop hosts when saving SSH instances (#1138)

Co-authored-by: Isaac Sanchez <isanchez-hawkins@arize.com>
This commit is contained in:
Isaac Sanchez-Hawkins
2026-05-08 15:03:37 +03:00
committed by GitHub
co-authored by Isaac Sanchez
parent c827d6b8df
commit 9fb3e5d764
+7 -3
View File
@@ -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;
}