feat(remote): add desktop SSH remote instances lifecycle and UX (#515)

* feat(remote): add desktop SSH remote instances lifecycle and settings UX

* fix(remote): cancel SSH modal connect and correct desktop runtime detection

* fix(remote): unblock ssh auth flow and disconnect on instance removal

* fix(remote-ssh): harden remote lifecycle, auth probing, and port forwarding reliability

Improve SSH remote stability by correctly handling authenticated external probes, accepting ControlMaster handoff behavior, making reconnect detection tunnel-aware, and applying extra forwards through the shared master connection with local listener validation.

---------

Co-authored-by: Bohdan Triapitsyn <artmore@protonmail.com>
This commit is contained in:
shekohex
2026-02-26 20:26:12 +02:00
committed by GitHub
co-authored by Bohdan Triapitsyn
parent 5250a20578
commit 27321d454b
12 changed files with 6335 additions and 128 deletions
+9
View File
@@ -3,6 +3,7 @@ import type { SidebarSection } from '@/constants/sidebar';
export type SettingsPageSlug =
| 'home'
| 'projects'
| 'remote-instances'
| 'providers'
| 'usage'
| 'agents'
@@ -71,6 +72,14 @@ export const SETTINGS_PAGE_METADATA: readonly SettingsPageMeta[] = [
kind: 'split',
keywords: ['project', 'projects', 'worktree', 'worktrees', 'repo', 'repository', 'directory'],
},
{
slug: 'remote-instances',
title: 'Remote Instances',
group: 'projects',
kind: 'split',
keywords: ['ssh', 'remote', 'instances', 'tunnels', 'forwarding', 'connection'],
isAvailable: (ctx) => ctx.isDesktop && !ctx.isWeb && !ctx.isVSCode,
},
{
slug: 'providers',
title: 'Providers',