Records how an iteration ended (verified, pending, quota, failed or no_progress) with its time, the share of the usage window it used and, for a failure, the failing command and the end of its output. The service applies the stuck rules (the same failure three times in a row, or three iterations with no progress) and the per-task ceilings (attempts, minutes, usage window share). A held task prints STOP stuck or STOP ceiling: take the next task. Report after the task’s lease is released.
Usage
overlane run attempt --task TASK_ID --executor claude-code|codex|gemini-cli|cursor --outcome verified|pending|quota|failed|no_progress --started TIME [--ended TIME] [--spend PERCENT] [--command COMMAND] [--output-file PATH] [--commit SHA] [--resets-at TIME] [--dry-run]Flags
| Flag | Type | Required | Default | Description |
|---|---|---|---|---|
--task |
string | yes | The task the iteration worked on | |
--executor |
one of claude-code, codex, gemini-cli, cursor |
yes | Which agent ran the iteration | |
--outcome |
one of verified, pending, quota, failed, no_progress |
yes | How the iteration ended | |
--started |
string | yes | When it started: an ISO time or a span back from now such as 40m | |
--ended |
string | no | When it ended (default: now) | |
--spend |
string | no | Percentage points of the usage window it used, as the client reported (default: 0) | |
--command |
string | no | The verification command that failed | |
--output-file |
string | no | A file holding the failing output; its last 64 KB is sent | |
--commit |
string | no | The commit the iteration ended on | |
--resets-at |
string | no | For a quota stop: when the client says its window resets | |
--dry-run |
boolean | no | Print the requests and file changes this command would make, then stop. Needs no credentials. |
Examples
overlane run attempt --task T3 --executor codex --outcome failed --started 40m --command 'pnpm -r test' --output-file .overlane/state/last-test.logBehavior
- Effect:
write(changes local or hosted state). - Needs credentials: yes. Uses the network: yes.
- Supports
--dry-run: yes. Accepts--force: no. - Machine-readable description:
overlane schema run attempt.
Result
With --json (the default when stdout is not a terminal) the command prints this JSON Schema’s shape on stdout.
{
"anyOf": [
{
"type": "object",
"properties": {
"attempt": {
"type": "object",
"properties": {
"seq": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"taskId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
"description": "task identifier"
},
"executor": {
"type": "string",
"enum": [
"claude-code",
"codex",
"gemini-cli",
"cursor"
]
},
"outcome": {
"type": "string",
"enum": [
"verified",
"pending",
"quota",
"failed",
"no_progress"
]
},
"startedAt": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"endedAt": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"minutes": {
"type": "number",
"minimum": 0
},
"spendPercent": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"fingerprint": {
"type": [
"string",
"null"
]
},
"lastLine": {
"type": [
"string",
"null"
]
},
"commitSha": {
"type": [
"string",
"null"
]
},
"resetsAt": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
]
}
},
"required": [
"seq",
"taskId",
"executor",
"outcome",
"startedAt",
"endedAt",
"minutes",
"spendPercent",
"fingerprint",
"lastLine",
"commitSha",
"resetsAt"
],
"additionalProperties": false
},
"verdict": {
"oneOf": [
{
"type": "object",
"properties": {
"action": {
"type": "string",
"const": "continue"
}
},
"required": [
"action"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"action": {
"type": "string",
"const": "paused_stuck"
},
"rule": {
"type": "string",
"enum": [
"same_failure",
"no_progress"
]
},
"fingerprint": {
"type": [
"string",
"null"
]
},
"streak": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"action",
"rule",
"fingerprint",
"streak"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"action": {
"type": "string",
"const": "paused_ceiling"
},
"kind": {
"type": "string",
"enum": [
"attempts",
"minutes",
"spend"
]
},
"limit": {
"type": "number"
},
"actual": {
"type": "number"
}
},
"required": [
"action",
"kind",
"limit",
"actual"
],
"additionalProperties": false
}
]
},
"duplicate": {
"type": "boolean"
}
},
"required": [
"attempt",
"verdict",
"duplicate"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"dryRun": {
"type": "boolean",
"const": true
},
"service": {
"type": "string"
},
"requests": {
"type": "array",
"items": {
"type": "object",
"properties": {
"method": {
"type": "string"
},
"path": {
"type": "string"
},
"body": {},
"note": {
"type": "string"
}
},
"required": [
"method",
"path"
],
"additionalProperties": false
}
},
"commands": {
"type": "array",
"items": {
"type": "string"
}
},
"writes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"action": {
"type": "string",
"enum": [
"write",
"append",
"delete"
]
},
"description": {
"type": "string"
}
},
"required": [
"path",
"action",
"description"
],
"additionalProperties": false
}
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"dryRun",
"requests",
"commands",
"writes",
"notes"
],
"additionalProperties": false
}
]
}See exit codes for the status the process returns.