Skip to content

feat(preprod): Add snapshot comparison Celery task#109382

Open
NicoHinderling wants to merge 7 commits intocreate-compare-task-v1-part2from
create-compare-task-v1-part3
Open

feat(preprod): Add snapshot comparison Celery task#109382
NicoHinderling wants to merge 7 commits intocreate-compare-task-v1-part2from
create-compare-task-v1-part3

Conversation

@NicoHinderling
Copy link
Contributor

Summary

  • Add compare_snapshots instrumented task that loads manifests from objectstore, diffs matched images in pixel-budget batches, uploads diff masks, and writes comparison results
  • State machine guards with atomic transitions (PENDING → PROCESSING → SUCCESS/FAILED)
  • Handles added/removed/unchanged/changed/skipped/errored image categories
  • Register task import in server.py

Stack: 3/3 — depends on #109381

@NicoHinderling NicoHinderling requested a review from a team as a code owner February 25, 2026 21:55
@github-actions github-actions bot added the Scope: Backend Automatically applied to PRs that change backend components label Feb 25, 2026
Copy link
Contributor Author

NicoHinderling commented Feb 25, 2026

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

@NicoHinderling NicoHinderling force-pushed the create-compare-task-v1-part3 branch from 1f0aee4 to 700c27e Compare February 25, 2026 23:52
@NicoHinderling NicoHinderling force-pushed the create-compare-task-v1-part2 branch from 99c5a0b to 6e0d8b2 Compare February 25, 2026 23:52
Add compare_snapshots task that loads manifests from objectstore,
diffs matched images in pixel-budget batches via OdiffServer, uploads
diff masks, and writes comparison results with state machine guards.
Corrupt manifest data from object store will never succeed on retry.
Catch orjson.JSONDecodeError explicitly to mark the comparison as
FAILED and return, avoiding 3 wasted retries.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Scope: Backend Automatically applied to PRs that change backend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant