pub async fn webhook_handler(
__arg0: State<WebhookIngress>,
__arg1: Path<String>,
headers: HeaderMap,
body: Bytes,
) -> ResponseExpand description
POST /api/webhooks/{source} — the axum front door.
Why: a thin mapping from IngestOutcome to a status code, so the ordering
guarantee lives in WebhookIngress::ingest and cannot be broken by an
edit to the HTTP layer.
What: 404 unknown source, 401 both refusal arms, 500 spool failure,
202 once the delivery is durable. The body reports the relay state so an
operator can see a pending delivery without opening the dashboard.
Test: route_returns_500_and_no_ack_when_the_spool_write_fails,
route_returns_401_for_an_unset_secret, route_returns_202_after_a_durable_write.