Skip to content

Releases: jeffarese/herdr-bar

v0.11.0

Choose a tag to compare

@github-actions github-actions released this 21 Oct 10:32

What's Changed

  • Add a follow_new_sessions setting so the next session in a pane renames its tab by @romaklimenko in #22

Full Changelog: v0.10.0...v0.11.0

v0.10.0

Choose a tag to compare

@github-actions github-actions released this 21 Oct 09:57

What's Changed

Full Changelog: v0.9.1...v0.10.0

v0.9.1

Choose a tag to compare

@github-actions github-actions released this 17 Oct 08:44

What's Changed

  • Remove the Python implementation; release 0.9.1 by @jeffarese in #16

Full Changelog: v0.9.0...v0.9.1

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 17 Oct 06:02

Full Changelog: v0.8.0...v0.9.0

herdr-bar 0.8.0 — Windows support

Choose a tag to compare

@jeffarese jeffarese released this 16 Oct 12:33

herdr-bar now runs natively on Windows (#7, #12, thanks @romaklimenko), and the per-row running time can be turned off (#11, thanks @mainendra).

  • Windows. The bar draws on the Windows console, talks to Herdr over the named pipe behind HERDR_SOCKET_PATH, and reads running times from the kernel. The title and tab status watcher polls every two seconds on Windows instead of following an event stream.
  • Windows keybinding. Bind the new herdr-bar.open-windows action instead of herdr-bar.open. Windows has no sh, and Herdr does not allow two actions with the same id. On Linux and macOS, open is unchanged and keeps its sh -c one-liner, so opening the bar costs no extra interpreter startup.
  • Windows Python. python3 must start Python 3.9+. The Microsoft Store build of Python provides it; the python.org installer does not.
  • Task titles skip a Windows console's default title, the path of the program that opened it.
  • New running_time option (default true). Set "running_time": false to hide the per-row running time and skip the pane.process_info and ps reads behind it.

Upgrade:

herdr plugin install jeffarese/herdr-bar --ref v0.8.0

On Windows, bind the bar in your herdr config.toml:

[[keys.command]]
key = "prefix+k"
type = "plugin_action"
command = "herdr-bar.open-windows"
description = "command bar"

After upgrading in an already running server, open the bar or run herdr plugin action invoke herdr-bar.start-titles.

Requires Herdr 0.9.0+ and Python 3.9+.

Validation: 422 tests pass locally on Python 3.9 and 3.14 (8 Windows-only tests skip on macOS). Pinned Ruff, manifest/version checks, static rendering, and render regression checks pass. The contributor tested Windows support live on Windows 11 with herdr 0.9.3, through the same python3 run.py --open command that open-windows now runs.

GitHub CI passed for commit 10d8467c49463d88553115f916711341b29f069b, covering Linux, macOS and Windows with Python 3.9/3.11/3.13 where supported.

herdr-bar 0.7.3 — optional lowercase titles

Choose a tag to compare

@jeffarese jeffarese released this 10 Oct 06:22

Add the requested lowercase_titles option for automatic tab titles (#10).

  • Set "lowercase_titles": true in the plugin's config.json to lowercase generated Claude and Codex task titles, including Claude transcript fallback.
  • Defaults to false, preserving the existing title casing. Custom tab, pane, and agent names retain their original case.
  • The running watcher reloads this setting within two seconds, without a restart. Turning it off restores the source casing for titles still owned by the plugin.

Upgrade:

herdr plugin install jeffarese/herdr-bar --ref v0.7.3

Find the config directory with herdr plugin config-dir herdr-bar and add "lowercase_titles": true to its config.json. After upgrading in an already running server, open the bar or run herdr plugin action invoke herdr-bar.start-titles.

Requires Herdr 0.9.0+ and Python 3.9+.

Validation: 400 tests pass locally, including a real watcher process reloading the lowercase setting with status prefixes enabled. Pinned Ruff, Python 3.9 syntax, manifest/version checks, static rendering, and render regression checks pass. LSP diagnostics show no new errors.

GitHub CI passed for commit e22455068e26340b6be02cec8a07707fc1f11ae1, covering Linux and macOS with Python 3.9/3.11/3.13 where supported.

herdr-bar 0.7.2 — automatic titles by default

Choose a tag to compare

@jeffarese jeffarese released this 07 Oct 05:03

Automatic task titles now work without an agent session ID and are enabled by default when no competing tab-renaming plugin is detected.

  • Use Claude and Codex terminal task titles even when Herdr has not reported a session ID. Track ownership by pane and terminal, and bind the session ID when it arrives.
  • Keep manual names and the existing competing-plugin protections. An explicit auto_titles: false still disables naming; status prefixes remain off by default.
  • Claude transcript fallback still requires a session ID.

Upgrade:

herdr plugin install jeffarese/herdr-bar --ref v0.7.2

After upgrading in an already running server, open the bar or run herdr plugin action invoke herdr-bar.start-titles.

Requires Herdr 0.9.0+ and Python 3.9+.

Validation: 398 tests pass locally, along with pinned lint, manifest validation, static rendering, and render regression checks.

GitHub CI passed for the release commit, covering Linux and macOS with Python 3.9/3.11/3.13 where supported.

herdr-bar 0.7.1 — opt-in tab updates and renaming conflict fixes

Choose a tag to compare

@jeffarese jeffarese released this 05 Oct 05:19

Fix the tab-renaming conflict reported in #9. Automatic task titles and tab status prefixes are now independent opt-in features, both off by default.

  • Give enabled naming plugins priority: skip all automatic tab writes, including cleanup, when a recognized renamer is present. Detection covers known plugins and naming metadata; custom IDs can be added with tab_renaming_plugins.
  • Check the plugin registry before each automatic write. If the registry cannot be read, skip the write.
  • Yield a tab after another writer changes its label, preserving that decision across watcher restarts. Restore only status labels still owned by herdr-bar.
  • Reload auto_titles and tab_status while watching, and exit when both are disabled. Search, agent icons in the popup, and manual renaming work without a watcher.

Upgrade:

herdr plugin install jeffarese/herdr-bar --ref v0.7.1

To use optional tab updates without another renaming plugin, enable either auto_titles or tab_status in the plugin's config.json, then open the bar or invoke herdr-bar.start-titles. Existing explicit tab_status: true settings remain enabled. Task titles previously written are kept.

Requires Herdr 0.9.0+ and Python 3.9+.

Validation: 391 tests pass locally; lint, manifest validation, static rendering, and render regression checks pass.

GitHub CI passed for the release commit, covering Linux and macOS with Python 3.9/3.11/3.13 where supported.

herdr-bar 0.7.0 — static agent status and lower redraw overhead

Choose a tag to compare

@jeffarese jeffarese released this 04 Oct 10:58

Agent status indicators now stay static, avoiding repeated tab renames and redraws while agents work. Tabs retain their agent logo and status, and update when their name or status changes.

  • Add event-driven tab status with an option to restore bare names (tab_status: false).
  • Remove popup spinner redraws; legacy spinner and tab_flash settings are ignored.
  • Preserve user-supplied leading glyphs after failed renames and watcher restarts.
  • Bound event reads, preserve events arriving with subscription acknowledgements, and recover from malformed subscription responses.
  • Include support for additional Claude configuration directories via claude_config_dirs.
  • Document installing the optional agent icon font independently of Radar.

Requires Herdr 0.9.0+ and Python 3.9+.

Validation: 374 tests pass locally on Python 3.9 and 3.14; lint, static rendering, manifest validation, and render regression checks pass. GitHub CI covers Linux and macOS with Python 3.9/3.11/3.13 where supported.

herdr-bar 0.5.0 — continuous Claude and Codex tab titles

Choose a tag to compare

@jeffarese jeffarese released this 21 Sep 12:32

Claude and Codex tabs now follow their task titles automatically, even while the command bar is closed. Later title changes update names written by the plugin; existing custom tab, pane, and agent names remain protected.

  • One background watcher per Herdr server checks titles every two seconds, reconnects after server restarts, and preserves ownership across watcher restarts.
  • Naming work stays out of the popup. Idle checks use one snapshot request, with no repeated renames or ownership-file writes.
  • Plugin status comes from Herdr's API. Watchers reload upgraded code while preserving their singleton lock.
  • New herdr-bar.start-titles and herdr-bar.stop-titles actions control automatic naming per server.
  • Improved spacing between vendor logos and status glyphs; working task titles are orange.

Requires Herdr 0.9.0+, Python 3.9+, and macOS or Linux. No third-party Python runtime dependencies.

After installing into an already running server, invoke herdr plugin action invoke herdr-bar.start-titles or open the bar. During server downtime, the watcher stays available with retry backoff up to 30 seconds; the stop action also works offline. Existing custom names, including names from previous releases, are not automatically adopted.

Validation: 343 tests passed locally on macOS and Linux, plus lint, manifest validation, and render benchmarks. The GitHub Actions test matrix and lint job passed for the release commit.

Herdr has no conditional rename API: a manual rename between the final check and write cannot be detected. Names equal to a default tab-position number are indistinguishable from unnamed tabs.