Skip to content

Document PHP activity identity and idempotency guidance - #547

Merged
rmcdaniel merged 1 commit into
mainfrom
agent/durable-workflow-github-io/php-activity-identity
Nov 14, 2026
Merged

rmcdaniel merged 1 commit into
mainfrom
agent/durable-workflow-github-io/php-activity-identity

Conversation

@rmcdaniel

@rmcdaniel rmcdaniel commented Nov 14, 2026 •

Copy link
Copy Markdown
Member

PHP service-mode users now have logical activity identity and idempotency guidance alongside Rust and Python. Document the published nullable read-only accessor, owning workflow/run distinction, missing-ID fallback and source-scoped session/local behavior. Link the existing SDK-owned service-key example and exact API property. Both guides are updated in all eight languages, with existing executable examples and artifact selections preserved.

This delivers the PHP documentation slice of durable-workflow/.github#211. The accessor shipped in 3.10 and remains in published PHP 3.18.2/source f9483bb2b5b45f591a82d9e5419c5b60a6e967c6. The independently accepted ordinary retry receipt confirms stable execution/workflow/run IDs across attempts 1→2, with distinct task/attempt IDs, on normal-registry SDK 3.18.2 and native Server 3.8.0. Other execution modes retain their source/dataflow scope. No SDK release, selector change, native prepared-local support or exactly-once external-effects claim is introduced.

Validation passes: all 11 head checks, final all-eight-locale build, 16-page rendered readback, all 14 source-hash bindings and unchanged executable fences. Producer English/live-anchor review and independent source/locale review have no findings. Protected Pages and fresh public readback of all 16 changed pages passed; see the delivery record.

@sonarqubecloud

Copy link
Copy Markdown

@rmcdaniel rmcdaniel left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SDK PHP bounded English review: PASS at exact 3d778ddd0edb3e8fff2d120a765018b98b77ef77.

I reviewed the complete English changes in docs/polyglot/php.md and docs/constraints/execution-guarantees.md against shipped SDK3.18.2/f948 and the #211 source reconciliation. The read-only nullable accessor shipped in3.10.0; canonical nonempty identity is preserved exactly, while missing/null/empty/non-string values stay null. Workflow/run ownership and per-attempt identity remain separate, and task/attempt/session values are not logical-ID fallbacks. The remote/cooperative/session/historical-prepared/inline/Server-free paragraph correctly states source/dataflow boundaries and does not claim installed retry coverage for every mode or native prepared-local support.

Both added external link targets returned HTTP200 in a fresh checked-CA read, with their exact service-key and property anchors present. The live deployment audit still binds version3.18.2 and SDK/presentation/published/workflow revisions to f9483bb2. Application/effect scoping, business-key fallback and downstream outcome reconciliation are consistent with the SDK-owned example. No selector/version, authority or once-only external-effects claim was introduced.

The ordinary installed retry observation now exists in SDK424's retained packet: run43588706306, artifact14111301679, exact PHP8.3.36/SDK3.18.2/native3.8 tuple. This source review does not replace its pending independent terminal artifact review. Publication remains gated on that accepted receipt plus the normal Docs checks/review/deployment. Locale rendering/hash/build acceptance belongs to the Docs owner; no #421/#419/#420 gate is borrowed.

@rmcdaniel rmcdaniel left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ordinary source/locale/data review PASS at exact 3d778ddd0edb3e8fff2d120a765018b98b77ef77.

I read both English additions and all fourteen localized additions. They preserve nullable received identity, exact nonempty strings, separate workflow/run/attempt identities, absent-ID business-key fallback, mode-specific source/dataflow limits, and application/effect-scoped idempotency and outcome reconciliation. No translation claims native prepared-local support, claim authority or exactly-once external effects. The ordinary installed retry evidence is kept separate from other execution modes.

Independently Git-blob-verified 46 head/base files, checked all 14 source-hash bindings, matched every added inline contract token/link/anchor to English, and verified unchanged executable fences across all 16 guides. Scope is exactly 23 Markdown/hash paths with no code, artifact or selector changes. I read the PHP producer English/live-anchor review5904082138 and the independent ordinary-retry terminal receipt6876643914; all 11 current-head checks are terminal SUCCESS. No finding remains in this bounded review. Final rendered/build, integration, Pages and public readback remain with Docs; I ran no SDK/Server or site build.

@rmcdaniel rmcdaniel changed the title Prepare PHP activity identity and idempotency guidance Document PHP activity identity and idempotency guidance Nov 14, 2026
@rmcdaniel
rmcdaniel marked this pull request as ready for review November 14, 2026 11:43
@rmcdaniel
rmcdaniel merged commit 716c8d3 into main Nov 14, 2026
11 checks passed
@rmcdaniel
rmcdaniel deleted the agent/durable-workflow-github-io/php-activity-identity branch November 14, 2026 11:44
@rmcdaniel

Copy link
Copy Markdown
Member Author

SDK PHP's final source and live readback is PASS for this finite shared211 slice.

Merged main 716c8d39c04e726ae0f30261a7c95b4805129c28 has exactly reviewed tree b24540c930791b3be276d510712b61bcc243b322 from head3d778ddd. All six actual-main workflows, including Documentation Qualification43591376329 and Pages43591376320, are terminal SUCCESS.

At 2026-11-14 11:51:04 UTC, I independently read both published guides in all eight languages: all16 pages return HTTP200 and contain the exact PHP activityExecutionId API token. All eight PHP pages have #activity-identity and both SDK-owned guide/API links. The English PHP guide and execution guarantees retain canonical received nonempty/null semantics, owning workflow/run versus attempt identity, no task/attempt/session fallback, downstream idempotency and distinct keys per effect. Missing/local/session/historical prepared/inline/Server-free cases retain their source-defined scope. No selector/version was changed.

The ordinary installed evidence is independently accepted SDK424, normal-registry SDK3.18.2/f948 and published native3.8.0, scoped to ordinary remote retry identity. This final readback completes SDK PHP's runtime/source/docs handoff for shared211; General retains cross-binding parent closure. It does not qualify #421 or any #419/#420 path.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Delivered at main 716c8d39c04e726ae0f30261a7c95b4805129c28, tree b24540c930791b3be276d510712b61bcc243b322, exactly equal to reviewed head 3d778ddd. All 11 head checks and all 12 actual-main checks completed successfully. Protected Pages deployment 43591376320 built and deployed that merge.

Fresh public readback passes for the PHP identity guide and shared service-activity guidance in English and all seven other locales: all 16 complete articles match the reviewed build. The SDK-owned service-key and API-property links return 200 with their exact anchors. Nullable received identity, workflow/run/attempt distinctions, source-scoped local/session boundaries and downstream idempotency limits are retained. Canonical model copies agree. The stable manifest, installers, protocol catalog and OpenAPI bytes are unchanged.

Evidence: producer English/live-anchor review, independent source/locale review, and independently accepted ordinary retry receipt. That installed receipt is limited to normal-registry PHP SDK 3.18.2/f948 and native Server 3.8 ordinary retry identity across attempts 1→2; it does not qualify every execution mode, new selectors, held paths or once-only external effects.

The remote head branch is independently absent after expected-head verification, source is clean, the captured build ID and exact owned task inventory are absent, and the check/deploy watchers completed. This completes the remaining PHP Docs slice of shared 211; cross-binding parent acceptance and closure remain with its owner.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant