70 lines
3.1 KiB
Markdown
70 lines
3.1 KiB
Markdown
# 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 (In Progress)
|
||
- **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
|
||
- SFTP panes stack vertically when terminal < 50 cols
|
||
- Tab bar truncates tab names on overflow
|
||
- Form contentW minimum lowered to 30 for mobile (Termux)
|
||
- 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
|