Skip to content

v0.4.0

Latest

Choose a tag to compare

@github-actions github-actions released this 17 Oct 12:18
· 10 commits to main since this release
0445629

Highlights

Hetki v0.4.0 adds pane-level navigation, previews, automatic status collection, safer workspace saves, and clearer CLI diagnostics.

Picker and navigation

  • Browse individual panes with aligned paths, foreground commands, and status indicators, including panes that share a directory.
  • Switch between flat and session/window tree views with Ctrl+T. Switch between All and Tracked scopes with Tab.
  • Tracked scope shows status-tracked panes, not workspace ownership. View and scope changes retain the search query.
  • Toggle an on-demand pane preview with Alt+P. Previews show the visible screen, without scrollback.
  • Jump to the previous session with Ctrl+O. The ↶ marker identifies its destination.
  • Hide redundant default-shell labels and show the active pane's command in tree windows.
  • Reuse loaded state during view changes, retain status indicators, and reduce redundant queries and rendering work.

Automatic pane status

  • Share cached status through an automatically started daemon for each tmux server.
  • Support OSC7501 application reports, OSC133 shell lifecycle tracking, and optional screen profiles.
  • Distinguish working, needs-input, idle, unknown, success, and failure states when the available evidence supports them.
  • Add bounded status delivery and recovery after daemon failures. Recovery cannot reconstruct reports lost during an outage.
  • Include an optional Kiro screen profile. Profiles require configuration and do not provide generic command-completion detection.

Workspace safety

  • Preserve authored startup commands when an existing workspace matches live panes unambiguously. Ambiguous preservation fails before replacing the file.
  • Preserve pane zoom and save readable layout presets. Presets approximate custom arrangements rather than preserve exact proportions.
  • Compare supported legacy and tmux JSON layout observations by geometry, without runtime pane IDs causing false mismatches.
  • Create replacement windows before deleting old windows during force reconciliation, preserving the existing session. See #13.
  • Keep an already-matching --dry-run read-only, without metadata changes or navigation.
  • Preserve literal startup-command text, including trailing semicolons and backslashes.
  • Resolve directory inheritance consistently and improve explicit-file validation.

Updates and diagnostics

  • Add hetki update --head for the latest pushed main commit. Hetki pins and verifies the commit before building.
  • Show errors and actionable hints on separate lines, with terminal-safe text.
  • Keep expected interruption quiet without hiding independent failures.
  • Build with Go 1.27.2, which fixes the standard-library vulnerabilities reported by the security scan.

Breaking changes and migration

Select workspaces explicitly

start and save now require exactly one --name (-n) or --path (-p). Positional selectors and automatic local-workspace discovery are removed.

# Named workspace in ~/.config/hetki/workspaces
hetki start -n work
hetki save -n work

# Explicit YAML file
hetki start -p ./work.yaml
hetki save -p ./work.yaml

Replace hetki start work with hetki start -n work.
Replace targetless local starts with hetki start -p ./.hetki.yaml.
Replace hetki save . with hetki save -p ./.hetki.yaml.
Use the actual .yaml or .yml filename for your workspace.

Review paths and shortcuts

  • Relative window paths resolve against the session root. Relative pane paths resolve against the effective window directory. Omitted paths inherit their parent directory.
  • Explicit session roots must resolve to existing absolute directories. Use absolute paths where you need to retain another location.
  • The picker starts in filter mode. Press Esc for normal mode, then ; for jump mode.
  • In normal mode, A creates a session and Ctrl+R refreshes. R/X rename/delete sessions, while r/x target windows.
  • The hetki switch command is removed. Use the picker or tmux's switch-client/attach-session commands.

Update source installations

The Go module path is now github.com/MuhametSmaili/hetki. Source builds require Go 1.27.2 or newer.

go install github.com/MuhametSmaili/hetki@v0.4.0

The updater no longer accepts --source or --pre. Release selection is stable-only. --head selects unreleased main code, not a stable source release.

If an older updater fails after the rename, use the new module path or the release binaries below.

Known limitations

  • Mise-managed installations still require mise-managed updates. Mise-aware hetki update support is separate future work.
  • Force reconciliation is not transactional. Deleting a linked window can affect unrelated sessions. See #12.
  • Named-layout changes alone are not yet enforced on existing windows. Raw JSON layouts remain unsupported as authored manifest input.
  • Upstream tmux 3.4 can crash when deleting zoomed windows. This release avoids that crash in test teardown, not in tmux itself.

Downloads

The release provides binaries for macOS and Linux on amd64 and arm64, plus SHA-256 checksums and GitHub build attestations.

Full changelog: v0.3.0 → v0.4.0