Cancellation candidate corrections
- Scheduler repair now acquires a workflow run before its task, matching operator repair and Server mutations. The task's run association is rechecked under the lock.
- Cancellation deadline enforcement uses the same acquisition order. The correction addresses the actual scheduler deadlock captured during Server qualification.
- Immutable cancellation command properties remain compatible with the supported PHP 8.1 floor.
The concurrency regression runs actual repair and watchdog passes on MySQL and PostgreSQL. Both databases pass the expired-lease and expired-cancellation-deadline cases. Both MySQL cases fail with the original watchdog implementation.
Complete database, framework upgrade, code quality, unit coverage and regression corpus qualification passes at https://github.com/durable-workflow/workflow/actions/runs/37425470512.
This is a prerelease for the whole-run cooperative cancellation contract. General independently cancellable scopes remain a disabled source preview. Published mixed-language acceptance remains tracked in durable-workflow/.github#136.