Skip to content

Releases

Hokan 0.1.0

Choose a tag to compare

@backrunner backrunner released this 21 Oct 18:49

v0.1.0

Hokan 0.1.0 is the first stable release. It includes the command discovery
improvements from beta.17 and strengthens the boundaries between shell editing,
foreground programs, and local filesystem completion.

  • Filesystem completion now requires a known local-path argument. Package names,
    repository names, image names, expressions, and unknown command arguments no
    longer trigger directory scans merely because they contain / or ./.
    Known file arguments, redirections, and supported local installation paths
    retain completion. Native shell Tab remains available when no Hokan list is open.
  • Each prompt owns its completion tasks, AI results, pending Tab actions, and
    confirmations. Results from an earlier prompt cannot act on a later one, and
    foreground confirmation input stays with the running program.
  • Delayed terminal color replies are tracked across program exit, including
    fragmented headers, so recognized replies do not become shell input within
    the two-second grace period. Active programs still receive their replies.
  • Missing or misspelled paths offer explicit repairs and readable parent paths.
    Accepting a repair only fills the command; it never creates a directory or
    executes the corrected command.
  • Command-help probes use the interactive shell's PATH, including script
    interpreters and helpers. Cached help is refreshed when PATH or the executable
    changes.
  • Duplicate shell start notifications are handled without disrupting command
    history. Recoverable protocol diagnostics stay in opt-in debug logs.
  • Dependencies have been refreshed within the Rust 1.96 compatibility boundary.

发布后的默认更新渠道为 stable。已有 beta 用户可运行:

hokan upgrade --channel stable --yes

Restart Hokan after upgrading. Existing configuration and history are retained.
Unknown command arguments no longer receive speculative filesystem candidates;
define an explicit path argument contract when adding support for a new command.

macOS and Linux automated checks cover shell/PTY behavior, release-mode tests,
formatting, Clippy, packaging, and dependency policy. Terminal-application,
theme, remote-SSH, and hardware certification remains limited to the evidence in
the compatibility matrix.
Publishing a stable version does not mark pending combinations as certified.

Release assets include macOS and Linux archives for x86_64 and aarch64, SPDX
SBOMs, SHA-256 checksums, and an Ed25519 signature verified against the updater's
pinned public key.

v0.1.0-beta.17

v0.1.0-beta.17 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 30 Sep 06:47
5c74e2f

v0.1.0-beta.17

This beta improves command discovery across CLI help formats and adds a shared
regression corpus covering 15 applications, rather than special-casing AIPass.

  • Recommend documented commands even when their descriptions are empty. This
    fixes AIPass command groups and Codex MCP subcommands, among other CLIs.
  • Recognize single-space description columns, long command names, nested command
    categories, ANSI colors, and OSC hyperlinks. Deno, GitHub CLI, and Swift
    examples are included in the regression corpus.
  • Keep an indented usage command separate from the help's usage heading, and
    avoid treating category headings or description continuations as commands.
  • Merge complementary help probes. Cargo's --list discovers installed
    extensions omitted from its root help while preserving flags and aliases.
    Explicitly abbreviated command tables no longer reject undocumented commands
    in history as if the table were exhaustive.
  • Keep all discovered Python module recommendations instead of silently stopping
    at 500. An explicit completion.max_candidates limit still applies globally.
  • Allow background help probes up to 1200 ms for cold CLIs; completion queries
    continue without waiting for these subprocesses.

The shared fixtures cover 32 help samples and 785 expected recommendations from
AIPass, Cargo, rustup, uv, GitHub CLI, Docker CLI, Go, npm, pnpm, Bun, Deno,
Codex CLI, Claude Code, RTK, and Swift. This validates the documented samples;
undocumented commands and unrecognized help layouts can still require specs.
Real-terminal certification remains subject to the compatibility matrix.

本次 beta 改善通用 CLI 命令发现,覆盖空描述、单空格列、长名称、命令分组及彩色帮助,
并补齐 Cargo 已安装扩展命令,移除 Python 模块推荐的 500 项隐藏上限。
共享回归样本覆盖 15 个应用、32 份帮助输出和 785 项预期推荐;不扩大真实终端认证声明。

Update an existing beta installation with:

hokan upgrade --channel beta --yes

Restart Hokan after upgrading to use the new binary.

v0.1.0-beta.16

