These docs track main. Latest release: v1.0.0.

antigravity-booster
Reference

Exit and error codes

Every agb exit code per command, and the error classes and kinds users see.

agb uses three exit codes consistently:

  • 0: success, or nothing to do.
  • 1: the command could not do its job: bad input, invalid plan for run, missing quota telemetry, an unexpected exception.
  • 2: the command ran, and the result is a failure verdict: tickets failed, blocking findings, an invalid plan for validate.

Any exception that reaches the top level prints agb: <message> and exits 1 (top-level catch).

Per command

CommandCodeMeaning
--version, --help, <cmd> --help0Printed version or usage (source).
unknown command1agb: unknown command (source).
run0Every ticket merged.
1Plan invalid (C10), or the run could not start (lock held, no quota telemetry).
2At least one ticket in report.failed (C10).
sweep0 / 1 / 2Same as run; 1 also covers an invalid sweep spec (source).
validate0Prints plan valid.
2Plan invalid; errors on stderr (C10). Note this differs from run, which uses 1.
1Plan file missing or not JSON (top-level catch).
preflight0 / 2Preflight passed / found blocking issues (source).
1Plan invalid, or quota telemetry unavailable (skipped with --no-coldstart) (source).
review0Converged with no critical or high finding, or empty diff.
2A critical or high finding, or the review did not converge (source).
1Quota telemetry unavailable.
plan0Plan compiled and written.
1Bad arguments, output file exists without --force, or no quota telemetry (source).
2Blocking plan-gate findings; nothing written (source).
import-brain0 / 1Deprecated; 1 on bad arguments or no telemetry.
status0Rendered once.
1--ui given (removed) (source).
status --watch0 / 2Exits when the run finishes: 2 if any ticket failed (source).
tui1Removed; points to agb sidecar.
doctor0 / 11 if any check has level fail or errored (runDoctor).
migrate (all modes)0 / 1Return value of migrate, breakLock or finishUninstallCommand: 0 on success or nothing to do, 1 on refusal or failure (lib/migrate.mjs).
probe0Even when every request failed (rows are just not recorded).
sidecar1Missing or invalid --port, or unknown flag (source).
130 / 143Stopped by SIGINT / SIGTERM after cleanup (source).
pool drain0 / 1Drained / unknown subcommand (source).
bootstrap, brains0Errors surface through the top-level catch (1).

Error classes

These named errors can reach the terminal as agb: <message>.

ClasscodeWhen
LegacyFleetActiveErrorERR_LEGACY_FLEET_ACTIVEA v0.7 coordinator is still active in the shared pool state (pools.mjs). Wait for it or run agb pool drain.
ActiveV2LeasesPresentErrorERR_ACTIVE_V2_LEASES_PRESENTAn older binary started while v2 leases are active (pools.mjs).
MigrationLockErrorvariesThe agb migrate lock is held or cannot be taken (migration-lock.mjs). See Upgrading from npm.

The repository run lock throws a plain Error: another agb run holds the lock on <repo> (pid …, run …) (lock.mjs).

Ticket failure kinds

A ticket that fails does not abort the run; its reason lands in report.failed. Internally, errors carry a kind that tells you which stage failed. Kinds set by the scheduler and plan checks include:

KindMeaning
merge_conflictThe ticket branch did not merge cleanly onto the advanced base.
post_merge_gate_failureGates passed in the worktree but failed after integration; the merge is rolled back.
empty_diffThe builder produced no change.
gate_script_tamperingThe ticket changed the gate script or one it delegates to (plan.mjs).
lease_revokedThe pool lease ended (pool draining) before the builder spawned.
external_ref_divergence, unexpected_base_ref_mutationThe base branch moved outside agb during a merge transaction.
unproven_candidate_requires_operator, unproven_ref_advancement_requires_operatorCrash recovery could not prove a ref is legitimate; a human must decide.
integration_finalization_failure, unsupported_journal_phaseMerge journal finalization or recovery failed.
circuit_breaker_trippedQuota telemetry failed repeatedly; dispatch is suspended (pools.mjs).

agy call failures have their own kinds (timeout, server, spawn, containment_unavailable, envelope_error, schema_violation); see agy integration.

On this page