✨ Surface honeydiff analysis data in comparisons output#209
Conversation
Expose SSIM/GMSD scores, cluster classification, fingerprint hashes, and diff regions from the API in both --json and --verbose output.
This comment has been minimized.
This comment has been minimized.
Code ReviewThis PR successfully surfaces honeydiff analysis data in the comparisons command output. The implementation is solid with comprehensive test coverage. Here are my findings: Strengths
Issues Found1. Potential false positive in
|
Handle all API response shapes for image URLs: nested objects (single comparison), flat fields (build detail), and diff_image (search). Add URLs and honeydiff data to builds --comparisons --json output.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
…rprint display - Use ?? instead of || for diff_regions, diff_lines, fingerprint_data so empty arrays aren't treated as falsy - Add diffImage fallback for diff_lines and fingerprint_data - Show fingerprint in verbose display even when scores are missing
Vizzly - Visual Test ResultsCLI Reporter - 7 changes need review
Changes needing review (7)filter-failed-only · Firefox · 1920×1080 · 0.1% diff bulk-accept-dialog · Firefox · 1920×1080 · 10.4% diff viewer-slide-mode · Firefox · 1920×1080 · 0.5% diff viewer-zoomed-100 · Firefox · 1920×1080 · 0.5% diff filter-failed-only · Firefox · 375×703 · 0.3% diff fullscreen-viewer · Firefox · 375×667 · 197.9% diff ...and 1 more in Vizzly.
|






Summary
honeydiffobject to--jsonoutput for comparisons containing SSIM/GMSD scores, cluster classification/metadata, fingerprint hash, diff regions, diff lines, and fingerprint datadiff_image_url/baseline_original_url(build detail), and nesteddiff_image(search)urlsandhoneydifftobuilds --build <id> --comparisons --jsoncomparison details--verbosesingle comparison display[classification]label to comparison lines in--verbosebuild and search list viewsCorresponds to vizzly-testing/vizzly#277 which exposes these fields from the API.
Test plan
node --test tests/commands/comparisons.test.js— 17/17 passnode --test tests/commands/builds.test.js— 12/12 passhoneydiff: nullwhen no analysis data presentbaseline_screenshot_url,diff_url)baseline_original_url,diff_image_url)comparisonDetails