July 14, 2026
Rush CLI 0.2.32
Install
macOS / Linux
curl -fsSL https://cdn.getrush.ai/install.sh | bashWindows
irm https://cdn.getrush.ai/install.ps1 | iexHomebrew
brew install phnx-labs/tap/rushDebian / Ubuntu
sudo apt install rush-cliAlready installed?
rush upgradeFixed
- 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. Thedelegatetool ran synchronous sub-agents inside the parent's session, so the child's transcript was persisted between the parent'sdelegatetool_call and its tool_result. On the next reply the resumed message array put a plain user message between atool_useand itstool_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 deployhelp text and the deploy docs (docs/05-execution-modes.md,docs/06-rush-deploy.md) now cite the live serve hostfactory-prod.prix.devinstead of the unresolvableagents.prix.dev/ retiredagents.427yosemite.com, and correctly describe localrush deploy ./pathdeploys 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--fromoverrides (RUSH-1308).
Added
rush connect githubnow installs the Rush Cloud GitHub App through a state-paired browser flow, records the installation forrush cloud run, reports it inrush connect view, and supports local removal throughrush disconnect github(RUSH-398).rush cloud accounts add --labelcan name a Claude/Codex account when it is added, andrush 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.shnow 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 awebhook_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 publishedEvaluationMetadata.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-stepbenchmark tasks all used thepassvalidator, which fabricated a 100% pass rate regardless of output — even on a crash — and those scores flowed into agent metadata. Replaced everypassvalidator with a real assertion, fixedextractToolCallsto read the tool name fromMessage.Name(it iteratedContentand always returned zero tool metrics), and added an offline scoring test proving a bad run actually fails (RUSH-1365). file_deleterno longer climbs and deletes empty parent directories after removing a file. Deleting the last file ina/b/c/previously destroyedc,b, andaif empty — silent, irreversible data loss. It now deletes only the requested path (RUSH-1361).
Changed
- Release tooling:
release.shcan 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, defaultmac-mini) via the newscripts/remote-sign.sh. On a macOS host the local sign path is unchanged. Gate 0 requires either local Apple creds (darwin host), orremote-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=1still skips signing for local-only emergency builds. (No change to the shippedrushbinary.)
Fixed
- Flag-surface consistency across four commands (found by a cross-platform CLI
test sweep on Linux + Windows):
rush uninstall --yes/-yis now accepted (wasunknown flag: --yes), matchingrush install --yes. Uninstall never prompts, so it's a no-op accepted for scripting parity; mirrored ontorush agents uninstall.rush plugin marketplace list --jsonnow emits JSON (wasunknown flag: --json), matching every sibling in theplugingroup.rush capability list --jsonnow emits[]on a host with no capabilities directory (previously printed the plain-text "No capabilities installed." string, which is invalid JSON), matchingskill/plugin/connector list.rush tool --help/-hnow prints the command's help (wasunknown tool '--help', because the command disables flag parsing).
Downloads
| Platform | Binary | SHA-256 |
|---|---|---|
| macOS · Apple Silicon | download | — |
| macOS · Intel | download | — |
| Linux · x64 | download | — |
| Linux · arm64 | download | — |
| Windows · x64 | download | — |
| Windows · arm64 | download | — |
Checksums are published for the current latest release. Verify older binaries against rush --version after install.