Added
- Custom command keybindings now accept an optional
descriptionfield to provide user-defined descriptions shown in the keybind help panel instead of the default'custom command'label. (#362)
Fixed
- The OpenCode integration no longer treats
session.createdorsession.updatedplugin events as idle signals, so active sessions stay marked working until OpenCode reportssession.statusorsession.idle. (#351) - New interactive panes now use login-shell startup on macOS by default so Homebrew and other login PATH setup is available, with
terminal.shell_mode = "non_login"as an opt-out. (#350) - Claude Code panes no longer stay blocked after stale permission-prompt reports when the visible screen has returned to idle or working state. (#349)
- Codex panes no longer stay working because stale
esc to interrupttext remains above a visible idle prompt, and visible approval-review work is now preserved as working. (#352) - Sidebar Git status refresh now deduplicates workspaces from the same checkout and reuses cached ahead/behind results when refs have not changed, reducing idle CPU from repeated
gitpolling. (#353) - Update prompts, toasts, and docs now distinguish installing a new binary from stopping or reattaching a running Herdr session to use it.
- Large restored sessions no longer leave restored or newly split panes without shells after startup, and live handoff keeps PTY ownership bounded to one master fd per pane. (#357)
- Pane shutdown no longer warns that a pane is still alive after the direct child has already exited and been reaped. (#338)
- Closing the last pane or tab in a parent worktree workspace now shows the existing confirmation before closing the whole worktree group. (#369)