Skip to content

Releases: RA1NM4KER/agent-relay

v0.5.2

Choose a tag to compare

@github-actions github-actions released this 16 Oct 20:27

This maintenance release focuses on CLI readability and diagnostics.

  • Clearer profile authentication tables with separate details and recovery commands.
  • Status distinguishes configured fallback order from live checks; doctor separates blockers,
    warnings, passed checks, and recovery without changing readiness decisions.
  • Consistent headings, spacing, copyable actions, and concise help across the CLI. Compatible
    interactive terminals use restrained styling; NO_COLOR, TERM=dumb, non-TTY output, JSON,
    and internal control paths remain plain. Existing JSON fields are unchanged.
  • Fixed relay update reporting when Homebrew retains multiple kegs: report the verified linked
    keg instead of combining every installed version into one string (#27).

v0.5.1

Choose a tag to compare

@github-actions github-actions released this 16 Oct 16:07

Added

  • relay update delegates supported Homebrew installs to Homebrew and reports the installed
    version. Other installs receive manual release instructions; --check checks for a newer
    stable release without installing it (#6).

Improved

  • relay status shows all active sessions and the three most recent dormant sessions, with a
    count for older sessions. JSON output and the resume picker retain the full list (#11).
  • Session displays preserve Claude's native conversation titles and Codex's native thread names
    when available (#11, #25).
  • An eligible configured profile is enough for readiness; irrelevant broken or untrusted
    lower-priority profiles produce warnings rather than globally blocking it (#23).

Fixed

  • Logged-out Claude profiles are recognized from their supported exit-1 status and show the
    affected profile's login command. Normal launch no longer opens login automatically (#26).
  • Codex refusals distinguish revoked/invalid authentication, timeout, unsupported responses, and
    other failures with sanitized diagnostics. Recognized auth rejection shows the isolated
    profile's logout/login commands; other UNKNOWN failures do not prescribe login. Profiles and
    readiness verify structured usage, and UNKNOWN is refused on resume as well as launch/switch
    (#26).
  • Homebrew updates verify ownership of the running stable/dev executable. Failed or contended
    release checks do not report stale data as a successful check.
  • Human session rows bound provider titles and suppress terminal and bidirectional control
    characters; stored titles and session identities remain unchanged.

Known limitations and remaining non-blocking work: project status.

Post-publication Homebrew verification found a non-blocking reporting issue: when an older keg is retained, relay update reports all installed keg versions in its version field. The upgrade and linked v0.5.1 binary are correct. Tracked in #27.

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 15 Oct 19:22
Codex event-driven exhaustion detection graduates from dogfood-only to default,
live-proven end to end against a real natural exhaustion (codex-cli 0.156.0):
zero periodic provider usage polling while the local rollout watch is healthy,
exactly one authoritative account/rateLimits/read triggered by the real
structured event, and a correct automatic handoff to a healthy fallback
profile. See CHANGELOG.md for the full release notes.

v0.4.1

Choose a tag to compare

@github-actions github-actions released this 25 Sep 08:34

Agent Relay v0.4.1 makes slow CLI operations much clearer and helps you know when a new release is available. This is a CLI-UX and polish release — no handoff, exhaustion, or provider-auth behavior changed.

Update-available hints

relay status, relay doctor, and relay setup now show a small hint when a newer stable release exists:

Update available: v0.5.0
Run: brew upgrade agent-relay

The check reads a local cache refreshed at most once every 24 hours, so a normal command never waits on GitHub — a stale or missing cache triggers a detached, best-effort background refresh instead of blocking. Several commands hitting a stale cache at once no longer spawn duplicate background refreshes. Never shown in --json output or a non-interactive terminal, no auto-updates.

Progress feedback for slow commands

relay status, relay doctor, relay setup, and relay profile status/doctor now share one progress indicator whose label updates through each real phase instead of sitting silently or showing a static spinner. It only appears past a short delay, so fast runs never flicker, and it's silent in --json mode.

Reminder: reliability fixes already in v0.4.0

If you're upgrading from before v0.4.0, that release already included: durable provider-account exhaustion tracking across Relay Sessions, fresh provider availability superseding stale exhaustion state after an out-of-band usage reset, and explicit "no eligible fallback" reporting instead of silent looping. See the v0.4.0 release notes for details — nothing in that area changed in this patch.

Install / upgrade

brew install RA1NM4KER/tap/agent-relay
# or, if already installed:
brew upgrade agent-relay

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 25 Sep 03:43

Agent Relay now keeps Claude Code and Codex work moving across usage limits with safer automatic handoffs and stronger cross-session exhaustion tracking.

Highlights

  • Multi-session supervision. A project can hold many independent Relay Sessions at once — different profiles, different providers, side by side — instead of one writer per project.
  • Claude ⇄ Codex parity and in-agent control. relay setup/relay status/relay switch work the same way for either provider; /relay switch (Claude) and $relay switch (Codex) can move a conversation from inside the session itself, with process-ancestry verification on the Codex side.
  • Codex handoffs now capture real recent conversation context (via Codex's official app-server protocol), not just repository facts.
  • Durable, cross-session exhaustion tracking. A strongly-evidenced exhaustion is now remembered per provider account, not just per session, so a fresh session on the same account doesn't have to rediscover it. relay watch clear --provider-account <profile> clears one explicitly.
  • Fresh evidence supersedes a stale exhaustion record. If a provider-side usage reset happens out-of-band, Relay now recognizes a fresh, positive reading and clears the stale record instead of continuing to treat a healthy account as exhausted for days.
  • Explicit diagnostics when no fallback is eligible, instead of retrying silently: Relay now names why each candidate was rejected, both in a supervised terminal and via relay why.
  • Claude's own native-default account (~/.claude, no separate profile directory) is now a first-class profile, usable as a handoff source or target like any other.
  • Smoother day-to-day UX: unified progress indicators across slow provider phases, more precise switch-safety checks, and more actionable provider error messages.

See CHANGELOG.md for the full, organized list.

Known limitations

  • Linux builds and passes CI but is not yet live-supported or validated (some process-scan code is macOS-specific).
  • Automatic handoff away from a real Codex exhaustion (to a healthy fallback) has not yet been observed live end-to-end — detection and evaluation have been, but the one real incident observed had no eligible fallback at the time. See docs/automatic-handoff.md#no-eligible-fallback.
  • The Homebrew tap now serves only tagged releases like this one; a separate dev-build channel is not currently distributed via brew (see docs/maintainer-dogfood.md if you want to run main directly).

Install

brew install RA1NM4KER/tap/agent-relay

Agent Relay v0.3.0

Choose a tag to compare

@github-actions github-actions released this 21 Sep 16:02

Agent Relay becomes multi-provider: Claude Code and Codex profiles share one priority order, one
writer per project, and automatic handoff in both directions.

Added

  • Codex support: isolated Codex profiles (relay login, relay setup), relay codex (a new
    Relay-managed Codex conversation, symmetric with relay claude), same-profile Codex resume with
    thread verification, and Claude ⇄ Codex handoff as state continuation (a new session seeded from
    a Relay state bundle — never presented as the same native conversation).
  • Automatic Codex handoff: exhaustion is read from Codex's own structured app-server rate limits
    (ordinaryUsageAllowed) — immediately before Relay enters a Codex terminal, then periodically
    while that terminal is supervised. A fresh relay codex on an exhausted profile skips Codex and
    starts on the next eligible profile; relay resume on an exhausted Codex thread hands off at
    once; relay switch refuses an exhausted or unverifiable Codex target. Unknown never moves
    anything.
  • Automatic Claude handoff that actually fires: the Claude StopFailure hook starts a one-shot
    evaluation itself, and a supervised terminal follows the conversation to the new owner
    (relay claude / relay codex / relay resume).
  • Provider options after --: relay claude -- --model opus, relay codex -- --sandbox workspace-write, forwarded verbatim, stored per project and never translated between providers.
    Flags that would replace something Relay owns — or disable its hooks (--bare, --safe-mode,
    --restricted, --setting-sources without user) — are rejected with a clear error.
  • Status-line badge [Relay · <profile>] (switching → <profile> mid-handoff) for managed Claude
    sessions, composed with your own status line and colour-aware (NO_COLOR respected).
  • One global priority order (primary + fallbacks) reconsidered at every exhaustion; the current
    writer stays sticky (no eager fail-back).

Fixed

  • relay status, launch, handoff and session-conflict paths now ask the lease owner's provider
    whether a session is live (Claude or Codex), and report unknown instead of guessing active.
  • Codex liveness/stop cover the interactive codex resume process, not only the short-lived
    codex exec that created the thread.
  • Claude --bg job ids with coloured output, relay resume attach-vs-resume for a live background
    job, and attaching under the lease owner's isolated CLAUDE_CONFIG_DIR.
  • relay switch --no-attach now points at relay resume.

Notes

  • macOS is the validated platform; Linux builds and passes CI but is not yet live-supported.
  • Automatic handoff from a real Codex exhaustion mid-session is covered by automated tests and has
    not yet been observed live; a real exhausted Codex profile has been live-checked for pre-launch
    fallback.
  • After upgrading, re-run relay integration claude install --profile <name> so the Claude hooks
    and status line point at the new relay binary.

Agent Relay: latest green main

Pre-release

Choose a tag to compare

@github-actions github-actions released this 21 Sep 17:11

Rolling pre-release holding the packaged build of each green commit on main (used by the maintainer's Homebrew formula). File names carry the commit SHA; see docs/maintainer-dogfood.md. Not a versioned release.

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 19 Sep 14:20

Agent Relay keeps a Claude Code session moving when one configured account reaches a corroborated
usage limit: it moves the same conversation, same context, to a backup account. Everything runs
locally — credentials stay entirely Claude-owned (Relay only launches Claude's own official
login/logout, never reads or stores a token, cookie, or key).

Quickstart

brew install RA1NM4KER/tap/agent-relay
relay setup
relay claude

Full walkthrough: docs/getting-started.md

What's new in v0.2.0

  • relay setup / relay claude: a guided first-run wizard and a single daily entry point — no
    more manually managing CLAUDE_CONFIG_DIR, profile adoption, writer leases, or session ids by
    hand.
  • relay status / relay profiles / relay login / relay logout: plain-language status and
    friendly wrappers around Claude's own official login/logout.
  • Herdr pane/workspace binding is now written automatically by relay claude.
  • Packaging: prebuilt macOS binaries (this release), a Homebrew tap, and a Herdr plugin manifest
    now embedded in the relay binary itself — relay integration herdr install no longer needs a
    source checkout.

See CHANGELOG.md for the full
list (this release also includes all of M2C.1's automatic usage detection and M3's Herdr
integration, both previously unreleased).

Supported / live-validated

  • macOS (Apple Silicon and Intel binaries below), Claude Code 2.1.276–2.1.278.

Experimental / not yet validated

  • Linux: builds and passes the test suite in CI; no Linux binaries are published in this
    release
    and Linux has not been exercised against a real Claude Code install. Building from
    source works today if you want to try it (cargo build --release); treat it as unvalidated.

Known limitations

  • Genuine (non-simulated) provider quota exhaustion has not been observed end-to-end — all
    handoff validation to date uses Relay's own --simulate-usage exhausted flag, deliberately, to
    avoid burning a real account's quota.
  • Claude's transcript layout and --resume behavior are not a stable public API; Relay gates on
    validated versions and fails closed on anything else.
  • A rare, intermittent untracked_writer_detected race remains documented but unpatched (no
    deterministic reproduction yet).
  • See the README's Limitations section for
    the complete, current list.

Verifying a download

shasum -a 256 -c agent-relay-v0.2.0-<platform>.tar.gz.sha256

or check against SHA256SUMS.txt below.