Problem
The shared release-recovery contract includes the conformance suite SHA-256 in its canonical content, and every consumer adapter pins the contract version, contract digest, and suite digest. The contract change guard now normalizes the suite digest away before comparing the previous and current contracts. A suite-only update can therefore change the contract bytes and digest while reusing the same contract version, allowing one version to identify multiple conformance suites and weakening cross-consumer qualification evidence.
Acceptance criteria
- Compare the full canonical previous and current contract content for version advancement, including
suite.sha256.
- Add a focused regression proving that changing only the suite digest while retaining the same version fails closed, while the same change with a strictly advancing exact SemVer succeeds. Retain the existing equality, downgrade, prerelease, build-metadata, first-adoption, and unavailable-commit vectors.
- Propagate byte-identical corrected runner and contract files through every declared consumer target, with required CI pinning the same contract version, contract digest, and suite digest.
- Record aggregate public-target evidence only after every required target has landed the identical tuple.
Delete when
Delete when a suite-digest-only contract change cannot pass any declared consumer without a strictly advancing contract version, and aggregate evidence binds all required target commits to one identical version and digest tuple.
Required source targets
durable-workflow/.github@main
durable-workflow/cli@main
durable-workflow/sdk-php@main
durable-workflow/sdk-python@main
durable-workflow/sdk-rust@main
durable-workflow/server@main
durable-workflow/waterline@v2
durable-workflow/workflow@v2
Problem
The shared release-recovery contract includes the conformance suite SHA-256 in its canonical content, and every consumer adapter pins the contract version, contract digest, and suite digest. The contract change guard now normalizes the suite digest away before comparing the previous and current contracts. A suite-only update can therefore change the contract bytes and digest while reusing the same contract version, allowing one version to identify multiple conformance suites and weakening cross-consumer qualification evidence.
Acceptance criteria
suite.sha256.Delete when
Delete when a suite-digest-only contract change cannot pass any declared consumer without a strictly advancing contract version, and aggregate evidence binds all required target commits to one identical version and digest tuple.
Required source targets
durable-workflow/.github@main
durable-workflow/cli@main
durable-workflow/sdk-php@main
durable-workflow/sdk-python@main
durable-workflow/sdk-rust@main
durable-workflow/server@main
durable-workflow/waterline@v2
durable-workflow/workflow@v2