From c97f1a5c0046514fae4d92240dbceb765cbaef8a Mon Sep 17 00:00:00 2001 From: Ogulcan Celik Date: Tue, 19 May 2026 14:44:34 +0300 Subject: [PATCH] docs: finalize release readiness updates --- .pi/prompts/pre-release-audit.md | 2 +- CHANGELOG.md | 22 +++++++++++++++++++ README.md | 10 +++++---- docs/next/CHANGELOG.md | 14 +++++++++--- docs/next/README.md | 2 +- .../src/content/docs/configuration.mdx | 8 ++++++- justfile | 16 +++++++------- website/src/content/docs/agents.mdx | 2 ++ website/src/content/docs/cli-reference.mdx | 2 ++ website/src/content/docs/configuration.mdx | 8 ++++++- website/src/content/docs/integrations.mdx | 15 ++++++++++++- 11 files changed, 81 insertions(+), 20 deletions(-) diff --git a/.pi/prompts/pre-release-audit.md b/.pi/prompts/pre-release-audit.md index 11e42eb0..4858f598 100644 --- a/.pi/prompts/pre-release-audit.md +++ b/.pi/prompts/pre-release-audit.md @@ -53,7 +53,7 @@ Process: - Inspect commit bodies for issue reference lines in the form `refs #`. - Flag normal commits that use GitHub closing keywords like `fixes #`, `closes #`, or `resolves #`, because they close issues before release when they land on `master`. - For each shipped issue reference, check whether the changelog has a matching user-facing entry that mentions `#` when appropriate. - - For each merged external PR, check whether the changelog entry mentions the PR number and thanks the contributor in the existing style, e.g. `(#129, thanks @username)`. If the PR primarily ships an issue fix, include both the issue and PR numbers when useful, e.g. `(#128, #129, thanks @username)`. + - For each merged external human PR, check whether the changelog entry mentions the PR number and thanks the contributor in the existing style, e.g. `(#129, thanks @username)`. If the PR primarily ships an issue fix, include both the issue and PR numbers when useful, e.g. `(#128, #129, thanks @username)`. Do not add thanks text for maintainer-owned bots or automation accounts such as `kangal-bot` or `dependabot`. - Do not require or add GitHub closing keywords like `fixes #`, `closes #`, or `resolves #` to changelog entries or release notes. - List shipped issue references under `Issue references to close after release:` so the release operator can verify what release CI will close after the GitHub Release is published. - Flag stale entries that do not appear to correspond to shipped changes in the range. diff --git a/CHANGELOG.md b/CHANGELOG.md index f7a80598..3c4fef72 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,28 @@ ## Unreleased +### Added +- Added the `terminal` built-in theme, which uses the host terminal's ANSI palette for Herdr UI colors. (#140, #146, thanks @babymastodon) +- Added Hermes Agent foreground-process detection with basic idle, working, and blocked heuristics. (#144) +- Added a Hermes Agent plugin integration for direct state reporting. (#144) +- Added `ui.sidebar_min_width` and `ui.sidebar_max_width` to configure the sidebar's expanded resize bounds. Defaults remain 18 and 36 columns; existing configs are unchanged. (#132, #135, thanks @ChihGodlee) + +### Fixed +- Running the internal `herdr client` command from inside Herdr now respects the nested-launch guard, and the command is no longer advertised in root help. (#187) +- The Herdr agent skill now refuses to claim pane ownership unless it is running inside Herdr. (#152) +- Terminal-style docs code blocks now keep their copy button in the top-right corner. (#190) +- The sidebar `new` workspace button now aligns with the sidebar's left padding. (#189) +- Herdr now preserves `session.json` symlinks when saving persistent session state. (#139, #147, thanks @cloudmanic) +- Alt+Backspace is now preserved when forwarded into panes. (#155, #165) +- Directional pane focus now works while a tab is zoomed. (#151, #167) +- Agent detection now prefers the foreground process group leader, reducing false matches from child helper processes. (#161, #172) +- Remote attach now uses a matching `herdr` already available on the remote `PATH` before installing a new copy. (#170) +- Modified Enter input such as Shift+Enter is now preserved in supported terminals. (#168) +- Sidebar agent entries now show user-assigned agent names when available. (#145) + +### Breaking Changes +- The client/server protocol is now version 7. Stop and restart any running v0.5.10 server before attaching with this release. + ## [0.5.10] - 2026-05-17 ### Added diff --git a/README.md b/README.md index d22d4051..f9d07248 100644 --- a/README.md +++ b/README.md @@ -137,7 +137,7 @@ not a gui window, not a web dashboard, not electron. herdr runs inside whatever - **tabs** — first-class in the socket api and cli - **mouse-native** — click panes/tabs/workspaces/agents, drag borders, select text to copy, right-click menus; not keyboard-only - **notifications** — sounds and toasts for background events; tab-aware suppression -- **17 built-in themes** — catppuccin, tokyo night, gruvbox, one, solarized, kanagawa, rosé pine, vesper, and light variants for the main palettes +- **18 built-in themes** — catppuccin, terminal, tokyo night, gruvbox, one, solarized, kanagawa, rosé pine, vesper, and light variants for the main palettes - **session persistence** — pane processes survive client detach; sessions restore after full restart ## agents can use herdr too @@ -178,6 +178,7 @@ automatic detection works out of the box. process name matching plus terminal ou | [amp](https://ampcode.com) | ✓ | ✓ | ✓ | | [opencode](https://github.com/anomalyco/opencode) | ✓ | ✓ | ✓ | | [grok cli](https://x.ai/grok) | ✓ | ✓ | ✓ | +| [hermes agent](https://github.com/NousResearch/hermes-agent) | ✓ | ✓ | ✓ | detected but not fully tested: gemini cli, cursor agent, cline, kimi, github copilot cli. @@ -185,13 +186,14 @@ for agents outside the built-in list, herdr still works as a terminal multiplexe ### direct integrations -the built-in pi, claude code, codex, and opencode integrations forward semantic state to herdr over the socket api. install with: +the built-in pi, claude code, codex, opencode, and hermes integrations forward semantic state to herdr over the socket api. install with: ```bash herdr integration install pi herdr integration install claude herdr integration install codex herdr integration install opencode +herdr integration install hermes ``` see the [integrations docs](https://herdr.dev/docs/integrations/) for setup details. @@ -263,7 +265,7 @@ full logging and environment variable details: [configuration docs](https://herd ## docs - [configuration](https://herdr.dev/docs/configuration/) — keybindings, themes, notifications, environment variables -- [integrations](https://herdr.dev/docs/integrations/) — pi, claude code, codex, opencode integrations +- [integrations](https://herdr.dev/docs/integrations/) — pi, claude code, codex, opencode, hermes integrations - [`SKILL.md`](./SKILL.md) — reusable agent skill - [socket api](https://herdr.dev/docs/socket-api/) — socket protocol and cli reference @@ -284,7 +286,7 @@ cargo build --release ```bash just test # unit tests -just test-all # full local test suite +just check # formatting, tests, and maintenance checks ``` ## license diff --git a/docs/next/CHANGELOG.md b/docs/next/CHANGELOG.md index d5f1b66c..3c4fef72 100644 --- a/docs/next/CHANGELOG.md +++ b/docs/next/CHANGELOG.md @@ -3,15 +3,23 @@ ## Unreleased ### Added -- Added Hermes Agent foreground-process detection with basic idle, working, and blocked heuristics. -- Added a Hermes Agent plugin integration for direct state reporting. -- Added `ui.sidebar_min_width` and `ui.sidebar_max_width` to configure the sidebar's expanded resize bounds. Defaults remain 18 and 36 columns; existing configs are unchanged. +- Added the `terminal` built-in theme, which uses the host terminal's ANSI palette for Herdr UI colors. (#140, #146, thanks @babymastodon) +- Added Hermes Agent foreground-process detection with basic idle, working, and blocked heuristics. (#144) +- Added a Hermes Agent plugin integration for direct state reporting. (#144) +- Added `ui.sidebar_min_width` and `ui.sidebar_max_width` to configure the sidebar's expanded resize bounds. Defaults remain 18 and 36 columns; existing configs are unchanged. (#132, #135, thanks @ChihGodlee) ### Fixed - Running the internal `herdr client` command from inside Herdr now respects the nested-launch guard, and the command is no longer advertised in root help. (#187) - The Herdr agent skill now refuses to claim pane ownership unless it is running inside Herdr. (#152) - Terminal-style docs code blocks now keep their copy button in the top-right corner. (#190) - The sidebar `new` workspace button now aligns with the sidebar's left padding. (#189) +- Herdr now preserves `session.json` symlinks when saving persistent session state. (#139, #147, thanks @cloudmanic) +- Alt+Backspace is now preserved when forwarded into panes. (#155, #165) +- Directional pane focus now works while a tab is zoomed. (#151, #167) +- Agent detection now prefers the foreground process group leader, reducing false matches from child helper processes. (#161, #172) +- Remote attach now uses a matching `herdr` already available on the remote `PATH` before installing a new copy. (#170) +- Modified Enter input such as Shift+Enter is now preserved in supported terminals. (#168) +- Sidebar agent entries now show user-assigned agent names when available. (#145) ### Breaking Changes - The client/server protocol is now version 7. Stop and restart any running v0.5.10 server before attaching with this release. diff --git a/docs/next/README.md b/docs/next/README.md index 0a856f63..f9d07248 100644 --- a/docs/next/README.md +++ b/docs/next/README.md @@ -286,7 +286,7 @@ cargo build --release ```bash just test # unit tests -just test-all # full local test suite +just check # formatting, tests, and maintenance checks ``` ## license diff --git a/docs/next/website/src/content/docs/configuration.mdx b/docs/next/website/src/content/docs/configuration.mdx index 2f639be4..6d654310 100644 --- a/docs/next/website/src/content/docs/configuration.mdx +++ b/docs/next/website/src/content/docs/configuration.mdx @@ -120,7 +120,9 @@ name = "catppuccin" Built-in themes: -`catppuccin`, `catppuccin-latte`, `tokyo-night`, `tokyo-night-day`, `dracula`, `nord`, `gruvbox`, `gruvbox-light`, `one-dark`, `one-light`, `solarized`, `solarized-light`, `kanagawa`, `kanagawa-lotus`, `rose-pine`, `rose-pine-dawn`, `vesper`. +`catppuccin`, `catppuccin-latte`, `terminal`, `tokyo-night`, `tokyo-night-day`, `dracula`, `nord`, `gruvbox`, `gruvbox-light`, `one-dark`, `one-light`, `solarized`, `solarized-light`, `kanagawa`, `kanagawa-lotus`, `rose-pine`, `rose-pine-dawn`, `vesper`. + +Use `terminal` when you want Herdr UI colors to follow your host terminal's ANSI palette. You can override individual colors: @@ -145,6 +147,8 @@ Common options: ```toml [ui] sidebar_width = 32 +sidebar_min_width = 18 +sidebar_max_width = 36 mouse_capture = true confirm_close = true prompt_new_tab_name = true @@ -153,6 +157,8 @@ agent_panel_scope = "all" accent = "cyan" ``` +`sidebar_min_width` and `sidebar_max_width` control the expanded sidebar's resize bounds in columns. The defaults are 18 and 36. + `agent_panel_scope` can be `all` or `current`. Use `current` if you only want the agent panel to show agents in the active workspace. Set `mouse_capture = false` if you want your terminal to handle normal clicks, such as command-clicking URLs. diff --git a/justfile b/justfile index 01b387a1..658d6d7a 100644 --- a/justfile +++ b/justfile @@ -53,20 +53,20 @@ release-docs-check: done @test -d docs/next/website/src/content/docs @for file in website/src/content/docs/*.mdx; do \ - staged="docs/next/website/src/content/docs/$$(basename "$$file")"; \ - if [ ! -f "$$staged" ]; then \ - echo "error: $$staged is missing; docs/next/website/src/content/docs must mirror website/src/content/docs"; \ + staged="docs/next/website/src/content/docs/$(basename "$file")"; \ + if [ ! -f "$staged" ]; then \ + echo "error: $staged is missing; docs/next/website/src/content/docs must mirror website/src/content/docs"; \ exit 1; \ fi; \ - if ! diff -u "$$file" "$$staged"; then \ - echo "error: $$file differs from $$staged; finalize website docs before releasing"; \ + if ! diff -u "$file" "$staged"; then \ + echo "error: $file differs from $staged; finalize website docs before releasing"; \ exit 1; \ fi; \ done @for file in docs/next/website/src/content/docs/*.mdx; do \ - released="website/src/content/docs/$$(basename "$$file")"; \ - if [ ! -f "$$released" ]; then \ - echo "error: $$file has no matching released website doc"; \ + released="website/src/content/docs/$(basename "$file")"; \ + if [ ! -f "$released" ]; then \ + echo "error: $file has no matching released website doc"; \ exit 1; \ fi; \ done diff --git a/website/src/content/docs/agents.mdx b/website/src/content/docs/agents.mdx index ae21defe..e3d2bc0c 100644 --- a/website/src/content/docs/agents.mdx +++ b/website/src/content/docs/agents.mdx @@ -18,6 +18,7 @@ Automatic detection works out of the box for common coding agents. | Amp | yes | yes | yes | | OpenCode | yes | yes | yes | | Grok CLI | yes | yes | yes | +| Hermes Agent | yes | yes | yes | | GitHub Copilot CLI | yes | yes | yes | Detected but less thoroughly tested: Gemini CLI, Cursor Agent, Cline, and Kimi. @@ -51,6 +52,7 @@ herdr integration install pi herdr integration install claude herdr integration install codex herdr integration install opencode +herdr integration install hermes ``` Check installed integration versions: diff --git a/website/src/content/docs/cli-reference.mdx b/website/src/content/docs/cli-reference.mdx index 78487b6a..57f495c1 100644 --- a/website/src/content/docs/cli-reference.mdx +++ b/website/src/content/docs/cli-reference.mdx @@ -165,10 +165,12 @@ herdr integration install pi herdr integration install claude herdr integration install codex herdr integration install opencode +herdr integration install hermes herdr integration uninstall pi herdr integration uninstall claude herdr integration uninstall codex herdr integration uninstall opencode +herdr integration uninstall hermes herdr integration status [--outdated-only] ``` diff --git a/website/src/content/docs/configuration.mdx b/website/src/content/docs/configuration.mdx index 2f639be4..6d654310 100644 --- a/website/src/content/docs/configuration.mdx +++ b/website/src/content/docs/configuration.mdx @@ -120,7 +120,9 @@ name = "catppuccin" Built-in themes: -`catppuccin`, `catppuccin-latte`, `tokyo-night`, `tokyo-night-day`, `dracula`, `nord`, `gruvbox`, `gruvbox-light`, `one-dark`, `one-light`, `solarized`, `solarized-light`, `kanagawa`, `kanagawa-lotus`, `rose-pine`, `rose-pine-dawn`, `vesper`. +`catppuccin`, `catppuccin-latte`, `terminal`, `tokyo-night`, `tokyo-night-day`, `dracula`, `nord`, `gruvbox`, `gruvbox-light`, `one-dark`, `one-light`, `solarized`, `solarized-light`, `kanagawa`, `kanagawa-lotus`, `rose-pine`, `rose-pine-dawn`, `vesper`. + +Use `terminal` when you want Herdr UI colors to follow your host terminal's ANSI palette. You can override individual colors: @@ -145,6 +147,8 @@ Common options: ```toml [ui] sidebar_width = 32 +sidebar_min_width = 18 +sidebar_max_width = 36 mouse_capture = true confirm_close = true prompt_new_tab_name = true @@ -153,6 +157,8 @@ agent_panel_scope = "all" accent = "cyan" ``` +`sidebar_min_width` and `sidebar_max_width` control the expanded sidebar's resize bounds in columns. The defaults are 18 and 36. + `agent_panel_scope` can be `all` or `current`. Use `current` if you only want the agent panel to show agents in the active workspace. Set `mouse_capture = false` if you want your terminal to handle normal clicks, such as command-clicking URLs. diff --git a/website/src/content/docs/integrations.mdx b/website/src/content/docs/integrations.mdx index a447688c..01e72e16 100644 --- a/website/src/content/docs/integrations.mdx +++ b/website/src/content/docs/integrations.mdx @@ -1,6 +1,6 @@ --- title: Integrations -description: Install Herdr integrations for Pi, Claude Code, Codex, and OpenCode. +description: Install Herdr integrations for Pi, Claude Code, Codex, OpenCode, and Hermes Agent. --- Herdr detects supported agents automatically. Integrations make that detection more precise by reporting semantic state directly to Herdr. @@ -14,6 +14,7 @@ herdr integration install pi herdr integration install claude herdr integration install codex herdr integration install opencode +herdr integration install hermes ``` ## Uninstall integrations @@ -23,6 +24,7 @@ herdr integration uninstall pi herdr integration uninstall claude herdr integration uninstall codex herdr integration uninstall opencode +herdr integration uninstall hermes ``` ## How Herdr uses integrations @@ -83,6 +85,17 @@ herdr integration install opencode The plugin reports semantic state while OpenCode runs inside a Herdr pane. +## Hermes Agent + +Install the Hermes Agent plugin: + +```bash +herdr integration install hermes +``` + +Herdr writes `~/.hermes/plugins/herdr-agent-state/` and enables `herdr-agent-state` in `~/.hermes/config.yaml`. Restart Hermes after installing so the plugin loads. + +The plugin reports lifecycle, tool, and approval state while Hermes runs inside a Herdr pane. Native screen heuristics remain available when the plugin is not installed. ## Custom status labels