aboutsummaryrefslogtreecommitdiff
path: root/src/app
AgeCommit message (Collapse)Author
2026-05-15feat: add system toast deliveryOgulcan Celik
2026-05-15feat: add light theme variantsOgulcan Celik
2026-05-14fix(input): scroll pane scrollback with pageup/pagedown and parse enhanced ↵Ogulcan Celik
tilde sequences
2026-05-14feat: add tmux-style mouse capture configOgulcan Celik
2026-05-13fix: gate kitty graphics behind configOgulcan Celik
2026-05-13feat: support kitty graphics in attached clientsOgulcan Celik
2026-05-13feat: render kitty graphics in local panesOgulcan Celik
2026-05-12fix: rerender after pane renameOgulcan Celik
2026-05-12test: add ime input regressionsOgulcan Celik
2026-05-12feat: add agent cycling and tab wheel switchingOgulcan Celik
fixes #92
2026-05-11feat: add notification target keybindOgulcan Celik
2026-05-11feat: add optional pane border labelsOgulcan Celik
2026-05-11fix: stabilize integration agent state reportsOgulcan Celik
2026-05-09chore: enable clippy lintingOgulcan Celik
2026-05-09feat: add ansi pane read formatOgulcan Celik
2026-05-09fix: refresh git status off the main loopOgulcan Celik
fixes #85
2026-05-09Show focus on active agent in agents panel like spaces panel does (#84)YoungTaek
* feat: show focus on active agent in agents panel like spaces panel does * refactor: improve to calculation and binding style
2026-05-08fix: split panes in target tab without stealing focusOgulcan Celik
fixes #75
2026-05-08fix: clear agent toast after focusOgulcan Celik
2026-05-08feat: make agent toasts focus panesOgulcan Celik
2026-05-06fix: persist agent panel scope in configOgulcan Celik
2026-05-06feat: add vesper theme (#71)Shoubhit Dash
2026-05-05feat: add mobile terminal layoutOgulcan Celik
2026-05-02fix: mark visible done panes seen on terminal focusOgulcan Celik
2026-04-29fix: run integration commands without serverOgulcan Celik
2026-04-29fix: restore double prefix passthrough in client modeOgulcan Celik
2026-04-28fix: resize w claude code no flicker (#61)Yifeng He
* fix: mouse resize panel failed with claude-code no flicker * test: run pane mouse reporting drag tests inside tokio runtime Switch the new horizontal/vertical drag tests to `#[tokio::test]` so `PaneRuntime::test_with_screen_bytes` has a reactor when it calls `tokio::spawn`. CI was panicking with "there is no reactor running". * test: refresh git state in workspace drop slot test Workspace::test_new caches the parent repo's git branch at construction time. On master CI the herdr checkout has ref: refs/heads/master in HEAD, so the cache is populated and workspace_row_height returns 2. On PR CI actions/checkout uses a detached merge ref, git_branch returns None, row height becomes 1, and the drop-slot tie-break flips workspace_drop_index_at_row(2) from Some(0) to Some(1). Refresh git state after pointing identity_cwd at the per-test temp repo so the cache reflects the temp repo's HEAD.
2026-04-28feat: notify active panes when terminal is unfocusedOgulcan Celik
2026-04-26feat: refine live config lifecycleOgulcan Celik
2026-04-26feat: add live config reloadOgulcan Celik
2026-04-23feat(logging): add robust rotating support logsOgulcan Celik
2026-04-22feat: add terminal-delivered client notificationsOgulcan Celik
2026-04-22chore: remove unused test importsOgulcan Celik
2026-04-21fix: make startup preview-release test version-independentOgulcan Celik
2026-04-21perf: reduce headless server render overheadOgulcan Celik
2026-04-21fix: stop headless idle spin and skip unnecessary macos probesOgulcan Celik
2026-04-21fix: close global menu before detachOgulcan Celik
2026-04-21feat: add persistent server-client sessionsCan 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-16feat: allow hook-reported custom agent labelsOgulcan Celik
2026-04-16fix: only preview newer saved release notesOgulcan Celik
2026-04-16fix: switch updates to manual preview flowOgulcan Celik
2026-04-14feat support double prefix passthroughOgulcan Celik
2026-04-14fix unify app key normalization for enhanced keyboard reportingOgulcan Celik
2026-04-13refactor extract app api and runtime command modulesOgulcan Celik
2026-04-13feat add custom shell and pane keybind commandsOgulcan Celik
2026-04-13fix: tighten tab bar scrolling behaviorOgulcan Celik
2026-04-13fix: reserve q for navigate quit onlyOgulcan Celik
2026-04-10fix: preserve workspace when closing the last pane in a tabOgulcan Celik
2026-04-10fix: forward pane osc 52 clipboard writesOgulcan Celik
2026-04-10fix: forward OSC 52 clipboard writes from pane childrenOthavio 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`.