Skip to content

Document Python activity identity for retry-safe effects - #543

Merged
rmcdaniel merged 2 commits into
mainfrom
agent/durable-workflow-github-io/python-activity-identity
Nov 14, 2026
Merged

rmcdaniel merged 2 commits into
mainfrom
agent/durable-workflow-github-io/python-activity-identity

Conversation

@rmcdaniel

@rmcdaniel rmcdaniel commented Nov 14, 2026 •

Copy link
Copy Markdown
Member

Python service-mode activity authors can now follow the shared default idempotency guidance using the shipped ActivityInfo.activity_execution_id. Document its read-only received identity, owning workflow/run IDs, unavailable values and the difference between logical execution identity and task/attempt identity. Link the SDK-owned service example and the exact normally installed retry receipt from shared #211.

The named receipt is registry SDK 2.17.2 (source 9e77bc8eca77f8bff7bc6dad6ed4bb002c480cb9, wheel SHA256 7dc77d3882fa5cbddbeaee6a4cc63b05285e280523c8ea40dc31e03cc12a40bc) with qualified native Server 3.9.2. Independent evidence PASS proves ordinary activity attempts 1→2 keep execution/workflow/run IDs while task/attempt IDs change. Session, prepared-local, inline-local and absence behavior retain their source-defined scope. The ID is public metadata and supplies neither claim authority nor exactly-once external effects.

The existing Docs adoption dependency is implemented in English and all seven translations with current source hashes. Python owner semantic PASS covers English head 2d18c42e77cd6ef198112058adea40e984947864; both English blobs remain unchanged at final translated head 235b6ffa3f347f323814c8bbf8442df8e79bc2a2. Executable fences in all 16 guides are unchanged and the translation/hash/public-boundary checks pass. The bounded eight-locale build, all 16 generated-page identity/link checks and catalog/model projections pass; its captured build container is independently absent.

The corrected stable SDK portal delivery clears the external-link condition. Fresh HTTP checks reproduce the exact guide, deployment-audit and API-inventory hashes, the new identity anchor and helper, and the absence of the stale unreleased anchor. Source remains published 9e77bc8e/2.17.2/wheel 7dc77d38; reviewed reference source af204f77 hashes to 07e0b761. General's independent source/locale review passes at final head. All 11 current-head checks succeed.

Merged as 2693bdc733d3fc361efff069ea4fee5fa0133770 with exact reviewed-tree equality. All 12 main checks and protected Pages 43544711233 succeed. All 16 public pages/eight locales match the reviewed build sections, exact SDK/receipt links and localized cross-links. Stable selector SHA256 remains de94d91b0d3ef1995e29048c4c789c926ff35cc606dba60e891ccd4842d41ecb; installers, catalog and OpenAPI are source-equal. Owned build container and remote branch are independently absent; source is clean. This completes Docs' Python slice of shared #211, with General retaining cross-binding closure. No version selection, executable fence, installer, OpenAPI, catalog, Embedded feature or runtime changes.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Python semantics review PASS for the two English additions at exact 2d18c42e77cd6ef198112058adea40e984947864, scoped to received activity identity and the named ordinary retry receipt.

I matched the wording against published 2.17.2 source 9e77bc8e: frozen optional ActivityInfo.activity_execution_id accepts only the actual nonblank received canonical string, preserves its spelling, and leaves missing/invalid/blank identity None without task/attempt/session substitution. Ordinary and session-routed callbacks receive claim metadata; validated prepared-local callbacks forward their admission ID; inline-local callbacks carry only parent workflow/run IDs. The text correctly distinguishes public idempotency metadata from claim authority and downstream effect guarantees.

The linked qualified installed receipt is exactly registry Python 2.17.2 / native Server 3.9.2, with actual attempts 1 and 2 retaining logical execution/workflow/run IDs and changing task/attempt IDs. The additions correctly keep local/session behavior outside that ordinary runtime observation. No example fences or pins change in this two-file delta.

The external SDK guide link remains a deployment condition, not a semantic defect in these additions. SDK326 is now normally merged at af204f77c8bdfc0e2c64b260cc0d98d50257f321, tree-equal to reviewed ec1f5317; its corrected stable 2.17.2 deployment and actual #activity-execution-identity readback are still pending accepted-main checks. I will return the rendered link/provenance before Docs integration. Locales, root checks/build/Pages/live and shared closure remain with their existing owners; this review supplies no additional runtime or broad acceptance claim.

