- Add auto_update_check config field (defaults to true)
- Load config before update check, skip if auto_update_check is false
- Add TTY check before interactive prompt (skip in non-TTY environments)
- Update config.example.yaml with new option documentation
- Upgrade go-version from 1.24 to 1.25 in build.yml (required by go-selfupdate v1.6.0)
- Add kctl-tui update command and interactive startup check to README.md
- Document new features in CHANGELOG.md
- Update Go version requirement to 1.25+ in README.md and CONTRIBUTING.md
- Add Phase 5 (Self-update) to PLAN.md roadmap
When starting kctl-tui without a subcommand, check GitHub Releases
for a newer version and prompt the user to update.
- Silent skip for dev builds and network errors
- Prompt: 'Update now? [y/N]'
- On 'y': apply update, then start TUI
- On 'N'/Enter: start TUI immediately
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.
This release adds --help and --version flags, updates dependencies,
improves documentation for Windows support, and refines CI pipelines.
- Add --help and --version flags to main binary
- Update GitHub Actions workflow to latest major versions
- Update Go dependencies to latest versions
- Fix SPEC.md and README.md for current codebase (Windows fully supported)
- Update PLAN.md with roadmap for v0.3.0 and v1.0
- Add release command automation
- SPEC.md: Windows is now a fully supported platform (not secondary)
- SPEC.md: Remove outdated 'manual pane handling' claim for Windows
- SPEC.md: Update non-functional requirements (Linux/macOS/Windows)
- README.md: Remove duplicate 'This downloads...' paragraph
- README.md: Use --namespace instead of -n in k9s examples
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.
- 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
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.
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.
- 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)
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.