Skip to content

Releases

agy-crew v0.9.15

Choose a tag to compare

@github-actions github-actions released this 14 Nov 06:06

agy-crew 0.9.15 — transient omp extension and per-account concurrency

Background runs, start, and the permission model behave as in 0.9.14. This release changes the omp bridge, the installer, and account-pool scheduling.

Changes

  • agy-crew install no longer installs the omp plugin. The extension loader is no longer part of an install; the command now removes a loader that an earlier version wrote. A file the user put at ~/.omp/agent/extensions/agy-crew-omp.ts is left alone.
  • The omp extension lives only as long as an agy-crew omp run. The launcher writes the bundled extension before omp starts and removes it when omp exits, including after a refused or failed run. The old installed-extension check and AGY_CREW_OMP_SKIP_INSTALL_CHECK are gone.
  • agy-crew omp requires --use-at-my-own-risk. Loading an installed extension into omp is not a supported omp interface and can break the session. Without the flag the command refuses before holding an account, writing a file, or launching omp. --help still works without it.
  • accounts parallel <name> [<n>] limits agent-dispatched runs per account. Skill-driven runs (staffer, research, review, implement, ask, continue, restart) take one slot per account by default; the command raises that to 1–64 for one account without requiring it to be idle. auto picks an account with a free slot, and a run fails with reason busy when none is available. Interactive start and agy-crew omp still hold their account exclusively. A credential on loan is exclusive whatever the limit: neither lender nor borrower takes another run until the loan is restored, and a loan never starts while the borrower has another run lease. accounts list gains a PARALLEL column and --json includes parallel, so the caller can size a batch to the free slots.

Upgrading

npm install -g agy-crew@latest
agy-crew install

install retires the loader written by 0.9.14. Restart the harness, and restart any running agy-crew omp session. Existing agy-crew omp commands need the new flag:

agy-crew omp --use-at-my-own-risk work1 -- --model google-antigravity/gemini-3.8-flash

Existing pool accounts keep working with one slot each; raise a limit only when you want several jobs on one account.

agy-crew v0.9.14

Choose a tag to compare

@github-actions github-actions released this 11 Nov 05:01

agy-crew 0.9.14 — omp bridge: install check and connection-drop retries

Background runs, account selection, start, and the permission model behave as in 0.9.13. Both changes are in the experimental agy-crew omp bridge.

Fixes

  • agy-crew omp refuses to start without the omp extension. Without the extension omp starts normally but never sees the pool account: google-antigravity stays paused and the session runs on whatever else is configured. The launcher now checks before it holds an account, and exits with the command to run when neither the loader written by agy-crew install --hosts omp nor the omp plugin install agy-crew package is present. A loader that points at a removed package (for example after switching Node versions) is refused the same way. Set AGY_CREW_OMP_SKIP_INSTALL_CHECK=1 if you load the extension some other way, such as an omp --profile.
  • A dropped connection no longer ends the turn. omp replays a failed turn only when the error text matches its transient-transport wording. A dropped connection to the Cloud Code endpoint surfaces as EPROTO: The TLS handshake failed. Does the server speak TLS on this port? (or a bare ECONNRESET / EPIPE), which that wording does not cover, so a single flaky connection ended the turn, sometimes with Tool call was not executed because the provider stream ended with an error. The extension now rewords these errors, for requests to the Cloud Code hosts only, both when the request is rejected and when the response stream breaks. omp's own retry budget (retry.maxRetries, 10 by default) then applies to them, as it already does to 503 No capacity available. The extension does not retry by itself. Set AGY_CREW_OMP_TRANSPORT_SHIM=0 to turn the rewording off.

Upgrading

npm install -g agy-crew@latest
agy-crew install

Restart the harness, and restart any running agy-crew omp session to pick up the new extension. No migration is needed.

agy-crew v0.9.13

Choose a tag to compare

@github-actions github-actions released this 10 Nov 18:17

agy-crew 0.9.13 — omp bridge and daily update checks

Background runs, account selection, start, and the permission model behave as in 0.9.12.

What's new

agy-crew omp (experimental). Run omp on one held pool account:

agy-crew omp work1 -- --model google-antigravity/gemini-3.8-flash
agy-crew omp       -- --model google-antigravity/gemini-3.8-flash

-- ends agy-crew's flags; everything after it goes to omp unchanged. The command selects a pool account, holds it until omp exits, and provides the bundled omp extension with the account's runtime credential. The extension takes back the paused google-antigravity provider, installs the credential as a runtime bearer (no agent.db write, no profile, no session restriction), rewrites block 0 to the agy-crew identity, and strips cfg:// and omp:// fingerprints from prompts and tool declarations. A background agy warm-up refreshes the bearer before expiry. agy-crew install --hosts omp installs the extension loader; the extension is inert when AGY_CREW_OMP_ACCOUNT is unset, so a plain omp is unchanged.

