From 1c03b11ccfd988129880dc071185452199c8b0a5 Mon Sep 17 00:00:00 2001 From: Durable Workflow Date: Sat, 26 Sep 2026 15:24:03 +0000 Subject: [PATCH] Prepare PHP SDK 2.1.2 heartbeat recovery release --- CHANGELOG.md | 9 +++++++++ composer.json | 2 +- docs/quickstart-contract.json | 4 ++-- tests/DependencyBoundaryTest.php | 2 +- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c73fafd..fe44532 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,15 @@ project follows [Semantic Versioning](https://semver.org/). ## [Unreleased] +## [2.1.2] - 2026-09-26 + +### Fixed + +- Retry a workflow-task heartbeat after a compatible Server reports temporary + database loss with an unknown outcome, checking the exact task, lease owner, + and attempt before resending the same heartbeat. Server 2.4.11 adds this + response; older Servers retain their existing behavior. + ## [2.1.1] - 2026-09-25 ### Fixed diff --git a/composer.json b/composer.json index 8348bd7..28299c8 100644 --- a/composer.json +++ b/composer.json @@ -74,7 +74,7 @@ } }, "durable-workflow": { - "product-train": "2.1.1", + "product-train": "2.1.2", "supported-server-versions": "2.4.0", "worker-protocol-version": "1.19", "control-plane-version": "2", diff --git a/docs/quickstart-contract.json b/docs/quickstart-contract.json index de8afad..8911562 100644 --- a/docs/quickstart-contract.json +++ b/docs/quickstart-contract.json @@ -3,8 +3,8 @@ "schema_version": 2, "package": { "name": "durable-workflow/sdk", - "published_version": "2.1.1", - "composer_requirement": "2.1.1", + "published_version": "2.1.2", + "composer_requirement": "2.1.2", "onboarding_requirement": "^2.1" }, "runtime_targets": { diff --git a/tests/DependencyBoundaryTest.php b/tests/DependencyBoundaryTest.php index 73712fa..980a311 100644 --- a/tests/DependencyBoundaryTest.php +++ b/tests/DependencyBoundaryTest.php @@ -44,7 +44,7 @@ public function testStableMetadataDeclaresExactQualifiedArtifacts(): void $metadata = $this->manifest()['extra']['durable-workflow']; $quickstart = $this->quickstartContract(); - self::assertSame('2.1.1', $metadata['product-train']); + self::assertSame('2.1.2', $metadata['product-train']); self::assertSame('2.4.0', $metadata['supported-server-versions']); self::assertSame('1.19', $metadata['worker-protocol-version']); self::assertTrue($metadata['durable-selection']);