fix(tests): let golden renders tolerate a promoted digest - #75
Merged
Conversation
The golden comparison was byte-exact over the whole render, including the image digest. That froze the one field designed to change on every release: every legitimate promotion failed the gate, so the repaired promotion pipeline would still have been blocked, just one step later. The goldens exist to prove COMPOSITION is unchanged across the profile split, not to pin a release. Both sides now normalize @sha256:<64 hex> to a placeholder before comparing, so a promotion no longer has to rewrite them. The gate stays strict everywhere else. Verified by mutation: new digest (legitimate promotion) -> passes replicas 1 -> 3 -> fails namespace changed -> fails digest replaced by a mutable tag -> fails Only the exact digest shape is normalized, so dropping to `latest` is still caught here as well as by the mutable-image job. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01168FA9JzE59y8DbCCn1wMi
Tiago0507
approved these changes
Aug 25, 2026
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.
The defect
Every one of the ten re-issued promotion PRs fails
profile-contracts:Nothing is wrong with those PRs. The golden comparison is byte-exact over the
whole render, including the image digest — the one field designed to change
on every release. So the repaired promotion pipeline
(
MicroTodoSuite/.github#11) would still have been blocked, just one step later.The fix
The goldens exist to prove composition is unchanged across the profile split,
not to pin a release. Both sides now normalize
@sha256:<64 hex>to aplaceholder before comparing, so a promotion no longer has to rewrite them.
The gate stays strict
Verified by mutation against the real overlays:
replicas1 → 3namespacechangedOnly the exact digest shape is normalized, so dropping to
latestis stillcaught here, as well as by the separate mutable-image job.
Effect
Unblocks #64–#73, the ten stranded promotions re-issued onto the current layout.