# Changelog ## [Unreleased] — 2025-01-31 ### Fixed - TUI host list footer now includes `Ctrl+E:edit` - New hosts/keys/snippets created via TUI form now get UUID + timestamps (`CreatedAt`, `UpdatedAt`) - Storage layer auto-generates UUID + timestamps on save if empty (defense-in-depth) - **host_form_tab.go**: Space/Left/Right keys now passthrough to text input when not on auth type field (fixes typing spaces and cursor navigation) - **tui.go**: Key and snippet list tabs now properly refresh after save/delete (mirrors host flow) - **tabs.go**: WindowSizeMsg now forwarded to ALL tabs, not just the active one (fixes stale dimensions after resize) ### Changed - All tab footers are now context-specific (no global status bar) - SFTP browser uses full-width panes (`t.width/2`) - **sftp_browser_tab.go footer**: Added `Enter/→:open`, `←/Backspace:up` - **form tabs footer**: Added `Shift+Tab:prev`, `↑↓:nav` ### Responsive Layout (Done) - **NEW `responsive.go`**: Shared helpers (`wrapFooter`, `adaptiveSidePad`, `clampWidth`, `truncateStr`) - Footer auto-wraps to multi-line when terminal is narrow (full labels preserved) - Box width clamped to terminal width — no more overflow - Host/key/snippet rows truncated with `…` when names are too long; compact row format on narrow screens - SFTP panes stack vertically when terminal < 50 cols - Tab bar truncates tab names on overflow - Form contentW minimum lowered from 50 to 30 for mobile (Termux) - Fixed: key_list_tab & snippet_list_tab were dropping last data row (off-by-one in `rows[:len(rows)-1]`) - Breakpoints: compact (<60), medium (60–100), wide (≥100) ## v1.0.0 (2025-01-30) ### Added - Initial release of Hostkeeper SSH/SFTP management tool - **Host management**: CRUD operations for SSH hosts (add, list, edit, delete) - **SSH connections**: Native SSH (default) and Go SSH direct mode - **TUI interface**: Interactive host browser using Bubble Tea - **Export/Import**: JSON export and import with merge/replace strategies - **Cross-platform builds**: Support for Linux, macOS, Windows, Termux - **Shell completion**: Bash, Zsh, Fish, and PowerShell support - **Configuration**: File-based credential storage with `0600` permissions - **Tag and group**: Host categorization with tags and groups - **Search and filter**: Filter hosts by group, tag, or text search ### Commands - `hostkeeper add` — Add SSH hosts (interactive and flag-based) - `hostkeeper list` — List hosts with table/JSON output - `hostkeeper connect` — Connect to hosts with custom timeout - `hostkeeper edit` — Edit host configurations - `hostkeeper delete` — Delete hosts with confirmation - `hostkeeper export` — Export data to JSON - `hostkeeper import` — Import data with merge/replace - `hostkeeper tui` — Terminal user interface - `hostkeeper completion` — Shell completion generation - `hostkeeper version` — Version information ### Technical - Cobra CLI framework for command structure - Bubble Tea TUI with keyboard navigation - Go SSH client for direct connections - Comprehensive test suite with unit and integration tests - Build automation via Makefile and build.sh ### Notes - Initial MVP release, all core features functional - Encrypted storage planned for future release - Interactive shell in Go SSH direct mode not yet available