PR 29006 real dev verification, 2026-11-02, Linux VM Baseline: github/main cc59f99e735300120a6fc74d9a0b9df7c98fa81c PR head: a981ba08af2bd7068476335357ec36274444ff22 $ git worktree add ../main github/main $ cd ../main && vp i $ setsid nohup timeout 7000 vp run dev > /tmp/main-dev.log 2>&1 & Main used T3CODE_DEV_SEED=0 and isolated /home/user/main/.t3. [dev-runner] serverPort=16733 webPort=8693 Browser: repo Playwright 1.60.0, /usr/bin/google-chrome, 1440x1000. Added /home/user/icon-verification through Add project > Local folder. Selected Codex gpt-6.1-sol and submitted a real turn through the composer. Provider created and committed real PNGs using Node crypto and zlib: favicon.png / oversized.png: 5,763,023 bytes, 1600x1200 RGB small.png: 95 bytes, 32x32 solid green Chrome CDP measured actual app requests to the running server. No request bodies, response bodies, or app fetch functions were replaced. At request stage, icon requests were continued after applying Chrome network emulation at 524,288 download bytes/s, 50 ms latency. Other app loading was unthrottled before these requests. Both runs used disabled browser HTTP cache. main, content-length=5763023: Fetch / favicon.png: loadingFinished; body bytes=5763023; duration=22255 ms Image / favicon.png: loadingFinished; body bytes=5763023; duration=22193 ms The rejected cache Fetch continued downloading the entire oversized body. Stopped main using its captured launch PID/process group before starting PR. Copied only this task-owned development state into the PR isolated .t3 home. $ git switch --detach a981ba08af2bd7068476335357ec36274444ff22 $ vp i $ setsid nohup timeout 6000 vp run dev --home-dir /home/user/t3code/.t3 --no-seed > /tmp/dev.log 2>&1 & [dev-runner] serverPort=13773 webPort=5733 PR, same PNG and Chrome conditions, content-length=5763023: Fetch / favicon.png: loadingFailed; canceled=true; net::ERR_ABORTED; body bytes=0; duration=342 ms Image / favicon.png: loadingFinished; body bytes=5763023; duration=11149 ms The changed cache Fetch cancels. The separate existing image fallback still loads and renders the original PNG; this PR does not prevent that download. CDP byte counts describe body bytes delivered to the browser, not server-side socket buffering. Durations are observations of these runs, not a benchmark. Neighbor checks through project settings: Choose file > small.png: green 32x32 icon renders as data:image/png. Reset project icon to default: Automatic restores the oversized PNG. Choose small.png again: green icon returns. Reload: green 32x32 data URL remains; zero small.png network requests. Fresh real Codex gpt-6.1-sol turn on PR, submitted through composer: favicon.png: 5,763,023 bytes, 1600 x 1200 png oversized.png: 5,763,023 bytes, 1600 x 1200 png small.png: 95 bytes, 32 x 32 png git status --short: no output ICON_VERIFICATION_OK The turn completed in the client; no files modified. $ blacksmith-check run --id "vp i && vp test run packages/client-runtime/src/projectFaviconCache.test.ts" Test Files 1 passed (1) Tests 8 passed (8) Worker stopped after completion. Existing GitHub CI on this exact PR head was green. Not exercised: native mobile, Electron shell, macOS/Windows, tunnel/relay links. No production source modifications, commits, pushes, labels, or merge actions.