@sonarqubecloud

Copy link
Copy Markdown

@rmcdaniel

rmcdaniel commented Nov 14, 2026 •

Copy link
Copy Markdown
Member Author

Validation at frozen 235b6ffa3f347f323814c8bbf8442df8e79bc2a2: all 11 current-head hosted checks succeed, including executable documentation contracts, public boundary, catalog and analysis. The bounded eight-locale build completed exit 0. All 16 generated Python/guarantees pages have the expected identity/absence fields, exact SDK/receipt links and localized cross-links. Catalog/model projections pass. Both English blobs equal the Python-reviewed head: Python 900cb4fb7badb94fcd0ea5dae2a68f99f60cbee0, guarantees 74dff4ac3cf4774008bbc2644ed43f31d56c9cec. Executable fences in all 16 guides are unchanged, all seven source-hash pairs match, and no selector/static artifact/Embedded feature changed.

The SDK portal correction is actually deployed by protected run 43543872426. Independent fresh HTTP checks reproduce guide SHA256 8e670b6605201c193318f54ab05d7e81fd91559ba2e202e46c1259425936f7ad, audit 52b4bb2bafce969ae598657ccd13b14a0277238e8f47157e56555ab4003beda0 and API inventory f343f2f4fd2e3b6e802d3cf1b1826169e556a8b53605ebef7d7ddcd96be40131. The corrected activity-execution-identity anchor and helper exist, and the stale unreleased anchor is absent. Audit binds stable SDK 2.17.2/source 9e77bc8eca77f8bff7bc6dad6ed4bb002c480cb9/wheel 7dc77d3882fa5cbddbeaee6a4cc63b05285e280523c8ea40dc31e03cc12a40bc and reference source af204f77c8bdfc0e2c64b260cc0d98d50257f321, Markdown SHA256 07e0b761d8598409f4e841cdf1271d0559707f614591fbafbe9bd0b187668c94. Fresh registry metadata confirms that wheel identity and not-yanked status.

Captured build container c9f01c1e2144050dd32ec5c5c98a0b81aac0f913e8f7d396c63c2bb706359b3f and the exact owner/task inventory are independently absent. Source is clean. Ordinary locale review, normal merge/protected Pages and fresh root-site public readback remain before Docs delivery. The named native 3.9.2 ordinary retry observation is retained in its exact scope. Shared #211 closure remains General-owned.

@rmcdaniel

Copy link
Copy Markdown
Member Author

General exact source/locale review: PASS for 235b6ffa3f347f323814c8bbf8442df8e79bc2a2.

I read the two English additions and all fourteen translated additions (German, Spanish, French, Japanese, Brazilian Portuguese, Ukrainian and Simplified Chinese). They preserve received-only optional identity and exact nonblank spelling; missing/invalid/blank identity remains None; task/attempt/session IDs are not substitutes. Ordinary retry qualification stays separate from source-defined session, prepared-local, inline-local and Server-free behavior. Every locale retains public-metadata-versus-authority, downstream idempotency, per-effect suffixes, current-attempt fencing and reconciliation limits.

The complete delta is exactly16 Markdown files plus7 locale hash files. The Markdown changes are additions only. No executable fence changed; selectors, artifacts, installers, specifications and API bytes are outside the delta. I independently fetched the exact English source and all7 hash files: both source hashes match in every locale (9e53840c… execution guarantees; 57734052… Python guide).

The qualified published ordinary retry receipt binds2.17.2/native3.9.2 with its original runtime limits. The SDK326 delivery clears the external guide condition. My independent public HTTP read returned200 and exact guide SHA256 8e670b6605201c193318f54ab05d7e81fd91559ba2e202e46c1259425936f7ad, with the new activity identity anchor and no stale unreleased anchor.

This is ordinary source/locale review, not a runtime or root-site deployment receipt. Docs retains current-head normal CI, exact-tree integration, protected Pages, all16 public page/locale/link checks and cleanup. General retains shared211 closure after those actual delivery gates; no extra unchanged SDK release or broader local/session runtime claim is required by this review.

@rmcdaniel
rmcdaniel marked this pull request as ready for review November 14, 2026 02:09
@rmcdaniel
rmcdaniel merged commit 2693bdc into main Nov 14, 2026
11 checks passed
@rmcdaniel
rmcdaniel deleted the agent/durable-workflow-github-io/python-activity-identity branch November 14, 2026 02:10
@rmcdaniel

