Skip to content

fix(action): reduce false-positive stale flags and orphaned new-images in manifest workflows - #809

Merged
danadajian merged 4 commits into
mainfrom
fix/skip-flagging-prs-matching-merged-hashes
Sep 1, 2026
Merged

fix(action): reduce false-positive stale flags and orphaned new-images in manifest workflows#809
danadajian merged 4 commits into
mainfrom
fix/skip-flagging-prs-matching-merged-hashes

Conversation

@danadajian

@danadajian danadajian commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Summary

Two related refinements to the manifest workflows, both aimed at eliminating misleading review noise:

1. Skip flagging open PRs whose overlapping changeset values match the merged changeset.

  • When a PR merges, manifest-merge flags every open PR whose stored changeset overlaps the merged changeset on any screenshot path, failing its Visual Regression status with "please rebase". The overlap check compared paths only, so an open PR whose hash for a shared path is identical to the value that just merged — meaning it fully agrees with the new baseline and could not clobber it — was still flagged.
  • Observed in a PR: merging a PR flagged 12 open PRs as stale, at least one of which carried the exact same hash for its overlapping path as the merged changeset and posed no conflict risk.
  • The overlap check now also requires the two changesets to disagree on the path's value (treating matching deletions as agreement, and a deletion vs. an update as a conflict), so only PRs that would actually overwrite the new baseline get flagged.

2. Delete uploaded new-images that fall outside the final review set during manifest-compare.

  • manifest-generate uploads a new.png for every screenshot whose hash differs from the base branch's manifest at generate time, but compare may later exclude some of those paths from review — visually identical to their base image (hash noise from nondeterministic rendering), owned by main, or stale from a prior run. The leftover files stayed under new-images/{sha}/, and since the Comparadise UI lists everything under that prefix, they appeared as spurious "new" screenshots with no base to compare against.
  • Observed in in PR: a PR's Comparadise page showed a "new" screenshot for a test that compare had explicitly dropped as visually identical and correctly excluded from the changeset and PR comment.
  • After compare settles on the final review set, any uploaded image files for paths outside it are now deleted (in match, main-owns-only, and classified outcomes; conflict outcomes bail early and are left untouched), so the UI only ever shows what actually needs review.

Both changes come with tests, and the committed action bundle is rebuilt.

🤖 Generated with Claude Code

danadajian and others added 3 commits September 1, 2026 11:37
…ffer from the merged changeset

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…during manifest-compare

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@danadajian danadajian changed the title fix(action): skip flagging open PRs whose overlapping changeset values match the merged changeset fix(action): reduce false-positive stale flags and orphaned new-images in manifest workflows Sep 1, 2026
@danadajian
danadajian merged commit 5836d8e into main Sep 1, 2026
3 checks passed
@danadajian
danadajian deleted the fix/skip-flagging-prs-matching-merged-hashes branch September 1, 2026 17:01
@eg-oss-ci

Copy link
Copy Markdown

🎉 This PR is included in version 1.46.12 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants