Choose a transport
Relay chooses the path from the agent’s saved configuration:
There is no mode, toggle, or transport setting. Relay never sends one event
through both paths.
Shared envelope
Webhooks and WebSocket carry the same event envelope:event_id under a unique constraint before acceptance. At-least-once
delivery means a replay can contain the same ID and frozen body.
Switch transports
Change the saved webhook subscriptions:
Pending events keep the same
event_id across a path change and remain
available for 30 days. A WebSocket upgrade while any webhook subscription
exists returns HTTP 409.

