publish method
Publish a flow's terminal. Deliberately watches nothing, so a session flip never resets it — the outcome of a flow that ran under the OLD identity must still reach the host that opened it.
Implementation
void publish(SendFlowOutcome outcome) => state = outcome;