Commit Graph

39 Commits (main)

Author SHA1 Message Date
mirivlad 604a4ecde2 docs: clarify platform and repository status 2026-06-06 11:14:15 +08:00
mirivlad 8e59c3052e feat: add cross-platform release packaging 2026-06-06 10:49:56 +08:00
mirivlad 48c0057d11 docs: recapture screenshots in xfce terminal 2026-06-06 10:31:52 +08:00
mirivlad 90c9f053d4 docs: align guide and screenshots 2026-06-06 03:35:24 +08:00
mirivlad f49a5b5a94 fix: store forward cli metadata 2026-06-06 03:28:21 +08:00
mirivlad 86e5bb5f0c feat: replace tui action stubs 2026-06-06 03:26:17 +08:00
mirivlad 7e0a00ff43 feat: add tunnel background cli management 2026-06-06 03:21:30 +08:00
mirivlad 6991eab3c0 fix: complete forwards and search behavior 2026-06-06 03:17:26 +08:00
mirivlad a750b85412 docs: plan partial feature completion 2026-06-06 03:13:21 +08:00
mirivlad 94e10171d2 sshkeeper: v0.2.0 stabilization — dual help screens, route icons, forward UX, tests, docs
- Split help into two modes: ? (quick hotkeys) and F1 (full documentation)
- Add visual route icons: ● direct, → via, ⇒ chain
- Forward type selector: visible radio items with descriptions
- Forward delete: confirmation dialog
- Forward list: column headers (NAME/TYPE/LISTEN/TARGET/ON)
- Footer hints on all screens show ? and F1
- Comprehensive SSH command builder tests (18 new tests)
- Fix duplicate test functions
- Update README.md: install from source as primary, fix tables, repo links
- Update docs/guide.md: split help section, fix tables, fix typos
- All tests pass, build succeeds
2026-06-05 18:19:38 +08:00
mirivlad 216af78d4d sshkeeper: add comprehensive user guide (docs/guide.md) 2026-06-05 15:42:27 +08:00
mirivlad 087d7ba0dc sshkeeper: fix 4 UX issues
1. Forward type selector: visible radio items (1.Local 2.Remote 3.SOCKS) with descriptions
2. Forward list: column header row (NAME/TYPE/LISTEN/TARGET/ON)
3. Forward delete: confirmation dialog before deletion
4. Server route column: → icon for via/chain, spaces for direct
2026-06-05 10:00:22 +08:00
mirivlad 6cf281c349 sshkeeper: complete port forwarding UX redesign
- Forward form: type selector (Local/Remote/SOCKS) with radio items
- Dynamic fields: listen addr/port, target addr/port based on type
- Default listen: 127.0.0.1, warning for 0.0.0.0
- Forward list: table view NAME/TYPE/LISTEN/TARGET/ENABLED
- Forward edit: Enter/Ctrl+E opens pre-filled edit form
- Human explanation and OpenSSH preview for selected forward
- Tunnel state manager: PID tracking, start/stop, state file
- Tunnel manager screen: list running tunnels, stop, refresh
- Action menu: Connect/Connect with tunnels/Start tunnels only/Start tunnels in background/Manage port forwards/Manage tunnels/Manage route/Test/Edit/Delete
- Help screen: updated shortcuts
- CLI: tunnel --background for detached tunnel process
- README: updated with forward vs tunnel examples, new hotkeys
2026-06-03 18:27:05 +08:00
mirivlad 4726a6874c sshkeeper: redesign port forwarding UX
- Forward model: add Name, Description, Enabled fields
- DB migration 003: add name/description/enabled columns to forwards
- Forward type: radio selector (Local/Remote/SOCKS) instead of free text
- Forward form: dynamic fields based on type, 127.0.0.1 default, 0.0.0.0 warning
- Forward list: table view with NAME/TYPE/LISTEN/TARGET/ENABLED columns
- Forward edit: Enter/Ctrl+E opens edit form
- Human explanation and OpenSSH preview for selected forward
- Tunnel state manager: PID tracking, start/stop, state file
- Tunnel manager screen: list running tunnels, stop, refresh
- Action menu: reworked with Connect/Connect with tunnels/Start tunnels only/Start tunnels in background/Manage port forwards/Manage tunnels/Manage route/Test/Edit/Delete
- Help screen: updated with all shortcuts
- CLI: tunnel --background for detached tunnel process
- Default listen address: 127.0.0.1 instead of 0.0.0.0
- Validation: type required, ports 1-65535, target required for local/remote
2026-06-03 18:15:31 +08:00
mirivlad 741e9a836d shkeeper: simplify action bar (Enter/Ctrl+X/Ctrl+A/Ctrl+E/Ctrl+F/Ins/?/Ctrl+Q), move rest to help screen 2026-06-03 16:08:22 +08:00
mirivlad fa9b07e3d5 sshkeeper: add build.sh and release.sh scripts 2026-06-03 15:09:32 +08:00
mirivlad 709a317939 sshkeeper: fix forward save flow (saveDoneMsg handling) + tests 2026-06-03 12:37:39 +08:00
mirivlad 77a84a487f sshkeeper: v0.2.0 stabilization (route display, forward validation, tunnel UX, README) 2026-06-03 11:23:02 +08:00
mirivlad 21444d3826 sshkeeper: fix migration - route_hops via ensureSchema() to avoid duplicate column error 2026-06-03 10:48:19 +08:00
mirivlad 87f0d90f7b sshkeeper: v0.2.0 — Phase 6: README update (not-Ansible, route/forward examples, hotkeys) 2026-06-03 10:40:56 +08:00
mirivlad 98492799ea sshkeeper: v0.2.0 — Phase 5: Search improvements (notes, tags, route, context) 2026-06-03 10:36:44 +08:00
mirivlad c2edaa4224 sshkeeper: v0.2.0 — Phase 4: CLI route/forward/tunnel commands 2026-06-03 10:32:18 +08:00
mirivlad 912b17e1f1 sshkeeper: v0.2.0 — Phase 3: Port Forwarding Manager (DB, TUI screens, SSH args) 2026-06-03 10:15:55 +08:00
mirivlad 700724e93b sshkeeper: v0.2.0 — Phase 2: Route / ProxyJump UX (model, migration, DB, SSH args, TUI) 2026-06-03 10:00:12 +08:00
mirivlad 446f55f740 sshkeeper: v0.2.0 — Phase 1: Cleaner TUI action model (action bar, help screen, action menu) 2026-06-03 09:33:53 +08:00
mirivlad 31f26164cc sshkeeper: v0.2.0 — Phase 0: TUI refactoring (extract form, template_form, help into separate files) 2026-06-03 09:26:50 +08:00
mirivlad b2d8ea959f Document release installation 2026-05-29 11:33:43 +08:00
mirivlad 01eae01408 Ignore release artifacts 2026-05-29 11:25:17 +08:00
mirivlad d66e103c73 Prepare public release docs 2026-05-29 10:52:03 +08:00
mirivlad c2b0e57f3a Add TUI tag and template management 2026-05-28 17:36:50 +08:00
mirivlad 0bd4463819 feat: add interactive server creation 2026-05-28 13:51:37 +08:00
mirivlad 4b996032a9 fix: improve vault and key passphrase flow 2026-05-28 13:38:53 +08:00
mirivlad 257ce79d42 fix: unlock legacy vault kdf files 2026-05-28 10:16:14 +08:00
mirivlad 0be1e93bb7 fix: keep server list usable with many servers 2026-05-28 10:03:26 +08:00
mirivlad e1d709396b feat: improve tui and vault handling 2026-05-28 02:25:18 +08:00
mirivlad 73c60b9f93 Fix: test with password, group management, vault progress
- Test in form now works with password before save (TestConnectionWithPassword)
- Groups: show existing groups in form hint, group rename/delete commands
- Vault: added progress indicators ('Unlocking vault...', 'Deriving key... done.')
- Separate template.go for command template commands
2026-05-26 17:48:13 +08:00
mirivlad d1bb216d82 Fix: universal hotkeys using Ctrl+combinations
- All hotkeys now use Ctrl+letter (Ctrl+A, Ctrl+E, Ctrl+D, Ctrl+T, Ctrl+F, Ctrl+Q)
- Works on ANY keyboard layout (EN, FR, DE, RU, etc.)
- Ctrl+letter generates same control character regardless of layout
- Updated help text and README

