Skip to content

Releases: theodorebeaupre-prog/usher

v0.3.2

Choose a tag to compare

@github-actions github-actions released this 12 Jul 16:41

The failover now tells the next agent what happened

Two hours ago, someone on r/ClaudeCode pulled this repo, ran the test suite, and pointed out a failure mode we hadn't covered: continuation, not routing. When agent A hits its cap halfway through editing your repo and usher fails over to agent B, replaying the original prompt isn't a handoff — B has no idea A already changed things, and might duplicate or revert that partial work.

They were right. This release is their suggestion, almost verbatim.

  • Continuation notice: when a failover agent takes over from one that actually ran, its prompt now opens with a warning — a previous agent was already working on this task; inspect git status and the diff before continuing. The original prompt follows, untouched.
  • Envelope visibility: guarded attempts carry "continuation_guard": true in the --json attempts array. First attempts and pre-0.3.2 envelope shapes are byte-identical.
  • Opt-out: continuation_guard = false in config.toml if your pipeline needs the prompt verbatim.
  • An agent that fails to start never touched the workspace, so it doesn't trigger the notice.

Their four-step scenario is now an E2E test in tests/e2e_headless_test.go. The stronger version of their idea — a user-supplied handoff file — is open as #6 if you want to build it.

brew upgrade usher

v0.3.1

Choose a tag to compare

@github-actions github-actions released this 12 Jul 13:49

Changelog

  • 9fc1ab0 chore: community files — issue/PR templates, security policy, code of conduct, social card
  • 2a62bbb chore: enable cask publishing — tap token secret is live
  • a925b8d docs: README overhaul — quick start, config reference, FAQ, real doctor/--why output, dynamic badges

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 12 Jul 13:18

The last feature stop before 1.0. Eight agents, one door. 🔦

Highlights

  • --json — one machine-readable envelope as the only stdout write: final agent, task type, exit code, output, and a per-attempt array (quota events and timeouts included). usher -p --json "task" | jq .agent just works.
  • --timeout — a hung agent can't stall your pipeline anymore: usher kills the whole process group (helpers and all) and exits 124, GNU convention. The hung-agent test went from 31s to 2.4s during review.
  • stdin replay — piped stdin is buffered once and replayed to every failover attempt, so the second agent sees the same input the first one did.
  • Two new adapters — Qwen Code and Amp join the table (eight total).
  • Ledger accuracy: launch events are only recorded for attempts that actually started.

Install

go install github.com/theodorebeaupre-prog/usher@latest

or grab a binary below. Full story in the README.

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 11 Jul 23:31

Headless mode arrives: usher -p routes your task, runs the winner's print-and-exit mode with pure-stdout passthrough, and automatically fails over to the next agent on a usage cap — your nightly job never dies to a rate limit. Plus GitHub Copilot CLI and Cursor CLI adapters (six agents), grounded quota fixtures, and honest decision-line copy.

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 11 Jul 20:16

The first seating. Smart routing across Claude Code, Codex, Gemini CLI, and opencode using the subscriptions you already pay for — heuristic router with --why transparency, quota ledger with per-vendor decay, native TUI handoff, and the animated pixel-usher banner. Right this way.