Task Lifecycle
Every task in Agent HQ follows a defined lifecycle from creation to completion.
Board columns
Section titled “Board columns”The task board displays three columns:
| Column | Shows | Description |
|---|---|---|
| Backlog | backlog tasks | Tasks waiting to be run |
| In Progress | queued, processing, blocked, and failed tasks | Tasks that are actively being worked on or need attention |
| Done | done tasks | Completed tasks |
When you drag a task between columns, Agent HQ sets the appropriate underlying status (e.g. dragging to In Progress sets it to queued).
Underlying statuses
Section titled “Underlying statuses”Each task has one of six statuses:
Backlog
Section titled “Backlog”The starting state. Tasks in the backlog are defined but not yet scheduled to run.
Queued
Section titled “Queued”The task is scheduled to run and waiting for an available execution slot. Tasks move here when you drag them to In Progress or when Pilot creates them for immediate execution.
Processing
Section titled “Processing”The task is actively running in a sandbox. You can watch real-time execution logs, see code being written, and monitor progress. Processing tasks are sorted to the top of the In Progress column.
The task completed successfully. Output, files, and any generated pull requests are available for review.
Failed
Section titled “Failed”The task encountered an error during execution or was interrupted. Failed tasks remain in the In Progress column so you can easily retry them.
Blocked
Section titled “Blocked”The task requires human intervention — typically an approval decision. See Approvals for the approval workflow.
State transitions
Section titled “State transitions”| From | To | Trigger |
|---|---|---|
| Backlog | Queued | User runs the task or Pilot schedules it |
| Queued | Processing | Execution slot becomes available |
| Processing | Done | Task completes successfully |
| Processing | Failed | Task encounters an error |
| Processing | Blocked | Task requires approval |
| Blocked | Processing | User approves the task |
| Blocked | Failed | User rejects the task |
| Failed | Queued | User retries the task |
| Done | Queued | User reruns the task |
Interrupting a task
Section titled “Interrupting a task”You can stop a running task at any time by clicking the Interrupt button in the task detail view. This halts execution immediately. The task moves to a failed state, and you can review any partial output.
Timing
Section titled “Timing”Each task tracks:
- created_at — when the task was created
- started_at — when execution began (set on first queue or processing transition)
- completed_at — when execution finished successfully