Skip to content

Releases: aceitw/herdr

Release list

v0.7.5

Choose a tag to compare

@github-actions github-actions released this 30 Jul 11:35

Breaking Changes

  • Installed and linked plugins, including their enabled state, are now global to the current user instead of isolated by Herdr session. Plugins installed only in a named session on Herdr 0.7.3 must be installed or linked again. (herdrdev#1174)

Added

  • Added a live-agent CLI facade with named start, atomic prompt, logical send-keys, and server-owned wait workflows. Agent startup targets an existing pane without changing topology, validates the requested interactive agent kind and strict agent name, and accepts native arguments after --.
  • Added transient declarative Agent view queries through agent.view.set/clear; filtered and sorted views now define sidebar, mobile, mouse, and agent-keybind navigation order.
  • Added one-shot plugin [[startup]] hooks for restoring plugin-owned state after server startup and live handoff.
  • Added per-token foreground, bold, and dim styling to expanded Space and Agent sidebar row layouts.
  • Added ui.sidebar_start_collapsed to launch Herdr with the sidebar collapsed. (herdrdev#1463)
  • Added ui.prompt_new_workspace_name to ask for a workspace name before interactive TUI creation.
  • Added macOS support for the HERDR_AGENT=<agent> foreground-process hint, allowing agents hidden behind host-visible wrappers such as nono to use the named agent's screen manifest. (#679)

Changed

  • Agent commands now accept only a unique live agent name or the pane ID currently hosting that agent. Names are cleared when the occupant exits, is released, or is replaced. The old top-level wait commands were replaced by agent wait and pane wait-output, and agent send was replaced by agent send-keys.
  • The session navigator now uses connected tree glyphs, groups matches by workspace, and automatically selects the first result when a search begins. (herdrdev#1611)

Fixed

  • CLI requests now return a machine-readable protocol_mismatch error when the client and server protocols differ, while recovery commands remain available. (herdrdev#1435)
  • Linux sound notifications now terminate and reap audio players that do not exit, preventing unavailable audio from leaving CPU-bound mpg123 processes behind. (herdrdev#1622)
  • Oversized bracketed text pastes are now rejected with a client-local notification instead of disconnecting the client. (herdrdev#1665)
  • Agent prompt waits now report agent_prompt_stalled after five seconds without an observed state change instead of waiting indefinitely after an ineffective submission.
  • herdr config check now reports unknown config keys with their full paths instead of treating ignored typos as valid configuration. (herdrdev#1573)
  • Codex panes with customized static terminal titles now fall back to the live working footer instead of remaining idle, while OSC activity remains preferred. (herdrdev#1563)
  • Grok panes now preserve working and blocked state from terminal signals and pinned background-work status instead of falling back to idle mid-turn.
  • OpenCode lifecycle reports are now serialized so out-of-order plugin events cannot leave an idle pane marked working. (herdrdev#1519)
  • Kimi question prompts now report blocked until the user answers or dismisses them.
  • Pi lifecycle reporting now uses settled events, preventing transient message boundaries from publishing an idle state mid-turn.
  • The Pi, OMP, OpenCode, and Kilo Code integrations can now be installed on Windows and report lifecycle state and native session identity through Herdr's named-pipe API. (herdrdev#1531)
  • Named agent prompts now honor live bracketed-paste mode before sending Enter, preserving OpenCode text such as A != B instead of triggering shell mode. (herdrdev#1525)
  • New panes, tabs, layouts, and workspaces using new_cwd = "follow" now inherit the foreground process-group leader's working directory instead of an unrelated helper process directory. (herdrdev#1472)
  • Cached pane working directories no longer trigger repeated filesystem checks, avoiding slow sidebar rendering on network filesystems such as Ceph. (herdrdev#1603)
  • Windows foreground-process snapshots are now shared across panes, reducing idle CPU use in sessions with many panes. (herdrdev#1158)
  • Terminal diff streams now batch contiguous writes, reducing the visible wave effect while scrolling pane history. (herdrdev#283)
  • A standalone Escape arriving beside another key is now preserved as its own input instead of being combined into a fabricated Alt chord. (herdrdev#541)
  • Pane viewports that were following live output now continue following after a resize.
  • Mouse selections now remain visible when ui.copy_on_select = false while clipboard writes stay disabled. (herdrdev#1471)
  • Workspace close confirmation now shows the current workspace name instead of a stale or unrelated label. (herdrdev#1364)
  • Plugin command arrays now preserve whitespace-only arguments. (herdrdev#1594, herdrdev#1613)
  • Plugins can now be installed or linked while no Herdr server is running. (herdrdev#1670)
  • Remote attach now discovers Herdr installed in mise's canonical tool path before offering to install a sidecar binary. (herdrdev#1201)
  • Noninteractive update, plugin, integration, sound, custom-command, and Git subprocesses no longer flash console windows on Windows. (herdrdev#1468)
  • Live handoff now preserves installed plugins and no longer lets the next plugin installation overwrite the existing registry. (herdrdev#893)
  • herdr agent wait now returns agent_not_running promptly when its target pane closes instead of waiting for the full timeout. (herdrdev#1439)
  • Pane graphics streams now shut down cleanly when a client disconnect races stream teardown.

v0.7.1

Choose a tag to compare

@github-actions github-actions released this 01 Jul 20:56

Added

  • Added [update].version_check and [update].manifest_check so background Herdr version checks and remote agent-detection manifest checks can be disabled independently. Manual herdr update and bundled/local detection manifests still work when the background checks are disabled. (herdrdev#677)
  • Added HERDR_AGENT=<agent> as a Linux foreground-process hint for agents hidden behind wrappers such as VMs, Bubblewrap, or fence, allowing Herdr to use the named agent's screen manifest when /proc cannot expose the real command. (#679)
  • Added ui.pane_borders and ui.pane_gaps to make split pane dividers and spacing configurable. (herdrdev#271)

Changed

  • Removed the Agents panel workspace/all filter. The panel now always shows all agents, defaults to grouped-by-space ordering, and can switch to priority ordering with ui.agent_panel_sort = "priority". (herdrdev#318)
  • User keybindings now displace conflicting built-in defaults during config load, so overriding a default binding no longer leaves both actions attached to the same key. (herdrdev#747)
  • Worktree creation now checks out an existing local branch when the requested branch already exists instead of failing by trying to create it again. (herdrdev#729)
  • Worktree operations started through the socket API and plugin/UI flows now defer long-running Git work until the app runtime can drive it, keeping clients responsive and preserving plugin lifecycle events for worktree-created panes. (herdrdev#657, herdrdev#662, herdrdev#686)
  • OMP, OpenCode, Pi, Devin, and other official hook integrations now scope lifecycle and session reports to the intended root agent process more reliably, reducing stale or cross-process session adoption after restarts, nested commands, and new sessions. (herdrdev#614, herdrdev#712, herdrdev#719, herdrdev#765)

Fixed

  • Windows Terminal multiline text paste now reaches pane apps as one bracketed paste, so OMP, Pi, and similar prompts no longer submit each pasted line separately. Plain Esc, Shift+Enter, mouse, focus, resize, and Unicode paste handling are preserved on the Windows client path. (herdrdev#670)
  • Local Herdr clients no longer treat raw Ctrl+V as a clipboard-image paste trigger, so pane apps such as Vim and Neovim receive block-visual Ctrl+V even when the desktop clipboard contains an image. herdr --remote keeps keys.remote_image_paste = "ctrl+v" by default. (herdrdev#647)
  • Herdr now refreshes cached host terminal colors when terminals report a light/dark color-scheme change, so pane apps that query OSC 10/11 no longer need detach/attach to see updated default colors. Opt-in [theme].auto_switch can also switch Herdr's own UI between configured dark_name and light_name themes. (herdrdev#675)
  • Full-lifecycle hook agents can now recover when an old release/report sequence belongs to a previous agent generation. Herdr keeps process-exit validation active under lifecycle authority and re-anchors hook sequence guards after fresh session references or proven process exits. (herdrdev#684)
  • OMP now reports a native session reference, so an OMP pane reappears in the Agents panel after exiting and rerunning omp in the same pane, and Herdr can resume it with omp --resume=<session>. Previously the released lifecycle hook stayed suppressed until a server restart. (herdrdev#614)
  • Host terminal color query (OSC 10/11) replies that arrive split at their escape introducer no longer leak as text like 11;rgb:... into the focused pane, most visible when launching agents that probe terminal colors on startup. (herdrdev#549)
  • Long CJK Git branch names in the sidebar now truncate by display width instead of overflowing or cutting at the wrong cell boundary. (herdrdev#644)
  • Temporary pane commands launched from API flows no longer steal focus from the previously focused pane after they finish. (herdrdev#658)
  • Root agent session restore now ignores child process reports that would otherwise overwrite the saved session for the owning pane. (herdrdev#712)
  • Kitty file-transfer media queries are now answered, allowing pane apps that rely on kitty graphics file support to detect image/file media capability correctly. (herdrdev#732)
  • Idle or slow clients no longer block server writes to other clients while the blocked client is waiting for output. (herdrdev#726)
  • GitHub Copilot CLI ask_user accept prompts are now detected as blocked so the Agents panel shows that the pane is waiting for input. (herdrdev#725)
  • Pane reads now skip wide-character spacer cells, avoiding duplicated or malformed output around double-width characters. (herdrdev#698)
  • Split pane border intersections now use the active pane color consistently. (herdrdev#742, thanks @cullendotdev)
  • The Windows installer checksum fallback no longer depends on Get-FileHash, improving compatibility with constrained PowerShell environments. (herdrdev#751)
  • Pi launched through npm wrappers on Windows is now detected as Pi instead of a generic wrapped process. (herdrdev#754)
  • Windows builds now force the system ConPTY path through a vendored portable-pty patch, avoiding the bundled-path startup failure seen in affected Windows environments. (herdrdev#761)
  • Key release events that fall back to encoded input no longer double-send text into pane apps. (herdrdev#769)
  • Remote clients now allow a longer initial handshake, improving herdr --remote startup over high-latency links. (herdrdev#753)