| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2026-05-17 | feat: add selection autoscroll and fix stale selection on transitions (#129) | leeeanh | |
| When dragging to select text near pane edges, a 30ms recurring tick now continues scrolling and extending the selection while the mouse is idle. The autoscroll stops on MouseUp, key input, navigate action, cursor leaving the hot zone, scrollback boundary, missing metrics, or pane rect change. Also fixes pre-existing bugs where workspace/tab/pane transitions failed to clear selection state, which could cause stale selections to persist across views. Selection clearing on pane death is scoped to only the dying pane. Also fixes anchor_screen_pos returning pane-relative coordinates instead of screen coordinates, which caused false drag detection and spurious edge autoscroll on same-cell events when the pane has a non-zero origin. refs #128 Co-authored-by: leeanh <mac@macs-MacBook-Pro.local> | |||
| 2026-05-17 | fix: polish terminal-core agent semantics | Ogulcan Celik | |
| 2026-05-17 | feat: add direct terminal attach stream | Ogulcan Celik | |
| 2026-05-17 | refactor: extract terminal state and runtime from panes | Ogulcan Celik | |
| 2026-05-17 | feat: add terminal identity and agent cli facade | Ogulcan Celik | |
| 2026-05-17 | feat: add homebrew update handling | Ogulcan Celik | |
| refs #127 | |||
| 2026-05-16 | feat: add immediate new tab option | Ogulcan Celik | |
| refs #123 | |||
| 2026-05-16 | feat: add scrollback editor keybind | Ogulcan Celik | |
| refs #122 | |||
| 2026-05-15 | fix: force redraw on terminal focus gain | Ogulcan Celik | |
| 2026-05-15 | config: split experimental settings from advanced | Ogulcan Celik | |
| 2026-05-14 | feat: add tmux-style mouse capture config | Ogulcan Celik | |
| 2026-05-13 | fix: gate kitty graphics behind config | Ogulcan Celik | |
| 2026-05-13 | feat: support kitty graphics in attached clients | Ogulcan Celik | |
| 2026-05-13 | feat: render kitty graphics in local panes | Ogulcan Celik | |
| 2026-05-12 | fix: rerender after pane rename | Ogulcan Celik | |
| 2026-05-12 | test: add ime input regressions | Ogulcan Celik | |
| 2026-05-11 | feat: add optional pane border labels | Ogulcan Celik | |
| 2026-05-09 | chore: enable clippy linting | Ogulcan Celik | |
| 2026-05-09 | fix: refresh git status off the main loop | Ogulcan Celik | |
| fixes #85 | |||
| 2026-05-08 | fix: split panes in target tab without stealing focus | Ogulcan Celik | |
| fixes #75 | |||
| 2026-05-08 | feat: make agent toasts focus panes | Ogulcan Celik | |
| 2026-05-06 | fix: persist agent panel scope in config | Ogulcan Celik | |
| 2026-05-05 | feat: add mobile terminal layout | Ogulcan Celik | |
| 2026-05-02 | fix: mark visible done panes seen on terminal focus | Ogulcan Celik | |
| 2026-04-29 | fix: restore double prefix passthrough in client mode | Ogulcan Celik | |
| 2026-04-28 | feat: notify active panes when terminal is unfocused | Ogulcan Celik | |
| 2026-04-26 | feat: refine live config lifecycle | Ogulcan Celik | |
| 2026-04-26 | feat: add live config reload | Ogulcan Celik | |
| 2026-04-23 | feat(logging): add robust rotating support logs | Ogulcan Celik | |
| 2026-04-22 | feat: add terminal-delivered client notifications | Ogulcan Celik | |
| 2026-04-21 | fix: make startup preview-release test version-independent | Ogulcan Celik | |
| 2026-04-21 | perf: reduce headless server render overhead | Ogulcan Celik | |
| 2026-04-21 | fix: stop headless idle spin and skip unnecessary macos probes | Ogulcan Celik | |
| 2026-04-21 | feat: add persistent server-client sessions | Can Celik | |
| Make herdr persistent by default. Launching herdr now starts or reattaches to a background session server. Clients can detach and reattach while panes and agent processes keep running. Session mode now supports multi-client attach, auto-detect startup, and a thin-client/headless-server split. This also refactors the large app, ui, input, pane, config, workspace, and persistence modules into smaller focused submodules, while preserving behavior and colocating tests with the code they exercise. Upgrade notes: - persistence mode is now the default - in-app quit detaches the current client instead of stopping the server - use `herdr server stop` to stop the background session - use `--no-session` for the old single-process behavior - default socket paths now live under the config directory | |||
| 2026-04-16 | feat: allow hook-reported custom agent labels | Ogulcan Celik | |
| 2026-04-16 | fix: only preview newer saved release notes | Ogulcan Celik | |
| 2026-04-16 | fix: switch updates to manual preview flow | Ogulcan Celik | |
| 2026-04-13 | refactor extract app api and runtime command modules | Ogulcan Celik | |
| 2026-04-13 | feat add custom shell and pane keybind commands | Ogulcan Celik | |
| 2026-04-10 | fix: preserve workspace when closing the last pane in a tab | Ogulcan Celik | |
| 2026-04-10 | fix: forward pane osc 52 clipboard writes | Ogulcan Celik | |
| 2026-04-10 | fix: forward OSC 52 clipboard writes from pane children | Othavio Quiliao | |
| herdr embeds `libghostty-vt` as a headless terminal emulator per pane, and its readonly stream handler silently drops `.clipboard_contents` actions. As a result, any child process that writes OSC 52 to copy to the system clipboard (for example Amp, which enables mouse reporting and handles selection internally) has its sequence swallowed before it can reach the host terminal — the user sees the child's "copied" toast but the system clipboard is never updated. This change adds an `Osc52Forwarder` that observes raw PTY bytes in `process_pty_bytes`, reconstructs completed `ESC ] 52 ; (c|) ; <base64> (BEL|ST)` sequences (write/clear only — queries are dropped since herdr has no path to reply to the child), and returns them through the existing `ProcessBytesResult`. The reader task forwards the bytes to the main loop via a new `AppEvent::ClipboardWrite`, which is written to stdout from `handle_internal_event`. Routing through the main loop keeps stdout writes serialized with `terminal.draw` and the other existing host-terminal emitters, so the new forwarder does not race with rendering. Existing herdr-native selection (mouse drag in panes without mouse reporting) is unchanged and still writes through `selection::write_osc52`. | |||
| 2026-04-10 | feat(tabs): add overflow scrolling and drag reorder | Ogulcan Celik | |
| 2026-04-09 | feat(api): return root panes from workspace and tab creation | Ogulcan Celik | |
| 2026-04-09 | feat(cli): support labels when creating tabs and workspaces | Ogulcan Celik | |
| 2026-04-09 | merge: reload keybinds | Ogulcan Celik | |
| 2026-04-09 | feat: add manual reload keybinds action | Ogulcan Celik | |
| 2026-04-09 | feat(api): expose done as agent status | Ogulcan Celik | |
| 2026-04-08 | feat: add debounced session autosave | Ogulcan Celik | |
| 2026-04-08 | feat: add resizable sidebar sections | Ogulcan Celik | |
