diff options
| -rw-r--r-- | CHANGELOG.md | 33 | ||||
| -rw-r--r-- | README.md | 2 | ||||
| -rw-r--r-- | docs/next/CHANGELOG.md | 26 | ||||
| -rw-r--r-- | docs/next/README.md | 8 | ||||
| -rw-r--r-- | docs/next/website/src/content/docs/configuration.mdx | 2 | ||||
| -rw-r--r-- | website/src/content/docs/agents.mdx | 6 | ||||
| -rw-r--r-- | website/src/content/docs/cli-reference.mdx | 2 | ||||
| -rw-r--r-- | website/src/content/docs/configuration.mdx | 33 | ||||
| -rw-r--r-- | website/src/content/docs/integrations.mdx | 6 | ||||
| -rw-r--r-- | website/src/content/docs/session-state.mdx | 5 | ||||
| -rw-r--r-- | website/src/content/docs/socket-api.mdx | 2 | ||||
| -rw-r--r-- | website/src/content/docs/windows-beta.mdx | 2 |
12 files changed, 109 insertions, 18 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 31f2af61..c1fa2750 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,39 @@ ## Unreleased +### Added +- Added `[update].version_check` and `[update].manifest_check` so background Herdr version checks and remote agent-detection manifest checks can be disabled independently. Manual `herdr update` and bundled/local detection manifests still work when the background checks are disabled. (#677) +- Added `HERDR_AGENT=<agent>` as a Linux foreground-process hint for agents hidden behind wrappers such as VMs, Bubblewrap, or `fence`, allowing Herdr to use the named agent's screen manifest when `/proc` cannot expose the real command. (#679) +- Added `ui.pane_borders` and `ui.pane_gaps` to make split pane dividers and spacing configurable. (#271) + +### Changed +- Removed the Agents panel workspace/all filter. The panel now always shows all agents, defaults to grouped-by-space ordering, and can switch to priority ordering with `ui.agent_panel_sort = "priority"`. (#318) +- User keybindings now displace conflicting built-in defaults during config load, so overriding a default binding no longer leaves both actions attached to the same key. (#747) +- Worktree creation now checks out an existing local branch when the requested branch already exists instead of failing by trying to create it again. (#729) +- Worktree operations started through the socket API and plugin/UI flows now defer long-running Git work until the app runtime can drive it, keeping clients responsive and preserving plugin lifecycle events for worktree-created panes. (#657, #662, #686) +- OMP, OpenCode, Pi, Devin, and other official hook integrations now scope lifecycle and session reports to the intended root agent process more reliably, reducing stale or cross-process session adoption after restarts, nested commands, and new sessions. (#614, #712, #719, #765) + +### Fixed +- Windows Terminal multiline text paste now reaches pane apps as one bracketed paste, so OMP, Pi, and similar prompts no longer submit each pasted line separately. Plain Esc, Shift+Enter, mouse, focus, resize, and Unicode paste handling are preserved on the Windows client path. (#670) +- Local Herdr clients no longer treat raw `Ctrl+V` as a clipboard-image paste trigger, so pane apps such as Vim and Neovim receive block-visual `Ctrl+V` even when the desktop clipboard contains an image. `herdr --remote` keeps `keys.remote_image_paste = "ctrl+v"` by default. (#647) +- Herdr now refreshes cached host terminal colors when terminals report a light/dark color-scheme change, so pane apps that query OSC 10/11 no longer need detach/attach to see updated default colors. Opt-in `[theme].auto_switch` can also switch Herdr's own UI between configured `dark_name` and `light_name` themes. (#675) +- Full-lifecycle hook agents can now recover when an old release/report sequence belongs to a previous agent generation. Herdr keeps process-exit validation active under lifecycle authority and re-anchors hook sequence guards after fresh session references or proven process exits. (#684) +- OMP now reports a native session reference, so an OMP pane reappears in the Agents panel after exiting and rerunning `omp` in the same pane, and Herdr can resume it with `omp --resume=<session>`. Previously the released lifecycle hook stayed suppressed until a server restart. (#614) +- Host terminal color query (OSC 10/11) replies that arrive split at their escape introducer no longer leak as text like `11;rgb:...` into the focused pane, most visible when launching agents that probe terminal colors on startup. (#549) +- Long CJK Git branch names in the sidebar now truncate by display width instead of overflowing or cutting at the wrong cell boundary. (#644) +- Temporary pane commands launched from API flows no longer steal focus from the previously focused pane after they finish. (#658) +- Root agent session restore now ignores child process reports that would otherwise overwrite the saved session for the owning pane. (#712) +- Kitty file-transfer media queries are now answered, allowing pane apps that rely on kitty graphics file support to detect image/file media capability correctly. (#732) +- Idle or slow clients no longer block server writes to other clients while the blocked client is waiting for output. (#726) +- GitHub Copilot CLI `ask_user` accept prompts are now detected as blocked so the Agents panel shows that the pane is waiting for input. (#725) +- Pane reads now skip wide-character spacer cells, avoiding duplicated or malformed output around double-width characters. (#698) +- Split pane border intersections now use the active pane color consistently. (#742, thanks @cullendotdev) +- The Windows installer checksum fallback no longer depends on `Get-FileHash`, improving compatibility with constrained PowerShell environments. (#751) +- Pi launched through npm wrappers on Windows is now detected as Pi instead of a generic wrapped process. (#754) +- Windows builds now force the system ConPTY path through a vendored `portable-pty` patch, avoiding the bundled-path startup failure seen in affected Windows environments. (#761) +- Key release events that fall back to encoded input no longer double-send text into pane apps. (#769) +- Remote clients now allow a longer initial handshake, improving `herdr --remote` startup over high-latency links. (#753) + ## [0.7.0] - 2026-06-15 ### Added @@ -201,7 +201,7 @@ for agents outside the built-in list, herdr still works as a terminal multiplexe ### direct integrations -official integrations have two roles. claude code, codex, github copilot cli, devin, droid, qodercli, and cursor agent cli report session identity for native restore, while their state still comes from screen detection. pi, kimi code cli, opencode, kilo code cli, and hermes report both semantic state and session identity. omp reports semantic state without native session restore. install with: +official integrations have two roles. claude code, codex, github copilot cli, devin, droid, qodercli, and cursor agent cli report session identity for native restore, while their state still comes from screen detection. pi, omp, kimi code cli, opencode, kilo code cli, and hermes report both semantic state and session identity. install with: ```bash herdr integration install pi diff --git a/docs/next/CHANGELOG.md b/docs/next/CHANGELOG.md index 872da722..c1fa2750 100644 --- a/docs/next/CHANGELOG.md +++ b/docs/next/CHANGELOG.md @@ -2,6 +2,18 @@ ## Unreleased +### Added +- Added `[update].version_check` and `[update].manifest_check` so background Herdr version checks and remote agent-detection manifest checks can be disabled independently. Manual `herdr update` and bundled/local detection manifests still work when the background checks are disabled. (#677) +- Added `HERDR_AGENT=<agent>` as a Linux foreground-process hint for agents hidden behind wrappers such as VMs, Bubblewrap, or `fence`, allowing Herdr to use the named agent's screen manifest when `/proc` cannot expose the real command. (#679) +- Added `ui.pane_borders` and `ui.pane_gaps` to make split pane dividers and spacing configurable. (#271) + +### Changed +- Removed the Agents panel workspace/all filter. The panel now always shows all agents, defaults to grouped-by-space ordering, and can switch to priority ordering with `ui.agent_panel_sort = "priority"`. (#318) +- User keybindings now displace conflicting built-in defaults during config load, so overriding a default binding no longer leaves both actions attached to the same key. (#747) +- Worktree creation now checks out an existing local branch when the requested branch already exists instead of failing by trying to create it again. (#729) +- Worktree operations started through the socket API and plugin/UI flows now defer long-running Git work until the app runtime can drive it, keeping clients responsive and preserving plugin lifecycle events for worktree-created panes. (#657, #662, #686) +- OMP, OpenCode, Pi, Devin, and other official hook integrations now scope lifecycle and session reports to the intended root agent process more reliably, reducing stale or cross-process session adoption after restarts, nested commands, and new sessions. (#614, #712, #719, #765) + ### Fixed - Windows Terminal multiline text paste now reaches pane apps as one bracketed paste, so OMP, Pi, and similar prompts no longer submit each pasted line separately. Plain Esc, Shift+Enter, mouse, focus, resize, and Unicode paste handling are preserved on the Windows client path. (#670) - Local Herdr clients no longer treat raw `Ctrl+V` as a clipboard-image paste trigger, so pane apps such as Vim and Neovim receive block-visual `Ctrl+V` even when the desktop clipboard contains an image. `herdr --remote` keeps `keys.remote_image_paste = "ctrl+v"` by default. (#647) @@ -9,6 +21,19 @@ - Full-lifecycle hook agents can now recover when an old release/report sequence belongs to a previous agent generation. Herdr keeps process-exit validation active under lifecycle authority and re-anchors hook sequence guards after fresh session references or proven process exits. (#684) - OMP now reports a native session reference, so an OMP pane reappears in the Agents panel after exiting and rerunning `omp` in the same pane, and Herdr can resume it with `omp --resume=<session>`. Previously the released lifecycle hook stayed suppressed until a server restart. (#614) - Host terminal color query (OSC 10/11) replies that arrive split at their escape introducer no longer leak as text like `11;rgb:...` into the focused pane, most visible when launching agents that probe terminal colors on startup. (#549) +- Long CJK Git branch names in the sidebar now truncate by display width instead of overflowing or cutting at the wrong cell boundary. (#644) +- Temporary pane commands launched from API flows no longer steal focus from the previously focused pane after they finish. (#658) +- Root agent session restore now ignores child process reports that would otherwise overwrite the saved session for the owning pane. (#712) +- Kitty file-transfer media queries are now answered, allowing pane apps that rely on kitty graphics file support to detect image/file media capability correctly. (#732) +- Idle or slow clients no longer block server writes to other clients while the blocked client is waiting for output. (#726) +- GitHub Copilot CLI `ask_user` accept prompts are now detected as blocked so the Agents panel shows that the pane is waiting for input. (#725) +- Pane reads now skip wide-character spacer cells, avoiding duplicated or malformed output around double-width characters. (#698) +- Split pane border intersections now use the active pane color consistently. (#742, thanks @cullendotdev) +- The Windows installer checksum fallback no longer depends on `Get-FileHash`, improving compatibility with constrained PowerShell environments. (#751) +- Pi launched through npm wrappers on Windows is now detected as Pi instead of a generic wrapped process. (#754) +- Windows builds now force the system ConPTY path through a vendored `portable-pty` patch, avoiding the bundled-path startup failure seen in affected Windows environments. (#761) +- Key release events that fall back to encoded input no longer double-send text into pane apps. (#769) +- Remote clients now allow a longer initial handshake, improving `herdr --remote` startup over high-latency links. (#753) ## [0.7.0] - 2026-06-15 @@ -68,7 +93,6 @@ This is a hotfix release for v0.6.9. See the v0.6.9 notes for the full feature r - Mouse-click handling now respects `ui.prompt_new_tab_name`, so mouse-created tabs follow the same naming prompt setting as keyboard-created tabs. (#521, thanks @imrajyavardhan12) - Pasting now works in modal text inputs, including rename prompts, command prompts, and worktree dialogs. (#302) - Linux clipboard image reads now validate image payloads before accepting them, preventing malformed clipboard data from reaching pane image paste flows. (#534) -- Worktree creation now checks out an existing local branch instead of failing by trying to create it again. (#729) ### Added - Added remote auto-updates for agent detection manifests, with per-agent validation, local override precedence, `herdr server agent-manifests` diagnostics, and explain output showing remote manifest status. diff --git a/docs/next/README.md b/docs/next/README.md index 0e598db2..d8e46b36 100644 --- a/docs/next/README.md +++ b/docs/next/README.md @@ -6,7 +6,7 @@ </p> <p align="center"> - <a href="https://herdr.dev">herdr.dev</a> · <a href="#install">install</a> · <a href="#quick-start">quick start</a> · <a href="#supported-agents">supported agents</a> · <a href="https://herdr.dev/docs/integrations/">integrations</a> · <a href="https://herdr.dev/docs/configuration/">configuration</a> · <a href="https://herdr.dev/docs/socket-api/">socket api</a> + <a href="https://herdr.dev">herdr.dev</a> · <a href="#install">install</a> · <a href="#quick-start">quick start</a> · <a href="#supported-agents">supported agents</a> · <a href="https://herdr.dev/docs/integrations/">integrations</a> · <a href="https://herdr.dev/docs/configuration/">configuration</a> · <a href="https://herdr.dev/docs/socket-api/">socket api</a> · <a href="#sponsors">sponsor</a> </p> --- @@ -283,6 +283,12 @@ just test # unit tests just check # formatting, tests, and maintenance checks ``` +## sponsors + +herdr is built full-time, in the open, with no revenue behind it. sponsoring directly funds development, stability, and the path to a real agent runtime. + +[**→ become a sponsor**](https://github.com/sponsors/ogulcancelik) · enterprise / partnership: hey@herdr.dev · see [SPONSORS.md](./SPONSORS.md) for tiers. thank you 🐑 + ## license Herdr is dual-licensed: diff --git a/docs/next/website/src/content/docs/configuration.mdx b/docs/next/website/src/content/docs/configuration.mdx index bd11d12f..20eadb96 100644 --- a/docs/next/website/src/content/docs/configuration.mdx +++ b/docs/next/website/src/content/docs/configuration.mdx @@ -318,7 +318,7 @@ accent = "cyan" `mobile_width_threshold` controls the terminal width at or below which Herdr uses the mobile single-column layout. The default is 64 columns; increase it for foldables, tablets, or wide phone terminals. -The agent panel shows all agents across all spaces. `agent_panel_sort` can be `spaces` or `priority`; `workspaces` is accepted as an alias for `spaces`. `spaces` keeps agents grouped by space order. `priority` sorts by attention priority: blocked, done, working, idle, then unknown. Within the same status, agents that most recently changed state appear first. +The agent panel shows all agents across all spaces. `agent_panel_sort` can be `spaces` or `priority`; `workspaces` is accepted as an alias for `spaces`. `spaces` is the default and keeps agents grouped by space order. `priority` sorts by attention priority: blocked, done, working, idle, then unknown. Within the same status, agents that most recently changed state appear first. `confirm_close` controls whether closing a workspace asks for confirmation. `prompt_new_tab_name` controls whether new tabs ask for a label first. diff --git a/website/src/content/docs/agents.mdx b/website/src/content/docs/agents.mdx index 3215f64f..5e50dfdd 100644 --- a/website/src/content/docs/agents.mdx +++ b/website/src/content/docs/agents.mdx @@ -43,6 +43,10 @@ The screen snapshot comes from the recent bottom of the pane buffer, not the scr Claude Code, Codex, GitHub Copilot CLI, Droid, Qoder CLI, and Cursor Agent CLI integrations are intentionally not lifecycle authorities. They provide native session identity for restore, but their hooks do not cover the whole lifecycle. They can miss permission approval results, escape interrupts, or other transitions. For those agents, Herdr still uses screen manifest detection. +## VMs and sandbox wrappers + +On Linux, wrappers such as VMs, Bubblewrap, or `fence` can hide the real agent process from host `/proc`. Set `HERDR_AGENT=<agent>` on the command, for example `HERDR_AGENT=claude fence -- claude`, to tell Herdr which existing agent screen manifest to use. The hint is scoped to that foreground process; avoid exporting it globally from your shell unless every inherited foreground process should be treated as that agent. + ## Blocked state Blocked detection is deliberately strict for screen-manifest agents. Herdr only marks `blocked` when the live bottom-buffer snapshot matches known visible approval, question, or permission UI. If no manifest rule matches for a known agent, Herdr falls back to `idle` and labels that fallback as `default_known_agent_idle_fallback` in explain output. @@ -51,7 +55,7 @@ This means unusual new agent prompts may initially show as `idle` instead of `bl ## Detection manifests -Bundled manifests live inside Herdr. Herdr also checks herdr.dev for remote manifest updates and applies valid per-agent rule updates automatically without requiring a Herdr restart. Remote manifests are stored in Herdr's state directory. +Bundled manifests live inside Herdr. Herdr also checks herdr.dev for remote manifest updates and applies valid per-agent rule updates automatically without requiring a Herdr restart. Remote manifests are stored in Herdr's state directory. Set `[update] manifest_check = false` to disable background remote manifest checks. Local overrides can replace a remote or bundled manifest from the platform config directory: diff --git a/website/src/content/docs/cli-reference.mdx b/website/src/content/docs/cli-reference.mdx index f1079995..d841e564 100644 --- a/website/src/content/docs/cli-reference.mdx +++ b/website/src/content/docs/cli-reference.mdx @@ -91,7 +91,7 @@ herdr worktree open [--workspace ID | --cwd PATH] (--path PATH | --branch NAME) herdr worktree remove --workspace ID [--force] [--json] ``` -Worktrees are normal Herdr workspaces with Git checkout provenance. `worktree create` creates a Git worktree checkout, opens it as a workspace, and groups it with the parent repo workspace. Without `--path`, Herdr creates the checkout under `<worktrees.directory>/<repo>/<branch-slug>`. +Worktrees are normal Herdr workspaces with Git checkout provenance. `worktree create` creates a Git worktree checkout, opens it as a workspace, and groups it with the parent repo workspace. If `--branch` names an existing local branch, Herdr checks it out; otherwise it creates the branch from `--base` or `HEAD`. Without `--path`, Herdr creates the checkout under `<worktrees.directory>/<repo>/<branch-slug>`. `workspace close` closes Herdr state only. `worktree remove` is the explicit checkout deletion path; it runs `git worktree remove`, never deletes the branch, and requires `--force` when Git refuses a dirty checkout. diff --git a/website/src/content/docs/configuration.mdx b/website/src/content/docs/configuration.mdx index 188d1237..20eadb96 100644 --- a/website/src/content/docs/configuration.mdx +++ b/website/src/content/docs/configuration.mdx @@ -33,17 +33,23 @@ Herdr shows first-run setup when `onboarding` is missing or true. Continuing fro onboarding = false ``` -## Update channel +## Updates Linux and macOS direct installs use the stable update channel by default. Windows beta installs default to preview and cannot switch to stable until stable Windows releases are available. ```toml [update] channel = "stable" +version_check = true +manifest_check = true ``` Set `channel = "preview"` to make `herdr update` install manually published preview builds from the current development branch. Homebrew, mise, and Nix installs ignore the preview channel and update through their package managers. +Set `version_check = false` to disable background checks for new Herdr versions. Manual `herdr update` still uses the configured channel. + +Set `manifest_check = false` to disable background remote agent-detection manifest checks. Herdr still uses bundled manifests and local overrides. + ## Reload config Reload a running server after editing `config.toml`: @@ -96,7 +102,7 @@ directory = "~/.herdr/worktrees" Herdr creates checkouts under `<directory>/<repo>/<branch-slug>`. For sibling-style checkouts, set this to a directory such as `~/Projects/herdr-worktrees`. Relative values are resolved to an absolute path when the app applies the config. -Worktree actions are available from Git workspace rows. `New worktree` creates a branch and checkout, opens it as a new Herdr workspace, and groups it under the source workspace. `Open worktree...` lists existing Git worktree checkouts for that repo; choosing an already-open checkout focuses it, and choosing a closed checkout opens it in the same group. +Worktree actions are available from Git workspace rows. `New worktree` creates a checkout, checks out an existing local branch when the entered branch already exists, otherwise creates the branch, opens it as a new Herdr workspace, and groups it under the source workspace. `Open worktree...` lists existing Git worktree checkouts for that repo; choosing an already-open checkout focuses it, and choosing a closed checkout opens it in the same group. Grouped worktrees still behave like normal Herdr workspaces: they can be focused, renamed, closed, and contain their own tabs and panes. The parent row is the original workspace. Closing the parent row closes the whole Herdr group, but it does not delete checkout folders or branches. @@ -151,6 +157,7 @@ navigate_pane_left = "h" navigate_pane_down = "j" navigate_pane_up = "k" navigate_pane_right = "l" +remote_image_paste = "ctrl+v" new_tab = "prefix+c" previous_tab = "prefix+p" next_tab = "prefix+n" @@ -191,6 +198,8 @@ next_tab = ["prefix+n", "ctrl+alt+]"] `last_pane` switches back to the last focused pane across workspaces and tabs. It is unset by default because the tmux-style pane binding `prefix+l` is already used for pane-right focus. +`remote_image_paste` is only active in `herdr --remote`. It is the local-client shortcut that sends a local clipboard image to the remote pane. Set it to an empty string to disable the raw-key shortcut; terminal paste-image signals still work when the outer terminal sends them. + Key strings accept plain keys, modifier combinations such as `ctrl+a`, `shift+n`, `alt+1`, `cmd+k`, and special keys such as `enter`, `tab`, `esc`, `left`, `right`, `up`, and `down`. Named punctuation such as `minus`, `comma`, `ampersand`, `plus`, and `backtick` is also accepted. Plain direct printable keys such as `n` are unsafe because they intercept typing; use `prefix+n` unless you intentionally want a direct binding. The `navigate_workspace_*` and `navigate_pane_*` fields are navigate-mode-only and may use plain keys such as `j` or `k`; they must not use `prefix+`, `esc`, `enter`, `tab`, `shift+tab`, `left`, `right`, or unmodified `1` through `9`. Left and right arrows are permanent aliases for pane-left and pane-right navigation. These navigate-mode shortcuts are independent from general action bindings such as `focus_pane_down = "prefix+j"`; when both use the same key, the navigate-mode shortcut wins while navigate mode is open. Alt, Cmd/Super, and punctuation with modifiers depend on your terminal and tmux settings. If you have old custom keybindings and want the new defaults, run `herdr config reset-keys`. Herdr backs up `config.toml`, removes `[keys]` and `[[keys.command]]`, and uses built-in v2 defaults after restart or `herdr server reload-config`. @@ -254,6 +263,18 @@ Built-in themes: Use `terminal` when you want Herdr UI colors to follow your host terminal's ANSI palette. +To let Herdr switch its own UI theme when the host terminal reports a light/dark appearance change, enable theme auto-switching: + +```toml +[theme] +name = "catppuccin" +auto_switch = true +light_name = "catppuccin-latte" +dark_name = "catppuccin" +``` + +`auto_switch` defaults to `false`, so existing theme configs keep manual behavior. If `light_name` or `dark_name` is omitted, Herdr uses the matching built-in sibling for the configured `name` when one exists, such as `tokyo-night`/`tokyo-night-day` or `gruvbox`/`gruvbox-light`. Manual theme selection in Settings disables `auto_switch`. + You can override individual colors: ```toml @@ -286,8 +307,10 @@ redraw_on_focus_gained = true mouse_scroll_lines = 3 confirm_close = true prompt_new_tab_name = true +pane_borders = true +pane_gaps = true show_agent_labels_on_pane_borders = false -agent_panel_scope = "all" +agent_panel_sort = "spaces" accent = "cyan" ``` @@ -295,7 +318,7 @@ accent = "cyan" `mobile_width_threshold` controls the terminal width at or below which Herdr uses the mobile single-column layout. The default is 64 columns; increase it for foldables, tablets, or wide phone terminals. -`agent_panel_scope` can be `all` or `current`. Use `current` if you only want the agent panel to show agents in the active workspace. +The agent panel shows all agents across all spaces. `agent_panel_sort` can be `spaces` or `priority`; `workspaces` is accepted as an alias for `spaces`. `spaces` is the default and keeps agents grouped by space order. `priority` sorts by attention priority: blocked, done, working, idle, then unknown. Within the same status, agents that most recently changed state appear first. `confirm_close` controls whether closing a workspace asks for confirmation. `prompt_new_tab_name` controls whether new tabs ask for a label first. @@ -307,6 +330,8 @@ Set `redraw_on_focus_gained = false` to avoid the visible full-screen refresh wh Set `mouse_scroll_lines` to change how many pane scrollback lines each mouse wheel notch scrolls. The default is 3. Pane apps that request mouse reporting still receive wheel events directly. Alternate-screen apps have no scrollback to scroll; see [Scrollback](#scrollback). +Set `pane_borders = false` to remove split pane borders. Set `pane_gaps = false` to make split panes share compact divider borders. With borders disabled, pane gaps use one blank terminal cell between panes. Terminal cells are usually taller than they are wide, so a one-row gap between top/bottom panes can look larger than a one-column gap between left/right panes. + Set `show_agent_labels_on_pane_borders = true` if you want detected agent labels in split pane borders when no manual pane label is set. ## Notifications diff --git a/website/src/content/docs/integrations.mdx b/website/src/content/docs/integrations.mdx index 797456e6..605a55d1 100644 --- a/website/src/content/docs/integrations.mdx +++ b/website/src/content/docs/integrations.mdx @@ -56,9 +56,9 @@ Herdr uses integrations in two different ways: Custom socket integrations can also report state when they define state that is not visible in the native terminal UI. -Some integrations report native agent session references. Herdr uses official session references to resume Claude Code, Codex, Devin CLI, Droid, Kimi Code CLI, Qoder CLI, Cursor Agent CLI, GitHub Copilot CLI, Pi, Hermes Agent, OpenCode, and Kilo Code CLI panes after a Herdr server restart unless `[session] resume_agents_on_restore = false` disables it. +Some integrations report native agent session references. Herdr uses official session references to resume Claude Code, Codex, Devin CLI, Droid, Kimi Code CLI, Qoder CLI, Cursor Agent CLI, GitHub Copilot CLI, Pi, OMP, Hermes Agent, OpenCode, and Kilo Code CLI panes after a Herdr server restart unless `[session] resume_agents_on_restore = false` disables it. -Native session restore requires current Herdr integrations: Pi integration version `2`, Claude Code version `6`, Codex version `5`, GitHub Copilot CLI version `2`, Devin CLI version `1`, Droid version `2`, Kimi Code CLI version `3`, Qoder CLI version `2`, Cursor Agent CLI version `1`, OpenCode version `5`, Kilo Code CLI version `1`, or Hermes Agent version `2`. OMP integration version `2` reports agent state only. Check installed versions with `herdr integration status`. +Native session restore requires current Herdr integrations: Pi integration version `2`, OMP version `3`, Claude Code version `6`, Codex version `5`, GitHub Copilot CLI version `2`, Devin CLI version `2`, Droid version `2`, Kimi Code CLI version `3`, Qoder CLI version `2`, Cursor Agent CLI version `1`, OpenCode version `5`, Kilo Code CLI version `1`, or Hermes Agent version `2`. Check installed versions with `herdr integration status`. ## Pi @@ -92,7 +92,7 @@ Herdr writes the bundled extension to: If `PI_CODING_AGENT_DIR` is set, Herdr writes to `$PI_CODING_AGENT_DIR/extensions/herdr-omp-agent-state.ts` instead. The extensions directory must already exist. Uninstall removes only that extension file. -The OMP integration reports `omp` as the agent label through Herdr's socket API. It does not require native process detection for the `omp` executable. +The OMP integration reports `omp` as the agent label, lifecycle state, and native session identity through Herdr's socket API. It does not require native process detection for the `omp` executable, and Herdr can resume an OMP pane with `omp --resume=<session>` after a server restart. ## Claude Code diff --git a/website/src/content/docs/session-state.mdx b/website/src/content/docs/session-state.mdx index 6ff70270..0c7f68ac 100644 --- a/website/src/content/docs/session-state.mdx +++ b/website/src/content/docs/session-state.mdx @@ -67,11 +67,12 @@ Native session restore requires these Herdr integration versions or newer: | Agent | Minimum Herdr integration version | Resume command | | --- | --- | --- | | Pi | `2` | `pi --session <path-or-id>` | +| OMP | `3` | `omp --resume=<path-or-id>` | | Claude Code | `6` | `claude --resume <id>` | | Codex | `5` | `codex resume <id>` | | Cursor Agent CLI | `1` | `cursor-agent --resume <id>` | | GitHub Copilot CLI | `2` | `copilot --resume=<id>` | -| Devin CLI | `1` | `devin --resume <id>` | +| Devin CLI | `2` | `devin --resume <id>` | | Droid | `2` | `droid --resume <id>` | | Kimi Code CLI | `3` | `kimi --session <id>` | | Qoder CLI | `2` | `qodercli --resume <id>` | @@ -79,8 +80,6 @@ Native session restore requires these Herdr integration versions or newer: | Kilo Code CLI | `1` | `kilo --session <id>` | | Hermes Agent | `2` | `hermes --resume <id>` | -OMP integration version `2` reports agent state, but does not report native session references for restore. - Run `herdr integration status` to check installed integration versions. Reinstall outdated integrations with `herdr integration install <agent>`. Unsupported, missing, invalid, duplicated, or stale session references restore as normal shells in the saved pane directory. diff --git a/website/src/content/docs/socket-api.mdx b/website/src/content/docs/socket-api.mdx index 74697fd8..0db2e3c6 100644 --- a/website/src/content/docs/socket-api.mdx +++ b/website/src/content/docs/socket-api.mdx @@ -268,7 +268,7 @@ Set or clear the foreground client's outer terminal window title: `type: "client_window_title"` with `changed` and reason `set`, `cleared`, or `no_foreground_client`. -Worktree methods manage Git checkouts as Herdr workspaces. `worktree.create` creates a checkout and returns the new `workspace`, `tab`, `root_pane`, and `worktree` records. `worktree.open` opens an existing checkout or returns the already-open workspace. `worktree.remove` runs `git worktree remove` against a linked child workspace and never deletes the branch. +Worktree methods manage Git checkouts as Herdr workspaces. `worktree.create` creates a checkout and returns the new `workspace`, `tab`, `root_pane`, and `worktree` records. If the requested branch already exists locally, it checks out that branch; otherwise it creates the branch from the requested base or `HEAD`. `worktree.open` opens an existing checkout or returns the already-open workspace. `worktree.remove` runs `git worktree remove` against a linked child workspace and never deletes the branch. Create a worktree from a source workspace: diff --git a/website/src/content/docs/windows-beta.mdx b/website/src/content/docs/windows-beta.mdx index d64353c3..539abf8d 100644 --- a/website/src/content/docs/windows-beta.mdx +++ b/website/src/content/docs/windows-beta.mdx @@ -61,7 +61,7 @@ Kitty graphics remains experimental and is not claimed as Windows-supported yet. Herdr's pane text copy works on Windows beta. Drag-select text inside a pane to copy through Herdr. -For paste, use `ctrl+shift+v` in Windows Terminal, or hold `shift` and right-click to use the outer terminal paste action instead of sending the click through Herdr. +For text paste, use `ctrl+shift+v` in Windows Terminal. Multiline text paste is bracketed so shells and agent prompts receive it as one paste instead of submitting each line separately. Hold `shift` and right-click to use the outer terminal paste action instead of sending the click through Herdr. ## Not supported on Windows beta |
