Task
Rover manages your requests as tasks. Each task is an unit of work for Rover and it contains:
- Your initial description, enhanced with a coding agent
- A selected coding agent to complete it
- A workflow to guide the coding agent and complete your request
- A separate workspace to apply the changes
- Its own sandboxed environment to run in isolation
- Associated metadata, like status, history, generated files, etc.
Tasks can run in parallel, and you can create as many as you want. Each task is independent from the others, so you can stop, restart, inspect, debug, or delete them individually.
Task Storage
Section titled “Task Storage”Rover stores all task data in the global store, keeping your repository clean. Each task has its own folder inside ~/.rover/data/projects/<project-id>/tasks/. The folder name is the unique task ID assigned when you create it.
Directory~/.rover/data/projects/<project-id>/
Directorytasks/
Directory1/
- …
Directory2/
- description.json
Directoryiterations/
Directory1/
- entrypoint.sh
- inputs.json
- workflow.yml
- iteration.json
- status.json
- summary.md
- …
Directory2/
- …
- …
Directory3/
- …
- …
Directoryworkspaces/
Directory1/
- …
Directory2/ Git worktree for task 2
- …
Directory3/
- …
Directorylogs/
- …
Task files
Section titled “Task files”| Name | Description |
|---|---|
description.json | Contains the original task description, selected agent, and metadata |
iterations/ | Folder containing each iteration made by the coding agent |
The workspace for each task is stored separately in the workspaces/ directory.
Iteration files
Section titled “Iteration files”Each iteration has its own folder with the files needed to run the task in the sandbox:
| Name | Description |
|---|---|
entrypoint.sh | Script that starts the task execution inside the sandbox |
inputs.json | Input data provided to the coding agent |
workflow.yml | The workflow guiding the coding agent to complete the task |
iteration.json | Details of the iteration, including changes made and agent messages |
status.json | Current status of the iteration (e.g., in-progress, completed) |
Task Lifecycle
Section titled “Task Lifecycle”Each task goes through a lifecycle with different states. Rover ensuses that tasks progress through these states as coding agents work on them. The Rover agent running in the sandboxed environment updates the task status as the coding agents complete each step.
You can find the current status of a task in the status.json file inside the task’s iterations/<iteration_id>/ folder in the global store.
stateDiagram-v2
[*] --> New: rover task (create task)
New --> Running: Start
Running --> Completed: Success
Running --> Failed: Error
Failed --> Running: Restart
Completed --> Pushed: rover push (push to remote)
Completed --> Merged: rover merge (merge to your branch)
Pushed --> [*]
Merged --> [*]