Concepts
Tasks
A Task is a prompt + agent + branch + worktree. The smallest schedulable unit; lifecycle states drive the kanban.
Tasks
A Task is the smallest schedulable unit in Vupt. It binds a prompt, an agent, a target branch, and a git worktree. Tasks live inside Squads and run in parallel with their siblings.
Anatomy
| Field | Description |
|---|---|
prompt | The instruction passed to the agent. Free text, MDX-friendly. |
agent | One of the registered providers (claude-code, codex, aider, ...) |
branch | Target branch for the worktree; auto-named if omitted |
worktree | Filesystem path managed by Vupt under ~/.vupt/worktrees/... |
hooks | Optional per-task overrides for the post-completion hooks |
Lifecycle states
queued → running → awaiting-input ↔ running → completed → reviewed → merged
→ discarded
| State | Notes |
|---|---|
queued | Worktree created, agent not yet spawned |
running | Agent process active; journal streaming |
awaiting-input | Agent asked the user a clarifying question; Squad pauses unless auto_proceed=true |
completed | Agent finished; diff ready for review |
reviewed | User opened the diff at least once |
merged / discarded | Terminal states; worktree cleaned up |
Retries (Runs)
A Task can retry within the same Squad. Each attempt is a Run. Runs share the same worktree (cleaned between attempts) and the same prompt (unless edited mid-flight). The journal is per-Run so you can compare attempts side by side.
Cancellation
Cancel any running Task from the UI or programmatically:
vupt task cancel <task-id>
Cancellation sends SIGTERM to the agent process, waits up to 5 seconds, then escalates to SIGKILL. The worktree is preserved by default (use --cleanup to remove it).