// Package task defines the TASK record that flows through the conductor: // intake produces them, the loop executes them, writeback reports on them. package task // Task is one unit of released work. type Task struct { ID string `json:"id"` Subject string `json:"subject"` Prompt string `json:"prompt"` Class string `json:"class"` Source string `json:"source"` // "redmine" | "demo" // UpdatedOn is the Redmine `updated_on` at intake. The `harness loop` // dedups on issue id + updated_on: an issue update re-releases the // task; an unchanged issue is never re-dispatched. UpdatedOn string `json:"updated_on,omitempty"` // Status is the Redmine status NAME at intake ("In Progress", ...); // the loop's status map keys off it. Empty for non-Redmine tasks. Status string `json:"status,omitempty"` }