Files
HostKeeper/CHANGELOG.md
T
swanadiva 25a53d990b fix: SFTP default to Local pane + fixed border height
- Default active pane changed from Remote to Local on SFTP init
- renderPane now takes maxH parameter for fixed border height
- paneStyle.Height(maxH) prevents border from shrinking/growing on scroll
- Stacked mode: maxH = t.height - 6; Side-by-side: t.height - 5
2026-06-24 11:30:54 +07:00

4.1 KiB
Raw Blame History

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])
  • Fixed: SFTP pane width — lipgloss Width(n) renders n+2 chars (border extra). halfW now t.width/2-2 to compensate. File names truncate to within inner text area. Filter line also truncated.
  • Verified: zero overflow at 80, 60, 50 (side-by-side), 40, 30 cols (stacked)

SFTP Stacked Mode Fix (Done)

  • Stacked mode (<50 cols) now renders only the active pane (Local or Remote)
  • Added pane indicator bar: [Local] Remote with active pane highlighted
  • Side-by-side mode (≥50 cols) unchanged — both panes remain visible
  • Tab key now visually switches between panes on narrow terminals
  • Default active pane: Local (was Remote)
  • Border height fix: pane uses fixed Height(maxH) — border no longer shrinks/grows when scrolling
  • renderPane now takes maxH parameter to control content area height
  • Stacked: maxH = t.height - 6; Side-by-side: maxH = t.height - 5
  • Breakpoints: compact (<60), medium (60100), 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