Commit Graph

19 Commits (0a02f0fc603f140ee12f3e2ac8d09860649f8475)

Author SHA1 Message Date
mirivlad cc83802244 fix: register the forward add local-port flag
`sshkeeper forward add` could never succeed. RunE read --local-port and init()
marked it required, but the flag was never registered on forwardAddCmd. Cobra
ignores MarkFlagRequired for an unknown flag, and GetInt returns 0 for one, so
every invocation failed validation with "invalid local port 0: must be
1-65535". There was no argument combination that worked.

Register the flag so both the read and the required annotation bind to a real
option. README and the guide already documented --local-port, so the intent was
there from the start; only the registration was missing.

The existing tests missed this because they build a throwaway cobra.Command,
register the flags on it themselves, and pass it to forwardAddCmd.RunE — the
real command's flag set was never exercised. Add a test that parses argv into
forwardAddCmd's own flags, plus one pinning the required annotation. Both fail
against the unfixed command with "unknown flag: --local-port".

Present since c2edaa4, so v0.2.0 and v0.3.0 both ship it broken.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 18:46:08 +08:00
mirivlad 37c4fd34a9 fix: keep tui status and help context truthful 2026-08-14 03:20:42 +08:00
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 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 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 77a84a487f sshkeeper: v0.2.0 stabilization (route display, forward validation, tunnel UX, README) 2026-06-03 11:23:02 +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 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 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 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