spawn/cli/src
A 180b19d9f4
fix: reduce SSH interactive lag (GSSAPIAuthentication + TCPKeepAlive) (#1795)
* fix: reduce SSH interactive lag with GSSAPIAuthentication=no and TCPKeepAlive=no

GSSAPIAuthentication causes latency on every SSH interaction when
the server doesn't support Kerberos (i.e. always for our VMs).
TCPKeepAlive is redundant with ServerAliveInterval and can cause
retransmission issues through NAT/firewalls.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: use SSH_INTERACTIVE_OPTS for all interactive sessions

The reconnect (cmdConnect) and agent launch (cmdEnterAgent) paths
were using bare SSH with only StrictHostKeyChecking, missing all
performance flags. Now they use SSH_INTERACTIVE_OPTS which includes:

- GSSAPIAuthentication=no (skip Kerberos timeout)
- TCPKeepAlive=no (avoid NAT retransmission issues)
- ServerAliveInterval=15 (encrypted keepalives)
- Compression=yes (reduce latency on slow/distant links)
- IPQoS=lowdelay (mark packets for low-latency treatment)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: lab <6723574+louisgv@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-23 03:20:49 -05:00
..
__tests__ refactor: enforce isString/isNumber type guards via GritQL lint rule (#1796) 2026-02-23 03:20:42 -05:00
aws style: enforce biome format across codebase, add CI check (#1794) 2026-02-22 23:32:12 -08:00
daytona refactor: enforce isString/isNumber type guards via GritQL lint rule (#1796) 2026-02-23 03:20:42 -05:00
digitalocean refactor: enforce isString/isNumber type guards via GritQL lint rule (#1796) 2026-02-23 03:20:42 -05:00
fly refactor: enforce isString/isNumber type guards via GritQL lint rule (#1796) 2026-02-23 03:20:42 -05:00
gcp style: enforce biome format across codebase, add CI check (#1794) 2026-02-22 23:32:12 -08:00
hetzner refactor: enforce isString/isNumber type guards via GritQL lint rule (#1796) 2026-02-23 03:20:42 -05:00
local style: enforce biome format across codebase, add CI check (#1794) 2026-02-22 23:32:12 -08:00
shared fix: reduce SSH interactive lag (GSSAPIAuthentication + TCPKeepAlive) (#1795) 2026-02-23 03:20:49 -05:00
sprite refactor: extract saveLaunchCmd to history.ts (#1789) 2026-02-22 23:11:14 -08:00
commands.ts fix: reduce SSH interactive lag (GSSAPIAuthentication + TCPKeepAlive) (#1795) 2026-02-23 03:20:49 -05:00
flags.ts style: enforce biome format across codebase, add CI check (#1794) 2026-02-22 23:32:12 -08:00
guidance-data.ts chore: harden biome lint rules and auto-fix codebase (#1759) 2026-02-22 14:37:47 -08:00
history.ts refactor: enforce isString/isNumber type guards via GritQL lint rule (#1796) 2026-02-23 03:20:42 -05:00
index.ts fix: Result monad for retry logic — prevent duplicate server creation (#1771) 2026-02-22 20:39:42 -05:00
manifest.ts style: enforce biome format across codebase, add CI check (#1794) 2026-02-22 23:32:12 -08:00
picker.ts style: enforce biome format across codebase, add CI check (#1794) 2026-02-22 23:32:12 -08:00
security.ts chore: harden biome lint rules and auto-fix codebase (#1759) 2026-02-22 14:37:47 -08:00
unicode-detect.ts fix: Switch build target from node to bun to fix UTF-8 mojibake 2026-02-10 09:36:28 +00:00
update-check.ts refactor: enforce isString/isNumber type guards via GritQL lint rule (#1796) 2026-02-23 03:20:42 -05:00