Statuses & limits
Feature lifecycle statuses
| Status | Meaning | Runnable? |
|---|---|---|
draft | Created, never generated. | No |
generating | Generation in flight — feature is locked. | No |
generated | Tests exist. | Yes |
failed | Last generation failed. | No |
cancelled | Last generation was cancelled. | No |
suggestion | Proposed by the exploration agent, awaiting review. | No |
Run statuses
| Status | Meaning | Terminal? |
|---|---|---|
queued | Accepted, waiting for a sandbox. | No |
allocating | A sandbox is being provisioned. | No |
running | Executing in the sandbox. | No |
passed | Finished, all tests passed. | Yes |
failed | Finished with failures (digest carries errors + log excerpt). | Yes |
Other terminal outcomes include error, canceled, and cancelled. Use isTerminal and terminalReason rather than treating every non-passed result as a test assertion failure. queued / allocating / running mean the run is still in flight — not that it failed, and not that it's slow to report.
Per-test statuses
passed, failed — anything else (for example, skipped) is counted under summary.other.
Limits
| What | Limit |
|---|---|
| File writes | Only under Features/ or Configurations/; no ..; ≤ 262,144 UTF-16 code units (the server labels this “256 KB”). |
wait_for_run / wait_for_generation | timeoutSeconds default 120, max 170; polls at the recommended interval (normally 3 s). Timing out cancels nothing. |
CLI --wait / --watch | Re-arms the 170 s wait until terminal, under one --timeout <seconds> budget for the whole command — default 5400, 0 = indefinitely, env TESTVIBE_WAIT_TIMEOUT_SECONDS. Gives up after 3 consecutive unreadable status windows (~8.5 min). |
list_runs | limit default 20, clamped 1–100; load runs require REST includeLoad=true. |
Per-test error in the run digest | Trimmed to 1 500 characters. |
Run log excerpt | Trimmed to 4 000 characters; only on non-passed runs. |
| Generation section log lines | Trimmed to 600 characters each; root log lines are separate. |
| Artifact download URLs | Short-lived — fetch immediately before downloading. |
| Concurrent generations | One per feature — a second dispatch gets 409 conflict. |
CLI exit codes
| Exit code | Meaning |
|---|---|
0 | Finished and passed / succeeded. |
1 | Finished and something actually failed — also any command rejected outright (bad flag, API error). |
2 | A generation parked to ask a question. Needs a human. |
3 | No verdict: the --timeout ceiling elapsed, or contact with the server was lost. Never a test failure. |
Details in the CLI wait contract.
Error codes
Common error values and when you'll see them are in Conventions & errors.
Cloud request budgets are workspace-wide: Team 1,000/hour, Business 5,000/hour, Enterprise no plan-based ceiling. Free/Personal have no programmatic access. A per-IP abuse limit and self-hosted overrides can also apply. Honor rate-limit headers. See authentication.
Feature lifecycle status is not itself a universal runnability predicate: individual dispatch rejects generating and requires linked JavaScript test files; whole-suite selection defaults to generated features. Generation status uses the independent isTerminal flag and can pause on awaitingInput without finishing.