Skip to content

v0.4.0

Latest

Choose a tag to compare

@Urethramancer Urethramancer released this 22 Mar 09:47
· 2 commits to main since this release

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 failures
  • 7d15aed CI: silence goreleaser deprecation and provide darwin no-cgo openpty stub for cross-builds
  • 3de78a6 CI: use simplified, YAML-safe workflow layout
  • ca9555f Change to use climate/arg's new signature.
  • bbcd447 Cleaned up goreleaser files.
  • fb5f607 Corrected usage of arg.
  • a833080 Enable cross-builds for Linux, macOS and FreeBSD in goreleaser config
  • 0a1329a Enabled CGO.
  • f86ff59 Expose short script builtins only: getenv/setenv/pr/checkport; update help and examples
  • f0f2a23 Exposed split internal.
  • c6bd8fe Fix SIGWINCH propagation to child PTY processes
  • 6685504 Fix checkport alias implementation (avoid script internals)
  • 0199f81 Fix goreleaser action: use --clean flag (replace deprecated --rm-dist)
  • 344221f Fixed countless problems.
  • f64af0d Format Go files and stage fixes
  • 8d21869 Free Ctrl+H (0x08) for history viewer
  • c3563bf Implement local BSD PTY: posix_openpt-based openpty, ioctl helpers and AMD64 FreeBSD types (remove external creack/pty).
  • bc54e1d Improve history viewer: add colours, fix escape handling, add delete
  • 8ed6dc9 Improvements: - Better tests - Reproducible build
  • 8cab477 Isolated shellSplit().
  • 2162d70 Map GORELEASER_TOKEN -> GITHUB_TOKEN for macOS goreleaser job
  • 6fc3bff Merge GoReleaser configs and centralize builds; make macOS job skip publish
  • 4a07938 Merge branch 'fix/render-order': ed: retry-on-mismatch for DECSTBM anchoring
  • 1e0e1d9 Merged goreleaser stuff.
  • 8cef7d8 Modularise builtins with init()-based handler registration
  • 400e70e Module update.
  • 0c2c0ef Refactor and update due to bug.
  • 64a570f Refactored registering script functions.
  • 3b6d3b1 Refactored.
  • 2f14728 Remove redundant GoReleaser Linux config (merged into .goreleaser.yml)
  • 9a19928 Remove underscored script names; expose checkport, getenv, setenv, httpget, httppost
  • 1450ac3 Removed pty package.
  • 09e67bf Rename lineeditor->ed and package to ed
  • 51928ce Repo init.
  • 43b9d95 Return IPv4 addresses first in dig() for deterministic output
  • cd745b4 Return structured object from dig() with ipv4/ipv6 helpers (first/all)
  • 6de9d70 Rewrite tab completion rendering and fix cursor positioning
  • 08a5d96 Run the release publisher on macOS runner to allow CGO-enabled darwin builds
  • ce71710 Simplify workflow: remove cache step to fix YAML syntax
  • 518149a Update TODO with phased roadmap and mark completed items
  • 723c672 Update example to use underscore-free script names: httpget/httppost/checkport
  • 5c06ce2 Update goreleaser config for macOS arm64 build
  • 77031c8 Update network example to use new dig() structure and ping semantics
  • 1a6b60d Updated for goreleaser artifacts.
  • 678082c Updated format.
  • 483eac6 Upload macOS artifacts to release after build; poll for release by tag
  • 9cd3931 Use later version of climate.
  • f7aa2b0 Wire scripting and HTTP into shell startup, update help text