Skip to content

Releases: tfcace/hash

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 20 Jun 15:56
045f61f

0.7.0 (2026-06-20)

Features

  • onboarding: agent-aware first-run welcome (#67) (0de0b46)

v0.6.1

Choose a tag to compare

@github-actions github-actions released this 17 Jun 11:43
c58b18e

0.6.1 (2026-06-17)

Dependencies

  • bump charm.land/lipgloss/v2 from 2.0.0 to 2.0.4 (#61) (87404d8)
  • bump github.com/mattn/go-sqlite3 from 1.14.32 to 1.14.45 (#64) (3c78ed8)
  • bump github.com/pelletier/go-toml/v2 from 2.2.4 to 2.4.0 (#63) (e2ac17f)
  • bump golang.org/x/term from 0.41.0 to 0.44.0 (#62) (a30840a)

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 12 Jun 10:52
478739c

0.6.0 (2026-06-12)

Features

  • turn-by-turn agent conversations, model selection, and zsh dialect (#59) (5d41fec)

v0.5.1

Choose a tag to compare

@github-actions github-actions released this 05 Jun 06:35
8a013bc

0.5.1 (2026-06-05)

Bug Fixes

  • completion: stabilize autocomplete interactions (#57) (0ab97a4)

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 26 May 10:16
d624ceb

Hash 0.5.0 Release Notes

Hash 0.5.0 is the tool-calling release. This release moves Hash from an agent-assisted shell that suggests commands toward an agent-assisted shell that can mediate tool execution with explicit user permission.

Headline: Agent Tool Calls

Hash now supports ACP agent tool permission requests.

When an ACP agent wants to run a tool, Hash receives the permission request, renders a terminal-native prompt, waits for the user's decision, and sends the result back to the agent. This makes tool use part of the shell workflow instead of a separate agent UI.

Permission prompts support three decisions:

Key Decision Effect
y Allow once Approves this one tool request.
n / Esc Deny Rejects this tool request.
a Always allow Approves this exact command and stores it in the configured allowlist scope.

Always-allowed commands are exact command matches. Allowing git status does
not also allow git status --short or git.

Approval Scopes

Tool approval persistence is controlled by:

[agent]
allowed_commands_scope = "project"

Supported scopes:

Scope Storage Behavior
project ~/.config/hash/project_allowlists/<project-hash>.json Default. Persists approvals per project directory, outside the worktree.
global ~/.config/hash/allowed_commands.json Persists approvals across all projects.
session Memory only Clears approvals when the shell exits.

Project-scoped approvals reload when the working directory changes. This keeps approval decisions isolated between projects while still allowing commands to be remembered inside a project.

Permission UI and Streaming

Agent output is now coordinated through a shared output path so streaming text, permission prompts, confirmation hints, and cancellation cleanup do not write over each other.

This release includes:

  • Permission prompt rendering with optional tool-name context.
  • Stream buffering while a permission prompt is active.
  • Prompt cleanup after allow/deny decisions.
  • Cancellation cleanup for visible permission prompts.
  • Race coverage for concurrent agent-output operations.

Agent and ACP Reliability

0.5.0 hardens the ACP transport around real shell usage:

  • Bidirectional ACP request handling for session/request_permission.
  • Tool call ID and tool-name extraction from ACP request payloads.
  • Permission requests are serialized so prompts do not overlap.
  • ACP timeout handling avoids firing while Hash is waiting on a local permission decision.
  • ACP reconnect behavior is hardened after broken pipes, cancellation, and startup failures.
  • Plain explanatory agent responses are filtered before command confirmation to reduce accidental command classification.
  • Bare ?? after a failed command can use the last error as context.

Agent Configuration

Hash now supports named agent profiles.

Flat config still works:

[agent]
transport = "stdio"
command = "claude-code-acp"

Named agents can be selected with [agent].default:

[agent]
default = "ollama"
timeout = "120s"
allowed_commands_scope = "project"

[agent.claude]
transport = "stdio"
command = "claude-code-acp"

[agent.gemini]
transport = "stdio"
command = "gemini"
args = ["--experimental-acp"]

[agent.ollama]
transport = "http"
url = "http://localhost:11434/api/generate"
model = "codellama:13b"
headers = { Authorization = "Bearer token" }

The HTTP transport uses an Ollama-style /api/generate request and response
shape. It is not generic OpenAI-compatible API support in 0.5.0.

Daily-Driver Polish

0.5.0 also includes a broad set of shell quality improvements.

Migration and startup

  • First-run migration asks before loading detected shell settings.
  • hash migrate can still import detected bash/zsh settings with compatibility filtering.
  • hash migrate status reports imported and skipped items.
  • Generated migration comments no longer mention the removed hash migrate generate command.
  • Startup tips are shown once and remain available via tips.

History

  • Builtin commands and agent prompts are recorded in history.
  • History can be disabled with history.enabled = false.
  • The history database path can be configured with history.path.
  • Ctrl+R search handles space input and avoids terminal response leakage.

Completion

  • VCS-aware git/jj branch and revision completion.
  • Semantic completions for common tools including SSH, kill, make, man, npm, pip, and brew.
  • Directory-only completion for commands such as cd, pushd, popd, and rmdir.
  • Better shell-word escaping for completed file paths.
  • Completion behavior around drill-down directories and single matches is more predictable.

Editing and prompt behavior

  • Fish-style inline history suggestions.
  • Shift+Arrow text selection in insert mode.
  • Improved shell-token word movement and deletion.
  • Prompt and Starship subprocess work is reduced.
  • Rendering fixes for wrapping, cursor placement, and terminal escape leakage.

Integrations

  • setup-zoxide configures zoxide integration from Hash.
  • chpwd hooks can run commands after directory changes.
  • Zoxide, direnv, fzf, and Starship documentation has been updated.

Pipeline and PTY fixes

  • Pipeline producers no longer run behind a PTY when stdout is a pipe.
  • This fixes commands such as git branch | grep <branch> hanging because the
    upstream command incorrectly believed it was writing to a terminal.
  • PTY output handling and command cancellation paths are more robust.

Behavior Changes

  • First-run migration no longer auto-loads detected shell files.
  • hash migrate generate is not included in 0.5.0.
  • HTTP agents are Ollama-style, not generic OpenAI-compatible endpoints.
  • History retention fields are reserved but not enforced in 0.5.x.
  • Tool approvals are exact-command approvals; prefixes and substrings do not match.

Known Limitations

  • Tool calling depends on ACP agent support.
  • HTTP agents do not get the same ACP session and tool-permission behavior.
  • Tool approval persistence stores exact command strings, not parsed command policies.
  • History retention settings are documented as reserved but are not enforced.
  • Hash remains pre-1.0 and may still make breaking changes.

v0.4.3

Choose a tag to compare

@github-actions github-actions released this 31 Jan 21:28
b7b5eee

0.4.3 (2026-01-31)

Bug Fixes

  • agent: broken pipe on context cancelation (0bcef00)
  • lint errors (gofmt, gosec, staticcheck) (9b39a3d)
  • resource leaks and resilience improvements (b32e0fe)

v0.4.2

Choose a tag to compare

@github-actions github-actions released this 31 Jan 17:49
b884301

0.4.2 (2026-01-31)

Bug Fixes

  • race condition in spinner (ed5608d)

v0.4.1

Choose a tag to compare

@github-actions github-actions released this 29 Jan 20:21
5f61bfd

0.4.1 (2026-01-29)

Bug Fixes

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 29 Jan 19:40
f16e607

0.4.0 (2026-01-29)

Features

  • add bash/zsh migration system with compatibility layer (8474089)
  • alias/function tab-completion (ec68874)
  • completion: mask sensitive env var values in completion preview (09d2d88)

Bug Fixes

  • add environment variable tab-completion with value preview (f07c236)
  • copy agent response to system clipboard with feedback (9110225)
  • disable ONLCR on PTY when stdout is a pipe (8b7fc9c)
  • handle agent startup failures gracefully (67959bd)
  • improved handling of complex aliases when migrating from zsh (#12) (43ec193)
  • preserve cursor position when rendering completion menu (fa7f0f3)
  • use graceful degradation for source/eval compatibility (7101c49)

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 26 Jan 10:49
75c6ce7

0.3.0 (2026-01-26)

Features