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
The key must carry 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:
Do not retry that run automatically. Reconcile the external system before you
decide whether to submit new work.
Cancel a run
The request body is exactly {}. 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:
Successful recovery emits 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.
TypeScript
Run events and reconnection are documented in Events.Last modified on August 14, 2026