v0.1.0-beta.16 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 24 Sep 08:17
5fcea15

v0.1.0-beta.16

This beta expands completion lists, fixes cyclic navigation and selection
stability, and authenticates updates with signed release checksums. It also
includes the history and Zsh fixes prepared for beta.15, which was not published.

  • Completion lists have no candidate-count limit by default. PATH commands,
    command help, and history no longer stop at hidden 1000, 200, or 50-entry caps.
    Every applicable provider can finish and contribute incremental results.
  • Built-in command specifications are supplemented by help and man-page results.
    Typing an exact executable or subcommand still shows longer matching names;
    useful continuations of the exact command retain priority.
  • Arrow and page keys wrap through the full list. Initial Page Down selects the
    first page, and Page Up selects the last page. Selection remains on the same
    command when a later provider replaces a duplicate suggestion.
  • History navigation handles repeated keys while results load. Zsh clears stale
    inline suggestions after a completion is accepted.
  • The updater verifies an Ed25519 signature on SHA256SUMS before downloading
    the archive, then verifies its SHA256 before installation. Releases include
    SHA256SUMS.sig alongside all four platform archives and SPDX SBOMs.
  • Failed GitHub update requests can fall back to HTTPS relays. Set
    HOKAN_UPDATE_MIRRORS to customize relay templates, or set it to an empty
    string to disable them. All update sources use the same pinned signing key;
    --force cannot bypass verification or allow a downgrade.
  • Large completion, history, help-parser, and terminal-test files are split into
    smaller modules without changing their public interfaces.

Existing configurations with a positive completion.max_candidates keep that
limit. Set max_candidates = 0 under [completion] to show all matching results;
ui.max_rows continues to control only the visible list height.

Real-terminal certification remains subject to the
compatibility matrix.
This beta does not expand those certification claims.

Update an existing beta installation with:

hokan upgrade --channel beta --yes

Restart Hokan after upgrading to use the new binary. Older clients can upgrade
directly to this first signed release; this release cannot reinstall unsigned
historical releases.

Release validation

  • Native macOS: formatting, all-target checks, Clippy, debug and release tests, release build, Cargo audit, dependency policy, and source packaging passed. The release suite passed 952 tests with 3 intentionally ignored, including all 71 PTY tests.
  • Candidate CI: Linux and macOS tests, current stable Rust, and supply-chain checks passed.
  • Release workflow: all four platform builds and publication passed. Downloaded assets passed Ed25519 and SHA256 verification, archive-layout checks, and binary-to-SBOM checksum checks.
  • Published Apple Silicon macOS binary: version, doctor JSON, specification validation, and temporary Zsh/Bash/Fish install, backup, idempotence, setup alias, and uninstall checks passed.
  • Isolated beta.14-to-beta.16 upgrade, binary backup, signed reinstall, and an uncached automatic update check passed against the published release.
  • Physical-terminal certification remains limited to the compatibility matrix linked above.

v0.1.0-beta.14

v0.1.0-beta.14 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 21 Sep 16:34
51da669

v0.1.0-beta.14

This beta fixes background stripes left behind when closing or moving completion
overlays containing Chinese and other wide characters.

  • Overlay cleanup now explicitly clears every column occupied by a wide glyph,
    including its continuation cells, while preserving replacement shell text.
  • Directory errors appear in a compact notice with the cause and recovery
    guidance before the path. Long messages wrap within the notice, and normal
    completion returns when the path is corrected.
  • HTTP clients honor system proxy settings and support SOCKS proxies alongside
    the standard proxy environment variables.
  • Update checks explain GitHub API rate limits and the retry time instead of
    reporting a generic HTTP failure.

Real-terminal certification remains subject to the
compatibility matrix;
this beta does not expand those certification claims.

Existing beta users can update with:

hokan upgrade --channel beta --yes

Restart Hokan after upgrading to use the new binary.

v0.1.0-beta.13

v0.1.0-beta.13 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 Sep 20:13
9e29481

v0.1.0-beta.13

