TurnOutcome
How a turn ended, from a waiter’s point of view.
The protocol names exactly two resolutions of the turn-wait, and the pre-minted turn is why there are two rather than one:
completed— the ordinary terminal, AND the launch-failure exit ("deferred_start_failed": terminal"failed",error.kind: "launchError", no precedingturn/started).isLaunchFailurereads that WIRE marker;observedStartdoes not discriminate them, because a terminal-first fold is legitimate for turns that really ran.unqueued— the reclaim. Noturn/completedwill ever carry thisturnId, so a wait folding onlyturn/completedhangs forever.
turn/retracted and turn/retryScheduled are deliberately absent: a
retracted turn still reaches its own terminal, and a scheduled retry is
explicitly non-terminal.
Source
clients/sdk-ts/src/facade/turn-handle.ts:67
{ "kind": "Type alias", "canonicalPath": "TurnOutcome"}