Skip to content

Releases: grimdork/kush

Release list

v0.4.0

Choose a tag to compare

@Urethramancer Urethramancer released this 22 Mar 09:47

Changelog

  • eae2414 absolute-positioned deterministic candidate redraw; add TAB debug traces
  • 62ed18a add #!/usr/bin/env kush shebang
  • 757c8f1 add --install-scripts to copy bundled scripts to blessed dir, set shebang to exe and chmod+x
  • 05a7bc8 add --version/-v flag (version set via ldflags)
  • 0239957 add BSD/Darwin pty implementation (openpty via x/sys/unix)
  • 95de9e4 add KUSH_PROMPT token expansion, allowExternal toggle, Invalidate() and tests; doc in README_PROMPT.md
  • 2294eaf add basic tab completion (PATH, files, builtins, aliases) and editor cycling
  • eea547b add darwin cgo openpty wrapper (use system openpty)
  • daaf2e1 add deep-debug dumps for preview and candidate-block bytes (KUSH_KEYDEBUG=3)
  • 112f651 add export builtin and invalidate prompt provider on env changes; New(pp *prompt.Provider)
  • 4ef0c5d add linux RunShell + platform build tags; fix pty build constraints and unused imports
  • 3b54796 add linux build tag and use TCGETS/TCSETS for termios; dedupe restoreTermios
  • d873606 add parse_example.tengo demonstrating parseKeywords
  • 9534b35 anchor DECSTBM to live cursor row (CSI 6n) with short timeout; fallback to winsize
  • e90c827 atomic single-write for candidate rows + prompt to avoid terminal interleaving
  • 10a20a2 avoid newlines when moving cursor; add stderr TAB debug output
  • a481b84 clear-to-end-of-screen before redraw, flush per-row, add per-row debug indices
  • 2a2dd98 coloured highlight, in-place two-line rendering, ioctl terminal width for denser columns
  • 2c87d96 conservative render always write fixed two-line candidate block atomically; pad/clear lines
  • 3f20398 debug conservative candidate buffer dump when KUSH_KEYDEBUG=3
  • 81f2fc5 debug trailing-newline decision; conditional second-pass alias expansion to avoid duplicates
  • 600ec82 deterministic downward-first-tab + completion reuse + post-insert CSI + debug-timing probe
  • e39b0ca draw prompt before candidate area to avoid overlap; reorder redraws
  • 2c30959 enable cgo for mac build; fix Makefile tar paths and rm dist before goreleaser
  • 9a0b4c6 ensure cursor positioned inside prompt after candidate redraw
  • 92e6483 ensure prompt restored after candidate redraw; avoid prompt/candidates cursor races
  • 5b7e96d fix CSI nG off-by-one (position is 1-indexed); ensure cursor placed after prompt
  • c419e56 fix Tengo undefined checks (use undefined instead of nil)
  • 18fc451 fix deterministic in-place candidate rendering, ensure two lines overwrite and stable highlighting
  • 7e937da fix linux pty open and use TCGETS/TCSETS termios ioctls; remove unused import
  • 0e6fc47 import time for CSI 6n read timeout
  • 501ea9a improve help colours and formatting (cyan args/commands, bold white headings)
  • 070bf8d integrate completion.Complete and basic Tab cycling/printing
  • 28fcc6e merge README_PROMPT into README.md and remove temp file
  • d8cb5bf move RunShell into run_shell.go and keep linux helpers tagged; ensure openpty per-platform
  • 38abaed normalize Makefile tabs, ensure rm -rf dist before goreleaser
  • 8e22760 normalize pages, absolute prompt-end positioning, full-line clears, verbose TAB geometry debug, page indicator
  • b15cd9f pass prompt.Provider to builtins; builtins can invalidate prompt cache on export
  • 2c04e87 prefer /opt/homebrew/bin/kush shebang on macOS
  • 5db7435 provide RunShell in run_shell.go and platform helpers; ensure build across OSes
  • 8ff2a1a publish brew formula to grimdork/homebrew-tools via goreleaser
  • c4216dc remove duplicate pty_darwin (use unified pty_bsd implementation)
  • 57b83e2 remove duplicated writes in renderCandidates; single atomic write + final cursor move
  • 95d40cc remove legacy .goreleaser.yml and use macOS config as default
  • 80712bf render prompt inline inside renderCandidates to make redraw atomic
  • 8fee45f render prompt on dedicated line below candidates to avoid prompt pollution; avoid restoring cursor into candidate area
  • c3f882f restore columnized candidate rendering (build full row before writing) and add debug dump for conservative path
  • f62f46d restore saved cursor before restoring scroll region to avoid coordinate remap (DECSTBM trial)
  • da9e2ca retry-on-mismatch for DECSTBM anchoring (CSI 6n) with one-shot retry and fallback
  • ba51303 safer above-vs-below heuristic + plain-text preview + deterministic post-insert cursor positioning (debug gated)
  • 48734ea session-level disable for DECSTBM (conservative fallback render) + KUSH_DISABLE_DECSTBM env
  • 85442e2 session-level disable for DECSTBM (conservative fallback render) + KUSH_DISABLE_DECSTBM env (fix perLine)
  • 5d0b14d split goreleaser configs (linux CI + macOS local) and add Makefile + cask helper
  • 924540c stop publishing homebrew casks; publish formula only to tap
  • 203bf9d strip shebang lines and print help text cleanly (no Runtime Error prefix)
  • 47e0256 support #! kush shebang; show help text cleanly instead of fatal error
  • d158c73 trial DECSTBM scroll-region around candidate redraw to avoid scrolling when prompt at bottom
  • f14f990 trial DECSTBM scroll-region around candidate redraw to avoid scrolling when prompt at bottom (fix redeclare)
  • b608c6f trial DECSTBM scroll-region around candidate redraw; restore scroll region and cursor
  • fd1dede two-line paged completion UI with inverse-video highlight and Shift+Tab
  • df069c2 update TODO — mark scripting auto-registration and kush/http modules implemented
  • e2b8b1c use CSI G for absolute column moves (avoid relative C)
  • 4a4aa6f use climate/arg for flag parsing; New(name) variant
  • 2ba343a use climate/arg for flag parsing; replace flag package
  • 23a1e8e use repo root for go build (main.go at project root)
  • 6a0487f use save/restore cursor around candidate redraw; explicit final cursor move
  • 4ac9125 use unix.Openpty on BSDs only; darwin uses cgo wrapper
  • a1bce2c Add CHANGELOG.md with v0.1.0 entry
  • 95270a8 Add FreeBSD arm64 ztypes for PTY support
  • 5242bb9 Add FreeBSD support for PTY and termios (creack/pty implementation)
  • b221f70 Add GoReleaser config and GitHub Actions release workflow
  • 286da60 Add PTY-backed command runner, alias system, and line editor improvements
  • d7fdb97 Add Tengo scripting runtime with run and eval builtins
  • c3b6b0b Add commit-msg hook to enforce capitalised-verb commit messages
  • 42a0b84 Add env_get builtin to scripting engine
  • f9f24d4 Add example script demonstrating networking built-ins
  • 417d979 Add handy aliases: getenv/setenv/pr/checkport (plus port_check)
  • d6bc236 Add macOS arm64 Goreleaser workflow
  • 92324d0 Add native HTTP builtins: get, post, put, delete, head, fetch
  • 0355294 Add paeseArgs internal and more.
  • 50977bb Add pipeline/redirect support, parenthesised alias bypass, and documentation overhaul
  • 453f29c Add print (no newline), ping, and dig builtins for scripts
  • 80dd8e5 Add tests for base-N encoder/decoders and CI workflow
  • c2ec9d9 Added baseN and two variants of base64 functions.
  • fac61a5 Added support for quotes in export.
  • 4e1b397 Added this.
  • 30fc0ec CI: avoid running GoReleaser on PRs and limit linux-only builds to prevent FreeBSD cross-build...
Read more