squint: capture at twice the resolution
Every shot was taken at one image pixel per CSS pixel, so on any display that is not 1x the report was stretching one pixel over four and every screenshot looked soft. That is unusable for a reader who depends on being able to see the thing clearly, which is most of the point of a tool that takes pictures. Captures are 2x now: a 390-wide phone viewport gives a 780-wide file, a 1280-wide desktop viewport gives 2560. The report shows them at CSS size, so the extra pixels go into sharpness rather than into size, and clicking one opens the full-resolution file -- zooming in finds real detail instead of a bigger blur. `scale:` in squint.yaml takes 1 to 4 and defaults to 2. The old force-device-scale-factor=1 flag is gone. It was there for determinism, but determinism needs the scale to be the same everywhere, not to be small, and it is now set explicitly through the protocol for every shot rather than inherited from whatever display the machine has -- which is the stricter guarantee, not the looser one. It also cost about eight seconds and eleven megabytes on a thirty-four shot run, both of which are worth it. Compare takes the scale as well, because the fix exposed a report quoting two different numbers for the same page: the verdict said 780x2616 while the label beside it said 390x1308. Measuring is done on every pixel there is; everything a reader sees is quoted in CSS pixels, the same units as the viewport in the config. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01X1aAjLD4wvan3wsmkHPPh3
5 files changed+64−20
Rendering diff…