pub struct Task {Show 16 fields
pub id: i64,
pub project_id: i64,
pub repo_id: Option<i64>,
pub title: String,
pub body: String,
pub priority: Priority,
pub state: TaskState,
pub agent: Option<String>,
pub question: Option<String>,
pub pr_url: Option<String>,
pub branch: Option<String>,
pub state_since: String,
pub created_at: String,
pub closed_at: Option<String>,
pub human: bool,
pub deep: bool,
}Fields§
§id: i64§project_id: i64§repo_id: Option<i64>The repo this task’s work runs in, or None for the project’s default
(DESIGN.md §3/§8). Resolved through Store::repo_for_task; never read
raw by a consumer that wants a checkout.
title: String§body: String§priority: Priority§state: TaskState§agent: Option<String>§question: Option<String>§pr_url: Option<String>The canonical URL of a GitHub PR tracked on this task (DESIGN.md §11c),
or None. Names the PR’s base repo, so it survives forks where the
checkout’s origin is not that repo.
branch: Option<String>The git branch this task’s work lives on, or None. Holds the intended
name dispatch injects into the prompt, later overwritten by the branch
the agent reports — Voro never runs git, it only records what returns.
state_since: String§created_at: String§closed_at: Option<String>§human: boolMarks a task no agent can execute — hands-on work at real hardware, say
(DESIGN.md §3/§6). Dispatch, ask, and the agent override refuse it;
completion goes running → done directly. Default false means
dispatchable.
deep: boolMarks work that warrants the strongest model its agent offers rather
than the workhorse (DESIGN.md §8). Read only at dispatch, where it
picks which model fills the agent’s {model} placeholder; an agent
whose templates carry none ignores it. Orthogonal to priority, which
orders the queue, and to the agent override, which picks which agent
runs. Default false means the workhorse.
Implementations§
Source§impl Task
impl Task
Sourcepub fn branch_name(&self) -> Option<&str>
pub fn branch_name(&self) -> Option<&str>
The branch this task’s work lives on, blank treated as absent — the one
reading of the column both the next-action derivation and
plan_pr use, so a task advertised as PR-able is
exactly one pr accepts.
Sourcepub fn next_action(&self) -> Option<NextAction>
pub fn next_action(&self) -> Option<NextAction>
The single next-action derivation (DESIGN.md §3): what the human does
next, from state × fields. None for states that ask nothing of the
human — running and refining belong to the running strip,
parked/done/rejected wait on nothing. stalled always means a dead
agent dispatch, since dispatch refuses human tasks. waiting is handed
off to an external party (DESIGN.md §6) and asks nothing of the operator.
review is the one arm that reads past the state (DESIGN.md §6): a
tracked PR asks to be reviewed, a recorded branch asks for one to be
opened, and a task carrying neither produced no code at all — its
summary is the whole deliverable — so the move is accept. The summary
itself is not consulted: it lives in the event log rather than on this
row, and a task with nothing to push has no other move regardless.