Repository navigation
Fix suspended workflow replay cleanup and read-only reconstruction.
- Queries and update validators retain state at a pending activity, timer, condition or child instead of seeing disposal-time mutations.
- Disposal-only workflow logs and durable commands are discarded quietly, including cleanup that yields. Real completion, failure and cooperative cancellation retain their normal history-backed cleanup.
- Query, validator and accepted-update reconstruction stop before executing an unrecorded side-effect callback. Normal execution still authors it once, and cold replay consumes its recorded result.
- Python can physically execute ordinary
finallyblocks and context-manager exits while disposing of suspended generators. Put external I/O in Activities; use cancellation shielding when required.
No wire or worker-protocol change. The Python cleanup guide describes the SDK 2.12.2+ behavior.
Qualification: all six required Python 3.10–3.15 jobs and all 21 final main checks pass; the full Python 3.12 source suite passes 3,650 tests (2 skipped; 125 integration cases run separately). The actual PyPI wheel matches the exact merged source across all 40 package files and passes 133 installed lifecycle, replay-corpus and TLS tests, plus the installed update-conformance shard. Normal publication and package verification.
Fixes #178 through #217. Full changelog.