aboutsummaryrefslogtreecommitdiff
path: root/docs
AgeCommit message (Collapse)Author
2026-09-29release: v0.9.3v0.9.3Ogulcan Celik
2026-09-29docs: prepare 0.9.3 release notesOgulcan Celik
2026-09-29release: v0.9.2Ogulcan Celik
2026-09-29docs: prepare 0.9.2 release documentationOgulcan Celik
2026-09-29fix: summarize old servers and saved machines after herdr update (#4722)Can Celik
* fix: summarize old servers and saved machines after herdr update * fix: include reconnect and per-session restart commands in update summary
2026-09-28docs: publish preview documentationkangal-bot
2026-09-28feat: support multiple prefix keys (#4653)JJ Liebig
* feat: support multiple prefix keys keys.prefix accepts an array in addition to a single string so one config can define several prefix keys. Every configured prefix enters the same prefix mode, and the help panel lists them all. Published keybinding profiles keep the primary prefix as a scalar and carry the rest in an optional extra_prefixes field so older clients keep working with the primary prefix. * fix: reject an empty prefix list on reload An explicitly empty keys.prefix array now stays empty through config parsing so validation rejects it and a reload keeps the current keybindings instead of silently falling back to ctrl+b.
2026-09-27feat: simplify ssh machine setup discovery (#4204)JJ Liebig
2026-09-27docs: add a guide for adding herdr support to your agentOgulcan Celik
2026-09-27feat: let agents report their own resume command (#4687)Can Celik
* feat: let agents report their own resume command * fix: keep reported resume commands tied to accepted sessions and current owners
2026-09-27feat: accept mouse events on terminal session control (#4685)Can Celik
2026-09-27feat: default machine add label to the ssh host (#4678)David Heinemeier Hansson
* feat: default machine add label to the ssh host `herdr machine add <ssh-target>` no longer requires `--label`. Without one, the machine is named after the SSH host with any `user@` prefix removed, so `herdr machine add dev@workbox` shows up as `workbox`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Apply suggestion from @greptile-apps[bot] Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> * fix: make default machine labels unique per session and handle ssh urls --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
2026-09-26fix: refresh host palette on terminal redraw (#4349)David Heinemeier Hansson
* fix: refresh host palette on terminal redraw * fix: count overlapping host palette queries --------- Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
2026-09-24docs: explain tmux auto-attach guard in herdr panes (#4592)JJ Liebig
2026-09-24feat!: replace the custom graphics api with optimized native kitty rendering ↵Can Celik
(#4561) * feat!: replace the custom graphics api with optimized native kitty rendering * fix: enable safe kitty optimizations automatically --------- Co-authored-by: JJ Liebig <jonathan.liebig@gmail.com>
2026-09-24fix: avoid inferring codex idle from terminal output (#4563)JJ Liebig
refs #4507
2026-09-22fix: reuse ssh authentication and add machine recovery commands (#4490)Can Celik
* fix: reuse ssh authentication and add in-app mfa recovery refs #3763 * refactor: move ssh recovery to machine cli refs #3763
2026-09-22fix: preserve hook agent status across live handoff (#4493)Can Celik
2026-09-22fix: track opencode subagent status per pane (#4357)Can Celik
refs #1362
2026-09-22fix: stagger restored agent startups (#4487)JJ Liebig
* fix: stagger restored agent startups refs #4102 * fix: report startup delay changes requiring restart refs #4102
2026-09-22fix: clear inherited terminal and agent session identity (#4461)Can Celik
refs #4104
2026-09-21fix: distinguish agent completion from startup and session changes (#4457)Can Celik
refs #3338 refs #3990 refs #3916
2026-09-21fix: refresh forwarded ssh agents after reconnect (#4443)Can Celik
refs #1931
2026-09-20docs: publish preview documentationkangal-bot
2026-09-21fix: preserve session layouts across shutdown and restore failures (#4400)Can Celik
* fix: preserve session layouts across shutdown and restore failures refs #4320 * test: update subscription fixture for pane restore errors --------- Co-authored-by: JJ Liebig <jonathan.liebig@gmail.com>
2026-09-20fix: confirm closing the last tab in the tui (#4409)Eric Yue
* fix: confirm closing the last tab in the tui refs #4379 * docs: clarify last-tab worktree confirmation in translations refs #4379 --------- Co-authored-by: JJ Liebig <jonathan.liebig@gmail.com>
2026-09-20fix: drain event subscriptions and report history loss (#4225)Eric Yue
* fix: drain event subscriptions and report history loss refs #4178 Root cause: Each subscription emits at most one matching event per 100 ms poll, while the shared event history retains only 512 entries. Bursts therefore build a backlog, and an evicted cursor silently resumes at the oldest retained event with no indication that earlier events were lost. Fix: Drain the bounded retained batch for lifecycle and agent-status streams. Check for history loss while holding the same lock used to read events, then return an events_lost error and close only the affected subscription. Keep event envelopes, request shapes, endpoint codecs and wait behavior unchanged. Preserve state filters, initial snapshots, event order and the existing cadence for snapshot-only subscriptions. Document resubscription and snapshot recovery in the unreleased API docs. Add regressions for burst draining, startup-window loss, retention bounds, status ordering and filtering, and unavailable history. Validation: Three socket regressions fail before the fix and pass afterward. Thirty-two focused API tests and five repeated rounds of socket tests pass. The real current-master comparison receives 516 of 600 events before the fix and 600 of 600 after it in about 0.97 seconds. A paused reader receives the explicit error, and a new subscription plus snapshot recovers successfully. Full native just ci on the dependency-inclusive branch passes 3631 Rust tests with six default skips, formatting, all-target Clippy, 112 maintenance tests, six architecture tests and 39 integration-asset tests. All seven docs contract tests pass. No retries or additional exclusions were used. Local Windows cross-lint was not run because its SDK is unavailable. * test: cover subscription isolation across platforms refs #4178 --------- Co-authored-by: JJ Liebig <jonathan.liebig@gmail.com>
2026-09-19feat: show every agent and terminal in the go to picker (#4384)Can Celik
2026-09-19feat: add configurable pane screen and scrollback clearing (#4383)Can Celik
2026-09-18fix: preserve request ids in socket error responses (#4353)akbash
* fix: preserve request ids in socket error responses refs #4344 * docs: clarify socket error response limits refs #4344 --------- Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-09-18perf: enable ssh compression for remote connections (#4340)Can Celik
Co-authored-by: JJ Liebig <jonathan.liebig@gmail.com>
2026-09-17fix(windows): prefer pwsh for the default pane shell (#4297)JJ Liebig
* fix(windows): prefer pwsh for the default pane shell Windows panes launched Windows PowerShell 5.1 (powershell.exe) whenever [terminal] default_shell was unset, ignoring PowerShell 7 even when pwsh.exe resolved on PATH. Resolve the unset default against PATH and prefer pwsh.exe, falling back to the inbox powershell.exe. An explicit default_shell still wins. * fix(windows): validate pwsh before using it as the default shell portable-pty resolves the configured shell with Path::exists and passes that path to CreateProcessW, which does not fall through to later PATH entries. Selecting an invalid pwsh.exe would therefore break new panes instead of falling back. Only prefer a pwsh.exe that starts with the PE MZ magic, and return its path so the validated binary is the one launched. * fix(windows): validate the full PE header before preferring pwsh Checking only the DOS MZ signature still accepted truncated images, DLLs, and foreign-architecture binaries. Because portable-pty passes the resolved path straight to CreateProcessW without trying later PATH entries, validate the PE signature, the COFF header (machine, executable-image bit, not a DLL, section count), and the optional header before preferring pwsh.exe. * fix(windows): accept native ARM64 pwsh and validate the section table Herdr ships an x64 Windows build that also runs on Windows ARM64 under x64 emulation, so cfg!(target_arch) cannot tell whether a native ARM64 pwsh.exe is launchable. Accept every executable machine type Windows supports instead of rejecting ARM64 on the x86_64 build. Also bound-check the section table (40 bytes per declared section) after the optional header so a truncated table falls back instead of being selected. * fix(windows): detect the native host machine for pwsh compatibility Machine compatibility was derived from cfg!(target_arch), which reports the emulated x64 process on Windows ARM64, and then briefly accepted ARM64 on every host. Read the native machine with IsWow64Process2 in the platform layer instead: ARM64 Windows accepts ARM64/x64/x86 images, x64 accepts x64/x86, and x86 accepts only x86.
2026-09-16fix: cache saved machine connection metadata (#4256)Can Celik
refs #4252
2026-09-16fix: respect opencode tui.json registrations (#4250)akbash
refs #4240 Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com> Co-authored-by: JJ Liebig <jonathan.liebig@gmail.com>
2026-09-16release: synchronize metadata for v0.9.1github-actions[bot]
2026-09-16docs: publish preview documentationkangal-bot
2026-09-16fix: require exact session names before deletion (#4233)Eric Yue
* fix: require exact session names before deletion refs #3819 * test: isolate session deletion regression tests refs #3819 --------- Co-authored-by: JJ Liebig <jonathan.liebig@gmail.com>
2026-09-16fix: keep local usable when remote machines stall (#4234)Can Celik
refs #3903
2026-09-15fix: preserve macos services across logout (#4202)Can Celik
refs #4100
2026-09-15fix: preserve unloaded sessions before replacement (#4190)Can Celik
refs #4125
2026-09-15fix: preserve live selections during pane output (#4193)akbash
refs #3841 Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-09-14fix: protect integration configs from failed writes (#3973)akbash
* fix: atomically write integration configs refs #3970 * fix: atomically write integration configs refs #3970 * fix: atomically write integration configs refs #3970 * fix: atomically write integration configs refs #3970 * fix: atomically write integration configs refs #3970 * fix: atomically write integration configs refs #3970 * fix: atomically write integration configs refs #3970 * fix: atomically write integration configs refs #3970 * fix: atomically write integration configs refs #3970 * fix: atomically write integration configs refs #3970 * fix: atomically write integration configs refs #3970 * fix: atomically write integration configs refs #3970 * fix: atomically write integration configs refs #3970 * fix: atomically write integration configs refs #3970 * fix: atomically write integration configs refs #3970 --------- Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com> Co-authored-by: JJ Liebig <jonathan.liebig@gmail.com>
2026-09-14fix: default pane splits to the calling pane (#4123)Can Celik
2026-09-14fix: clean up idle ssh bridges and back off flapping connections (#4083)Can Celik
* fix: clean up idle ssh bridges and back off flapping connections * chore: keep ssh liveness smoke tooling local
2026-09-14fix: hide only kitty image placements overlapping overlays (#4081)Can Celik
2026-09-14fix: scope agent views to the selected machine (#3784)akbash
* fix: scope agent views to the selected machine refs #3732 * fix: preserve stable agent view ordering refs #3732 --------- Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com> Co-authored-by: JJ Liebig <jonathan.liebig@gmail.com>
2026-09-13feat: add ctrl-hover highlighting and fix wrapped links (#4074)Can Celik
refs #1282
2026-09-13feat: install windows remote host packages (#3687)JJ Liebig
* feat: install windows remote host packages refs #3651 * docs: clarify windows saved reconnect package behavior refs #3651 * fix: include windows installer in nix sources refs #3651 * fix: preserve paths in windows scp transfers refs #3651 * refactor: isolate windows remote package setup refs #3651
2026-09-13feat: add Letta Code detection and restore (#3107)Can Celik
refs #3106 Co-authored-by: Cameron <cameron@pfiffer.org>
2026-09-13fix: restrict claude session hooks to native sources (#4046)akbash
refs #4018 Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com> Co-authored-by: JJ Liebig <jonathan.liebig@gmail.com>