# E9 evidence — round2
Before [d1ec71e6ff](https://git.cafe/pingdotgg/t3code/commit/d1ec71e6ff8b46bacfbe103af72034eba3654e63) → After [524d29b43a](https://git.cafe/pingdotgg/t3code/commit/524d29b43ad3a089e28ef009e37c21f2ba1c137f).

After-only real app recording. Normal dev server restart stops Claude. Refresh gives exact not-running error; sending recovery message restarts Claude; Refresh then23°C. New message/reply and timeline navigation affordance are expected visible additions. No before Claude app exists.

Web: Playwright/Chromium148 Linux headless; no device emulation; DPR1;1440×900 or390×1000 CSSpx; font16px/100%; reduced motion; fixed21:00UTC; time labels normalized via [data-evidence-time-label], [data-evidence-normalized-duration], [data-evidence-normalized-timestamp]. Android: real native dev client on Pixel9 emulator/API36;1080×2424px,411.43×923.43dp,DPR2.625,fontscale0.94,dark,animationsoff,status9:41; E1 labels9:17PM on both; elapsed label5s via identical capture-only normalization. Every still: fonts/network quiet where available and two identical frames≥500ms apart.

Diff0: RGB max-channel >0, binary magenta amplification. DiffT: >16/255; unchanged background35% brightness. Full surfaces below; no crops.

Scripted steps (video seconds, action dispatch; completion within0.16s):

- 1.021s: Click Refresh in stopped session (completed 1.074s).
- 3.444s: Type a recovery message (completed 3.572s).
- 4.273s: Send recovery message with Enter (completed 4.430s).
- 9.771s: Click Refresh after recovery (completed 9.878s).

Before: no Claude app; matrix specifies after-only.

After recording:
[E9-1440-dark-after.mp4](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9df1157164efacfc/E9-1440-dark-after.mp4)

[Exact recording timeline](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d2be14bd66085ae2/E9-1440-dark-after-timeline.json)

Initial
![E9-1440-dark-initial-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a2b9283c5f07b530/E9-1440-dark-initial-after.png)

Stopped
![E9-1440-dark-stopped-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8ff19a05169c65bd/E9-1440-dark-stopped-after.png)

Recovered
![E9-1440-dark-recovered-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5432442519c5ccaa/E9-1440-dark-recovered-after.png)

What else changed: After-only real app recording. Normal dev server restart stops Claude. Refresh gives exact not-running error; sending recovery message restarts Claude; Refresh then23°C. New message/reply and timeline navigation affordance are expected visible additions. No before Claude app exists.

Rebuild: [REPRODUCE.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a5856da48345083e/REPRODUCE.md). Driver/fixture files:

[seed-driver.js](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ef45a62f3caedf7f/seed-driver.js)
[web-driver.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/63e262f9cfcb1f52/web-driver.mjs)
[weather-server.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cadc431da52a4a9b/weather-server.py)
[weather-card.html](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/59c5cd3625eb7cff/weather-card.html)
[native-capture.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/09927a1ce4b3e2e9/native-capture.py)
[normalize-native-label.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/81c656c90f04135c/normalize-native-label.py)
[interactions.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0258bead7a686d7e/interactions.mjs)
[stopped-session.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7006d081e3fbbc00/stopped-session.mjs)
[advisories.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3b3cfe92a0bab051/advisories.mjs)
[guest-harness.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9c97ce08b1206449/guest-harness.mjs)
[guest-probe.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/05f9565d801da05e/guest-probe.mjs)
[make-diffs.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3ac4b6a3e7fd248b/make-diffs.py)