This beta reduces completion work during rapid typing and keeps the suggestion
list steadier while providers and shell redraws catch up.

  • Completion sources now share cumulative ranking work at approximately one
    frame per update. The first usable batch stays immediate, the final batch
    includes all collected candidates, and unread results are replaced by the
    newest batch. Suppressed queries cancel queued provider work.
  • Refreshing a visible list briefly coalesces partial results instead of
    repeatedly shrinking and expanding its rows. Empty intermediate batches
    preserve the visible list; only the final result closes an empty list.
    Existing buffer checks continue to reject stale candidate activation.
  • Closing an empty list also discards queued frames, preventing old rows from
    reappearing. Frames invalidated by intervening shell output are retried until
    committed, even when no further provider result arrives.
  • Shell output that can scroll the screen erases the overlay before forwarding
    those bytes, preventing suggestion cells from leaking into scrollback.
  • Git recommendations chosen from repository state retain their priority when
    generic command help finishes loading, keeping git init and git clone
    visible outside a repository.
  • Installation checks Nerd Font availability and installs the pinned,
    checksum-verified Symbols-Only fonts into the user font directory when local
    coverage is missing. Remote sessions keep font setup on the client terminal.
  • The TLS dependencies are updated to rustls 0.23.45 and rustls-webpki 0.103.15,
    addressing RUSTSEC-2026-0285.
  • Selecting a cd suggestion with Enter now changes directory immediately;
    Tab continues to insert it. This behavior is configurable.
  • Terminal titles follow the foreground program and return to the shell title
    when it exits, while preserving titles set by applications themselves.
  • Update checks continue during long-running sessions. Manual and automatic
    updates follow the installed binary's channel, ignore legacy channel pins,
    and leave the current installation unchanged when a channel has no releases.
  • Installation and upgrades validate writable directories, reject unsafe local
    files, serialize replacement, and preserve a backup of the previous binary.

In a local macOS release-mode benchmark with eight synthetic sources and 64
candidates per source, median completion pipeline time decreased from 2.73 ms
to 0.73 ms, and emitted batches per query decreased from eight to two. This
measures collection and ranking, not terminal transport or end-to-end input
latency. The repeatable benchmark is tests/completion_performance.rs.

Real-terminal certification remains subject to the
compatibility matrix; this beta does not expand those
certification claims.

Existing beta users can update with:

hokan upgrade --channel beta --yes

Automatic updates take effect on the next Hokan launch.

v0.1.0-beta.12

v0.1.0-beta.12 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 15 Sep 10:26
59aafb0

v0.1.0-beta.11

v0.1.0-beta.11 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 11 Sep 01:57
436c270

v0.1.0-beta.10

v0.1.0-beta.10 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 08 Sep 17:23
efb6947

v0.1.0-beta.10

This beta fixes recommendation and terminal interaction races, and repairs
self-updates against the actual release archives.

  • Keep dismissed suggestions closed until input changes or the list is reopened.
  • Preserve meaningful quoted, escaped, multiline, and Unicode whitespace in
    history and completion filtering.
  • Reuse substring-search state and avoid UTF-8 decoding for ASCII fuzzy
    queries when scanning large histories, while preserving Unicode matching.
  • Require confirmation when a known high-risk operation appears alongside
    syntax whose risk cannot be determined.
  • Reject stale cursor reports and restore terminal input modes correctly when
    a command is queued before the initial prompt.
  • Finish outstanding cursor queries before restoring terminal modes on exit,
    with a bounded wait for terminals that do not respond.
  • Make release archives readable by both existing updaters and the installer.
  • Stage updates beside the executable, serialize concurrent installs, preserve
    the original backup, and verify the exact reported program version.
  • Default new beta installations to the beta update channel, preserve explicit
    channel settings, respect automatic-update opt-outs, and throttle failed
    background retries as well as successful checks.
  • Publish releases only after all archives, checksums, and SBOMs are uploaded.
  • Fix flaky terminal fixtures and update the withdrawn chacha20 dependency.

Existing beta users whose configuration explicitly tracks stable can switch once:

hokan upgrade --channel beta --yes

Automatic updates run silently when a Hokan session starts, at most once per
configured interval (30 minutes by default). The next launch uses the updated
binary. Set [update].enabled = false or HOKAN_NO_AUTO_UPDATE=1 to disable them.

If an older updater cannot replace an installation whose cache is on a different
disk, rerun the beta installer documented in the README to obtain this fix.

v0.1.0-beta.9

v0.1.0-beta.9 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 23 Aug 11:50
edd1101

v0.1.0-beta.8

v0.1.0-beta.8 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 23 Aug 11:33
666134c