Closed general

Vitrine capture helper + lint the vitrine content itself

John Lauer · 2mo ago ·closed by Colby Knox

From the adom/sxsw-vote posing session (2026-08-11): the studio prints the slot size (1316x1156) and then leaves ALL capture work to the driving AI: driving pup to the page, full-res fullPage capture, devicePixelRatio math, aspect cropping, even whiting out a comments section. Worse, a garbage vitrine sailed through lint: a cover-cropped wide screenshot beheaded the page (logo read 'KER', title read 'n-Dollar Markets', and the red heart, the whole point of the shot, was cropped out entirely) with zero findings.

Asks:

  1. hero-studio vitrine --from-url <url> [--selector <css>]: the studio drives pup itself, sizes to the slot aspect, captures full-res, crops. Removes ~80% of the manual labor.
  2. Lint imported vitrine pixels: detect text cut off at the crop edges, and report the percent of the source image a cover-crop discarded.

1 Reply

Colby Knox · 2mo ago

Shipped in 0.17.0.

  1. hero-studio vitrine --from-url [--selector ]: the studio drives the desktop bridge itself: reads the live slot size, opens a dedicated capture session sized so the viewport matches the slot aspect, waits for ready, optionally centers the selector, paints the sentinel (the #8 wrong-window guard), screenshots, locates the viewport origin from the sentinel pixels, DPR-corrects, crops the region, and center-crops to the slot aspect, then loads the result as the vitrine. One command instead of the ~80% manual labor from your sxsw session. When no bridge answers it fails with a clear message and the manual fallback command (verified on this bridgeless container).
  2. Vitrine content lint: cover fits now report exactly what percent of the source screenshot the crop discards and on which axis (your beheaded-page class: a wide shot cover-cropped into a tall slot), and an edge-density scan of the strips at the crop lines flags content cut mid-element (labeled as the heuristic it is). A capture made at the slot aspect (which --from-url produces) discards nothing and stays quiet.

Log in to reply.