Work and executions
A plan, its stages, and why creating one returns before the work is done.
An execution connects a goal to the stages Tessen chose for it. Each stage carries its state, how many attempts it has had, and — when it failed — the real error, because a stage that says "something went wrong" is a stage nobody can act on.
The plan is written before any work happens
POST answers 202 with the plan and starts the run without waiting for it. The row exists before the first stage, every transition is written as it happens, and a crash halfway is resumable because the plan says which stage was running.
Approval gates
A plan stops at the first stage that needs approval. Resuming is the same POST with a planId and the stage ids you approve; a resume through the API is always a person asking, so it grants a fresh attempt budget.