From 509ac3fa68f30df24fb8ac56908ccbba1dbcf4b7 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 25 Jun 2026 16:29:17 +0000 Subject: [PATCH 1/2] Avoid rerendering suggested SSH host rows Co-authored-by: Julius Marminge --- apps/web/src/components/settings/ConnectionsSettings.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/web/src/components/settings/ConnectionsSettings.tsx b/apps/web/src/components/settings/ConnectionsSettings.tsx index 5012986ff45..50cf18863cb 100644 --- a/apps/web/src/components/settings/ConnectionsSettings.tsx +++ b/apps/web/src/components/settings/ConnectionsSettings.tsx @@ -2749,7 +2749,7 @@ export function ConnectionsSettings() { key={`${target.alias}:${target.hostname}:${target.port ?? ""}`} target={target} connectingHostAlias={connectingSshHostAlias} - onConnect={(nextTarget) => void handleConnectSshHost(nextTarget)} + onConnect={handleConnectSshHost} /> ))} {hasLoadedDiscoveredSshHosts && From 0bab6801ecb2b31fd14e5e716e3aaebfa671c406 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 25 Jun 2026 16:34:00 +0000 Subject: [PATCH 2/2] Compare discovered SSH row props by value Co-authored-by: Julius Marminge --- .../components/settings/ConnectionsSettings.tsx | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/apps/web/src/components/settings/ConnectionsSettings.tsx b/apps/web/src/components/settings/ConnectionsSettings.tsx index 50cf18863cb..e38f6271f87 100644 --- a/apps/web/src/components/settings/ConnectionsSettings.tsx +++ b/apps/web/src/components/settings/ConnectionsSettings.tsx @@ -1561,7 +1561,22 @@ const DesktopSshHostRow = memo(function DesktopSshHostRow({ ); -}); +}, areDesktopSshHostRowPropsEqual); + +function areDesktopSshHostRowPropsEqual( + previous: Readonly, + next: Readonly, +): boolean { + return ( + previous.connectingHostAlias === next.connectingHostAlias && + previous.onConnect === next.onConnect && + previous.target.alias === next.target.alias && + previous.target.hostname === next.target.hostname && + previous.target.username === next.target.username && + previous.target.port === next.target.port && + previous.target.source === next.target.source + ); +} function CloudLinkSwitch({ checked,