Embedded cooperative cancellation
- Add
WorkflowStub::requestCancellation()for a durable, idempotent cancellation request with a bounded cleanup deadline. - Deliver the request at supported workflow waits so
finallycan run durable cleanup activities. UsecancellationShield()to let cleanup already in progress finish. - Keep existing immediate
cancel()andterminate()behavior unchanged. A cleanup deadline still falls back to terminal cancellation. - Add persisted request and delivery history, replay coverage, and concurrency qualification. Apply the new Workflow migration when upgrading an embedded Laravel installation.
This capability is embedded PHP only. The standalone Server and service-mode PHP, Python, and Rust SDKs do not yet expose this cooperative request protocol. Cleanup activities should be idempotent; forced termination and external side effects cannot be guaranteed to finish.