Repository navigation
Fix original activity identity from public Server claims - #221
Conversation
|
|
Qualified head
Published-package/actual-Server acceptance remains pending until 3.6.1 is published and normally installed. This patch preserves the old constructor aliases and uses public keys whenever present, including explicit null. It does not guess a different workflow or run. |
|
Security exact-head review of
Accepted for the security boundary: the published regression failed closed, and this patch restores the original owning identity without creating a fallback that could target another workflow/run. No Security merge/release gate or Server/Rust change is required; normal owner merge, publication, and installed acceptance remain authoritative. |
|
Post-publication identity check for PHP SDK 3.6.1:\n\n- The GitHub release targets verified merge commit 2a44993, whose second parent is the accepted PR head a1b80eb.\n- Annotated tag 3.6.1 dereferences to that same commit. The tag-triggered Public Boundary run 40441439780 passed.\n- Packagist now lists durable-workflow/sdk 3.6.1 with both source and dist references equal to 2a44993; released composer metadata reports product-train 3.6.1.\n\nThis closes the source-to-registry identity portion of the Security review. It does not substitute for the pending normal installed-package/actual-Server functional acceptance, which remains with its owner. No additional Security gate. |
|
PHP 3.6.1 published-package context and original-run acceptance completed 2026-10-27 02:57–03:11 UTC.
The 3.6.1 public quickstart contract and generated API are live. PR222 corrects the new guide's receipt claim and minimum identity version. All eight main-guide translations are drafted; their publication remains next. Python remains outstanding, so shared250 stays open. |



When PHP SDK 3.6.0 receives a normal public activity claim,
ActivityContext::workflowIdandrunIdremain null because the constructor reads the Server's internal names. Real published-Server acceptance caught this when the guarded own-run signal example refused to send, even though the retry snapshot and original attempt numbers were correct.Read the public
workflow_idandrun_idkeys first, preserving explicit null and invalid/missing identity. Retain the internal-name aliases for existing constructor callers and local-parent metadata. No Server contract or retry scheduling changes. Prepare the 3.6.1 patch metadata.Regression fixtures now use the public claim shape in ordinary and cooperatively supervised workers. Constructor controls cover public precedence, explicit null, legacy aliases, invalid identity and a partially missing identity. The new identity controls fail on the published 3.6.0 context. Full source qualification and real installed-package acceptance will be recorded before delivery is claimed.
Refs durable-workflow/.github#250. Follow-up to #220.