Skip to content

User Task Completion

The graph engine used UserTaskExecutors to interpret signals and emit effects. The durable runtime completes a typed user-task contract through the service API.

dart
await service.completeUserTask(
  commandId: task.commandId,
  response: Approval.approved(),
  idempotencyKey: requestId,
);

The Flutter action bar does not complete tasks by schema string. It posts the sealed UserTaskAction the server already authorized.

Reassignment

Durable user-task reassignment is a first-class persistence path. It does not rewrite history. The new assignment is the eligibility surface for the next claim or completion.

Expiry

Optional expiresAt is a hard boundary. Recovery records expiry once. Workflow code can escalate, reassign, cancel, or fail.

See Also