The bridge accepts only auto or a pool account. It never reads a live agy login, so there is no special --account live handling in the omp path.

Daily npm update check. Interactive agy-crew start, the full-screen agy-crew inspect, and the human-facing accounts list / accounts quota tables check the npm registry at most once per 24 hours. When a newer release exists they print a one-line update notice on stderr. The result is cached in ~/.agy-crew/update-check.json.

The check requires a TTY and skips known coding-harness environments, so agent skill calls never check, wait, or write the cache. Machine-readable --json account output never checks. Set AGY_CREW_NO_UPDATE_CHECK=1 to disable it.

Fixes

  • Credential refresh no longer waits for agy's print turn. agy can refresh a file token in a fraction of a second and then keep the -p turn open much longer. The bridge and accounts quota --refresh now stop agy as soon as the token file changes, so agy-crew omp starts in seconds instead of appearing to hang for a minute.
  • The omp bridge raises Antigravity's first-event budget. omp's catalog gives Gemini Flash a 60-second first-event timeout. A cold or loaded Gemini start can exceed it, and omp reports Request was aborted before any token arrives. agy-crew omp now passes PI_STREAM_FIRST_EVENT_TIMEOUT_MS=300000 (an explicit user value still wins), matching the five-minute budget used for other providers.
  • The first request uses a valid credential. The launcher resolves and caches the Cloud Code project, and the omp extension registers the cached account credential as a provider fallback before model discovery. The role default no longer briefly falls back to another provider, and session_start still installs the runtime bearer.
  • The omp bridge no longer advertises or attempts live-account support; the bundled extension has no live branch.
  • agy-crew omp takes the account as an optional first positional, matching agy-crew start; its usage text lists [<name>].

Upgrading

npm install -g agy-crew@latest
agy-crew install

Restart the harness. If you use the omp bridge, re-run agy-crew install --hosts omp (or a normal agy-crew install) to refresh the extension loader. No migration is needed.

agy-crew v0.9.12

Choose a tag to compare

@github-actions github-actions released this 04 Nov 19:01

agy-crew 0.9.12 — account rename, tab completion, skills in the shared home, inspect across worktrees

Background runs, account selection and cooldowns behave as in 0.9.11.

What's new

accounts rename <old> <new> and accounts refresh-email.

  • rename moves the account's directory, cooldowns, quota snapshot and conversation bindings to the new name. It refuses while the account is in a lease or loan, lends the shared session, or the new name is taken or invalid.
  • refresh-email [<name>...] [--json] re-reads each account's email from its token file (offline; run accounts quota --refresh first to have agy renew the token) and updates the pool record. A missing token, a token without an email, or an email another account already carries is reported and the record is left alone.

Tab completion. agy-crew completion bash|zsh|fish prints a completion script. It completes commands, subcommands, flags, flag values (models, efforts, --hosts, --family), account names and job ids. agy-crew install sets it up for you (below).

install puts the skills into the shared home. The shared home (~/.agy-crew/shared/home) is the HOME that start and pooled runs give agy, so agy now finds the agy-crew-* skills there too. It is a new host, shared (~/.agy-crew/shared/home/.agents/skills), included in every default install without detection; --hosts shared selects it alone and uninstall removes it with the rest.

