Releases: aceitw/herdr
Releases · aceitw/herdr
Release list
v0.7.5
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, atomicprompt, logicalsend-keys, and server-ownedwaitworkflows. 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_collapsedto launch Herdr with the sidebar collapsed. (herdrdev#1463) - Added
ui.prompt_new_workspace_nameto 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 asnonoto 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
waitcommands were replaced byagent waitandpane wait-output, andagent sendwas replaced byagent 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_mismatcherror 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
mpg123processes 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_stalledafter five seconds without an observed state change instead of waiting indefinitely after an ineffective submission. herdr config checknow 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 != Binstead 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 = falsewhile 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 waitnow returnsagent_not_runningpromptly 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
Added
- Added
[update].version_checkand[update].manifest_checkso background Herdr version checks and remote agent-detection manifest checks can be disabled independently. Manualherdr updateand 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, orfence, allowing Herdr to use the named agent's screen manifest when/proccannot expose the real command. (#679) - Added
ui.pane_bordersandui.pane_gapsto 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+Vas a clipboard-image paste trigger, so pane apps such as Vim and Neovim receive block-visualCtrl+Veven when the desktop clipboard contains an image.herdr --remotekeepskeys.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_switchcan also switch Herdr's own UI between configureddark_nameandlight_namethemes. (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
ompin the same pane, and Herdr can resume it withomp --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_useraccept 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-ptypatch, 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 --remotestartup over high-latency links. (herdrdev#753)