Status: Minimal durable run reads and cancellation requests are available in the production partner preview. Exact browser pending approvals remain pending activation. Cancellation-reconciliation final states have passed separate production canaries for pre-dispatch release and provider-in-flight uncertain-outcome settlement.A run is the customer-safe projection of a durable task admitted through
POST /v1/execute with mode: "task". Internal lease,
executor, provider-cost, margin, prompt, and tool-argument fields never cross
this boundary.
Get a run
runs:read, and the run must belong to the key’s tenant.
An unknown or foreign run is not projected.
status is queued, running, awaiting_approval, completed, failed,
or cancelled. Once the reconciliation final-status canary clears, an internal
reconcile_required state projects as running.
It is recoverable and non-terminal, so keep polling or streaming until you see
an actual terminal status. A completed agent-loop run can include result.text
only after its stored result validates, its action digest matches, and its
verification verdict is verified. After approval activation, an awaiting
browser action includes pendingApproval only when Praxa can derive its exact
presentation and matching digest. Otherwise Praxa omits the unsafe projection
and refuses a decision.
The current projector does not populate structured result or usage members.
Internal error detail stays private.
Ordinary failed, partial, and expired outcomes project as failed with
failure.code: "run_failed". Once the reconciliation final-status canary clears, an uncertain
committing outcome projects as this terminal resource instead:
Cancel a run
{}. Every member, including reason, is rejected.
The key must carry runs:write. Cancellation is recorded through the mature
task state machine and then wakes the durable workflow using its existing
user-presence and approval-digest event names. A wake failure is loud: the
endpoint does not claim success when the workflow notification failed.
The response is the updated RunResource. Cancellation is cooperative. It does
not roll back a committed action, and a 200 response does not mean the run is
already cancelled. Internal cancelling and reconcile_required states both
remain publicly running until a terminal
outcome is observed.
Once the reconciliation final-status canary clears, if Praxa must resolve an uncertain provider or billing outcome, the stream emits
run.progress with this exact message and stays open:
Run reconciliation completed; execution is resuming.
and the run continues. If Praxa cannot verify a committing outcome,
the run eventually becomes failed with the run_outcome_unknown failure shown
above. Poll the run or follow its event stream until you observe the real
terminal outcome.