github durable-workflow/workflow 2.2.10
Workflow 2.2.10

3 hours ago

Workflow 2.2.10

This patch preserves an unambiguous UTC instant for new workflow history events and stores timeline and wait projection timestamps consistently in UTC. It fixes repeated-hour ambiguity for new history during autumn clock changes and prevents non-UTC projection timestamps from drifting or repeatedly appearing stale. See #556 and #555.

The new nullable recorded_at_utc column is added to the default and existing configured history-event tables. New writers retain the legacy local recorded_at field for older readers; new readers prefer the UTC value. The migration does not rewrite existing history. Old local timestamps whose offset was never stored cannot be corrected without independent evidence. Applications that create or replace a custom history-event table in their own migrations must include the nullable UTC column before starting new writers. During a rolling upgrade, keep old and new workers on a consistent PHP timezone and finish upgrading writers before relying on repeated-hour correctness.

After upgrading all projection writers, back up the database and inspect workflow:v2:rebuild-projections --needs-rebuild --dry-run --json. Rebuild affected derived rows, then confirm a second dry run selects no unchanged runs. The rebuild leaves authoritative history unchanged and cannot infer a missing old offset. See the history timestamp guide and projection timestamp guide.

The source fixes passed full 20-job matrices for history and projections, including supported Laravel upgrades, database feature shards and coverage. This patch does not change the SDK wire protocol.

Don't miss a new workflow release

NewReleases is sending notifications on new releases.