# W4 — false offline event, healthy session

Before [701e13c](https://git.cafe/pingdotgg/t3code/commit/701e13cebb040d8433cd9aefb803ddd0d58c41d6); after [37441e9](https://git.cafe/pingdotgg/t3code/commit/37441e905194b062345c76d81caacd00d77ef5e5).

Environment: Linux x86_64 (fs-33); Chromium 148.0.7778.96 / Playwright headless shell build1223; no device emulation; DPR1; zoom/font scale100%; dark; prefers-reduced-motion: reduce; full viewport1440×900 except W6 390×844. Actual Electron44.10.0 under headless-desktop/Xvfb, --no-sandbox --disable-gpu, ImageMagick import, measured renderer1440×900/DPR1. Paired sides share synthetic data, scroll position and rendered clock within each run. Retained web clock20:00 UTC, desktop22:19 UTC; round2 rendered clock00:00 UTC, native Date.now/timers for grace/backoff. This row is1440×900.

Start true and connected; set getter false and dispatch offline without cutting transport, await successful health probe, restore true/online. Final recording uses W4-final checkpoints. Probe results Success,32ms before/13ms after; generation1 and one live socket preserved. Still pair pixel-identical.

Steps and UTC checkpoints (relative seconds from each side’s recording start; a dash means state-only capture):

| Side | UTC | t(s) | Action/state checkpoint |
|---|---|---:|---|
| before | 2026-11-02T22:14:28.877Z | 0.00 | W4-final-video-start  |
| before | 2026-11-02T22:14:32.480Z | 3.60 | W4-final-healthy-offline PrimaryConnectionTarget:connected |
| before | 2026-11-02T22:14:34.326Z | 5.45 | settled-still W4-final  |
| before | 2026-11-02T22:14:35.374Z | 6.50 | W4-final-online-restored PrimaryConnectionTarget:connected |
| before | 2026-11-02T22:14:35.771Z | 6.89 | W4-final-video-stop  |
| after | 2026-11-02T22:14:42.280Z | 0.00 | W4-final-video-start  |
| after | 2026-11-02T22:14:45.838Z | 3.56 | W4-final-healthy-offline PrimaryConnectionTarget:connected |
| after | 2026-11-02T22:14:47.590Z | 5.31 | settled-still W4-final  |
| after | 2026-11-02T22:14:48.639Z | 6.36 | W4-final-online-restored PrimaryConnectionTarget:connected |
| after | 2026-11-02T22:14:49.001Z | 6.72 | W4-final-video-stop  |

Recordings, with the steps/timestamps above: before [W4-before.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a3232ee0ce3fed50/W4-before.mp4); after [W4-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/778fdb89547c1eeb/W4-after.mp4).

| Checkpoint | Before | After | Diff0 | DiffT16 |
|---|---|---|---|---|
| W4 | ![W4-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1602fbbd22080181/W4-before.png)<br>[701e13c](https://git.cafe/pingdotgg/t3code/commit/701e13cebb040d8433cd9aefb803ddd0d58c41d6) | ![W4-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c5dce6bbfc6512b2/W4-after.png)<br>[37441e9](https://git.cafe/pingdotgg/t3code/commit/37441e905194b062345c76d81caacd00d77ef5e5) | ![W4-diff0.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/32615b1a193b4874/W4-diff0.png)<br>[701e13c](https://git.cafe/pingdotgg/t3code/commit/701e13cebb040d8433cd9aefb803ddd0d58c41d6) → [37441e9](https://git.cafe/pingdotgg/t3code/commit/37441e905194b062345c76d81caacd00d77ef5e5) | ![W4-diff16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/03d2a207ddf7d932/W4-diff16.png)<br>[701e13c](https://git.cafe/pingdotgg/t3code/commit/701e13cebb040d8433cd9aefb803ddd0d58c41d6) → [37441e9](https://git.cafe/pingdotgg/t3code/commit/37441e905194b062345c76d81caacd00d77ef5e5) |

Before every selected still: fonts and network idle, reduced motion where supported, then two byte-identical screenshots500ms apart. All selected stills/diffs were opened and recordings skimmed. Diff0 amplifies every nonzero max-RGB delta (including one-level changes) in magenta; DiffT16 uses delta>16/255; unchanged after pixels dimmed to20%. Comparisons are within each row/pair, not across round1/round2 fixture variants. Transient splash/sync frames in recordings are actual startup transitions; selected stills exclude them.

Protocol/state transcript: [web-protocol.jsonl](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d48535ef84fb57c7/web-protocol.jsonl).

Reproduction: [runbook-r2.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/87a66f49edaafd9e/runbook-r2.md); [capture-scripts-r1.tar.gz](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/35d67210cb0f10ea/capture-scripts-r1.tar.gz); [capture-scripts-r2.tar.gz](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6e4dbccb05066738/capture-scripts-r2.tar.gz).
