aboutsummaryrefslogtreecommitdiff
path: root/src/client/mod.rs
AgeCommit message (Collapse)Author
2026-07-18perf: batch contiguous terminal diff writesOgulcan Celik
refs #283
2026-07-09fix: use drawn cursor by default in wslOgulcan Celik
refs #930
2026-07-06fix: bridge remote image file drops (#1085)akbash
refs #828 Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-07-05fix: switch prefix ASCII input source on the foreground client (#1016)ppggff
* fix: switch prefix ASCII input source on the foreground client The macOS prefix ASCII-switch ran in the headless server, whose TISCopyCurrentKeyboardInputSource read is a stale per-process cache (refreshed only via a main-run-loop notification the server never pumps), so prefix could leave the terminal on the wrong input source. Forward it to the foreground client, like clipboard: sync_prefix_input_source emits AppEvent::PrefixInputSource as an intent; the server forwards it to the foreground client and the monolithic app applies it in-process via RealPrefixInputSource, which pumps its main run loop before the stale TIS read. Key it on Mode::wants_ascii_input so multi-level prefix commands keep ASCII until returning to the terminal, and restore the IME for rename text entry. Adds ServerMessage::PrefixInputSource to the already-unreleased protocol 15. refs #774 * fix: keep prefix input-source switch out of the headless server process An App-internal drain (the exhaustive drain at the top of handle_api_request, reachable from prefix-key runtime mutations) can consume a queued PrefixInputSource intent before the server's forwarding drain sees it, applying the TIS switch in the headless server process and stranding the restore state. Gate the in-process switch on App.local_input_source_switch, disabled by the headless server alongside the other local side effects, so a swallowed intent degrades to a skipped switch. Widen the forwarding-bypass maintenance test to the handle_internal_event_with_prefix_sync wrapper. refs #774 * docs: clarify prefix input-source comments and flag docs refs #774 * fix: bump protocol for prefix input source refs #774 --------- Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
2026-07-03fix: scope empty image paste bridge to remoteOgulcan Celik
refs #986
2026-07-03fix: stop sgr mouse sequences leaking into panesOgulcan Celik
refs #939
2026-07-02fix: draw host cursor on windowsOgulcan Celik
refs #930
2026-06-30fix: keep remote sessions alive across disconnectsOgulcan Celik
2026-06-30feat: add terminal session control streamOgulcan Celik
2026-06-30feat: add terminal session observe streamOgulcan Celik
2026-06-25fix: preserve alacritty input on windowsOgulcan Celik
refs #792
2026-06-24fix: extend remote client handshake timeout for high-latency linksOgulcan Celik
refs #753
2026-06-19fix: preserve windows terminal multiline pasteOgulcan Celik
refs #670
2026-06-18feat: sync theme with host appearanceOgulcan Celik
refs #675
2026-06-18fix: scope image paste shortcut to remoteOgulcan Celik
refs #647
2026-06-16fix: hold lone escape while awaiting host color replyOgulcan Celik
refs #549
2026-06-14feat: add plugin v1 systemOgulcan Celik
Add manifest-driven plugin actions, event hooks, pane entrypoints, link handlers, and host APIs. Support plugin link, GitHub install, build commands, installed plugin registry, pane movement, runtime context, and plugin docs.
2026-06-12fix: stabilize windows pane cursor renderingOgulcan Celik
refs #556
2026-06-08fix: improve windows pane behaviorOgulcan Celik
2026-06-07fix: preserve unix socket error semanticsOgulcan Celik
2026-06-07feat: add native windows beta supportOgulcan Celik
2026-06-06feat: improve toast ergonomicsOgulcan Celik
refs #486
2026-05-30perf: reduce sidebar git polling overheadOgulcan Celik
refs #353
2026-05-25feat: make focus-gain redraw configurableOgulcan Celik
refs #282
2026-05-24fix: support scrolling direct agent attachesOgulcan Celik
2026-05-22feat: show named session command hintsGolden-Pigeon
refs #199
2026-05-21refactor: separate server client boundariesOgulcan Celik
2026-05-21feat: use local keybindings for remote attachOgulcan Celik
2026-05-20fix: bridge remote clipboard image pasteOgulcan Celik
refs #205
2026-05-19fix: preserve modified enter inputOgulcan Celik
refs #168
2026-05-17feat: add direct terminal attach streamOgulcan Celik
2026-05-15fix: force redraw on terminal focus gainOgulcan Celik
2026-05-15config: split experimental settings from advancedOgulcan Celik
2026-05-15feat: add system toast deliveryOgulcan Celik
2026-05-14fix: allow larger kitty graphics framesOgulcan Celik
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-12test: add ime input regressionsOgulcan Celik
2026-05-09chore: enable clippy lintingOgulcan Celik
2026-05-09fix(remote): bootstrap remote herdr installOgulcan Celik
2026-05-08feat(remote): add network-efficient thin client transportOgulcan Celik
Add SSH stdio remote attach, negotiate terminal-ANSI render encoding, move blit encoding server-side for remote clients, and split control/render writer delivery for safer backpressure. Fixes #76
2026-05-02fix: stabilize hidden cursor position during client redrawOgulcan Celik
Wrap client frame blits in synchronized output and park hidden cursors at the last visible pane cursor, falling back to bottom-right when no cursor has been seen. This prevents IME and mobile SSH clients from anchoring composition to incidental repaint positions such as sidebar animations.
2026-04-28feat: notify active panes when terminal is unfocusedOgulcan Celik
2026-04-26feat: refine live config lifecycleOgulcan Celik
2026-04-25fix: deliver server-approved terminal toastsOgulcan Celik
2026-04-23feat(logging): add robust rotating support logsOgulcan Celik
2026-04-22feat: add terminal-delivered client notificationsOgulcan Celik
2026-04-21fix: restore terminal cursor state on client 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