Repository navigation
2.15.9
Fix workflow storage correctness when DW_STORAGE_CONNECTION or custom V2 models select a connection other than the application's default.
- Keep multi-row engine writes and task-claim locks inside the storage transaction.
- Deliver lifecycle events and enqueue attempts after the owning storage commit, and discard them on storage rollback even when another connection commits.
- Prevent queue jobs from applying a second deferral on an unrelated application transaction. Preserve execution trace context through deferred delivery.
The fresh Composer distribution matches all 1,007 committed runtime files. All 22 storage cases pass on PostgreSQL 17 and all 22 pass on MySQL 8, including competing claimants, actual row locks, rollback and physical database queue publication. Four independent-application-rollback probes also pass.
Main qualification passes, and published verification passes the package contract plus all 16 Laravel/PHP upgrade journeys. Local unit qualification passes 5,279 tests / 74,821 assertions (45 skips, 15 PHPUnit notices); unit coverage passes its gate at 77.60%.
Application changes requiring atomicity with workflow storage must use the same Laravel connection and transaction. Different connections commit independently; queue transports retain their own transaction and delivery behavior.
The complete local quality cycle also passes, including 2,551 PostgreSQL feature tests / 25,150 assertions (18 skips). The updated connection and transaction guide is deployed and verified in all eight languages.
Laravel 9 retains the existing upgrade-or-drain requirement documented in #922.