← All CLI releases

Rush CLI 0.2.32

Install

macOS / Linux

curl -fsSL https://cdn.getrush.ai/install.sh | bash

Windows

irm https://cdn.getrush.ai/install.ps1 | iex

Homebrew

brew install phnx-labs/tap/rush

Debian / Ubuntu

sudo apt install rush-cli

Already installed?

rush upgrade

Fixed

  • Assistant agents (e.g. the Slack/iMessage rush-assistant) no longer get stuck replying "I ran into a problem and couldn't respond" on every turn after using a sub-agent. The delegate tool ran synchronous sub-agents inside the parent's session, so the child's transcript was persisted between the parent's delegate tool_call and its tool_result. On the next reply the resumed message array put a plain user message between a tool_use and its tool_result, which violates the provider's adjacency rule — the model proxy rejected every turn with a 400 ("Agent configuration issue"). Synchronous delegation now runs each child in its own isolated session, so the parent transcript stays valid by construction.
  • rush deploy help text and the deploy docs (docs/05-execution-modes.md, docs/06-rush-deploy.md) now cite the live serve host factory-prod.prix.dev instead of the unresolvable agents.prix.dev / retired agents.427yosemite.com, and correctly describe local rush deploy ./path deploys as working (they were wrongly documented as 501/not-implemented) (RUSH-1680, RUSH-1681).

Changed

  • Skill, connector, and capability installs now download their default catalog from the prix/api Store with SHA-512 integrity verification. Local directories and github: sources remain explicit --from overrides (RUSH-1308).

Added

  • rush connect github now installs the Rush Cloud GitHub App through a state-paired browser flow, records the installation for rush cloud run, reports it in rush connect view, and supports local removal through rush disconnect github (RUSH-398).
  • rush cloud accounts add --label can name a Claude/Codex account when it is added, and rush cloud accounts edit <id> --label <name> [--email <addr>] updates the human-visible identity later. The account list now shows a label-first identifier so setup-token accounts are distinguishable (RUSH-1668).
  • scripts/smoke-linux.sh now builds arm64 and x64 Linux CLI binaries through the blessed build pipeline, validates them as ELF, and stages an architecture-aware Parallels smoke bundle for --version, list, and --help (RUSH-1108).
  • Inbound webhook triggers: the daemon now serves POST /webhooks/<trigger-id>, verifies the HMAC signature over the raw body, renders the trigger's prompt template against the JSON payload, and dispatches the agent run. Trigger secrets resolve by name from a webhook_secrets: map in ~/.rush/user.yaml. Deny-by-default: a trigger with no configured HMAC secret is never registered, so every request to its slug (and any bad/absent signature) is rejected with 401 — no unauthenticated slug can fire an agent run (RUSH-773).
  • rush eval --min-pass-rate <0.0-1.0> regression gate: the command now exits non-zero when the overall pass rate across all benchmarks falls below the threshold, so CI can catch quality regressions instead of publishing fabricated scores. 0 (default) disables the gate; the enforced threshold is recorded on the published EvaluationMetadata.MinPassRate (RUSH-1365).

Fixed

  • The daemon now enforces one live process per Rush home with an exclusive daemon.lock. Startup also fails immediately when the HTTP port or Unix socket belongs to another daemon, instead of leaving a second headless process running or stealing the token socket (RUSH-1483).
  • Eval harness could not catch regressions. The 25 file-ops/multi-step benchmark tasks all used the pass validator, which fabricated a 100% pass rate regardless of output — even on a crash — and those scores flowed into agent metadata. Replaced every pass validator with a real assertion, fixed extractToolCalls to read the tool name from Message.Name (it iterated Content and always returned zero tool metrics), and added an offline scoring test proving a bad run actually fails (RUSH-1365).
  • file_deleter no longer climbs and deletes empty parent directories after removing a file. Deleting the last file in a/b/c/ previously destroyed c, b, and a if empty — silent, irreversible data loss. It now deletes only the requested path (RUSH-1361).

Changed

  • Release tooling: release.sh can now be driven from a Linux box. The Go cross-compile already worked anywhere; the darwin codesign + notarize is now offloaded to a dedicated headless Mac over SSH ($RUSH_SIGN_HOST, default mac-mini) via the new scripts/remote-sign.sh. On a macOS host the local sign path is unchanged. Gate 0 requires either local Apple creds (darwin host), or remote-sign.sh + SSH reachability of the sign host (non-darwin host) — Apple creds live on the sign host, not the release box. RUSH_ALLOW_UNSIGNED=1 still skips signing for local-only emergency builds. (No change to the shipped rush binary.)

Fixed

  • Flag-surface consistency across four commands (found by a cross-platform CLI test sweep on Linux + Windows):
    • rush uninstall --yes / -y is now accepted (was unknown flag: --yes), matching rush install --yes. Uninstall never prompts, so it's a no-op accepted for scripting parity; mirrored onto rush agents uninstall.
    • rush plugin marketplace list --json now emits JSON (was unknown flag: --json), matching every sibling in the plugin group.
    • rush capability list --json now emits [] on a host with no capabilities directory (previously printed the plain-text "No capabilities installed." string, which is invalid JSON), matching skill/plugin/connector list.
    • rush tool --help / -h now prints the command's help (was unknown tool '--help', because the command disables flag parsing).

Downloads

PlatformBinarySHA-256
macOS · Apple Silicondownload
macOS · Inteldownload
Linux · x64download
Linux · arm64download
Windows · x64download
Windows · arm64download

Checksums are published for the current latest release. Verify older binaries against rush --version after install.