Rationale: Ctrl+A always produces byte 0x01 (SOH) regardless of whether
the physical key is QWERTY 'a', AZERTY 'a', or ЙЦУКЕН 'ф'. This is the
standard approach used by vim, tmux, ranger, etc.
2026-05-26 16:41:42 +08:00
mirivlad 3b509d5d2e Fix: layout-independent hotkeys, Argon2 memory reduction, README
- Hotkeys now work with both English and Russian keyboard layouts
- Argon2 memory reduced from 64MB to 4MB (faster key derivation)
- Added 'Deriving key...' progress indicator
- Help text color changed to cyan for better visibility
- Form navigation uses key types instead of strings
- README updated with layout-independent key info
2026-05-26 10:47:48 +08:00
mirivlad 883a1e66a7 Initial commit: sshkeeper v0.1.0
Console SSH connection manager for Linux.

Features:
- TUI (Bubble Tea) with server list, add/edit form, test/save
- CLI commands: add, list, show, edit, delete, connect, test, search, import, export, run, group, template, vault, ssh-config
- Encrypted vault (Argon2id + XChaCha20-Poly1305) for passwords
- PTY-wrapper for password auth
- SQLite (modernc, no CGO) for server profiles
- XDG-compatible paths
- OpenSSH config generation
- Import from ~/.ssh/config
2026-05-26 09:11:55 +08:00