Preserve cancellation event payload identifiers in duroxide.history - #180
Preserve cancellation event payload identifiers in duroxide.history#180Pino de Candia (pinodeca) with Copilot wants to merge 3 commits into
duroxide.history#180Conversation
Co-authored-by: pinodeca <32303022+pinodeca@users.noreply.github.com>
Co-authored-by: pinodeca <32303022+pinodeca@users.noreply.github.com>
duroxide.history
|
Root cause is upstream in duroxide, now tracked as microsoft/duroxide#35. The empty Because of that, the Recommendation: close this PR in favor of the upstream fix (microsoft/duroxide#35). Once duroxide ships the Tracking issue: #169 |
Cancellation terminal events could be persisted with
event_data.instance_id = ""andevent_data.execution_id = 0, even when the owningduroxide.historyrow had correct identifiers. This broke payload-only consumers that correlate events without joining back to history keys.Runtime payload normalization at history write boundary
duroxide._normalize_history_event_payload_identifiers) andBEFORE INSERTtrigger onduroxide.history.event_datais valid JSON object:instance_idwhen missing/empty fromNEW.instance_idexecution_idwhen missing/non-numeric/zero fromNEW.execution_idDeterministic guard installation during worker initialization
DROP TRIGGER IF EXISTS+CREATE TRIGGER).Regression coverage for cancellation path
tests/e2e/sql/23_cancel_history_payload_ids.sqlto verify cancelled-instance history payload identifiers match row identifiers for events carrying those fields.