# Web evidence replacements

Diagnosis first: matched live R04 reruns show a short connection handoff on both revisions, not a head-only regression. Head loses both badges while the supervisor is connecting (preparing → synchronizing), with refusal IDs empty; base loses In use during the same phase. From first absent to first restored 100ms sample: head 0.207s, base 0.224s. Better-route activation replaces C with B; no gate closes or active-socket failure precedes that switch. This is supervisor state, presentation and DOM agreeing, not merely a rerender. Head republishes A refusal when connected B. The earlier multi-second gaps were not reproduced and remain unexplained: the old sparse traces cannot establish their cause.

[diagnosis.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/43db443f177af0da/diagnosis.txt)

PR [#33199](https://git.cafe/pingdotgg/t3code/pull/33199), mirror [#33199](https://github.com/pingdotgg/t3code/pull/33199). Before [bcee0f5d28](https://git.cafe/pingdotgg/t3code/commit/bcee0f5d2872ba193c66ed9ba979bbe424f89ff9); after product [3cee08825d](https://git.cafe/pingdotgg/t3code/commit/3cee08825d0fdf2d79f0ff56eab4d98582534ed4). Existing after checkout also contains a test-only follow-up commit; product files are unchanged. No product edits, commits, pushes, PR edits or comments by this capturer.

Chrome 157, Linux, DPR2, 390×844 CSS, dark, 16px root font, UI Date frozen 2026-11-10T10:30:00Z on both sides. Independent synthetic server homes, T3CODE_DEV_SEED=0, no live state or provider turns. Direct loopback origins A=:19302, B=:19303, C=:19304 forward to the same H1 host; learned Tailscale route last. Video output preserves source timestamps at constant 30fps by duplicating held frames. Every distinct captured source frame was opened as a numbered contact sheet before its video was uploaded. Reduced motion was unavailable: close animations are retained, narrated below, and followed by clean settled Settings. Pixel diffs are for stills only. Do not interpret a transition frame as a settled dialog.

## R03 / R04 — replacement matched real-app pair

Steps (trace seconds; subtract offset to get video seconds): begin connected C with revoked A unreachable; open A and activate at head 0.769/base 0.443. Restore B at ~21.364 and activate (head 21.364/base 21.763), activate again 37.401; synthetic online event 45.085; activate 156.463. No gates close. A refusal appears on head by trace 0.900 and stays visible with C In use until the switch. Base has no refusal label. The ~156s quiet interval is deliberately retained to demonstrate that neither rerun has the old multi-second pre-switch gap.

At trace 156.603→156.810 head is connecting and badge-free, then connected B with A refused. Base 156.605→156.829 is connecting and lacks In use, then connected B. Head video offset 0.444800s; base offset 0.220600s. Distinct head source frames show badge-free at video 156.309 and restored at 156.462. The C socket predated tracing; no claim that it was instrumented. The new B socket opens at trace head 156.658/base 156.674. Trace includes supervisor generation/stage/refusal IDs/prepared route, presentation, actual DOM badge booleans every 100ms. Shorter changes may fall between samples.

| Configuration | Before<br>[bcee0f5d28](https://git.cafe/pingdotgg/t3code/commit/bcee0f5d2872ba193c66ed9ba979bbe424f89ff9) | After<br>[3cee08825d](https://git.cafe/pingdotgg/t3code/commit/3cee08825d0fdf2d79f0ff56eab4d98582534ed4) | Diff0 | DiffT |
| --- | --- | --- | --- | --- |
| R03 + R04 · w · real application | [R03-R04-base.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/84747d86f9a344a3/R03-R04-base.mp4) | [R03-R04-head.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/664b219b97eccb0d/R03-R04-head.mp4) | — | — |

[R03-R04-base-trace.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a159b213657c887b/R03-R04-base-trace.json) · [R03-R04-head-trace.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a7e8d0c7bea6c603/R03-R04-head-trace.json)

## R06 — replacement matched real-app pair

Fixture correction: the first combined R06 capture learned Tailscale credentials from revoked A on head and valid C on base, so base could fall back through Tailscale. That comparison is superseded. Both replacement runs have A/B plus learned A, with A and learned A revoked, B valid. Exact script: close B gate 3s; reopen B 6s; application activation 6.1s; click actual enabled switch off 9s and on 11s. Generations start at 2 on both final recordings.

Trace samples: both backoff/reconnecting with no badges at 3.1s, connecting at ~6.2s and connected B by 6.3s; available with no badges at 9.1s; connecting after enable, connected by head 11.238/base 11.218s. The gaps come from the intentional B socket drop and disable action. A refusal returns only on head when connected. Head offset −0.027100s; base offset 0.137300s (trace zero precedes base recording). Use trace metadata as the authority for exact clock alignment. Initial active B socket was not instrumented on the restarted head page; gate closure is independently logged, while base records its code1006 close.

| Configuration | Before<br>[bcee0f5d28](https://git.cafe/pingdotgg/t3code/commit/bcee0f5d2872ba193c66ed9ba979bbe424f89ff9) | After<br>[3cee08825d](https://git.cafe/pingdotgg/t3code/commit/3cee08825d0fdf2d79f0ff56eab4d98582534ed4) | Diff0 | DiffT |
| --- | --- | --- | --- | --- |
| R06 · w · real application | [R06-base.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/94fef011f6da629e/R06-base.mp4) | [R06-head-matched.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5648e0a93868d2ac/R06-head-matched.mp4) | — | — |

[R06-base-trace.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1e9c0226256c0fe7/R06-base-trace.json) · [R06-head-matched-trace.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/14f3f074fd77607d/R06-head-matched-trace.json)

## R05 — replacement close-transition pair

Same actions on each side: open Add route; close/cancel; hold clean Settings; reopen; enter exact A origin with a fresh independent pairing code; submit; observe A In use with no duplicate origin or refusal; hold clean Settings after toast exits. Head: open ~6.0–6.7s; cancel 13.24s; normal close transition 13.4–13.93s; clean hold until 34.04s reopen; submit ~44.2s; close transition 44.36–44.57s; toast gone by 49.54s; final clean frame 56.88s. Base: first dialog settled ~1.02s; cancel ~7.07s; close transition through 7.64s; clean hold until 26.5s; reopen/fill/submit ~27.2–27.9s; close through 28.15s; toast gone ~33.16s; final clean frame 52.21s. These are production animations, including transient opacity/translation; no ghost remains in settled frames. Public videos mask the credential rectangle during entry (head 43.5–44.7s; base 26–29s).

| Configuration | Before<br>[bcee0f5d28](https://git.cafe/pingdotgg/t3code/commit/bcee0f5d2872ba193c66ed9ba979bbe424f89ff9) | After<br>[3cee08825d](https://git.cafe/pingdotgg/t3code/commit/3cee08825d0fdf2d79f0ff56eab4d98582534ed4) | Diff0 | DiffT |
| --- | --- | --- | --- | --- |
| R05 · w · real application | [R05-base.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8126627251bf0cec/R05-base.mp4) | [R05-head.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/aa26a336d3688d3c/R05-head.mp4) | — | — |

## R07 — replacement cancel/confirm pair

Start with A/B/learned A on both revisions. Remove A, inspect address-bearing prompt, cancel, hold clean Settings, reopen, confirm, hold clean connected B. Removing A also deletes its learned child; after connection rebuild, learned B appears. Do not treat the brief singleton between deletion and rediscovery as the stable 2→1 acceptance case below.

Head: remove action ~1.31s; prompt visible by ~3.08s; cancel action 18.43s and close through ~19.05s; reopen action 19.64s; confirm action 20.84s; clean B with learned B by 22.06s. Base: first prompt opens during first second, cancel/close through ~1.43s; settled hold until ~22.23s; reopen and confirm ~22.23–22.95s; clean final state by ~23.35s held to 38.54s. Closing animations remain visible and finish cleanly.

| Configuration | Before<br>[bcee0f5d28](https://git.cafe/pingdotgg/t3code/commit/bcee0f5d2872ba193c66ed9ba979bbe424f89ff9) | After<br>[3cee08825d](https://git.cafe/pingdotgg/t3code/commit/3cee08825d0fdf2d79f0ff56eab4d98582534ed4) | Diff0 | DiffT |
| --- | --- | --- | --- | --- |
| R07 · w · real cancel/confirm | [R07-base.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d6151acf2f400976/R07-base.mp4) | [R07-head-matched.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6ea9df319ac29a84/R07-head-matched.mp4) | — | — |

## R07 — added stable 2→1 real transition

Unrecorded setup: pair the automatically learned Tailscale origin explicitly with its own valid code, leaving exactly two saved routes B and Tailscale. In each recording remove B and confirm; wait for Tailscale In use as the sole route, with no Remove control. Head: open ~1.33–1.65s, confirm ~2.54s, close through ~2.83s, clean singleton held to 4.61s. Base: prompt opens ~0.25–0.87s, confirm ~1.04s, transition through ~1.48s, clean singleton held to 37.92s. No component harness is used here.

| Configuration | Before<br>[bcee0f5d28](https://git.cafe/pingdotgg/t3code/commit/bcee0f5d2872ba193c66ed9ba979bbe424f89ff9) | After<br>[3cee08825d](https://git.cafe/pingdotgg/t3code/commit/3cee08825d0fdf2d79f0ff56eab4d98582534ed4) | Diff0 | DiffT |
| --- | --- | --- | --- | --- |
| R07 · w · real stable 2→1 | [R07-singleton-base.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3245838f41b0c74f/R07-singleton-base.mp4) | [R07-singleton-head.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bcc0fc315edea439/R07-singleton-head.mp4) | — | — |

## R07 — added addressless relay confirmation harness

Visibly labelled rendering-only harness uses the actual EnvironmentRoutesList and the application's real ConfirmDialogHost. Synthetic addressless Relay target plus healthy LAN. No live relay transport is provisioned. Head starts with injected relay refusal; base cannot render the new badge. Open Remove T3 Connect at ~1s; inspect “Remove T3 Connect route?” with no empty address paragraph; cancel around 12.8–13.3s; normal close animation finishes and the clean labelled fixture is held through ~14s. Label wraps more on head because the badge occupies width. This proves confirmation rendering/cancel, not a live relay deletion.

| Configuration | Before<br>[bcee0f5d28](https://git.cafe/pingdotgg/t3code/commit/bcee0f5d2872ba193c66ed9ba979bbe424f89ff9) | After<br>[3cee08825d](https://git.cafe/pingdotgg/t3code/commit/3cee08825d0fdf2d79f0ff56eab4d98582534ed4) | Diff0 | DiffT |
| --- | --- | --- | --- | --- |
| R07 · w · labelled relay harness | [R07-relay-base.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4ae4d1cb9713201a/R07-relay-base.mp4) | [R07-relay-head.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fb7688dbf9c5b3db/R07-relay-head.mp4) | — | — |

## C01 — added exact healthy two-route still

Labelled actual-component rendering harness: exactly two routes, A loopback and B LAN In use, no refusals. Each side accepted only after two stills at least 500ms apart were pixel-identical. Before/after AE=0: both Diff0 (any nonzero channel amplified to 255) and DiffT (16/255) are black. Full 780×1688 physical px PNGs.

| Configuration | Before<br>[bcee0f5d28](https://git.cafe/pingdotgg/t3code/commit/bcee0f5d2872ba193c66ed9ba979bbe424f89ff9) | After<br>[3cee08825d](https://git.cafe/pingdotgg/t3code/commit/3cee08825d0fdf2d79f0ff56eab4d98582534ed4) | Diff0 | DiffT |
| --- | --- | --- | --- | --- |
| C01 · w · exact healthy two routes | ![C01two-base.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4492850f6965e2e7/C01two-base.png) | ![C01two-head.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/06ab044e40866279/C01two-head.png) | ![C01two-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0d41a1845c365325/C01two-diff0.png) | ![C01two-diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0397c85ab8c61a52/C01two-diff16.png) |

## C04 — added transition recording harness

Actual typed-driver supervisor/connectOverRoutes runs establish each result; a visibly labelled actual-component harness replays those outputs. Both sides: 0s unreachable/transient; 1.8s tunnel not enabled; 3.6s server clock-skew authentication; 5.4s missing device credential/profile; 7.2s relay authentication — no refusal badge. At 9s host authentication refusal, then 10.8s host permission refusal: head marks A, base remains unmarked. The base runtime's two failed positive expectations are the intended before-regression result; six negative cases pass. This is classifier/runtime plus presentation evidence, not live tunnel/relay/device transport provisioning.

| Configuration | Before<br>[bcee0f5d28](https://git.cafe/pingdotgg/t3code/commit/bcee0f5d2872ba193c66ed9ba979bbe424f89ff9) | After<br>[3cee08825d](https://git.cafe/pingdotgg/t3code/commit/3cee08825d0fdf2d79f0ff56eab4d98582534ed4) | Diff0 | DiffT |
| --- | --- | --- | --- | --- |
| C04 · w · labelled runtime-output harness | [C04-base.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e7728522692b2918/C04-base.mp4) | [C04-head.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cd30ad62d2692b6b/C04-head.mp4) | — | — |

[C04-base-runtime.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1bdffa6950562139/C04-base-runtime.txt) · [C04-head-runtime.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/99001114833cb673/C04-head-runtime.txt)

## Procedure, review and scope

[capture-procedure.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ad89815b2c5d0a3c/capture-procedure.md) · [capture-drivers.zip](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/12273bf4d4e78548/capture-drivers.zip) · [review-sheets.zip](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f5103b2e3ef2f477/review-sheets.zip)

Web rows replaced: R03, R04, R05, R06, R07. Web subcases added: stable real 2→1 and labelled addressless relay confirmation; C01 exact healthy two-route control; C04 transition sequence. No web row from this fix-up brief remains missing. Android is a separate concurrent capture and is not claimed here. Other matrix rows retain their original coverage status. Earlier R03-R06 combined recordings and earlier R06-head.mp4 are superseded; use the exact links in these rows. The unreproduced old multi-second gap remains a diagnosis limitation.

All capturer servers/gates and preview tabs stopped/closed, disposable base worktree removed. Scratch and private originals retained for the lead. Disk available 239 GB. No Android process or port touched.

AI-assisted; verified with the tests and tools listed above.
