PR #30305 real environment verification main: 15707a84b03e27bb257d60e027812ebf94bbda25 PR: 0bbb1586c345c9acf6268d0fa7fe21a4a8f588d6 Setup: separate github/main worktree; vp i in both checkouts; one background dev server at a time; explicit isolated .t3 homes; no mocks, fixtures, seeded data or source changes. Playwright from repo + /usr/bin/google-chrome drove pairing, Add project > Local folder (/home/user/t3code), model selection (Codex gpt-6.1-sol) and submitted real turns. Original behavior on main: default text-only MCP calls still invoke Page.captureScreenshot(format=png). Capture observation: Node inspector non-pausing logpoint at captureViewport; all original calls forwarded unchanged. Same observation method on both versions. Main protocol formats: png, png, png, png, png, png, png, png, png, png, png, png, png PR initial protocol formats: jpeg(quality=10), png, png, jpeg(quality=10), jpeg(quality=10), jpeg(quality=10) PR timed batch formats: jpeg, jpeg, jpeg, jpeg, jpeg, jpeg, jpeg, jpeg, jpeg, jpeg, png, png Ten sequential actual MCP default snapshots on https://example.com, timed inside the real Codex turn around the awaited tool (Date.now): main ms: 184, 125, 117, 130, 110, 106, 137, 129, 103, 116; median 121 PR ms: 43, 41, 49, 43, 57, 45, 59, 44, 63, 47; median 46 All 20: screenshot metadata 1280x800; zero image blocks; visible page text and accessibility refs; no errors. These are this VM and page only, not whole-turn or broad performance claims. Neighbor checks (both main and PR): includeImage=true yields one PNG image block; includeImage=true/save=true and save=true alone produce real PNG files; saved signature 89504e470d0a1a0a. Matching saved PNGs: 168230 bytes; SHA256 a73e96f9bcad5872bf6a52c4029c237701add5666b0b09cf230f3aff9e07f2e9 (identical main/PR). Fresh snapshot refs click Learn more, reach https://www.iana.org/help/example-domains (HTTP 200), and browser back restores example.com with fresh usable refs. PR viewport 800x600: default and inline image snapshots both report 1280x960 (same capture scaling), identical visible text and accessibility refs present; restored viewport reports 1280x800. Checks via task-owned Blacksmith: vp i vp test run apps/server/src/mcp/McpHttpServer.test.ts apps/server/src/preview/ServerBrowserPage.test.ts Initial browser suite startup failed because Chromium was missing. Installed using playwright-core/cli.js install --with-deps chromium, then reran exact command. PASS: 2 files, 61 tests (25 ServerBrowserPage + 36 McpHttpServer). Upstream CI at exact head: green; no source edits, commits or pushes. Unverified: native Electron tabs and browser zoom; native iOS/Android; mixed-version linked hosts; deadline/retry/masking behavior beyond existing focused tests; whole-agent-turn performance.