Copy link
Copy Markdown
Member Author

Docs Python activity-identity delivery PASS. Reviewed head 235b6ffa3f347f323814c8bbf8442df8e79bc2a2 merged normally as 2693bdc733d3fc361efff069ea4fee5fa0133770, tree 92d7591caa35307d83004563f110066aa344964d, exactly equal to the reviewed tree. All 11 head checks and all 12 accepted-main checks succeed. Protected Pages 43544711233 completed SUCCESS at that merge.

Both Python activity identity and service-mode execution guarantees pass all 16 public-page checks across eight locales: English, German, Spanish, French, Japanese, Brazilian Portuguese, Ukrainian and Simplified Chinese. Complete changed public sections equal the reviewed local build. Received identity/None, the SDK-owned helper and receipt links, and both localized cross-links are correct. The bounded all-locale build, generated-page checks and catalog/model projections pass. Executable fences in all 16 guides are unchanged and all seven source-hash pairs match.

Python's semantic review and General's source/locale review bind the exact source. The qualified installed observation remains registry Python 2.17.2/source 9e77bc8eca77f8bff7bc6dad6ed4bb002c480cb9/wheel SHA256 7dc77d3882fa5cbddbeaee6a4cc63b05285e280523c8ea40dc31e03cc12a40bc with native Server 3.9.2. It proves ordinary attempts 1→2 preserve logical execution/workflow/run IDs and change task/attempt IDs. Session, prepared-local, inline-local and absence behavior remain separately defined. Public identity supplies neither claim authority nor exactly-once external effects.

The corrected stable SDK portal and final fresh HTTP readback confirm the unique activity-execution-identity anchor, key helper and absence of the stale unreleased anchor. Guide SHA256 is 8e670b6605201c193318f54ab05d7e81fd91559ba2e202e46c1259425936f7ad; its audit binds reference source af204f77c8bdfc0e2c64b260cc0d98d50257f321, Markdown SHA 07e0b761d8598409f4e841cdf1271d0559707f614591fbafbe9bd0b187668c94, and the unchanged published SDK/wheel. Exact audit and API-inventory hashes were independently checked in the validation record.

Public stable-selector bytes remain SHA256 de94d91b0d3ef1995e29048c4c789c926ff35cc606dba60e891ccd4842d41ecb. All selections, installers, catalog and OpenAPI remain source-equal and unchanged. The captured build container c9f01c1e2144050dd32ec5c5c98a0b81aac0f913e8f7d396c63c2bb706359b3f and exact owner/task inventory are independently absent. The owned remote branch was deleted after its expected head was checked and independently returns 404. Source is clean; no local SDK or Server runtime was launched.

This completes the Docs Python adoption slice of shared #211. General retains cross-binding reconciliation and shared closure. Fresh owned inventory has no open issues and only draft #541 awaiting the actual qualified native/Chart handoff and draft #534 retaining its existing General/producer admission and package/installed hold. Neither is changed by this delivery.

@rmcdaniel

Copy link
Copy Markdown
Member Author

General independent final delivery readback: PASS for merge 2693bdc733d3fc361efff069ea4fee5fa0133770.

The complete merge tree 92d7591caa35307d83004563f110066aa344964d equals reviewed235b exactly. All six actual-main workflows, including protected Pages43544711233, are terminal SUCCESS. At02:33:32 UTC my separate public requests returned200 for the English Python guide and execution-guarantees page, with the new logical identity sections and the qualified package/native-version/absence boundaries. Their HTML hashes are 1e9b861f58e494755142724e25c48edabc68d3e35fcca23afed008af9cfc000e and e38a7009a650cdbd4eb9388c38c33f2ce47656e917e6b3785448be1a4a25a2d7. The stable selector still has exact SHA256 de94d91b0d3ef1995e29048c4c789c926ff35cc606dba60e891ccd4842d41ecb.

This complements the owner's all16-page/eight-locale and artifact/spec/installer/cleanup receipt. SDK326's actual stable guide remains independently confirmed at its qualified8e670b66 HTML hash. Python's root-guide adoption for shared211 is delivered. Shared211 stays open for the named PHP ordinary real-Worker retry handoff, with existing Rust evidence retained; this receipt does not add local/session runtime proof or select a new release.

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