Refreshed R3 and R4 harness evidence for [#27462](https://git.cafe/pingdotgg/t3code/pulls/27462). Verified merge-base and requested head. Both baseline takes failed with a clipboard Permissions Policy NotAllowedError and pasted `clipboard-sentinel-27402`; both fixed takes reported `copied` and pasted exactly `echo hello-27402` without sending.

Environment for **every capture**: T3 Code built-in preview browser, Chromium 156.0.0.0 on Linux x86_64; no device emulation; DPR 2; 100% font/viewport scaling; root font 16px; viewport **1440 × 900 CSS px**; dark app and browser appearance; scroll (0,0); frozen page clock **2026-10-30 08:00 UTC**. Preview saves stills at **1280 × 800 raster px** and recordings at **2880 × 1800 raster px**. No extra clipboard permission grant or browser-security override was applied.

Fresh databases were created by each side's own server with `T3CODE_DEV_SEED=0` and explicit isolated home directories. A real default Codex turn (GPT-6-Astra, Medium) received the same prompt and exact HTML on both sides. Published assets are byte-identical: 7,830 bytes, SHA-256 `5ef7082e24362a451260571767b142fd5da37c6f39ee953bcd9432765b4079a5`; both contain main's `html{box-sizing:border-box;padding:8px;...}` gutter.

Before each take the iframe document was reset through about:blank, idle was asserted, the unsent field was cleared, and the clipboard was replaced with `clipboard-sentinel-27402`. Before each final still, document fonts were loaded and resource activity stayed quiet for 500ms; two screenshots taken at least 500ms apart were pixel-identical. Every final still, diff, and recording contact sheet was opened and visually inspected. No ghosted text, stale dialog, app spinner, clipping, or unrendered content remains. Blank lower areas are the intentionally short fixture's unused space.

Diff0: absolute RGB difference, threshold zero, amplified ×32 (a one-level difference becomes 32). DiffT: magenta mask where the maximum absolute 8-bit RGB channel difference is **>16/255**. Both use the unaltered saved stills.

**R3 — LABELLED HARNESS, attachment panel; 1440 × 900 CSS px, dark**

The actual panel store opens the real attachment with `htmlRender:true`. The panel is maximized and the sidebar closed through the UI. A labelled neutral unsent paste target overlays unused lower panel space, keeping the conversation and “Worked for” labels outside the visible panel.

Same interaction, approximate recording timestamps (seconds):
- Before: **0.5 idle → 2.8 page Copy click → 3.2 failure → 5.0 sentinel pasted → 7.5 settled final**.
- After: **0.5 idle → 2.8 page Copy click → 3.0 copied → 4.8 `echo hello-27402` pasted → 6.3 settled final**.

[before-R3.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b3eb63032be1cc19/before-R3.mp4)

[after-R3.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/364d02509b074de1/after-R3.mp4)

| Before | After | Diff0 ×32 | DiffT >16 |
| --- | --- | --- | --- |
| ![before-R3-final.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/27a070ba60ba74f5/before-R3-final.png) | ![after-R3-final.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2a09dd34ec2cfb49/after-R3-final.png) | ![R3-diff0-x32.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1baf2fc610a0194f/R3-diff0-x32.png) | ![R3-diffT16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ed3b0c6c1990ec82/R3-diffT16.png) |
| [305a90dce4](https://git.cafe/pingdotgg/t3code/commit/305a90dce44b8b7813d951662f13ce8510a3c669) | [b11311af8e](https://git.cafe/pingdotgg/t3code/commit/b11311af8e1ee4c1b64b3c8d218935d89cf9d798) | [305a90dce4](https://git.cafe/pingdotgg/t3code/commit/305a90dce44b8b7813d951662f13ce8510a3c669) → [b11311af8e](https://git.cafe/pingdotgg/t3code/commit/b11311af8e1ee4c1b64b3c8d218935d89cf9d798) | [305a90dce4](https://git.cafe/pingdotgg/t3code/commit/305a90dce44b8b7813d951662f13ce8510a3c669) → [b11311af8e](https://git.cafe/pingdotgg/t3code/commit/b11311af8e1ee4c1b64b3c8d218935d89cf9d798) |

**R4 — COMPONENT HARNESS, GuestHtmlRender; 1440 × 900 CSS px, dark**

This mounts the real GuestHtmlRender from each revision with its atom registry and each server's real published HTML attachment. The guest asset URL is deliberately substituted with the owner asset. The visible warning records the real-flow limitation.

Same interaction, approximate recording timestamps (seconds):
- Before: **0.5 idle → 2.8 page Copy click → 2.9 failure → 4.9 sentinel pasted → 7.4 settled final**.
- After: **0.5 idle → 2.8 page Copy click → 2.9 copied → 4.9 `echo hello-27402` pasted → 6.5 settled final**.

[before-R4.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6bfbf21315d3b439/before-R4.mp4)

[after-R4.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/96fade13705c0199/after-R4.mp4)

| Before | After | Diff0 ×32 | DiffT >16 |
| --- | --- | --- | --- |
| ![before-R4-final.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/26bc6ec4d0db237d/before-R4-final.png) | ![after-R4-final.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3860cc0016a5c369/after-R4-final.png) | ![R4-diff0-x32.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8fe6e2409ac589e3/R4-diff0-x32.png) | ![R4-diffT16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bdbb79827410bee7/R4-diffT16.png) |
| [305a90dce4](https://git.cafe/pingdotgg/t3code/commit/305a90dce44b8b7813d951662f13ce8510a3c669) | [b11311af8e](https://git.cafe/pingdotgg/t3code/commit/b11311af8e1ee4c1b64b3c8d218935d89cf9d798) | [305a90dce4](https://git.cafe/pingdotgg/t3code/commit/305a90dce44b8b7813d951662f13ce8510a3c669) → [b11311af8e](https://git.cafe/pingdotgg/t3code/commit/b11311af8e1ee4c1b64b3c8d218935d89cf9d798) | [305a90dce4](https://git.cafe/pingdotgg/t3code/commit/305a90dce44b8b7813d951662f13ce8510a3c669) → [b11311af8e](https://git.cafe/pingdotgg/t3code/commit/b11311af8e1ee4c1b64b3c8d218935d89cf9d798) |

**What else changed**

- R3: the two-line failure becomes one-line `copied`, reducing the fixture body's painted height by 19 CSS px. The paste value changes. Every other pixel is identical, including the panel chrome, harness label, paste-field position, and current-base gutter.
- R4: the three-line failure becomes one-line `copied`; live iframe height shrinks from 178 to 140 CSS px. Its bottom border, paste label, and paste field move upward 38 CSS px; the paste value changes. Every other pixel is identical, including title, warning, gutter, code, and Copy button.
- Recordings differ slightly in duration and preview cursor/click-ring timing. These are tool overlays; none appears in the settled stills. No turn-duration label appears in either pair.

**Unverified**

No requested harness pair is missing. R3's production producer of `htmlRender:true` remains unverified. R4's real guest invite, redemption, guest session, T3 Connect transport, and guest asset route remain unverified because T3 Connect is unavailable. These captures prove the mounted component's iframe policy only. R1/R2 were outside this narrow refresh; native desktop/mobile and other browsers were not tested.

**Seed, harness, capture, and inspection scripts**

The original supplied seed/capture drivers were adapted for the 60-second preview wait cap, scoped Copy selection, full document resets on both rows, actual dark app appearance, network quiet, and a neutral R3 paste target. Actions were executed stepwise through the preview tool surface; `run-refresh.mjs` consolidates the sequence for replay. Script call timestamps and approximate video transition timestamps are both retained (the preview recorder and action-call clock have different overhead).

[seed-driver.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bb2b3aea970944e4/seed-driver.mjs)
[capture-driver.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b8c7d9a23e1c92b8/capture-driver.mjs)
[open-panel-harness.js](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3a81f1c21bb1bc69/open-panel-harness.js)
[guest-component-harness.js](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/095c8c8fc156b626/guest-component-harness.js)
[r3-framing-harness.js](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5aa7911b261b0f8b/r3-framing-harness.js)
[environment-freeze.js](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7be48ef8e10d7775/environment-freeze.js)
[theme-normalization.js](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f84705f3124b44e4/theme-normalization.js)
[fixture-prompt.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f4f0d53c7d11569f/fixture-prompt.txt)
[fixture.html](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1bed4ddfab50b1f3/fixture.html)
[published-fixture.html](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5789ce0a07cdb6f0/published-fixture.html)
[diff-driver.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2ec8467ba4f0dfc0/diff-driver.py)
[inspect-recordings.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/76642ac69ec894eb/inspect-recordings.py)
[run-refresh.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d6fb27baa7dbda0c/run-refresh.mjs)
[capture-results.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c40f25f4efe9219d/capture-results.json)
[diff-stats.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e69b729bdbc86ad1/diff-stats.json)

[video-timestamps.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e380300cae0e6877/video-timestamps.py)
[video-timestamps.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/651c816008f54c82/video-timestamps.json)

Diagnostic archive includes settlement probes, video metadata/contact sheets, sanitized server/install logs, and **rejected preliminary takes** (including the discarded theme-mismatched take); use only the pairs above as evidence. Startup pairing URLs were redacted.

[diagnostics-and-rejected-takes-final.tar.gz](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/eacd885ba1d50fd0/diagnostics-and-rejected-takes-final.tar.gz)

No source change, commit, push, PR comment, or PR edit was performed. Browser tabs and both tracked dev runners were stopped; the before worktree and this step's scratch directory are removed after upload. The lead's checkout remains at the requested head and clean.

FRICTION:
- tool | preview_evaluate rejects a trailing newline in a downloaded script; it must be trimmed | trim downloaded expressions before evaluation.
- tool | browser dark emulation did not update the after app's already initialized theme | explicitly select dark app appearance before capture and inspect the first pair.
- tool | preview snapshots downscale a 1440 × 900 CSS viewport to 1280 × 800 raster pixels | expose a native-size screenshot option; recording retains 2880 × 1800 at DPR 2.
- tool | dev-runner shutdown left its Vite/server children alive; retained watcher PIDs and confirmed port owners were stopped explicitly | propagate shutdown to every child process.
- tool | the first still's network-quiet window caught a resource request and the take was rejected | wait until a complete quiet window, then require two identical screenshots.

PR [#27462](https://git.cafe/pingdotgg/t3code/pulls/27462), head [b11311af8e](https://git.cafe/pingdotgg/t3code/commit/b11311af8e1ee4c1b64b3c8d218935d89cf9d798), checks and reviews not queried (evidence-only task).
