Commit Graph

8 Commits

Author SHA1 Message Date
chrome-storm-c442
85a8c3ffc6 fix: SSH keepalive + auto-reconnect for SFTP and terminal
- Add transport.set_keepalive(30) to all SSH connections
- Add SFTPSession.reconnect() method
- Auto-reconnect in _refresh_remote with retry on failure
- Auto-reconnect before upload/download operations
- Guard all remote navigation methods with connection checks
- ShellSession.connected wrapped in try/except
- Terminal: reset reconnect counter on send failure, increase max to 5
- Terminal: trigger reconnect on send to dead session

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 02:25:40 -05:00
chrome-storm-c442
b0b7d263fb v1.5.5: terminal zoom, font fallback, copy feedback
- Ctrl+wheel/Ctrl±/Ctrl+0 font zoom (6-28), persisted in settings.json
- Font fallback: Cascadia Mono → Consolas → Courier New (per platform)
- Visual "Copied!" flash in status bar on copy
- Closes audit items #27 (copy feedback) and #29 (font fallback)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 15:17:51 -05:00
chrome-storm-c442
59163f0469 Complete terminal rewrite for full TUI compatibility
- Alternate screen buffer (smcup/rmcup) for mc, vim, htop, less
- 256-color and truecolor rendering (dynamic tag creation)
- Reverse video and strikethrough attributes
- write_process_input bridge (DA/DSR responses to SSH)
- DECCKM application cursor keys for arrow navigation
- Alt+key combinations (mc panels, readline word nav)
- Shift+Arrow / Ctrl+Arrow with xterm modifier encoding
- Shift+Tab (backtab) for reverse completion
- Bracketed paste mode for clean multi-line paste
- Mouse tracking (basic, button, any-event, SGR extended)
- Incremental UTF-8 decoder (handles split multi-byte)
- Cursor hidden state (DECTCEM) respected
- pyte dirty set for optimized rendering
- Numpad key support
- Professional copy/paste UX:
  - Ctrl+C always sends SIGINT
  - Ctrl+Shift+C/V for copy/paste
  - Right-click context menu with Copy/Paste/Select All
  - Double-click to select word
- Smooth mousewheel scroll (3 lines in alt screen)
- Thread-safe session management (all state on main thread)
- Resize debounce reduced to 100ms
- Send errors trigger disconnect notification

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 14:57:55 -05:00
chrome-storm-c442
1de72a2724 Fix DECCKM support for arrow keys in TUI apps (mc, vim, htop)
- mc/vim/htop enable Application Cursor Mode (DECCKM ?1h) which
  requires arrow keys to send \eOA..D instead of \e[A..D
- Detect DECCKM in pyte screen mode and send correct sequences
- Fix thread-safety: use queue.Queue for SSH→main thread data transfer

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 14:45:07 -05:00
chrome-storm-c442
641f5a41d0 Fix TUI apps (mc, htop, vim) freezing in SSH terminal
- Remove LNM mode that corrupted cursor positioning for TUI programs
- Add render debouncing (~60fps) to prevent UI thread blocking
- Add data batching in terminal tab to reduce render calls
- Increase SSH recv buffer from 4KB to 64KB

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 14:32:19 -05:00
chrome-storm-c442
a83a97c9d5 v1.5.0: network interface binding, SSH fixes, terminal, release script
- Add network interface selection per server (VPN/multi-NIC support)
- Fix "Install Everything" button hanging on error
- Add interactive SSH terminal with PTY (pyte + xterm-256color)
- Add release.py for automated versioning and changelog generation
- Add CLAUDE.md with project instructions
- Add screenshots and release binaries for v1.1–v1.4

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 14:06:41 -05:00
chrome-storm-c442
bf39fd7b67 v1.2.0 + v1.3.0: Localization, About dialog, TOTP/2FA, stability improvements
v1.2.0:
- GUI localization (EN/RU/ZH) with language switcher and persistent selection
- About dialog (ⓘ) with app info, features, quick start guide
- core/i18n.py — internationalization module with t() function
- All GUI components translated via t() keys

v1.3.0:
- TOTP/2FA tab — Google Authenticator compatible codes with live 30s countdown,
  one-click copy, per-server secret management
- core/totp.py — TOTP module (pyotp, RFC 6238)
- core/logger.py — rotating file logger (5MB, 3 backups)
- Stronger Fernet encryption key with automatic migration from old key
- Thread-safe server store with locks, atomic writes, auto-restore on corruption
- Parallel status checks via ThreadPoolExecutor (up to 10 concurrent)
- SSH client: explicit channel cleanup, Unix key permissions
- Server dialog: port validation (1-65535), TOTP secret field
- Language change preserves active tab and server selection
- pyotp dependency added

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 11:07:51 -05:00
chrome-storm-c442
6179ded862 Initial commit: ServerManager GUI application
CustomTkinter desktop app for managing remote servers.
Features: SSH terminal, SFTP file transfer, key management,
background status monitoring, server CRUD with dark theme.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 07:49:13 -05:00