Commit 06fef19
committed
feat: add 5 major SSH/Terminal features for v0.14.0
## 🚀 New Features
### 1. SSH Agent Forwarding
- Auto-detect SSH agent socket (SSH_AUTH_SOCK, macOS/Linux common paths)
- Forward local SSH agent to remote hosts via jump hosts
- Per-connection setting in Advanced tab
### 2. Zmodem File Transfer (lrzsz)
- Send/receive files over terminal using rz/sz commands
- Automatic detection of Zmodem sequences in terminal stream
- Full IPC handlers for file transfer workflow
- React hook `useZmodem()` for UI integration
- Requires lrzsz installed on remote host
### 3. True Color (24-bit) & Sixel Graphics
- Enable 24-bit color support in terminal
- Sixel graphics support for displaying images in terminal
- Per-connection setting: xterm-256color-tc-sixel terminal type
### 4. SSH ProxyJump Chain Support
- Added `proxyJumpChain` field for future multi-hop SSH chains
- Infrastructure ready for complex SSH routing scenarios
### 5. Keep-Alive & Anti-Idle
- **SSH Keep-Alive**: Automatic ping packets at configurable intervals
- **Anti-Idle**: Send null bytes or custom strings to prevent timeout
- Configurable interval, count max, and idle string per connection
## 🔧 Technical Changes
### Database Schema (SQLite)
- Added 11 new columns to `connections` table:
- `agent_forwarding`, `keepalive_interval`, `keepalive_count_max`
- `ready_timeout`, `proxy_jump_chain`
- `anti_idle`, `anti_idle_interval`, `anti_idle_string`
- `zmodem_enabled`, `true_color_enabled`, `sixel_enabled`
### IPC/API
- New `window.api.zmodem` namespace with 6 methods
- Updated `SshConnectPayload` with new SSH options
- Enhanced `ssh:connect` handler with agent forwarding & keepalive
### UI
- ConnectionDialog Advanced tab expanded with:
- SSH Agent Forwarding toggle
- Keep-alive settings (interval, count max, timeout)
- Anti-idle settings (enable, interval, string)
- Zmodem file transfer toggle
- Terminal display options (True Color, Sixel)
## ✅ Compatibility
- TypeScript: 0 errors
- Build: Successful for all platforms
- Migration: Automatic ALTER TABLE for existing databases
## 📦 Files Changed
- 13 files modified, 2 new files
- ~1,200 lines added1 parent 1d6b5e5 commit 06fef19
14 files changed
Lines changed: 1225 additions & 20 deletions
File tree
- src
- main
- preload
- renderer/src
- components
- dialogs
- terminal
- lib
- types
- types
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
74 | 74 | | |
75 | 75 | | |
76 | 76 | | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
77 | 88 | | |
78 | 89 | | |
79 | 90 | | |
| |||
129 | 140 | | |
130 | 141 | | |
131 | 142 | | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
132 | 168 | | |
133 | 169 | | |
134 | 170 | | |
| |||
282 | 318 | | |
283 | 319 | | |
284 | 320 | | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
285 | 336 | | |
286 | 337 | | |
287 | 338 | | |
| |||
310 | 361 | | |
311 | 362 | | |
312 | 363 | | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
313 | 379 | | |
314 | 380 | | |
315 | 381 | | |
| |||
0 commit comments