aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2026-05-19feat: add kind star requestsOgulcan Celik
2026-05-19fix: find remote herdr on pathOgulcan Celik
refs #170
2026-05-19fix: prefer process group leader for agent detection (#172)kangal-bot
refs #161 Co-authored-by: kangal-bot <kangal-bot@users.noreply.github.com>
2026-05-19feat: support hermes agent integrationOgulcan Celik
refs #144
2026-05-18fix: allow zoomed pane focus (#167)kangal-bot
refs #151 Co-authored-by: kangal-bot <kangal-bot@users.noreply.github.com>
2026-05-18docs: clarify live docs agent cliOgulcan Celik
2026-05-18fix: preserve alt backspace in panes (#165)kangal-bot
refs #155 Co-authored-by: kangal-bot <kangal-bot@users.noreply.github.com>
2026-05-18feat: configure sidebar min/max width via [ui] (#135)CHIH,GODLEE
* feat: configure sidebar min/max width via [ui] Expose the previously hardcoded MIN_SIDEBAR_WIDTH / MAX_SIDEBAR_WIDTH clamps as [ui] sidebar_min_width / sidebar_max_width. Defaults remain 18 / 36 so existing configs are unchanged. Hot-reload is wired through the existing [ui] block; reload re-clamps the live width to the new bounds so tightening takes effect immediately. Reject inverted bounds (min > max) at every entry point so a bad config can never reach u16::clamp(min, max), which panics: App::new falls back to defaults, and apply_live_config treats the whole [ui] section as invalid and returns a partial reload report. refs #132 * test: keep sidebar reload width within bounds refs #132 --------- Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
2026-05-18fix: preserve symlinks when saving session.json (#147)Spicer Matthews
session.json is written via tmp + atomic rename. rename() replaces the symlink itself, so users who stow session.json from a dotfiles repo lose the link on every save. Resolve symlinks before placing the .tmp so the rename targets the canonical file and the symlink at the input path is preserved. Atomicity is preserved because the .tmp and the target stay in the same directory. refs #139
2026-05-18feat: Support 16-bit terminal themes (#146)Zack Drach
Add a terminal theme that inherits the terminal default background and uses the host terminal's 16-color ANSI palette for UI colors. refs #140
2026-05-17fix: detect Grok Build agent stateOgulcan Celik
refs #133
2026-05-17feat: 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-17chore: rename fullscreen keybinding to zoomOgulcan Celik
2026-05-17fix: show border around zoomed multi-pane tabsOgulcan Celik
refs #115
2026-05-17fix: polish terminal-core agent semanticsOgulcan Celik
2026-05-17feat: add direct terminal attach streamOgulcan Celik
2026-05-17refactor: extract terminal state and runtime from panesOgulcan Celik
2026-05-17feat: add agent start for server-owned terminalsOgulcan Celik
2026-05-17feat: add terminal identity and agent cli facadeOgulcan Celik
2026-05-17feat: add homebrew update handlingOgulcan Celik
refs #127
2026-05-16feat: add immediate new tab optionOgulcan Celik
refs #123
2026-05-16feat: add scrollback editor keybindOgulcan Celik
refs #122
2026-05-16fix: respect integration config dirsOgulcan Celik
refs #121
2026-05-16feat: add hook-owned custom agent status labelsOgulcan Celik
2026-05-16fix: keep split resize hitboxes off pane contentOgulcan Celik
fixes #120
2026-05-16fix: detect copilot process nameOgulcan Celik
fixes #118
2026-05-15fix: force redraw on terminal focus gainOgulcan Celik
2026-05-15fix: forward pane cursor shapeOgulcan Celik
fixes #116
2026-05-15feat: add indexed keybind familiesOgulcan Celik
2026-05-15fix(input): only host-scroll plain page key pressesOgulcan Celik
2026-05-15config: split experimental settings from advancedOgulcan Celik
2026-05-15fix: refresh and reuse kitty graphics placementsOgulcan Celik
2026-05-15fix: remove macos notification icon handlingOgulcan Celik
2026-05-15fix: improve macos system notificationsOgulcan Celik
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-14fix: allow larger kitty graphics framesOgulcan Celik
2026-05-14fix: update codex hooks feature flagOgulcan Celik
fixes #108
2026-05-14feat: add tmux-style mouse capture configOgulcan Celik
2026-05-13fix: gate kitty graphics behind configOgulcan Celik
2026-05-13test: decouple release manifest from source protocolOgulcan Celik
2026-05-13test: update protocol fixturesOgulcan 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-12ci: run checks on macosOgulcan Celik
2026-05-12fix: detect nix-wrapped agent entrypointsOgulcan Celik
2026-05-12fix(remote): keep bridge socket path under sun_path ceiling (#103)moonsphere
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>