From 881ad9eb372aad3597e72156b7cf4a6a0375e040 Mon Sep 17 00:00:00 2001 From: Richard McDaniel <1130888+rmcdaniel@users.noreply.github.com> Date: Mon, 26 Oct 2026 06:56:10 +0000 Subject: [PATCH] Prepare Workflow 2.14.0 --- CHANGELOG.md | 7 +++++++ composer.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c8f8101d..99560eb0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 2.14.0 - 2026-10-26 + - Require a trusted host authorizer for workflow service operations. Refuse worker-supplied principal overrides, foreign caller namespaces and service call IDs or idempotency keys owned by another run, instance or operation. @@ -18,6 +20,11 @@ Reauthorize the actual locked row after a concurrent insert or uniqueness conflict. Apply the nullable schema expansion and drain older writers before relying on concurrent deduplication. +- Move service-operation execution, synchronous waits and retry backoff outside + the workflow completion transaction. Persist a durable dispatch before commit, + enqueue it only after commit, cap synchronous waits at 60 seconds and repair + lost or expired claims while preserving one opaque effect identity across + crash redelivery. - Bound `record_local_activity` timing fields (`duration_ms`, heartbeat `elapsed_ms`, `backoff_seconds`) and refuse a report whose walk back from completion leaves the storable timestamp range (#930). diff --git a/composer.json b/composer.json index 0edb9efc..9c8259db 100644 --- a/composer.json +++ b/composer.json @@ -87,7 +87,7 @@ "dev-main": "2.0.x-dev" }, "durable-workflow": { - "product-train": "2.13.1", + "product-train": "2.14.0", "laravel-embedded-upgrade-contract": "resources/laravel-embedded-upgrade-contract.json", "laravel-dependency-security-policy": "resources/laravel-dependency-security-policy.json" },