Commit Graph
31 Commits
Author SHA1 Message Date
stefankoelle d743422d28 feat: add self-update command
Add 'kctl-tui update' subcommand that checks GitHub Releases for
new versions and replaces the running binary.

Uses github.com/creativeprojects/go-selfupdate for safe binary
replacement with automatic OS/arch detection.

Supports --verbose flag for detailed update progress logging.
2026-08-22 09:25:28 +02:00
stefankoelle d8d656504c --help and --version update 2026-08-11 12:31:39 +02:00
stefankoelle 7db58b6fe8 Disable Bubbles list filter to prevent stuck filter state
The / filter in the list component captured keystrokes after returning
from tmux, showing random text like 'cc' and blocking cursor navigation.
Filtering is not needed for the 3-level context/team/namespace flow.
2026-08-09 22:07:49 +02:00
stefankoelle 201168e8cd Fix k9s on Windows: --namespace, --command pods
- -n flag not supported on Windows k9s, use --namespace instead
- Start k9s directly in pods view with --command pods
2026-08-09 21:57:24 +02:00
stefankoelle ffbf4341fa Remove debug output from TUI, use verbose-only logging for tmux setup
- Debug fmt.Fprintf calls were always visible in TUI
- Added VerboseLog() to kubeexec package for use by full.go
- All tmux debug output now only shows with --verbose flag
2026-08-09 21:46:25 +02:00
stefankoelle 37be0707ad Fix Windows: run tmux setup commands individually, attach via ExecProcess
psmux on Windows doesn't handle ; separators when args are passed
individually via exec.Command. Instead of chaining commands with ;,
run each setup command (new-session, set-option, split-window, etc.)
as individual exec.Command calls. Only tmux attach uses ExecProcess
so it properly takes over the terminal.
2026-08-09 21:34:46 +02:00
stefankoelle 9e6acdedc2 Fix Windows: use cmd.exe /c for tmux command chain
psmux on Windows doesn't handle ; separators when args are passed
individually via exec.Command. On Windows, build the full tmux
command string and run it through cmd.exe /c instead.
2026-08-09 21:27:37 +02:00
stefankoelle 07662dc9b7 Add debug logging to startTmuxSession for Windows troubleshooting 2026-08-09 21:20:27 +02:00
stefankoelle 38b28f64fb Fix: no-args should start TUI, not print help
The condition showHelp||len(filtered)==0 caused the tool to always
print usage and exit. Now only --help triggers usage+exit.
2026-08-09 21:00:45 +02:00
stefankoelle 6a749811c7 LICENSE 2026-08-09 20:59:04 +02:00
stefankoelle 313dffcbbf Fix Windows: remove -- separator (psmux incompatible), add unknown command error
- Remove -- separator from tmux args (psmux on Windows doesn't support it)
- Unknown subcommands now show error + usage (exit 1) instead of starting TUI
- --help now always shows usage and exits (no fallthrough to TUI)
2026-08-09 20:56:39 +02:00
stefankoelle 8546ac9bf2 Fix: kill stale tmux session as separate command, not in chain
tmux aborts the entire command chain when kill-session fails (no
existing session). This caused 'no current target' error on Linux.

The kill-session is now a separate exec.Command() call before
starting the tmux chain, ignoring any error.
2026-08-09 20:45:44 +02:00
stefankoelle 4c0650c43b Fix tmux: add -- separator for shell commands, kill stale sessions 2026-08-09 20:33:07 +02:00
stefankoelle e36ac3568f Add --help, use os.Executable() for panel path, improve usage text 2026-08-09 20:29:55 +02:00
stefankoelle 697017e496 Add kctl-tui doctor command for health checks 2026-08-09 20:26:55 +02:00
stefankoelle e48bd790bd fix: move tool checks before tea.ExecProcess to fix namespace selection 2026-08-09 19:38:21 +02:00
stefankoelle 6795ee1f4f fix: tmux exec type mismatch, add --version flag, add config check command 2026-08-09 19:30:14 +02:00
stefankoelle edc02d48d4 Phase 2 hardening: binary secret handling, tool checks, input validation, verbose flag, diff scroll 2026-08-09 19:23:37 +02:00
stefankoelle 2c8e8016ff fix: config error handling, stderr separation, single-env pane, namespace sort 2026-08-09 19:12:19 +02:00
Stefan Koelle 4bb3507aec Use separate templates for AWS secret ID and Kubernetes secret name 2026-08-09 14:39:32 +02:00
Stefan Koelle 75e0b832a2 fix: compute Kubernetes secret name from secret_name_template too, no more manual prompt 2026-08-09 14:31:24 +02:00
Stefan Koelle ff898f727a Redesign panel: env-first menu (quit/beta/prod, each with secrets sync + redeploy), templated AWS secret ID instead of listing/region input 2026-08-09 14:05:33 +02:00
Stefan Koelle f7606011bb Redesign full-mode navigation: start at team selection with default context, resolve k9s panes from config envs instead of context-pairs 2026-08-09 14:02:55 +02:00
Stefan Koelle 79c861682b Add AWS auth check before secrets workflow, with interactive SSO login prompt on expired session 2026-08-09 12:40:02 +02:00
Stefan Koelle 9daba2a3f0 fix: show a visible error screen instead of silently swallowing errors on resetToMenu 2026-08-09 12:31:43 +02:00
Stefan Koelle e57d58aecc Redesign secrets workflow: pick AWS secret from a list, diff all fields at once, offer force-sync for the whole secret 2026-08-09 12:14:01 +02:00
Stefan Koelle b7d553c966 Add ListAWSSecrets and GetSecretAllFields for the redesigned secrets diff flow 2026-08-09 12:10:59 +02:00
Stefan Koelle 26b5754f60 fix: use even-vertical tmux layout and remain-on-exit so panes stack correctly and errors stay visible 2026-08-09 12:01:50 +02:00
Stefan Koelle c9ec4a1a77 Add panel mode (redeploy + secrets diff/force-sync wizard) 2026-08-09 11:23:30 +02:00
Stefan Koelle 19a7ba2d8b Add full mode navigation (Bubble Tea) and tmux 3-pane orchestration 2026-08-09 11:22:48 +02:00
Stefan Koelle 96ec9d2e1a Add internal/kubeexec wrapper and cmd/kctl-tui entrypoint (main, full mode) 2026-08-09 11:22:15 +02:00