Commit Graph
222 Commits
Author SHA1 Message Date
Ogulcan Celik f661fc928b fix: rerender after pane rename 2026-05-12 16:08:01 +03:00
Ogulcan Celik 4af28fbb65 test: add ime input regressions 2026-05-12 15:54:19 +03:00
Ogulcan Celik 8375922c06 ci: run checks on macos 2026-05-12 15:05:36 +03:00
Ogulcan Celik af4db0f769 fix: detect nix-wrapped agent entrypoints 2026-05-12 14:12:49 +03:00
8f747e96eb fix(remote): keep bridge socket path under sun_path ceiling (#103)
local_forward_socket_path built {TMPDIR}/herdr-remote-{pid}-{target}-
{session}.sock. On macOS std::env::temp_dir() returns /var/folders/.../T/
(~49 chars), so a ~24-char target was enough to push the path past
sun_path's 104-byte ceiling and UnixListener::bind rejected it with
"path must be shorter than SUN_LEN". Per-component sanitization capped
each piece at 32 chars but ignored the directory prefix.

The function now picks the first form that fits within 103 bytes (one
byte of headroom for the trailing NUL; portable across macOS' 104 and
Linux's 108) measured via OsStrExt::as_bytes:

  1. Readable name in TMPDIR (unchanged when it fits).
  2. Hashed short name in TMPDIR.
  3. Hashed short name in /tmp (rare fallback for over-long TMPDIRs).

The hash covers the full unsanitized target/session so uniqueness does
not depend on prefix truncation; the truncated prefix is kept only for
debuggability of the short-form filename.

Co-authored-by: jett <jett@pingcap.cn>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 14:08:41 +03:00
Ogulcan Celik bcea1d884a fix: detect macos foreground jobs by process group
fixes #100
2026-05-12 13:59:32 +03:00
Ogulcan Celik f88f33e2d9 fix: omit cursor for mobile switcher overlay 2026-05-12 01:21:09 +03:00
Ogulcan Celik b8c96102eb fix: hide mobile switcher cursor 2026-05-12 01:10:03 +03:00
Ogulcan Celik 520f4272d0 feat: add agent cycling and tab wheel switching
fixes #92
2026-05-12 00:24:13 +03:00
Ogulcan Celik 8d5dca8cfe feat: add notification target keybind 2026-05-11 23:47:51 +03:00
Ogulcan Celik fe693f613a feat: add optional pane border labels 2026-05-11 23:34:20 +03:00
Ogulcan Celik 84c0d003dd fix: show tab names in mobile agent switcher 2026-05-11 19:40:50 +03:00
Ogulcan Celik e12c7a2cef fix: hide pane cursor while scrolled back 2026-05-11 18:25:44 +03:00
Ogulcan Celik 065ae01b63 fix: drain client control messages during shutdown 2026-05-11 17:00:55 +03:00
Ogulcan Celik 8007c9202c fix: resize background tabs on terminal resize 2026-05-11 16:44:05 +03:00
Ogulcan Celik 9663028a82 test: disable real sound playback during checks 2026-05-11 16:39:24 +03:00
Ogulcan Celik 55cdf2e8f8 fix: stabilize integration agent state reports 2026-05-11 16:13:17 +03:00
Ogulcan Celik e201a64763 fix: preserve indexed terminal colors
fixes #74
2026-05-11 02:10:05 +03:00
Ogulcan Celik d284819e4c fix: make update server stop safer 2026-05-10 22:09:32 +03:00
Ogulcan Celik 3c3f69bc22 fix: preflight running servers before update 2026-05-10 14:06:53 +03:00
Ogulcan Celik 70d217a2a8 docs: document custom command keybindings 2026-05-10 03:08:17 +03:00
Ogulcan Celik 9f210e9738 chore: enable clippy linting 2026-05-09 23:16:24 +03:00
Ogulcan Celik 3a9888cd56 feat: add ansi pane read format 2026-05-09 22:07:52 +03:00
Ogulcan Celik 819a71ea7a fix: refresh git status off the main loop
fixes #85
2026-05-09 21:57:26 +03:00
YoungTaek 78904186dd Show focus on active agent in agents panel like spaces panel does (#84)
* feat: show focus on active agent in agents panel like spaces panel does

* refactor: improve to calculation and binding style
2026-05-09 17:21:03 +03:00
Ogulcan Celik 996e1a3ef2 chore: remove unused headless cursor import 2026-05-09 15:58:20 +03:00
Ogulcan Celik 3b53ae6e6e fix(remote): bootstrap remote herdr install 2026-05-09 15:15:45 +03:00
Ogulcan Celik d8db1bce7e refactor(server): extract headless render stream helpers 2026-05-08 23:23:06 +03:00
Ogulcan Celik 251457e887 refactor(server): split headless client transport 2026-05-08 23:16:12 +03:00
Ogulcan Celik 793f127e54 feat(remote): add network-efficient thin client transport
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-08 22:20:04 +03:00
Ogulcan Celik bb0dad86f8 fix: split panes in target tab without stealing focus
fixes #75
2026-05-08 15:37:01 +03:00
Ogulcan Celik ac32c1a19b fix: clear agent toast after focus 2026-05-08 14:56:14 +03:00
Ogulcan Celik c08e51e666 feat: make agent toasts focus panes 2026-05-08 14:53:45 +03:00
Ogulcan Celik b0aa7b2cdd fix: preserve osc8 hyperlinks in client rendering
fixes #73
2026-05-07 21:48:50 +03:00
Ogulcan Celik dcfe11a758 build: update libghostty-vt vendor
vendor ghostty 063ac3e and remove the musl libc++ link workaround.

expose the new selection formatter and hyperlink uri apis for follow-up rendering work.

add manual artifact validation for static linux builds.
2026-05-07 18:29:21 +03:00
Ogulcan Celik 2dfed86010 fix: clear hook state when native agent exits
fixes #72
2026-05-07 15:06:47 +03:00
Ogulcan Celik 34df89ae65 fix: persist agent panel scope in config 2026-05-06 22:53:56 +03:00
Shoubhit Dash 446eecb4a1 feat: add vesper theme (#71) 2026-05-06 21:08:20 +03:00
Ogulcan Celik b83737bddb fix: keep pane scrollbar gutter stable 2026-05-06 20:59:57 +03:00
Ogulcan Celik 94b90043f9 fix: clear native agent detection after shell returns
fixes #66
2026-05-06 20:17:52 +03:00
Ogulcan Celik f7b0ee2f75 feat: add mobile terminal layout 2026-05-05 18:32:42 +03:00
Ogulcan Celik 6885c88739 fix: preserve split utf-8 terminal input 2026-05-05 15:25:45 +03:00
Ogulcan Celik 2c950712c7 fix: preserve hidden cursor visibility for ime anchors 2026-05-03 00:12:16 +03:00
Ogulcan Celik a1c02f0441 fix: anchor ime cursor to focused pane position 2026-05-02 18:39:09 +03:00
Ogulcan Celik 10ba9f023c fix: stabilize hidden cursor position during client redraw
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-05-02 17:36:00 +03:00
Ogulcan Celik 45005f1f73 fix: mark visible done panes seen on terminal focus 2026-05-02 01:23:10 +03:00
Ogulcan Celik d8bb2ebed9 fix: preserve pane size while detached 2026-04-29 23:50:05 +03:00
Ogulcan Celik c950670dca fix: run integration commands without server 2026-04-29 23:24:36 +03:00
Ogulcan Celik eec56a56a9 fix: restore double prefix passthrough in client mode 2026-04-29 23:14:38 +03:00
Ogulcan Celik ded6d7bfa6 feat: add human session attach and list output 2026-04-29 21:58:22 +03:00