Approval Workflows

Budget, autonomy, and operator-control approvals with discussion threads and transition history.

What approvals provide#

Approvals gate risky actions behind human review. They cover budget overrides, autonomy exceptions, routine decisions, and sensitive operator controls.

Creating approvals#

POST /api/v1/approvals creates an approval request. The system also creates approvals automatically when governed actions trigger approval-required policies.

Resolving approvals#

POST /api/v1/approvals/{id} resolves an approval:

DecisionEffect
approveAction proceeds
rejectAction is blocked with reason

Include an optional comment and reason with the decision.

Discussion threads#

POST /api/v1/approvals/{id}/comments adds a comment to the approval discussion. Comments are timestamped and attributed to the commenting user.

Approval types#

TypeTrigger
Budget overrideAction exceeds workspace budget threshold
Autonomy exceptionAction exceeds autonomy policy confidence
Routine decisionScheduled routine requires human confirmation
Operator controlSensitive operator action (requeue, reassign, abort)

Operator-control approvals#

When workspace governance requires approval for sensitive actions, the system determines whether an action is APPROVAL_REQUIRED or DIRECT based on the action type. Sensitive actions include requeue, reassign, and abort.

Dashboard#

The approvals inbox at /dashboard/{workspaceId}/sidekick/approvals shows pending approvals with decision buttons and discussion threads.

Transition history#

Every approval state change (created, approved, rejected) is recorded in the transition history with timestamp, actor, and reason.