feat: recover poll activations within original round budgets

This commit is contained in:
2026-09-18 05:40:08 +08:00
parent 1d1a441167
commit 56b9a2ccfe
32 changed files with 1051 additions and 65 deletions

View File

@@ -44,6 +44,23 @@ func readWorkflowSignalWait(ctx context.Context, tx *sql.Tx, g *workflowGraph, r
if err != nil {
return w, err
}
base, err := workflowActivationOrigin(ctx, tx, g, row)
if err != nil {
return w, err
}
w.activated = base.started
if base.sequence > 1 {
original := *row
original.view.ActivationID = &base.id
original.input = base.input
initial, err := readWorkflowSignalWait(ctx, tx, g, &original)
if err != nil {
return w, err
}
if initial.correlation != w.correlation {
return w, workflowSourceError("SIGNAL_RECOVERY_CORRELATION_INVALID")
}
}
if name == nil || version == nil {
return w, workflowSourceError("SIGNAL_WAIT_UNVERIFIED")
}