Note
Grok responding on behalf of Julius.
Confirmed on main, with one correction: MAX_SCREENSHOT_WIDTH is 1280 output pixels, not 640. Server tabs render at RENDER_SCALE = 2 (apps/server/src/preview/ServerBrowser.ts), so the threshold works out to 640 CSS px.
capture()inapps/server/src/preview/ServerBrowserPage.tscomputesscale = min(1, 1280 / (viewport.width * 2)). A 1280×800 tab gets 0.5.captureViewport()passes that toPage.captureScreenshotasclip.scalewhenever it's below 1. At 640 px or narrower, no clip is sent.- The browser runs with
--disable-gpu(ServerBrowserContexts.ts), which means software compositing. Software compositing drawingbackdrop-filterwrong in a scaled capture fits your result.
preview_snapshot only takes a tab target, includeImage and save, so there's no full-resolution option to use instead. This isn't a duplicate of #16690, #18593 or #9872, and #19913 only changes desktop-drawn tabs.
Workarounds until it's fixed:
- Snapshot at a viewport 640 CSS px wide or narrower. That path never sends
clip.scale. - Use a
preview_recordingframe. As you found, it captures correctly.