Releases: VoxDroid/krnr
v1.2.9
v1.2.9 - 2026-02-20
This patch corrects a TUI/status reporting inaccuracy: previously a system directory appearing on PATH could cause krnr status (and the TUI) to report on PATH: true for a system install even when the krnr binary was not present in that directory.
Fix: krnr status now only reports on PATH:true when the krnr binary is actually present at the expected user/system location (or when exec.LookPath resolves the executable). The change prevents false-positive status messages in the TUI and CLI.
No DB or CLI-breaking changes. Users should upgrade to v1.2.9 to get more accurate installer/status diagnostics.
v1.2.8
v1.2.8 - 2026-02-20
This patch improves installer robustness when the installer is executed under sudo but a per-user install is requested. It ensures recorded metadata and installed files are visible and removable by the original invoking user.
Bug fixes
Correct metadata ownership for sudo→user installs
When krnr install runs under sudo and the user chooses a user install, metadata and PATH modifications were sometimes recorded under root and not visible to the invoking user.
Fix: the installer writes a copy of the install metadata into the original user's ~/.krnr (when SUDO_USER is set) and ensures the metadata file and related directories are owned by that user. This allows krnr status and krnr uninstall to work when run later as the normal user.
Ensure installed binary ownership and uninstallability
Binaries installed by root into a user's directory are now chowned to the target user so subsequent non-root krnr uninstall works as expected.
Status & reinstall fixes
krnr status now respects recorded AddedToPath so it reports on PATH: true immediately after add-to-PATH installs. Reinstall-after-uninstall under sudo no longer leaves stale or unreadable metadata.
Tests & docs
- Added unit tests for SUDO_USER install/uninstall/reinstall and metadata-based status inference.
- Documented sudo→user installer behavior in
docs/install.md.
Upgrade notes
No DB or CLI-breaking changes. Upgrade to v1.2.8 to receive installer fixes.
v1.2.7
v1.2.7 - 2026-02-19
This patch prevents passwords from being visible when running interactive commands (for example sudo) via krnr or the TUI by disabling local echo on the host terminal while a PTY-backed child is running.
Bug fixes
Hide password input during interactive runs
Interactive programs (such as sudo) already read from the child's PTY, but the host terminal could locally echo typed keystrokes — which made passwords visible to observers of the host terminal.
Fix: temporarily disable the host terminal's ECHO flag while the PTY-backed child runs and restore the previous terminal state afterwards. The change only toggles local echo (preserves output post-processing) to avoid affecting child output rendering.
Tests & docs
- Unit tests added to validate host-terminal echo toggling in PTY scenarios.
- Documentation updated to mention the behavior in
docs/executor.mdanddocs/tui.md.
Upgrade notes
No DB or user-facing CLI changes required — upgrade to v1.2.7 to get the fix.
v1.2.6
v1.2.6 - 2026-02-17
This patch fixes a rollback bug that created duplicate version entries, eliminates flaky test failures, and adds Windows cross-compilation support.
Bug fixes
Rollback duplicate version entries
Rolling back to a previous version was creating two new version records (an "update" + a "rollback") instead of just one. Now only a single "rollback" version entry is created.
Version preview not updating after a run
After running a command, stale run logs were overriding the left panel — pressing Enter on a version appeared to do nothing, and switching panes didn't update the preview. Run logs are now cleared on pane navigation so version previews and the original detail display correctly.
Flaky test failures
Fixed intermittent "database is locked" errors when running go test ./... — test packages now use isolated temporary databases instead of sharing a single file.
Portability
Windows cross-compilation
Unix-only PTY code has been split into build-tagged platform files (pty_unix.go, pty_windows.go), so GOOS=windows builds succeed.
Upgrade notes
No DB schema changes. Existing version history is unaffected — the fix only prevents future duplicate entries during rollback.
v1.2.5
v1.2.5 - 2026-02-17
This patch delivers full interactive command support in the TUI and fixes several output rendering issues.
What's new
Hybrid PTY for interactive commands
The TUI now uses a hybrid PTY approach: stdin and the controlling terminal use a PTY (so sudo, pacman, and other programs that read from /dev/tty work), while stdout/stderr remain as pipes (so programs like fastfetch produce clean, viewport-friendly output). Prompts appear inside the run output panel, not in the bottom bar.
Live output streaming
Command output now streams live into the viewport immediately — no keypress required to see results.
Bug fixes
- Fixed doubled output when stdout and stderr are the same writer in PTY mode
- Fixed UI border corruption from escape sequences split across read boundaries
- Fixed
nil pointer dereferencepanic when PTY starter returned nil buffers - Fixed truncated output for
fastfetchand similar programs (buffer size 256→4096, EOF flush) - Improved CSI sanitizer: cursor-forward → spaces, cursor-horizontal-absolute → separator, SGR colors preserved
- Fixed command list appearing empty on launch until a resize or keypress (
Init()now returns a proper message forUpdate()to process) - Fixed run output not visible when command has version history (versions-panel rendering was overwriting the viewport)
- Fixed inability to scroll run output after a run completes (auto-scroll now only active during run)
- Enter on versions panel now loads the selected version's detail into the left preview pane
Quality
gocyclo(>10) added to pre-commit; complex functions refactored- All
golangci-lintandgocyclochecks pass - New tests: escape splitting, EOF flush, fd-reader, PTY simulation, sanitizer, headless viewport prompt
New features
- Delete version (D): Press
Don a highlighted version in the versions panel to delete that specific version record (with y/N confirmation) - Enter on versions: Press Enter to view the full version detail in the left preview pane
Upgrade notes
No DB schema changes. Simply upgrade to v1.2.5 and interactive commands in the TUI will work automatically when running in a real terminal.
v1.2.4
v1.2.4 - 2026-02-04
- Bugfix: Prevent UI deformation when running commands that emit terminal control sequences (alternate-screen, clear-screen, cursor movements, OSC sequences). The TUI now sanitizes run output and preserves SGR color codes while removing destructive sequences.
- Tests: Add
TestRunStreamsSanitizesControlSequencesand sanitizer unit tests to prevent regressions. - Quality: Addressed gocyclo and golangci-lint items; no remaining high-complexity functions and no linter errors.
Upgrade notes: This is a backwards-compatible UI fix; no DB or CLI changes.
v1.2.3
v1.2.3 - 2026-02-03
- Bugfix: Fix spacebar behavior in the TUI. Some terminals produce a
KeySpaceevent which previously was ignored; the TUI now treats it as a typed space in both the editor and list filter, restoring expected typing behavior. - Tests: Add headless UI tests to cover
KeySpacein filter and editor flows. - Quality: Ran
gocycloandgolangci-lint— no actionable issues found.
Upgrade note: This is a backward-compatible TUI fix; no DB or CLI-breaking changes.
v1.2.2
v1.2.2 — 2026-01-17
Patch release focusing on a robustness fix for the save command.
What’s changed
- Preserve comma-containing commands passed via a single
-cflag (PowerShellSelect-Objectusage). A single quoted-cwill now be stored as a single command and is no longer split on commas. - Internal: switched the repeatable command flag to
StringArrayto avoid unintended splitting and added tests to cover the behavior.
Upgrade notes
- No DB schema changes are required.
- When using Windows shells, prefer quoting
-cvalues fully (e.g.,-c 'Get-ComputerInfo | Select-Object OsName, OsVersion, OsArchitecture') to avoid shell-level tokenization issues.
Thanks to contributors and maintainers for quick turnaround on this fix.
v1.2.1
v1.2.1 — 2026-01-17
This patch release fixes Windows quoting and CLI save robustness issues:
krnr save: improved handling when shells split quoted arguments — joins or merges leftover tokens into a single command and heuristically re-quotesfindstr /C:"..."patterns when appropriate.- Executor (Windows): directly handles simple
<left> | findstr ...pipelines by executing the left command and piping its stdout intofindstr(avoidscmd.exequoting pitfalls). - Includes unit tests for both save and findstr pipeline scenarios, adds robust shell-token splitting (via
github.com/kballard/go-shellquote), and cleans up linter/complexity issues.
Upgrade guidance: Simply upgrade to v1.2.1; no DB schema changes are required. If you rely heavily on complex Windows shell invocations, prefer quoting -c values fully or using a command file for maximum stability.
v1.2.0
v1.2.0 — Initial TUI release
This release introduces the initial Terminal UI (krnr tui) as an interactive entrypoint that complements the CLI without replacing it. The TUI delegates to existing internal packages (registry, executor, importer, exporter) so automation and scripting continue to use the CLI while users can interactively browse and run workflows.
Highlights
krnr tui(v1.2.0) — initial release: browse, preview, full-screen detail, run with parameter prompting and streaming logs, save/edit flows, import/export helpers, history viewing and rollback, installer views, andstatusdiagnostics.- Tests: headless UI unit tests and a PTY E2E test were added.
- Docs:
docs/cli.md,docs/releases/v1.2.0.md, andkrnr_docs/TUI_MILESTONE.mdupdated to document usage and testing guidance.
See CHANGELOG.md for full details.