ci: accept the Capobara 40-hex toolDigest in projection receipts - #9
Merged
Merged
Conversation
Since dx-corp/mono#9935 the projection is published by Capobara, whose receipt records toolDigest as the 40-hex git tree id of rust/tools/capobara instead of the Node projector's 64-hex sha256. "Verify projection state" asserted 64 hex for every digest, so each sync PR from Mono fails with "AssertionError: toolDigest". Accept either length for toolDigest only; definitionDigest and contentDigest stay 64 hex. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Every
sync/mono-projectionpull request failsverify→Verify projection statewithAssertionError: toolDigest. Since dx-corp/mono#9935 (the Capobara cutover) the receipt'stoolDigestis the 40-hex git tree id ofrust/tools/capobara, a sanctioned difference in the Capobara design spec; the Node projector recorded a 64-hex sha256, and this workflow asserted 64 hex for all three digests.What
Accept 40 or 64 hex for
toolDigestonly.definitionDigestandcontentDigestkeep the 64-hex assertion. Workflow only; this file is destination-owned, so it is not projected from Mono.Validation
The change is one regex on a destination-owned check; this PR's own
verifyrun exercises the step against the current receipt onmain(64 hex) and must pass. The next refreshed sync PR from Mono (40 hex) is the positive control for the new branch of the regex.🤖 Generated with Claude Code