install sets up shell completion. The scripts go to ~/.agy-crew/completions/. bash and zsh get one marked block in their rc file (# >>> agy-crew completion >>> … # <<< agy-crew completion <<<) that sources the script; the rest of the file is never touched and a repeat install replaces the block. fish gets ~/.config/fish/completions/agy-crew.fish; a file you wrote yourself there is left alone and reported as a conflict. A shell is set up when its rc file exists or it is your login shell. --no-completion skips it, --dry-run writes nothing, and an rc file that cannot be written only warns. uninstall removes the blocks and files together with the last skill link.

Fixes

  • inspect now sees jobs started in other worktrees. Each git worktree keeps its own .agy-crew/, so an agent working in an auto-created worktree left its jobs where inspect in the main checkout could not see them. inspect now merges the jobs of every worktree of the repository (read-only): the Jobs page and status line mark jobs from another worktree with [worktree-name], a bare inspect picks the newest job of any worktree, and inspect <id> finds it wherever it ran. --here restricts the view to the current worktree. A corrupt state.json in one worktree is skipped with a warning. status, wait and result still look at the current worktree only.

Behaviour change

A default install now also writes to the shared home and to your shell's rc file (bash, zsh) or fish completions directory. Use --no-completion to skip the latter. If you ran an earlier version, remove nothing: the next install adds both.

Upgrading

npm install -g agy-crew@latest
agy-crew install

Open a new shell for tab completion and restart the harness for the skills. No migration is needed.

agy's skill directory for the shared home follows its .agents/skills convention; check with /skills inside agy-crew start.

agy-crew v0.9.11

Choose a tag to compare

@github-actions github-actions released this 01 Nov 12:27

agy-crew 0.9.11 — every start uses the shared home

Background runs, account selection and cooldowns behave as in 0.9.10. This release changes agy-crew start again: the shared home from 0.9.10 is now where every interactive session runs.

What's new

start <name> runs in the shared home too. It used to run agy as that account in the account's own HOME, so its conversations were cut off from every other account's. Now <name> only chooses which account lends the credential; agy runs in ~/.agy-crew/shared/home either way, so /resume and agy --continue see the same conversations whichever account you pick. The accounts' own HOMEs are left to background runs, which need them to keep concurrent jobs apart.

  • start <name> checks the account as before: known, enabled, signed in, not in use. A cooldown for the model's family is printed as a note but does not refuse it.
  • start without a name picks an idle account with quota for the family, as in 0.9.10.

Fixes

  • A join no longer launches agy on a credential that cannot work. The shared home holds one credential at a time, so a start while a shared session runs joins it. Before, a start --model <id> whose family had no quota on the running account joined anyway, printed a note and launched agy, which then failed on its first request. It is now refused before launching agy. start <name> naming a different account than the running session is refused the same way. The message gives the pids of the running sessions; exit every shared agy, then start again. start <name> naming the running account still joins, with a note if it is cooling.

Behaviour change

Conversations started with start <name> before this release live in that account's own HOME (~/.agy-crew/accounts/<name>/home), and /resume in the shared home does not list them.

Upgrading

npm install -g agy-crew@latest
agy-crew install

Restart the harness. No migration is needed.

agy-crew v0.9.10

Choose a tag to compare

@github-actions github-actions released this 01 Nov 09:25

agy-crew 0.9.10 — a shared home for start

Background runs, account selection and cooldowns behave as in 0.9.9. This release changes agy-crew start for people who use agy by hand, and fixes one quota bug.

What's new

start without an account name runs in a shared home. Every pool account keeps its conversations in its own HOME, so a conversation started under one account could not be resumed under another. agy-crew start now runs agy in ~/.agy-crew/shared/home, a HOME that belongs to no account, so /resume and agy --continue find its conversations whichever account lends the credential.

  • On start, an idle account with quota for the model family lends its credential and its Cloud Code project id: it must be enabled and signed in, with no lease, loan or hold, and no cooldown or empty quota snapshot for that family. The fullest account goes first, then the least recently used. When agy exits, the credential, which agy may have refreshed, goes back to the account. If the companion is killed, it goes back on the next pool update.
  • --model <id> chooses the family the lender needs quota for and is passed on to agy. Without it, the family of the default model (gemini-3.8-flash) is used.
  • A second start while a shared session runs joins it on the same credential; the credential goes back when the last one exits.
  • When no account can lend, start is refused before launching agy and lists each account's state.
  • The lender is held for the session (shown as shared in accounts list), so background runs stay off it.
  • A quota error inside an interactive session is not recorded as a cooldown. Run accounts quota --refresh before starting again if the next pick might choose the same account.

start <name> still runs as that account in its own HOME, and now accepts --model too.

Behaviour change: a bare start used to print its usage and exit 1. It now starts the shared session; use start --help for the usage and the account list.

Fixes

  • accounts quota --refresh no longer stores the lender's quota under a borrower's name. While an account's credential is on loan to a running job, its token file holds the lender's credential, so the refresh now skips that account and keeps its last snapshot.

Upgrading

npm install -g agy-crew@latest
agy-crew install

Restart the harness. No migration is needed.

agy-crew v0.9.9

Choose a tag to compare

@github-actions github-actions released this 31 Oct 14:33

agy-crew 0.9.9 — inspect, a live tabbed viewer

Runs, account selection, cooldowns and quota behave as in 0.9.8. This release adds one command for people: agy-crew inspect.

What's new

inspect [<job>] is a resident, tmux-style full-screen window for watching jobs while they run.

  • Tab 0 is the Jobs page: recent jobs, running first, or No tasks currently running. when idle. Select one and press Enter to open it, including finished jobs.
  • Every running job gets its own tab, including jobs started after the window opened. A tab tails the job's event stream: one line per tool call (▶ start, ✓/✗ finish with duration and an output excerpt) plus the model's reply, and a status line with state, model, account, elapsed time, tool/error counts, tokens and the last tool.
  • The window never exits on its own; finished jobs stay as tabs and an idle window waits for the next job. q or Ctrl-C quits, and quitting never cancels or signals a job.
  • Keys: Tab/←→ switch, 0–9 jump, ↑↓ PgUp PgDn g End scroll, Enter open, x close a tab, m toggle the mouse.
  • Mouse: the wheel scrolls (or moves the selection on the Jobs page); clicking a tab switches, clicking a job row opens it. While mouse reporting is on, hold Shift to select text as usual, or start with --no-mouse.
  • It is read-only: it does not write state.json and does not affect wait.

inspect <job> --plain is the scriptable form (also used when stdout is not a terminal, or with --no-follow): a scrolling log of one job that follows it to the end and exits with the job's code (0/3/4/5). --no-color disables colour.

A job that finished warning-free has no raw event stream left (unchanged behaviour); its tab says so and points to result. Agents should keep using wait and observe; inspect is for people.

Upgrading

npm install -g agy-crew@latest
agy-crew install

Restart the harness. No migration is needed.

agy-crew v0.9.8

Choose a tag to compare

@github-actions github-actions released this 28 Oct 17:23

agy-crew 0.9.8 — Gemini quota is back in accounts quota

Runs, account selection and cooldowns behave as in 0.9.7. This release fixes accounts quota --refresh, which had stopped reporting the Gemini pool.

Changes since 0.9.7

Gemini quota snapshots. Cloud Code now returns the Gemini group from retrieveUserQuotaSummary only when the request's User-Agent names a recent agy CLI (antigravity/cli/<version> (...), as agy itself sends). agy-crew sent a bare antigravity, so every refresh came back with the Claude/GPT pool only: accounts list and accounts quota showed no gemini rows, and auto could neither rank accounts by Gemini quota left nor skip an account whose Gemini quota was empty. agy's own usage view was unaffected.

Quota requests now send antigravity/cli/<version> (aidev_client; os_type=<os>; arch=<arch>), with the version read from agy --version once per refresh (1.4.9 when it cannot be read). Run agy-crew accounts quota --refresh once after upgrading to bring the Gemini snapshots back.

Upgrading

npm install -g agy-crew@latest
agy-crew install
agy-crew accounts quota --refresh

Restart the harness. No migration is needed.

agy-crew v0.9.7

Choose a tag to compare

@github-actions github-actions released this 23 Oct 05:23

agy-crew 0.9.7 — login with an id_token_email token

Runs, account selection and quota handling behave as in 0.9.6. This release fixes account login with token files written by newer agy versions.

Changes since 0.9.6

Login no longer fails on an id_token_email token. agy records the signed-in account in its token file either as an id_token JWT or, in newer versions, as a plain id_token_email field. agy-crew only read the JWT, so a sign-in that produced the second form failed with could not read an email from the token; refusing to add an account that cannot be told apart, and a re-login of such an account was rolled back. The email is now read from either field. Accounts already in the pool need nothing.

Upgrading

npm install -g agy-crew@latest
agy-crew install

Restart the harness. No migration is needed.

agy-crew v0.9.6

Choose a tag to compare

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

agy-crew 0.9.6 — interactive start, help and refresh progress

Runs, account selection and quota handling behave as in 0.9.5. This release adds a way to use a pool account by hand, a readable help text, a version command, and progress output for accounts quota --refresh.

Changes since 0.9.5

start. agy-crew start <name> [-- <agy args>...] runs agy interactively in the current terminal and directory as pool account <name>, with that account's private HOME, so there is no separate agy login to manage. Arguments after -- reach agy unchanged, and the command exits with agy's exit code. While agy runs the account is held as by accounts hold acquire: auto never picks it, it never lends, and its token is never swapped by a loan. The hold ends when agy exits. start is refused before launch for an unknown, disabled, signed-out or busy account; a cooldown is only noted on stderr. Without a name it lists the accounts with their state and an example. See Interactive sessions.

Help and version. agy-crew with no arguments now prints a grouped overview of every command instead of a one-paragraph usage error; help (--help, -h) prints the same on stdout and exits 0. version (--version, -v) prints the versions of agy-crew and agy.

Quota refresh progress. accounts quota --refresh used to print nothing until every account was done, and renewing an expired token through agy takes several seconds per account. It now reports on stderr: one ✓/✗ line with the time taken per account and, on a terminal, a live line with the account, what it is waiting on and for how long. stdout still carries only the table or JSON, and --json off a terminal prints no progress. Accounts are still refreshed one at a time.

Upgrading

npm install -g agy-crew@latest
agy-crew install

Restart the harness. No migration is needed.