Releases: iRonin/herdr
Release list
v0.7.5-ironin.5
iRonin fork of herdr — rebased onto upstream v0.7.5.
Opt-in features (all default to stock behavior; each gated by a config key):
ui.tab_bar_wrap— wrap tabs onto multiple rowsui.show_scrollbar— always / auto / neverui.agent_panel_scope+ui.agent_panel_modes— scope/sort the agents panelui.tab_agent_status— agent status indicator on top tabs (incl. hook-only agents)ui.tab_agent_context— context-usage % suffix on top tabs (mirrors the Agents-pane value)ui.tab_close_button— Alt-click thexat the end of a tab's label to close it- blocked agents get a read/acknowledged sub-state (any direct input marks read; hollow red dot)
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- project-local
.herdr/settings.toml[workspace] name— pin/persist the workspace label - in-UI iRonin fork banner on startup
Prior releases preserved: v0.7.3-ironin.1, v0.7.3-ironin.2, v0.7.4-ironin.1, v0.7.4-ironin.2, v0.7.5-ironin.1, v0.7.5-ironin.2, v0.7.5-ironin.3, v0.7.5-ironin.4.
Build from source
git clone https://github.com/iRonin/herdr.git && cd herdr
git checkout ronin-release # 0.7.5 base + all opt-in features
cargo build --release # binary: target/release/herdrNew in v0.7.5-ironin.2
ui.tab_agent_context (default off) — appends the highest-attention agent's context-window usage as a N% / ~N% suffix on its top tab, mirroring exactly the value shown in the Agents pane (single source of truth, tolerant internal extraction). Same tab-selection as ui.tab_agent_status; width flows correctly through single-row and wrapped layouts, hit-testing, and scrolling. Fully herdr-internal — no reporter, token, or protocol change.
[ui]
tab_agent_context = trueNew in .3:
- auto-read completions for panes carrying the auto_read metadata token (feat/agent-auto-read): a pane whose agent reports the token declares its completions need no attention — completion marks the pane seen and skips the finished toast/sound (blocked still notifies). For unattended supervised sub-agents.
- test: workspace-id length assertion made suite-size independent (was breaking the serial suite past the base32 boundary).
New in v0.7.5-ironin.4
ui.tab_close_button (default off) — renders an x in the last cell of every tab label in the desktop tab bar. Alt/Option-click the x to close that tab immediately, without a confirmation prompt; clicking it without Alt activates the tab as usual, and Alt-clicking anywhere else on the label keeps the normal press/drag behavior. Works on background tabs without switching focus first. Closing the last tab of a workspace closes the workspace and still honors the worktree-group confirmation (ui.confirm_close). Long tab names truncate so the marker always lands on the last cell; composes with ui.tab_bar_wrap, ui.tab_agent_status, and ui.tab_agent_context.
[ui]
tab_close_button = trueNew in v0.7.5-ironin.5
Blocked-agent read/acknowledged sub-state (feat/blocked-read, previously unreleased) — a blocked (needs-attention) agent now mirrors the idle done/read distinction. A pane that blocks while you are looking at it is immediately read; one that blocks in a background/unfocused tab stays unread until you interact with it. Any direct input to a blocked pane — keystroke, paste, or a command such as /rewind — acknowledges it: it renders as a hollow red dot, drops out of the attention sort and the navigator Blocked filter, and stops counting in activity summaries, while still being blocked rather than idle. Also: submitting /compact to an agent pane optimistically shows it as Working for up to 90s (compaction performs work without emitting a lifecycle event). No config key; the new semantics are the default.
v0.7.5-ironin.4
iRonin fork of herdr — rebased onto upstream v0.7.5.
Opt-in features (all default to stock behavior; each gated by a config key):
ui.tab_bar_wrap— wrap tabs onto multiple rowsui.show_scrollbar— always / auto / neverui.agent_panel_scope+ui.agent_panel_modes— scope/sort the agents panelui.tab_agent_status— agent status indicator on top tabs (incl. hook-only agents)ui.tab_agent_context— context-usage % suffix on top tabs (mirrors the Agents-pane value)ui.tab_close_button— Alt-click thexat the end of a tab's label to close itui.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- project-local
.herdr/settings.toml[workspace] name— pin/persist the workspace label - in-UI iRonin fork banner on startup
Prior releases preserved: v0.7.3-ironin.1, v0.7.3-ironin.2, v0.7.4-ironin.1, v0.7.4-ironin.2, v0.7.5-ironin.1, v0.7.5-ironin.2, v0.7.5-ironin.3.
Build from source
git clone https://github.com/iRonin/herdr.git && cd herdr
git checkout ronin-release # 0.7.5 base + all opt-in features
cargo build --release # binary: target/release/herdrNew in v0.7.5-ironin.2
ui.tab_agent_context (default off) — appends the highest-attention agent's context-window usage as a N% / ~N% suffix on its top tab, mirroring exactly the value shown in the Agents pane (single source of truth, tolerant internal extraction). Same tab-selection as ui.tab_agent_status; width flows correctly through single-row and wrapped layouts, hit-testing, and scrolling. Fully herdr-internal — no reporter, token, or protocol change.
[ui]
tab_agent_context = trueNew in .3:
- auto-read completions for panes carrying the auto_read metadata token (feat/agent-auto-read): a pane whose agent reports the token declares its completions need no attention — completion marks the pane seen and skips the finished toast/sound (blocked still notifies). For unattended supervised sub-agents.
- test: workspace-id length assertion made suite-size independent (was breaking the serial suite past the base32 boundary).
New in v0.7.5-ironin.4
ui.tab_close_button (default off) — renders an x in the last cell of every tab label in the desktop tab bar. Alt/Option-click the x to close that tab immediately, without a confirmation prompt; clicking it without Alt activates the tab as usual, and Alt-clicking anywhere else on the label keeps the normal press/drag behavior. Works on background tabs without switching focus first. Closing the last tab of a workspace closes the workspace and still honors the worktree-group confirmation (ui.confirm_close). Long tab names truncate so the marker always lands on the last cell; composes with ui.tab_bar_wrap, ui.tab_agent_status, and ui.tab_agent_context.
[ui]
tab_close_button = truev0.7.5-ironin.3
iRonin fork of herdr — rebased onto upstream v0.7.5.
Opt-in features (all default to stock behavior; each gated by a config key):
ui.tab_bar_wrap— wrap tabs onto multiple rowsui.show_scrollbar— always / auto / neverui.agent_panel_scope+ui.agent_panel_modes— scope/sort the agents panelui.tab_agent_status— agent status indicator on top tabs (incl. hook-only agents)ui.tab_agent_context— context-usage % suffix on top tabs (mirrors the Agents-pane value)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- project-local
.herdr/settings.toml[workspace] name— pin/persist the workspace label - in-UI iRonin fork banner on startup
Prior releases preserved: v0.7.3-ironin.1, v0.7.3-ironin.2, v0.7.4-ironin.1, v0.7.4-ironin.2, v0.7.5-ironin.1.
Build from source
git clone https://github.com/iRonin/herdr.git && cd herdr
git checkout ronin-release # 0.7.5 base + all opt-in features
cargo build --release # binary: target/release/herdrNew in v0.7.5-ironin.2
ui.tab_agent_context (default off) — appends the highest-attention agent's context-window usage as a N% / ~N% suffix on its top tab, mirroring exactly the value shown in the Agents pane (single source of truth, tolerant internal extraction). Same tab-selection as ui.tab_agent_status; width flows correctly through single-row and wrapped layouts, hit-testing, and scrolling. Fully herdr-internal — no reporter, token, or protocol change.
[ui]
tab_agent_context = trueNew in .3:
- auto-read completions for panes carrying the auto_read metadata token (feat/agent-auto-read): a pane whose agent reports the token declares its completions need no attention — completion marks the pane seen and skips the finished toast/sound (blocked still notifies). For unattended supervised sub-agents.
- test: workspace-id length assertion made suite-size independent (was breaking the serial suite past the base32 boundary).
v0.7.5-ironin.2
iRonin fork of herdr — rebased onto upstream v0.7.5.
Opt-in features (all default to stock behavior; each gated by a config key):
ui.tab_bar_wrap— wrap tabs onto multiple rowsui.show_scrollbar— always / auto / neverui.agent_panel_scope+ui.agent_panel_modes— scope/sort the agents panelui.tab_agent_status— agent status indicator on top tabs (incl. hook-only agents)ui.tab_agent_context— context-usage % suffix on top tabs (mirrors the Agents-pane value)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- project-local
.herdr/settings.toml[workspace] name— pin/persist the workspace label - in-UI iRonin fork banner on startup
Prior releases preserved: v0.7.3-ironin.1, v0.7.3-ironin.2, v0.7.4-ironin.1, v0.7.4-ironin.2, v0.7.5-ironin.1.
Build from source
git clone https://github.com/iRonin/herdr.git && cd herdr
git checkout ronin-release # 0.7.5 base + all opt-in features
cargo build --release # binary: target/release/herdrNew in v0.7.5-ironin.2
ui.tab_agent_context (default off) — appends the highest-attention agent's context-window usage as a N% / ~N% suffix on its top tab, mirroring exactly the value shown in the Agents pane (single source of truth, tolerant internal extraction). Same tab-selection as ui.tab_agent_status; width flows correctly through single-row and wrapped layouts, hit-testing, and scrolling. Fully herdr-internal — no reporter, token, or protocol change.
[ui]
tab_agent_context = truev0.7.5-ironin.1
iRonin fork of herdr — rebased onto upstream v0.7.5.
Opt-in features (all default to stock behavior; each gated by a config key):
ui.tab_bar_wrap— wrap tabs onto multiple rowsui.show_scrollbar— always / auto / neverui.agent_panel_scope+ui.agent_panel_modes— scope/sort the agents panelui.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- project-local
.herdr/settings.toml[workspace] name— pin/persist the workspace label - in-UI iRonin fork banner on startup
Prior releases preserved: v0.7.3-ironin.1, v0.7.3-ironin.2, v0.7.4-ironin.1, v0.7.4-ironin.2.
Build from source
git clone https://github.com/iRonin/herdr.git && cd herdr
git checkout ronin-release # 0.7.5 base + all opt-in features
cargo build --release # binary: target/release/herdrEnable the workspace filter in ~/.config/herdr/config.toml:
[ui]
agent_panel_scope = "current"New in v0.7.5-ironin.1
Rebased onto upstream herdr v0.7.5 (55 commits past v0.7.4). All 11 fork features were reconstructed and retained — some applied cleanly, others re-expressed onto v0.7.5's refactored tab-surface, agent-ownership, and resume flows.
- Protocol 16 → 17. A mismatched shim/server now errors loudly instead of coexisting silently — when upgrading, restart your shim and running servers together.
- Verified: scrub-clean published surface, config-reference in sync, full serial suite green (2858 tests + the one documented flake, which passes in isolation).
v0.7.4-ironin.2
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 rowsui.show_scrollbar— always / auto / neverui.agent_panel_scope+ui.agent_panel_modes— scope/sort the agents panelui.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/herdrEnable 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_cwdresolves[workspace] namefirst, 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] nameto 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).
v0.7.4-ironin.1
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 rowsui.show_scrollbar— always / auto / neverui.agent_panel_scope+ui.agent_panel_modes— scope/sort the agents panelui.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/herdrEnable the workspace filter in ~/.config/herdr/config.toml:
[ui]
agent_panel_scope = "current"herdr v0.7.3-ironin.2 — 7 opt-in additions + fixes
Combined opt-in feature set on top of herdr 0.7.3. Every feature is off by default and gated behind a config key — a stock herdr config behaves identically to upstream. Branch: ronin-release; each feature is also a standalone single-commit branch for upstreaming.
Features
| Feature | Config key | Branch | Upstream discussion |
|---|---|---|---|
| Wrap tabs onto multiple rows | ui.tab_bar_wrap |
feat/wrap-tabs |
herdrdev#697 |
| Scrollbar visibility (always/auto/never; auto-hide) | ui.show_scrollbar |
feat/scrollbar-toggle |
herdrdev#743 |
| Filter + sort the agents panel by workspace; configurable toggle cycle | ui.agent_panel_scope, ui.agent_panel_modes |
feat/agent-panel-scope |
herdrdev#859 |
| Agent status indicator on the top tabs (identical glyphs to the agents panel) | ui.tab_agent_status |
feat/tab-agent-status |
herdrdev#669 |
Replay recorded launch_argv when resuming native agents |
(automatic) | feat/resume-launch-argv |
herdrdev#632 |
| Detect agents restarted in a reused pane | (automatic, bugfix) | feat/reused-pane-agent-detection |
— |
Configurable server stop wait timeout (default raised to 10s) |
session.stop_timeout_ms |
feat/configurable-stop-timeout |
— |
Changes since v0.7.3-ironin.1
- Scrollbar gained
automode (show-while-scrolling, auto-hide) in addition to the original on/off. - Agents panel gained a configurable toggle cycle (
ui.agent_panel_modes) and a priority-sorted "space" view. - Tab agent status now renders the exact same per-agent glyphs as the agents panel (⠋ working, ◉ blocked, ● done-unread, ✓ done-read, ○ unknown) and includes hook-only/report-only agents — the tab and panel show an identical agent set.
- New: reused-pane agent-detection fix; configurable server-stop timeout (with 0→default and an upper clamp).
All features are leak-free of any fork-internal naming in src/.
herdr v0.7.3-ironin.1 — 5 opt-in UX additions
Fork of ogulcancelik/herdr v0.7.3 with five opt-in UX additions. Each is additive, defaults to current behavior, keeps the existing test suite green (2511 tests), and is available on its own branch for individual upstream review.
What's added
| Feature | Setting | Discussion | Branch |
|---|---|---|---|
| Wrap tabs across multiple rows instead of one scrollable row | ui.tab_bar_wrap (default false) |
#697 | feat/wrap-tabs |
Hide the main-pane scrollback scrollbar (keeps the ▕ glyph out of copied text) |
ui.show_scrollbar (default true) |
#743 | feat/scrollbar-toggle |
| Filter + sort the agents panel by workspace; clickable 3-way tab toggle (priority / grouped / space) | ui.agent_panel_scope (default all) |
#859 | feat/agent-panel-scope |
| Agent status dot on the top tabs (visible with the sidebar collapsed) | ui.tab_agent_status (default false) |
#669 | feat/tab-agent-status |
Resume replays each pane's recorded launch flags (launch_argv) so wrapped / forked agent harnesses resume through their exact program |
(behavior) | #632 | feat/resume-launch-argv |
Built on base v0.7.3 (c8850a2). The all-features branch is the combined build; each feat/* branch is a single clean commit for one-per-Discussion PRs.