Preserve schema exceptions for strict readiness callers - #516
Conversation
|
Release follow-through: prepare Workflow2.0.15. Server is the required consumer because its readiness gate opts into strict inspection; server#165 will pin the published patch and ship a Server patch. Embedded Waterline, PHP/Python/Rust SDKs and CLI retain their current APIs/protocol and do not need artificial version-alignment releases. Their consumers continue to resolve their supported dependency ranges; Cloud rollout decisions stay in the private repository. Qualification selected: existing Workflow unit/feature/coverage/embedded-upgrade gates, published-package verification, the72-test Server readiness/bootstrap/worker suite, and published worker recovery checks across PHP/Python/Rust. No codec/replay behavior changed, so unrelated codec matrices are not a release gate. Local Workflow focused7/45 and changed-file PHPStan/ECS pass; paired Server candidate72/3486 passes. Publication and downstream adoption are not yet complete. |
|
Released as 2.0.15 at commit 2faa311. Packagist resolves that exact source, and published-package verification plus all 16 supported Laravel/PHP upgrade cells passed: https://github.com/durable-workflow/workflow/actions/runs/35645995587 . Full main source validation also passed: https://github.com/durable-workflow/workflow/actions/runs/35644831588 . Downstream: Server adoption is durable-workflow/server#165, pinned to the published package with 72 focused tests / 3,486 assertions passing without a source override. The opt-in API leaves default embedded Waterline and other consumers unchanged; they do not need a release solely for this change. Existing Server images still require a new Server release and consumer update. SDK retry behavior remains covered separately on sdk-php#70. |
Companion for durable-workflow/server#164 and durable-workflow/sdk-php#70.
Add opt-in throwOnInspectionFailure to WaterlineEngineSource::status. Default embedded/operator diagnostics are unchanged; strict readiness callers receive the original exception, including PDO driver information, rather than confusing failed inspection with a missing table. Actual missing tables still return unavailable without throwing.
Validation: focused SQLite-backed unit tests pass (7 tests /45 assertions); changed-file PHPStan passes and ECS formatting applied. Tests cover healthy and missing-table strict/default equivalence, preserved default diagnostics and exact original PDOException identity in strict mode. The Server heartbeat regression changes from workflow_v2_blocked to the existing backend_unavailable contract when this source is mounted; that is unreleased-source proof, not a published result.
Next: normal public CI, a Workflow patch release, pinned Server adoption in server#165, and published-artifact worker retry verification. No protocol change or blanket retry of configuration errors.