Skip to content

Preserve schema exceptions for strict readiness callers - #516

Merged
rmcdaniel merged 2 commits into
mainfrom
fix/strict-schema-inspection
Sep 21, 2026
Merged

rmcdaniel merged 2 commits into
mainfrom
fix/strict-schema-inspection

Conversation

@rmcdaniel

Copy link
Copy Markdown
Member

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.

@rmcdaniel

Copy link
Copy Markdown
Member Author

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.

@rmcdaniel
rmcdaniel merged commit 2faa311 into main Sep 21, 2026
16 checks passed
@rmcdaniel
rmcdaniel deleted the fix/strict-schema-inspection branch September 21, 2026 19:26
@rmcdaniel

Copy link
Copy Markdown
Member Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants