Resolution provenance delivered to the waiting workflow alongside the
resolver payload, under the reserved $resolution key. Present exactly when
the resolving caller supplied resolvedBy — without it the signal payload
passes through byte-identical, so existing waiters are unaffected. The
$-prefixed key namespace is reserved for control data riding the signal
(like $escalation_id on the legacy routing path); consumer payload fields
never collide with it. The stored resolver_payload row column stays clean —
provenance rides the signal only.
A waiting workflow declares the key in its condition() payload generic:
constdecision = awaitDurable.workflow.condition<{ approved: boolean; $resolution?: EscalationResolution; }>(signalId, config); decision.$resolution?.resolvedBy; // who resolved it
Resolution provenance delivered to the waiting workflow alongside the resolver payload, under the reserved
$resolutionkey. Present exactly when the resolving caller suppliedresolvedBy— without it the signal payload passes through byte-identical, so existing waiters are unaffected. The$-prefixed key namespace is reserved for control data riding the signal (like$escalation_idon the legacy routing path); consumer payload fields never collide with it. The storedresolver_payloadrow column stays clean — provenance rides the signal only.A waiting workflow declares the key in its
condition()payload generic: