Workflows that fire when the thing happens, and a Pause button
A workflow that fires only on a schedule or a button is a scheduler. Firing on something happening in one of your systems is the point, and the whole path for it was missing: the interview could not describe an event trigger, publish could not arm one, and once one was on there was no supported way to turn it off.
An armed trigger is now a claim the platform keeps checking. Each registration records the subscription it created on the far side, when it was last verified, and whether it is healthy, drifted or failed. A background pass sweeps them and repairs what it can. You hear once when a trigger crosses into failed, and once when it comes back, never on every sweep.
Pause is the other half. It disarms locally in one move, so it always works even when the far side is unreachable, and it leaves manual and test runs alive on purpose. A paused workflow is off, not bricked.
Testing an event-driven workflow used to prove nothing, because there was no event to send it. Your workflow now keeps a small library of payloads: samples the interview wrote during the conversation, plus real ones from recent live runs. Pin the one you want and that is what a test fires with. With nothing pinned, the test refuses instead of inventing an event.
An event route belongs to one workflow. Publishing a second workflow onto a route another one already claimed is refused, rather than quietly stealing it.
This entry describes what shipped on the day it shipped. For how the capability behaves now, read /docs/triggers.