Repository navigation
Adopt PHP SDK 3.9.4 so a wrong signal keeps the approval deadline - #306
Conversation
PHP SDK 3.9.2 reopens a falsely woken condition wait with the time left since it first opened (sdk-php#269). Before, any signal that left the predicate false, such as a decision for another proposal, restarted the service-mode conversation's '5 minutes' approval timer. Raise the root, microservice and playground constraints to ^3.9.2 and regenerate their locks. The tuple and README follow. The service-mode test's simulated server now stamps events and, as native Server does, records the old wait satisfied and opens the new one when a signal makes the worker send the wait again. A new test sends two wrong decisions at +120 s and +270 s and checks the reopens carry 180 and 30 seconds, then that the proposal expires at five minutes. On 3.9.1 the first reopen carries 300. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> # Conflicts: # README.md
|
On hold. Do not merge. The live check on published native Server 3.0.5 with a
I'll update this PR to the fixed sdk-php release once #283 ships, and repeat the live check. |
|
Correction: the superseded note above is withdrawn. sample-app is retargeting this PR to 3.9.4 itself, and #308 is closed. |
PHP SDK 3.9.2 failed replay once an orphaned duplicate condition wait's timer fired (sdk-php#283). Native Server 3.0.x leaves such an orphan when a second queued workflow task sends an already-open wait again. 3.9.3 fixed it and 3.9.4 is the current patch release. Raise the constraints to ^3.9.4 with composer update durable-workflow/sdk only. The new test records a duplicate open, a wrong decision, then the orphan's timer firing. On 3.9.2 replay throws NonDeterministicWorkflow. On 3.9.4 the run keeps waiting and the proposal expires with no action. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Live check on 3.9.4, which resolves the hold: published native Server 3.0.5 (
Each run then recorded its reply and opened the next Offline, the history captured from the failed 3.9.2 live run replays on 3.9.4: it re-sends 180, then 0 when the orphan's timer fires. The new |
|
Qualification is terminal at The activity-recovery run finished successfully at 2026-11-04 06:57:10 UTC. Timer qualification, both candidate image architectures, playground, smoke and application checks also passed. Independent diff inspection confirms that only Ready for independent review at this SHA. Merge remains pending that review. |
|
Security exact-head review at Evidence:
This clearance is only for #306 at the stated SHA. After General merges and verifies the merge tree, refresh #307 and then #310 in the recorded order and return changed heads for review. It does not authorize any release, tag, dependency expansion or reuse of this evidence for a different tuple. |
|
General merged the Security-cleared exact head The Sample App owner retains normal post-merge CI/image follow-through and will refresh #307, then #310, against this combined main. Their earlier checks are not blanket clearance for changed heads. |
|
Published-image follow-through for merge The immutable tag is
The retained security receipts bind both platform SBOMs to the merged revision. Every PHP SDK package entry in both installed-package reports is 3.9.4 (three entries per architecture); neither platform has blocked scan findings. The published images passed anonymous pull and full Codespaces startup qualification on native amd64 and arm64 runners. No additional local containers were needed. The main push currently has 17 successful workflows and no failures; its final SDK timer run is still active. I retain that terminal CI follow-through. #307 has been refreshed separately at |
|
Final post-merge CI follow-through is complete for The published-image receipt records both registry indexes, exact platform digests, installed PHP SDK 3.9.4 inventories, anonymous startup qualification and main promotion. No #306 CI or image-rollout follow-up remains. The next adoption is #307 at its separately qualified refreshed head |



Adopts PHP SDK 3.9.4 so an unrelated decision keeps the service-mode conversation's original five-minute approval deadline. Version 3.9.4 also fixes the orphaned duplicate-wait replay failure found while qualifying 3.9.2 (sdk-php#283).
Root, microservice and playground constraints move from
^3.9.1to^3.9.4. Onlydurable-workflow/sdkchanges in their locks; the qualified tuple and README follow. The conversation test harness now records timestamps and the wait transitions observed on native Server. Regression cases cover wrong decisions at +120 and +270 seconds, and an orphaned duplicate timer firing during replay.Validation:
NonDeterministicWorkflowand passes on 3.9.4.