Skip to content

v0.7.4-ironin.2

Choose a tag to compare

@iRonin iRonin released this 21 Jul 16:52

iRonin fork of herdr — rebased onto upstream v0.7.4.

Opt-in features (all default to stock behavior; each gated by a config key):

  • ui.tab_bar_wrap — wrap tabs onto multiple rows
  • ui.show_scrollbar — always / auto / never
  • ui.agent_panel_scope + ui.agent_panel_modes — scope/sort the agents panel
  • ui.tab_agent_status — agent status indicator on top tabs (incl. hook-only agents)
  • ui.prompt_new_tab_name + Alt-click new-tab inversion
  • resume replays recorded launch_argv
  • reused-pane agent detection fix (hook-only graceful-restart reacquisition)
  • session.stop_timeout_ms — configurable server-stop wait (default 15000)
  • herdr server restart — stop→start→attach, with same-pane guard
  • in-UI iRonin fork banner on startup

Prior releases preserved: v0.7.3-ironin.1, v0.7.3-ironin.2.

Build from source

git clone https://github.com/iRonin/herdr.git && cd herdr
git checkout ronin-release   # 0.7.4 base + all opt-in features
cargo build --release        # binary: target/release/herdr

Enable the workspace filter in ~/.config/herdr/config.toml:

[ui]
agent_panel_scope = "current"

New in v0.7.4-ironin.2

Project-local workspace naming via .herdr/settings.toml. A project can pin its workspace label with a settings file committed to the repo — shared across machines, clones, and teammates, and it survives a session reset:

# .herdr/settings.toml
[workspace]
name = "my-project"
  • Read-path: derive_label_from_cwd resolves [workspace] name first, walking up from the pane cwd (capped at the repo root). When the file is absent or malformed it falls through to the default (git repo-root name, else cwd leaf), so behavior is unchanged without the file.
  • Write-back: renaming a workspace (in-app or via workspace.rename) now persists [workspace] name to the nearest .herdr/settings.toml, creating one at the repository root if none exists. Other keys are preserved and the write is best-effort (a read-only checkout never blocks the rename).