Repository navigation
Releases
Releases · DnzzL/herdr-automations
v0.12.1
- Copilot receives
mcp_configthrough--additional-mcp-config @<path>,
so it loads the MCP servers file instead of rejecting--mcp-config.
Other agents keep their existing flag. Thanks @robertobrambila for the fix
and for checking it against the real Copilot CLI (#23).
v0.12.0
close_workspace: on-successcloses a run's workspace once it is recorded
done, under both backends. Failed runs, and runs whose agent waits on you,
stay open; the worktree stays on disk forcleanup. Defaultnever. Thanks
@rstacruz for the report and the design (#13).- GitHub Copilot runs under
backend: hc, and the panel's form offers it. Its
prompt goes in through-i(a bare argument is refused, and-pwould exit
after one answer). Trust~/.herdr/worktreesin Copilot once, or a run in a
new worktree waits on Copilot's folder question. Thanks @robertobrambila (#20). - Editing an automation in the panel no longer drops what the form does not
show: a paused automation stays paused, andagent_args,catch_up_minutes
andsessionare kept.putnow replaces only the keys it is sent. Thanks
@lidong-aesona for spotting it (#18). - A run left unread no longer makes the next one fail with
agent_name_taken:
the next run's agent takes a name carrying its pane's ID. Thanks @rstacruz (#13). - In the panel, an active automation's dot is green rather than grey.
v0.11.3
- The login service now actually follows
herdr plugin update. An update
installs into a new folder and keeps the old one, so v0.11.1's check (the
binary disappearing) never fired. The service now asks Herdr where the plugin
is installed every 30 seconds, and relaunches onto it when that changed.
v0.11.2
- A pi run under
backend: hcthat works longer than two minutes is no longer
recorded as failed. pi counts its turn when it ends, not when it starts. - The panel's form offers only the supported agents installed on this machine.
v0.11.1
service installsurvivesherdr plugin update. The service now runs the
install-clishim when there is one, and leaves for launchd to relaunch it
when an update moves its binary away; it used to keep running the old build,
or point at a deleted file.
v0.11.0
- The Herdr desktop app.
backend: hcruns automations in herdr-core, where
the app shows them: each run opens as a space, its worktree where the app's
own "New worktree…" puts one. An Automations panel sits beside Files and
Changes: an inbox of finished runs, run now, pause, edit, and a form that
previews the next runs. Withoutbackend:nothing changes. herdr-automations service installruns the scheduler as a login service
(launchd, systemd), for the app, which has no plugin startup hook.pause --all/resume --allhold every automation. What comes due
meanwhile is recorded as skipped and not replayed on resume.pauseandresumeno longer rewrite the whole file: comments stay, and a
broken entry elsewhere no longer blocks them.template:(hc only) runs an hc template with the prompt as its task.--jsononlistandhistory, plusput,rm,seenandrun --bg:
what the panel calls.
v0.10.0
herdr-automationsworks from a shell after install. Run
herdr plugin action invoke install-cli --plugin dnzzl.automationsonce, or
herdr-automations install-cli <dir>for another directory. The shim follows
plugin updates.install-skillis gone. Install the agent skill with
npx skills add DnzzL/herdr-automations, which reaches Codex, OpenCode and
other agents, not only Claude Code.
v0.9.0
session: <name>sends an automation's runs to that Herdr session, whether
they come from the cron,ron the board, orrun. Keep a dedicated session
for automations, out of the ones you work in. Without the key, nothing
changes. A run aimed at a stopped session fails with Herdr's error, and
listnames the automations whose session is not running.- Stopping the Herdr session that started the daemon no longer leaves a
scheduler behind that fails every run while blocking other sessions from
starting a new one. The daemon now serves every session and stops once none
is running. - Other sessions' startup hooks no longer show up as
failedin
herdr plugin log: one daemon per machine is expected, and they now exit
cleanly and say which one is serving. - Failure toasts appear in every running Herdr session, not only the daemon's.
enteron the board no longer says a run's workspace "was closed" when it is
open in another session. It says which session to attach.
v0.8.2
- Updating the plugin with
herdr plugin installtakes effect again without a
Herdr server restart. The installer moves the old checkout away and deletes
it, and the daemon was watching that deleted copy, so it never noticed the new
build. It now watches the path it started from.
v0.8.1
- A Herdr server restart can no longer stop every automation. A daemon killed
with the server leavesdaemon.pidbehind, and the next one refused to start
whenever that PID had since gone to some other process of yours. Herdr doesn't
show startup output, so nothing said so. The daemon now locks the file instead
of trusting the number in it, and the lock goes with the daemon however it
exits. - A daemon that fails to restart on a plugin update keeps its lock, so a second
scheduler can no longer start beside it and fire everything twice. - Runs recover again from Herdr's transient errors: an agent pane whose shell
is not ready yet, a prompt that stalls, an agent or workspace that went away.
Herdr 0.8.0 and later report errors on stderr, which the plugin did not read,
so every wait-and-retry was skipped and the run failed instantly.
Thanks
Two of the three fixes in this release came from outside contributors.
@oliverlukschander reported the daemon that wouldn't come back after a server restart in #3, then fixed it in #5 by locking the pidfile instead of trusting the PID written in it. While reviewing that fix we found a second gap: a failed re-exec could lose the lock. That one became #6.
@dnl555 tracked down why runs failed within milliseconds with agent_pane_busy in #4. Herdr had moved its error envelope to stderr, so the plugin never saw any error code. The fix ended up restoring every recovery path, not just pane-busy, and its test fails on the old code.